Commit Graph

1773 Commits

Author SHA1 Message Date
579ba49f38
Deamon mode without PyQt4
- daemon mode shouldn't require PyQt4
2017-02-20 20:53:50 +01:00
9c4366ffa6
Don't report direct network errors as proxy errors
- last commit reported network errors that happened when proxy was off
  as network errors
2017-02-20 12:34:55 +01:00
ea448c4496
SOCKS error handler winsock compatibility
- now it can detect WSA errors as well, allowing more accurate error
  feedback
2017-02-20 12:15:51 +01:00
46a2c361de
Building and msgpack fixes
- Makefile typo
- pyinstaller rewritten and fixed including and initialisation of
  messagetypes
- msgpack decoding new message display fix
2017-02-19 19:48:45 +01:00
67c8966a21
Windows compatibility fixes
- spec file for pyinstaller detects architecture (32 or 64bit)
- spec file uses os.path.join
- spec file creates and adds the list of messagetypes
- added MinGW/MSyS support in Makefile
- separate Makefile.msvc for MCVC
- bitmsghash.cpp minor adjustments to build also on MSVC/MinGW
- if frozen mode, messagetypes loads the list of files from a text file
  generated during archive building rather than from a directory
2017-02-19 14:48:53 +01:00
a95f4aa255
LibreSSL compatibility
- code distinguishes between OpenSSL 1.1.x and LibreSSL and works with
  both
2017-02-18 17:22:17 +01:00
75f715bfe4
BSD compatibility
- separate Makefile for BSD make
- auto-compile will detect BSD and pass the correct parameters to make
- C PoW builds on OpenBSD and detects number of cores
2017-02-18 17:20:09 +01:00
6c907e2046
Windows socket typo 2017-02-17 21:14:39 +01:00
f499a3b1d8
Typo 2017-02-14 13:57:20 +01:00
f94b2d2d4b
Windows compatibility fixes
- there is no errno.WSAEAGAIN, only errno.WSAEWOULDBLOCK
2017-02-14 01:38:58 +01:00
a4b1a781ce
Minor UI fixes
- "new" folder consistently appears in chans and "All accounts"
- "Sent" message list sorting fix
- When editing a label, keys.dat is saved and the lineEdit completer
  is updated
- addressbook is updated when adding/deleting a new chan
2017-02-14 01:35:32 +01:00
965f3548ac
Depends checking updates
- checks for msgpack
- can distinguish OS and make a recommendation with respect to the
  relevant package manager
2017-02-14 01:33:16 +01:00
d8ae44f9ee
Obsolete imports, missing exception type 2017-02-09 21:04:07 +01:00
c778b81427
knownNodes refactoring and shutdown fixes
- saveKnownNodes replaced the repeated pickle.dump
- with knownNodesLock instead of acquire/release
- outgoingSynSender had an unnecessary loop during shutdown causing
  excessive CPU usage / GUI freezing
2017-02-09 11:53:33 +01:00
e664746f04
More knownNodes init
- also init children if they are missing
2017-02-08 20:52:18 +01:00
b0539f5cb4
SSL handshake fewer errors
- don't unnecessarily raise exceptions if SSL handshake fails
2017-02-08 20:49:14 +01:00
35a712d11d
KnownNodes missing init
- init knownnodes when connecting to a stream
2017-02-08 20:48:22 +01:00
157881bc63
Cyclic import fix
- networkDefaultProofOfWorkNonceTrialsPerByte and
  networkDefaultPayloadLengthExtraBytes cyclic import fix
- PyBitmessage should launch now when there's no keys.dat
2017-02-08 20:37:42 +01:00
2cc4435cfc
Imports, typos, syntax errors
- remove obsolete imports
- add missing imports
- fix typos
- fix syntax errors
- thanks to landscape.io for report
2017-02-08 14:19:02 +01:00
59f3a2fbe7
Reduce cyclic dependencies
- rearranged code to reduce cyclic dependencies
- doCleanShutdown is separated in shutdown.py
- shared queues are separated in queues.py
- some default values were moved to defaults.py
- knownnodes partially moved to knownnodes.py
2017-02-08 13:41:56 +01:00
7da36eccbd
Signal sender threads to close on shutdown
- when shutdown is running, add a shutdown command to the queues of all
  sender threads
2017-02-07 20:47:28 +01:00
a381f75b4b
Git head information in version
- About dialog now shows the git head
- git head check has been improved to point to the head rather than the
  previous commit
2017-02-07 20:46:30 +01:00
2c72b337c1
Typos and formatting 2017-02-07 20:09:11 +01:00
07722fb606
Node negotiation error handling
- complete the version and SSL handshake first, and only then feed
  errors into the stream and close connection
- this allows more accurate error handling on both sides
- also the timeOffset error trigger is now more accurate, but requires
  more nodes to upgrade
2017-02-07 19:38:52 +01:00
8515f9a9fc
Set SSL socket to blocking
- otherwise the error handling gets too complicated
2017-02-07 16:42:02 +01:00
6b65dfeeec
MarkAllUnread sqlite argument limit
- shouldn't crash anymore if there are too many messages to mark read
2017-02-07 16:38:02 +01:00
413419c858
Timeout handling and ping
- timeouts after the connection is established will trigger a ping
- previously they were handled as unrecoverable errors
2017-02-07 16:06:24 +01:00
15c620dcc2
SSL socket blocking error handling 2017-02-07 13:00:24 +01:00
ddc0ca5ede
Retry for certain non-blocking operations
- sometimes on read, EWOULDBLOCK is returned. It should retry. A timeout
  is handled separately
2017-02-06 19:41:25 +01:00
61770ba89a
Typo 2017-02-06 19:34:38 +01:00
f6bdad18a3
Improved stream handling
- version command sends list of all participating streams
- biginv sends lists of hosts for all streams the peer wants (plus
  immediate children)
- objects will spread to all peers that advertise the associated stream
- please note these are just network subsystem adjustments, streams
  aren't actually usable yet
2017-02-06 17:47:05 +01:00
79b566a907
Fix bitflags in version packet 2017-02-06 17:39:42 +01:00
e434825bb2
Pending download counter fix
- handles expired objects better
- counts objects that failed download more accurately
2017-02-06 11:02:03 +01:00
23fcf2cdec
SSL handshake python version compatibility
- error handling should now work with < 2.7.9
2017-02-03 10:05:35 +01:00
c979481564
Unhandled missing peer 2017-02-03 09:43:47 +01:00
ba130e03e5
Network subsystem freezing fixes
- queues were too short
- some error handling was missing
- remove nonblocking repeats in receive data thread
- singleCleaner shouldn't wait unnecessarily
2017-02-02 15:52:32 +01:00
4f70eaa01f
Fix curses mode 2017-02-02 15:48:56 +01:00
f3849eeb48
Unused imports, problematic variable names 2017-01-19 20:04:45 +01:00
01a9124b7d
Less verbose SSL handshake reporting
- if SSL handshake fails, we don't need to stack trace because we know
  where it's happening. Only report the error string.
2017-01-19 19:52:54 +01:00
5828021903
Fix false error about wrong stream
- sendinv and sendaddress are sometimes being sent to connections that
  haven't been established yet, resulting in complaints about stream
  mismatch. The error should only be displayed once the connection has
  been established and the remote node provides its stream number
2017-01-19 19:50:40 +01:00
5ae1327edc
Download/upload shutdown fixes
- Missing renamed to PendingDownload
- PendingDownload now only retries 3 times rather than 6 to dowload an
  object
- Added PendingUpload, replacing invQueueSize
- PendingUpload has both the "len" method (number of objects not
  uploaded) as well as "progress" method, which is a float from 0
  (nothing done) to 1 (all uploaded) which considers not only objects
  but also how many nodes they are uploaded to
- PendingUpload tracks when the object is successfully uploaded to the
  remote node instead of just adding an arbitrary time after they have
  been send the corresponding "inv"
- Network status tab's "Objects to be synced" shows the sum of
  PendingUpload and PendingDownload sizes
2017-01-19 19:48:12 +01:00
5708a38be0
Fix sending messages crashing 2017-01-17 01:07:39 +01:00
9197c425d2
Object requesting fix 2017-01-17 00:32:05 +01:00
9ed59dd825
Shutdown procedure cleanup 2017-01-16 23:38:18 +01:00
ca8550a206
Don't send requests for 0 objects 2017-01-16 23:37:25 +01:00
749bb628c0
Typo 2017-01-16 23:37:03 +01:00
4f920fe641
Fix infinite loop 2017-01-16 23:17:56 +01:00
d652dc864d
Downloading fixes
- able to request more objects with one command
- fixes to logic and error handling
2017-01-16 19:36:58 +01:00
9f89df6d1c
Expire objects that we're unable to receive
- sometimes a node would send an "inv" about an object but then not
  provide it when requested. This could be that it expired in the
  meantime or it was an attack or a bug. This patch will forget that the
  object exists if was requested too many times and not received.
2017-01-16 17:08:47 +01:00
ca6bc9981c
Better tracking in downloading objects
- remember what was requested from which node
- remember if it was received
- re-request object if we haven't received any new object for more than
  a minute
2017-01-16 15:17:23 +01:00
8dfa0faca9
More objects to be downloaded fixes 2017-01-15 23:10:44 +01:00
12205ee7ba
More fixes in objects to be downloaded 2017-01-15 23:07:11 +01:00
bd1aead46e
More fixes for objects to be downloaded 2017-01-15 22:41:12 +01:00
d04c0e78e4
Better handling of pending downloading objects 2017-01-15 22:36:12 +01:00
b750e67bfb
Handle exception in iterator 2017-01-15 22:25:09 +01:00
805f72e098
Make objects to be send stoppable if not empty 2017-01-15 22:21:19 +01:00
94f0bdc731
Objects to be downloaded optimising
- treat requested but never arrived objects as expired. This is how it
  worked before the refactoring. Without this, the list won't go to
  zero.
2017-01-15 22:01:10 +01:00
79893fdc23
Performance tuning objects to be downloaded
- rely on dict quasi-random order instead of an additional shuffle
- request an object once per minute
- stop check after count objects have been found
2017-01-15 20:47:33 +01:00
dbe15d0b99
Objects to be downloaded fixes
- tries to avoid calling senddata it it would block receiveDataThread,
  allowing fore more asynchronous operation
- request objects in chunks of 100 (CPU performance optimisation)
2017-01-15 19:50:28 +01:00
f079ff5b99
Refactor objects to be downloaded
- moved logic into a Missing singleton
- shouldn't try to download duplicates anymore, only requests a hash
  once every 5 minutes and not from the same host
- removed obsoleted variables
- the "Objects to be synced" in the Network tab should now be correct
- removed some checks which aren't necessary anymore in my opinion
- fix missing self in Throttle (thanks landscape.io)
2017-01-15 19:21:24 +01:00
6d2a75bfc9
Transfer speed improvements
- send buffer to send multiple commands in one TCP packet
- recv/send operation size now based on bandwith limit
- send queue limited to 100 entries
- buffer getdata commands to fill send queue, instead of waiting for the
  data packet to arrive first (i.e. allow getdata to work asynchronously)
2017-01-15 15:08:03 +01:00
c3fef7bc4e
Syntax fix 2017-01-15 12:41:19 +01:00
9bf17b34d1
Remove obsolete imports and code
- landscape.io pointed out obsolete imports
- there is also an obsolete variable and lock in throttle.py
- add Exception type to BMConfigParser().save
2017-01-15 11:40:31 +01:00
8cb0953401
Moved writeKeysFile into configparser
- shared.writeKeysFile -> BMConfigParser().save
- makes it easier to get rid of circular imports
2017-01-15 10:50:02 +01:00
5ca8a52662
Typos, extra imports and similar
- pointed out by landscape.io
- also updated dev/ssltest.py to work the same way as the main program
2017-01-15 10:48:29 +01:00
689d697a40
Refactor bandwidth limit and speed calculator
- also fixes potential deadlocks
2017-01-14 23:21:00 +01:00
ad75552b5c
Move shutdown from shared.py to state.py 2017-01-14 23:20:15 +01:00
bcc7692e14
Add safeGetInt to BMConfigParser 2017-01-14 23:18:06 +01:00
02a7c59de8
OpenSSL 1.1.0 compatibility fixes
- part 2, continued from previous commit
2017-01-14 17:50:49 +01:00
59b5ac3a61
OpenSSL 1.1.0 compatibility fixes
- function check missed 1.1.0 release
- TLS didn't work with anonymous ciphers
2017-01-14 17:47:57 +01:00
fa2f87743e
SSL handshake fix
- SSL handshake would often fail, because verack packet was being sent
  at the same time as the do_handshake was executed in a different
  thread. This makes it so that do_handshake waits until verack is done
  sending.
- also minor modifications in SSLContext initialisation
2017-01-14 13:22:46 +01:00
cc4c07025b
Sending thread fix 2017-01-14 12:35:08 +01:00
8d278182a7
Indentation 2017-01-13 15:53:47 +01:00
93bdc3c800
Remove extra print 2017-01-13 12:32:26 +01:00
d0b1cbfe1f
Add current git HEAD info to support request 2017-01-13 12:29:14 +01:00
5ae676f2ad
Minor support fix 2017-01-13 12:05:39 +01:00
6778d6046f
Add OpenSSL 1.1.0 compatibility
- thanks to Wolfgang Frisch <wfr@roembden.net>
2017-01-13 12:02:34 +01:00
59cf33c9a1
Remove obsolete import 2017-01-13 12:01:38 +01:00
65701e5997
neededPubkeys fix
- was still using shared.neededPubkeys
2017-01-13 09:30:23 +01:00
ff8deebf60
Keep track of network protocol status 2017-01-12 19:18:56 +01:00
810e50a040
Fix minor issues
- landscape.io complained
- obsolete imports
- ciphers -> self.ciphers
2017-01-12 07:26:04 +01:00
2cf2188bc3
Object sending fix
- forgot to move broadcastToSendDataQueues in class_singleWorker.py
2017-01-12 07:22:34 +01:00
bd520a340f
Trustedpeer fix and more refactoring
- fixed trustedPeer (thanks to anonymous bug reporter)
- moved trustedPeer and Peer into state.py
2017-01-12 06:58:35 +01:00
e7470a4757
Remove leftover from debugging 2017-01-12 06:57:17 +01:00
5ceb920bd6
TLS tuning
- allow TLS > 1.0 with python >= 2.7.9
- tune ssl_context with python >= 2.7.9
2017-01-11 20:47:27 +01:00
c738d93056
Assorted fixes
- landscape.io was complaining, this fixes most easily fixable errors
2017-01-11 18:13:00 +01:00
cdcdf11d59
Missing import fix 2017-01-11 17:46:33 +01:00
fa0a3135e7
Fixes pointed out by landscape.io
- missing/wrong/obsolete imports
- logger formatting
2017-01-11 17:26:25 +01:00
ac348e4e6b
Fixes and refactoring
- fixes errors introduced in the earlier refactoring
- more variables moved to state.py
- path finding functions moved to paths.py
- remembers IPv6 network unreachable (in the future can be used to skip
  IPv6 for a while)
2017-01-11 17:00:00 +01:00
5d2bebae28
Add IPv4 multicast range to ignored addresses 2017-01-11 14:46:10 +01:00
8bcfe80ad0
Refactoring of config parser and shared.py
- got rid of shared config parser and made it into a singleton
- refactored safeConfigGetBoolean as a method of the config singleton
- refactored safeConfigGet as a method of the config singleton
- moved softwareVersion from shared.py into version.py
- moved some global variables from shared.py into state.py
- moved some protocol-specific functions from shared.py into protocol.py
2017-01-11 14:27:19 +01:00
085e335969
Proxy update (for the new network subsystem) 2017-01-10 21:22:22 +01:00
75090abaaf
Advanced dispatcher class
- generic class the new asyncore-based network subsystem that handles
  buffered data transfer
2017-01-10 21:20:49 +01:00
b4703ec6ce
Make objectHashHolder into a list
- was a dict
2017-01-10 21:19:57 +01:00
9c214b4a24
Inventory refactoring #2
- forgot to add api.py
2017-01-10 21:17:25 +01:00
e84b19613e
Inventory refactoring
- minor refactoring, made it into singleton instead of a shared global
  variable. This makes it a little bit cleaner and moves the class into
a separate file
- removed duplicate inventory locking
- renamed singleton.py to singleinstance.py (this is the code that
  ensures only one instance of PyBitmessage runs at the same time)
2017-01-10 21:15:35 +01:00
4f543e14c1
TLS handshake fix
- TLS handshake in python is apparently always asynchronous, so it needs
  proper handling of SSLWantReadError and SSLWantWriteError
- also adds a timeout and a proper shutdown if handshake fails
2017-01-07 23:42:07 +01:00
PyBitmessage Translations
541979a159
Auto-updated language fr from transifex 2017-01-05 19:24:45 +01:00
PyBitmessage Translations
9a26ce5be1
Auto-updated language ja from transifex 2016-12-16 10:18:29 +01:00
PyBitmessage Translations
e92161650b
Auto-updated language pl from transifex 2016-12-15 19:57:09 +01:00
PyBitmessage Translations
a87bfb8a82
Auto-updated language eo from transifex 2016-12-15 19:53:55 +01:00
PyBitmessage Translations
77d7dcbd2d
Auto-updated language sk from transifex 2016-12-15 16:33:21 +01:00
PyBitmessage Translations
3b896e69e7
Auto-updated language de from transifex 2016-12-15 16:26:50 +01:00
fefb959338
Notify if C PoW missing
- Linux users often don't know that the C PoW is available and complain
  it's slow. This will try to build it, and adds availability
  notification in the status bar
- also, the updateStatusBar signal now allows emphasised notifications,
  which will remain visible for a longer period of time and also
  reappear if a status change happened in the meantime
2016-12-15 16:11:29 +01:00
PyBitmessage Translations
9d9052dda2
Auto-updated language zh_cn from transifex 2016-12-13 17:52:23 +01:00
PyBitmessage Translations
49832231ca
Auto-updated language de from transifex 2016-12-13 17:39:49 +01:00
025950c05e
Fix locale init
- date/time wasn't localised correctly on startup
2016-12-13 11:54:01 +01:00
PyBitmessage Translations
dd777d6e43
Auto-updated language de from transifex 2016-12-12 00:44:09 +01:00
PyBitmessage Translations
d8b8e0e9dd
Auto-updated language fr from transifex 2016-12-10 20:12:30 +01:00
114563ed2f
Default logger output UTF-8
- fixes errors when using locales other than EN
2016-12-06 16:15:37 +01:00
0dde976dec
Fix timeformat in configparser
- allow both raw (new) and non-raw (old) style timeformat for backwards
  compatibility
2016-12-06 13:04:52 +01:00
df18f7b042
Switch configparser to raw mode 2016-12-06 11:01:17 +01:00
e647d70bbc
New config parser class
- workaround for % in labels
- can be extended in the future
2016-12-06 10:47:39 +01:00
PyBitmessage Translations
9f89191742
Auto-updated language ja from transifex 2016-12-05 12:09:41 +01:00
9509552663
New network backend (WIP, not integrated)
- current snapshot of the new network backend code
- not working yet, just base classes and no integration
2016-12-01 16:48:04 +01:00
7ca6576dfc
Connection indicator for hidden service
- the number of connections as well as connection indicator was broken
  when running as a hidden service. This is a workaround
2016-11-16 19:36:50 +01:00
5cea1e04d1
SSL disconnect fix
- sometimes SSL connections unnecessarily disconnected on non-fatal
  errors. This should fix that. This is however a short term solution
  because of migrating to asyncore which has its own error handling
2016-11-16 15:18:09 +01:00
PyBitmessage Translations
1d3757ddc8
Auto-updated language pl from transifex 2016-11-15 22:07:40 +01:00
PyBitmessage Translations
3bafd597af
Auto-updated language eo from transifex 2016-11-15 21:36:16 +01:00
3f3774ff1f
Translation source update
- add extended encoding translation sources
2016-11-15 17:11:36 +01:00
7cc0f8fab0
Add extended encoding message validation
- validates variables of the "message" type
2016-11-15 17:10:33 +01:00
e76b10a6ed
Logging fix 2016-11-15 17:10:14 +01:00
bae7351849
Formating and standalone fix
- when running as a standalone program, helper_msgcoding logger import
  was missing
2016-11-15 17:09:08 +01:00
c6d45dd394
Encoding when sending to self
- when sending to self, it always used encoding 2 when saving into the
  inbox. Now uses the one that's currently selected
2016-11-15 17:07:53 +01:00
fbc9886eda
OpenCL settings saving fix 2016-11-15 17:06:56 +01:00
612333a267
Enable support for extended encoding
- receiving extended encoding now works
- sending works from the GUI by pressing "Shift" while clicking on
  "Send"
- requires https://pypi.python.org/pypi/msgpack-python
2016-11-14 20:23:58 +01:00
966b4382d8
Add handler for unknown encoding 2016-11-14 20:22:10 +01:00
5a438ccddd
OpenCL initialisation fix 2016-11-14 20:21:46 +01:00
b9748c55aa
Don't connect to self fix
- the hidden service don't connect to yourself fix was broken, this
  fixes the fix
2016-11-14 20:20:41 +01:00
54e3465575
HTML parser queue flush fix
- the queue wasn't correctly flushed
2016-11-14 20:19:26 +01:00
d35062b49c
Half-open connection limit warning fix
- it only should complain if on Windows and can't determine the Windows
  version
2016-11-13 08:50:09 +01:00
2fc2c78299
Extended encoding update
- modified to support both encoding and decoding
- fixes
- added test for all encodings
2016-11-12 17:20:45 +01:00
4af788e963
Placeholder proxy text
- based on what tor you're probably using (9150 for OSX and Windows,
  9050 for others)
2016-11-12 15:41:58 +01:00
PyBitmessage Translations
a6ac128e9e
Auto-updated language eo from transifex 2016-11-10 21:56:09 +01:00
PyBitmessage Translations
7033527c41
Auto-updated language pl from transifex 2016-11-10 21:55:24 +01:00
PyBitmessage Translations
0a948d382a
Auto-updated language de from transifex 2016-11-10 21:54:24 +01:00
PyBitmessage Translations
87f607688f
Auto-updated language sk from transifex 2016-11-10 21:52:21 +01:00
e9a3ef465c
OpenCL vendor selector
- when you have multiple OpenCL drivers at the same time, e.g. intel and
  nvidia, they won't mix leading to crashes. This patch makes it
  possible to select which driver to use by listing the available
  vendors
2016-11-10 21:43:10 +01:00
756f85c9f0
Don't connect to yourself when hidden service 2016-11-08 08:49:43 +01:00
a7f3afe5a6
Typo 2016-11-05 00:46:07 +01:00
8ce72d8d2d
Extended encoding updates
- more flexible and developer friendly. Still not active code
2016-11-03 22:41:36 +01:00
020a78b776
Exception prevention in hashCount
- I got a report that an exception can occur, and while I can't
reproduce it, this should avoid it
2016-11-01 14:44:39 +01:00
PyBitmessage Translations
c94492f17e
Auto-updated language pl from transifex 2016-10-30 03:18:00 +01:00
PyBitmessage Translations
976b11a307
Auto-updated language sk from transifex 2016-10-30 03:15:25 +01:00
ecbb985cb3
Newchandialog translation definition
- the ui file wasn't included in the source list
2016-10-28 22:31:50 +02:00
3d4869851e
Many changes on chan create/join dialog
- refactored to use the .ui file
- input logic change, address is always optional
- interactive input validation
- runs asynchronously to the main window
- address generator thread can now validate chans in addition to just
adding them
2016-10-28 22:07:16 +02:00
5c9bfe09a2
Parser queue flushing
- the parser queue wasn't flushed when there's an exception resulting in
  the wrong message being displayed selected
2016-10-27 23:09:31 +02:00
PyBitmessage Translations
22eb4d62bf
Auto-updated language de from transifex 2016-10-26 22:32:18 +02:00
PyBitmessage Translations
419affa3b3
Auto-updated language sk from transifex 2016-10-26 22:21:58 +02:00
PyBitmessage Translations
5299d025a8
Auto-updated language de from transifex 2016-10-26 05:05:51 +02:00
PyBitmessage Translations
04f0b6335d
Auto-updated language sk from transifex 2016-10-26 04:56:43 +02:00
781ea8a8a6
Typo 2016-10-26 02:19:26 +02:00
30d9de008f
Label change fix
- when changing an addressbook label using UTF-8, the correspnding
  messagelist label was garbled
2016-10-25 07:54:52 +02:00
a3584bb141
"From" combobox empty fix
- if label of your address is empty, the "From" combo box showed an
  empty entry (just the identicon). Now it shows the address instead
- fixes #898
2016-10-25 02:51:09 +02:00
b0d1ed8304
Make clear that address error message refer to the recipient
- a user report indicated there is confusion about address error
messages. He/she thought it refers to the sender address, however it
refers to the recipient address. This makes it more clear
2016-10-24 22:33:13 +02:00
ad0d2c375a
Recipient address error message status bar unicode fix
- when reporting an error about recipient address in the status bar, it
didn't correctly handle unicode
2016-10-24 22:31:54 +02:00
2c972fbe41
"Fetch Namecoin ID" button font size fixed 2016-10-24 22:29:14 +02:00
671f321ead
HTML parser fix
- the UTF-8-ifying of tags had missing brackets
2016-10-23 18:35:20 +02:00
40090a9a12
Notify in UI if time offset wrong
- if your time is off by more than an hour, you won't be able to
  establish a connection to the network. This patch adds a UI
  notification so that the user can understand why he can't connect.
2016-10-23 10:12:49 +02:00
c335ef7d10
HTML parser fix
- sometimes, a tag attribute name is UTF-8, sometimes it isn't. This
  change makes it handle both
2016-10-23 09:02:27 +02:00
32f1e0447a
Multiprocessing PoW fixes and improvements
- the multiprocessing PoW should now work correctly
- it also should be interruptible correctly and the GUI will ask about
  it during exit
2016-10-22 05:00:35 +02:00
9dd09a44fc
Message list loading performance improvement
- by disabling UI updates (which are not necessary as it freezes
  anyway), the message list loading is faster
2016-10-22 01:47:29 +02:00
47e2df86b9
Freezing message parser fix #2
- this has been tested on Windows as well, and has been cleaned up.
  There is now a permanent parser thread, and it restarts when the
  parsing takes more than 1 second
- Fixes #900
2016-10-22 01:45:32 +02:00
8f194296e7
Long message parsing fix
- while 448ceaa74c fixed slow rendering on
  windows, there was still a bug where overly long messages caused
  freezeing of the hyperlink regexp parser, which appears to happen on
  all platforms. Maybe it's a freeze, maybe it just takes too long. This
  patch aborts the regexp parser after 1 second and simply displays the
  message without hyperlinks being clickable. This doesn't affect HTML
  mode because there the links are kept as they are
- Fixes #900
2016-10-21 15:54:02 +02:00
2067040ff1
MessageView localisation fix 2016-10-20 20:38:21 +02:00
448ceaa74c
Line wrap performance workaround
- some messages (e.g. some long messages on Windows, or binary data)
  cause an excessive amount of time in rendering the body. This
  change is base on a workaround I found at
  http://www.qtcentre.org/threads/8188-bug-setLineWrapMode
2016-10-20 20:26:53 +02:00
96212693b2
Message does not need plurals 2016-10-20 16:54:25 +02:00
3a1d581c9e
Multiple UI status updates
- most status messages are transient, so they are now only displayed for
  10 seconds
- when trying to quit while disconnected or not fully synced, a
  three-choice message box now appears: Yes for waiting, No for
  closing anyway, and Cancel for aborting the shutdown procedure
2016-10-20 16:06:46 +02:00
e1dd29bfd1
Copyright UTF8 character fix
- this copyright character has been plaguing pylupdate4 parser and
  multiple unsuccessful attempts have been made and then reverted.
  Replaced with a HTML entity, hopefully this will finally fix it.
2016-10-20 02:50:00 +02:00
4436c5f3d1
More proxy fixes
- proxy connection should be able to handle IPv6 correctly
- UI status bar notification typo fix
2016-10-20 02:49:07 +02:00
ab79ee2a04
Proxy error handling
- UI will now display notifications in the status bar if the connection
  to the proxy itself is broken. This should give better feedback to
  people who are unfamiliar with tor and misconfigured it
- The proxy error handling in the background was slightly improved as
  well
2016-10-20 01:49:40 +02:00
Marius Ghita
7aecb4aad1 Hide connection notifications configuration option
New option on the User Interface settings tab, to hide connection
notification messages.
2016-10-11 19:14:06 +02:00
9590f83820
Typo
- see
  e6ce73f4bd (commitcomment-19344095)
2016-10-08 10:01:34 +02:00
679e554c7d
Translation source update 2016-10-05 20:50:07 +02:00
1b03b535cf
Translation source fix 2016-10-05 20:49:32 +02:00
73ec6a9174
Translation source fix 2016-10-05 20:30:05 +02:00
739d46004c
Translation source fix 2016-10-05 20:29:42 +02:00
e6ce73f4bd
Multiple PoW updates
- fixes "fast python" (multiprocessing) PoW
- python PoW (both slow and fast) interruptible on *NIX
- signal handler should handle multiple processes and threads correctly
(only tested on Linux)
- popul window asking whether to interrupt PoW when quitting QT GUI
- PoW status in "sent" folder fixes and now also displays broadcast
status which didn't exist before
- Fixes #894
2016-10-05 20:06:47 +02:00
029b0525de
Fix invalid variables 2016-08-31 16:33:25 +08:00
cc90747da1
Improve namecoin init error handling
- partially addresses #896
2016-08-31 16:24:28 +08:00
59dba6a7c7
Namecoin error logging changes
- namecoin connection errors have now severity "info" instead of
  "error", because it just confuses peopel who don't have namecoin
  configured
- partially addresses #893
2016-08-29 12:13:08 +08:00
61a08299b8
Less confusing message when logger config missing
- if the logger config is missing, don't print unnecessary stack trace
- partially addresses #893
2016-08-29 11:56:21 +08:00
2616a9d4c1
Fix PyGI warnings
- Partially addresses #893
2016-08-27 21:47:40 +08:00
d1a90085b7
Version bump for 0.6.1 2016-08-21 11:56:25 +02:00
35eca9c05d
Translation update
- added Polish
- regenerated binaries
2016-08-21 08:06:22 +02:00
9aa253f73e
Update translations
- refresh english source
- update others from transifex
2016-08-21 07:59:06 +02:00
8df8d15cba
Keep known nodes for 28 instead of 2 days 2016-08-21 07:28:33 +02:00
c58c1969e5
Increase width of TTL slider
- horizontal slider was too narrow and unusable on the latest Fedora.
  Increased size and tested at 800x600 to make sure it's not too wide
  now.
2016-08-21 07:23:46 +02:00
67c3d7bbca
Add "Mark all messages unread" context menu item
- account context menu how has a "Mark all messages unread" item
- folders now have a context menu as well and it has this item too
2016-08-20 22:38:36 +02:00
ca031dc421
More namecoin fixes
- namecoin lookup now also includes name of the record in the recipient
  field
- namecoin lookups now support multiple semicolon-separated
  recipients like the other recipient-related functions. If there are
  multiple recipients, namecoin lookup will look up the last entry on
  the line, for example if you have "a; b; c" in the recipient line,
  it will lookup "c"
2016-08-17 22:02:41 +02:00
29abf0fa08
Namecoin fixes
- Namecoin support was broken, an anonymous contributor sent a patch,
  and I made another fix for keepalive connections.
2016-08-17 17:26:00 +02:00
4117195b61
Don't freeze when out of known nodes
- bitmessage could end up having no known nodes and then it would
  freeze. Now it shouldn't freeze, however it can still end up without
  known nodes until a restart in some cases (e.g. when suspending the
  computer for more then 3 days while BM is running)
2016-08-14 15:03:18 +02:00
306a2495e0
Recipient label UTF-8 fix
If recipient label had UTF-8 characters, clicking Send would trigger a
decoding error and woudln't send.
2016-08-14 12:56:28 +02:00
60c447f56b
Merge commit 'd3a0404274e5105b9d6279901246af8f7009eb6d' into v0.6
- "env python2.7.x" was causing problems
2016-08-14 12:44:18 +02:00
45630b779b
Merge commit 'afa715cf1b113f970ab9b698e4acad33178836ef' into v0.6
- change default time and date format (when running BM for the first
  time)
2016-08-14 12:37:20 +02:00
de2fb17959
Keep system language when changing settings
- when language was set to "system settings" and you changed any setting
  while BM was running, it switched the language to English.
2016-08-14 12:01:00 +02:00
233a30f114
SMTPd bugfix
- missing import prevented the SMTP server from working
2016-07-22 08:10:56 +02:00
36a04fd7d9
Add SMTP server
- you can now use SMTP to send messages
- uses bmaddr.lan domain
- runs on 127.0.0.8425 if you set "smtpd" to True
- mandatory authentication with smtpdusername and smtpdpassword
2016-07-19 13:57:54 +02:00
ng0
d3a0404274 Fix python shebangs from #!/usr/bin/env python2.7*' to #!/usr/bin/python2.7'.
* src/bitmessagecli.py: fix it.
* src/bitmessagemain.py: same.

This fixes #887.
2016-07-16 15:42:19 +00:00
8e066eaa97
Add SMTP delivery labels
- SMTP delivery now has from and to labels for local addresses
2016-07-09 09:58:01 +02:00
b8a08a0ce9
Fix python PoW
- recent changes cause the pool workers to trigger shutdown and freeze.
  Now python PoW works again
2016-06-30 23:03:39 +02:00
685ff6cecd
Startup fixes
- correctly test for "smtpdeliver" variable without crashing
- new method for safely getting values from config even if the option
  may be missing
2016-06-30 15:19:58 +02:00
d3e8771aed
Lock file fixes
- daemon mode lock file didn't work correctly in the last commit
2016-06-30 13:07:28 +02:00
4865659d72
Main process fixes
- handles old dialog versions better if using curses
- can spawn SMTP delivery thread if configured (only when in daemon
  mode)
- daemonized mode now works more like it's properly supposed to on unix
  (double fork etc). You may have to adjust your init scripts, when
  when using upstart for example you should now use "expect daemon"
- daemon mode now cleanly shuts down when TERM/INT signal is received
2016-06-30 12:30:05 +02:00
e5c9e6d383
Curses fixes
- curses interface should now work with older versions of dialog
- Fixes #711
2016-06-30 12:28:17 +02:00
3d9c036129
SMTP delivery thread
- thread can deliver incoming messages over SMTP
- this commit just contains the thread, subsequent commits will enable
  it
2016-06-30 12:27:36 +02:00
6895da7f65
Quit immediately if disk full
- PyBitmessage only used to quit on disk full when running in daemon
  mode. When this happened with the QT-GUI, it would end up in a
  half-frozen status instead. Quitting is a safer choice

Fixes #572
2016-06-29 22:08:34 +02:00
e649adbe37
Framework for extended message encoding
- helper classes for encoding/decoding messages
- includes both old as well as new extended one (msgpack+zlib)
- the classes are unused yet and are supposed to be for experimenting
2016-06-24 22:45:56 +02:00
6add48e036
UPnP fix
- it looks like some UPnP server implementations consider NewRemoteHost
  to be a mandatory tag
2016-06-22 22:54:06 +02:00
0689525d61
UPnP fixes
- detects WANPPPConnection vs WANIPConnection
2016-06-21 10:11:15 +02:00
efa12c3ac6
Do not connect on shutdown
- in some cases, such as when using trustedpeer, outgoingSynSender
  threads would wake up and try to connect. This fixes it.
2016-06-18 20:35:16 +02:00
Louis-Guillaume DUBOIS
afa715cf1b
Fixes #867 - Changes default time format to %c 2016-06-18 14:19:23 +02:00
cec2233043
Fix about dialog
- Last commit broke the about dialog, this fixes it again.
2016-06-17 19:58:16 +02:00
d9ca8d1e5e
Fix UTF8 character in translation source
- "About" dialog did not correctly interpret source UTF-8 characters
2016-06-16 14:06:36 +02:00
ca297cafed
Delete old nodes
- cleanup will delete nodes that are older than 3 days
2016-06-15 18:45:23 +02:00
65211703c0
Try UTF-8 locale encoding
- setlocale didn't always try UTF-8, and on systems that only had UTF-8
  encoding of the selected locale, this would fail to change locale

Fixes #872
2016-06-14 21:57:40 +02:00
0dd54e606d
Multiple connections on hidden service fix
- there was a bug which prevented multiple parallel connections on
  hidden service
2016-06-10 18:01:46 +02:00
b0446f412a
Prevent leaking of tor relay IP
- when running a hidden service, the IP of the tor relay was a part of
  the verack message. In setups where it's not 127.0.0.1 it may leak
  info about network topology
- thanks for an anonymous bug report
2016-06-10 13:21:31 +02:00
fbed1eff31
Socks error handling
- Socks errors are now handled in a smoother manner
2016-06-10 12:43:37 +02:00
f242d409fd
Tor hidden service fixes
- will send the correct combination of hostname and port
- if proxyhostname is a hostname and an IP address, it will now allow
  multiple parallel connections for hidden service
2016-06-10 10:44:42 +02:00
1a40c29d22
Add Tor hidden service support
- PyBitmessage can now run as a hidden service on Tor
- three new variables in keys.dat: onionhostname, onionport, onionbindip
- you need to manually add a hidden service to tor
2016-06-07 21:59:48 +02:00
33991f4598
Implement node priority
- prioritise connecting to nodes that were online more recently
- hidden service nodes have a higher priority if using tor
2016-06-07 12:23:47 +02:00
c11dd67e50
Translation update
- Russian, French, Italian, Portuguese and Esperanto updated from
  transifex
2016-06-05 10:13:23 +02:00
9e2389306b
BSD compile fixes
- bitmsghash should now build and run on BSD (thanks for
  FreeBSD/Dragonfly maintainers for assistance)
- if it cannot detect the number of cores, will default to one thread
  (previously it broke)
2016-05-24 09:42:49 +02:00
e353af3195
Locale encoding fixes
On non-Windows, setlocale will try both normalised and preferred
encoding.
2016-05-24 08:44:07 +02:00
6dff105a5b
Unread count and subscriptions
- unread count was optimised (based on profiling)
- unread count is now accurate
- listing subscription messagelists and count fixed
2016-05-23 11:11:44 +02:00
b194e4ca20
Bump version to 0.6.0 2016-05-02 21:51:46 +02:00
75eef9ef2f
Fix merge conflicts
Missed this difference in the last commit
2016-05-02 17:33:18 +02:00
aabf600c38
Fix incorrectly resolved merge conflicts
Two file merge conflicts, __init__.py and upnp.py, were not resolved
correctly by the automatic resolving (probably because the affected code
was written by other people and I merged them into mailchuck fork). This
changes it to the same code that is in the mailchuck fork)
2016-05-02 17:10:45 +02:00
eebf264552
Translations update 2016-05-02 16:07:58 +02:00
10a3d2d28a Add uPnP translation source 2016-05-02 15:00:26 +02:00
mailchuck
b724d3ee4f Copyright year updates 2016-05-02 15:00:26 +02:00
mailchuck
444edbd6a3 Subscription folder loading fix 2016-05-02 15:00:26 +02:00
02a593fc7f Translation source update 2016-05-02 15:00:26 +02:00
mailchuck
3f1f3e9b3b Remove default debugging
Only log errors. Can be overriden by a config file.
2016-05-02 15:00:26 +02:00
mailchuck
9edde110a2 Translation update
Some function calls were not being identified as text that should be
translated.
2016-05-02 15:00:26 +02:00
mailchuck
9193c2070e Labels when replying
If present, a label will be included in the reply line edit.
2016-05-02 15:00:26 +02:00
fabfc91e8f Translation source update 2016-05-02 15:00:26 +02:00
mailchuck
4013bd31fd Time & date Windows encoding
On Windows, the encoding was always the default windows encoding and
didn't change when you use a language in BM that required a different
encoding. This affected mainly date & time in the received column and
the startup info on the network status tab.
2016-05-02 15:00:26 +02:00
mailchuck
88678eab3a Sent table header
Inbox/Sent table header for the last column now adjust (previously, both
were "Received", now the latter is "Sent).
2016-05-02 15:00:26 +02:00
mailchuck
5afdc052ff Retranslate fix
Update identities tree context menu on language change.
2016-05-02 15:00:26 +02:00
mailchuck
58481afda2 Completer unicode fixes 2016-05-02 15:00:26 +02:00
mailchuck
46edb72b4f Send from addressbook label
When choosing an item from addressbook to send to, put both label and
address into the lineEditTo widget.
2016-05-02 15:00:26 +02:00
mailchuck
98313d594f Sender autocompletion
Sender autocompletion now works, and is based on the l labels in the
addressbook (i.e. all addressbook entries, all subscriptions and chans).

Repurposed C code from
https://stackoverflow.com/questions/21773348/how-to-force-qcompleter-to-check-second-word-in-qlineedit
2016-05-02 15:00:26 +02:00
mailchuck
b8667864f5 Addressbook exception fix
The avatar was throwing an exception.
2016-05-02 15:00:26 +02:00
61ae94098d Translations update
English source plurals updated.
2016-05-02 15:00:26 +02:00
mailchuck
94d5eeb16f Unread count fixes 2016-05-02 15:00:26 +02:00
ad6d55cebe Translations update
- TTL hours/days now has correct plurals/paucals
- TTL description updates better when changing language (was "X days")
- language sources updated
2016-05-02 15:00:26 +02:00
658d52fb4f TTL/Send tab fixes
Now stretches correctly and does not unnecessarily shorten the text.
2016-05-02 15:00:26 +02:00
mailchuck
ddb48cad86 Typo 2016-05-02 15:00:26 +02:00
mailchuck
83cc25fef5 Typo 2016-05-02 15:00:26 +02:00
e8b1e1adcf Localisation update
The plural/paucal form support was not compatible with pylupdate4, it
didn't correctly parse the 3-argument calls to translate.

This fixes it, and updates the sources accordingly.
2016-05-02 15:00:26 +02:00
mailchuck
360d41792c Tab labels
Network status and Blacklist labels fix.
2016-05-02 15:00:26 +02:00
mailchuck
cb1c8157fe Objects to be synced timer
Now updates together with bandwidth every 2 seconds.
2016-05-02 15:00:26 +02:00
mailchuck
b7fefb3c40 Windows locale fix
Python locales (e.g. for time and date) didn't work on Windows.
2016-05-02 15:00:26 +02:00
3be851297c Translation updates
- regenerated sources
2016-05-02 15:00:26 +02:00
92e3e62640 Locale fix
Date formatting sometimes didn't use the correct locale encoding
2016-05-02 15:00:26 +02:00
mailchuck
c29f266020 Translation fixes
- locale name is properly normalised rather than simply changing the
string
- translations now support plurals/paucals
- networkstatus updated
2016-05-02 15:00:26 +02:00
9e10d714aa Translation update
Refresh sources.
2016-05-02 15:00:25 +02:00
38700a1721 Network Status tab translations update
- remembers startup time
- kB instead of KB
- stream table and status texts scale and aren't cut if they translated
text doesn't fit
2016-05-02 15:00:25 +02:00
af098e4805 Locale for non-QT UI strings
Some parts of strings did not use the proper locale. For example, date
and time strings was always output with the US locale. This fixes it.
There are still some cases where localisation is not implemented, and
could be changed from str(string) to locale.str(string).
2016-05-02 15:00:25 +02:00
0507411696 Shutdown fix
The GUI shutdown changes sometimes caused freezes on linux.
2016-05-02 15:00:25 +02:00
mailchuck
3dbb4d5ce9 GUI shutdown improvements
- it shows that it needs to wait for PoW to finish
- it waits a bit for new objects to be distributed
- it displays a better progress indicator in the status bar

Previously, people who don't understand how PyBitmessage works sometimes
shut it down immediately after they wrote a message. This would have
caused the message to be stuck in the queue locally and not sent. Now,
it will indicate that the PoW still needs to work, and it will wait a
bit longer so that the message can spread. It's not a completely correct
approach, because it does not know whether the message was really
retrieved after the "inv" notification was sent.
2016-05-02 15:00:25 +02:00
mailchuck
167da731d0 Make new version notifications less intrusive
Now only in status bar and no more popup window.

Previously, it only showed once until a restart, but now it shows every
time it detects a new version online. Since it does not show a popup
window it's not a big deal.
2016-05-02 15:00:25 +02:00
2f27d43e7e PoW can sometimes be shutdown-able
Python and OpenCL PoW now stop when PyBitmessage shutdowns. C PoW needs
additional support in C so it doesn't work there yet.
2016-05-02 15:00:25 +02:00
5adc4429f0 Translations update
- synced translations from Transifex
- updated source
- added Slovak translation
2016-05-02 15:00:25 +02:00
70e06c33f6 Remove some debugging
Language loading debugging not necessary.
2016-05-02 15:00:25 +02:00
fd4329bee0 Refactor localisation
The language combo box is generated dynamically from the list of
available translations in the translations directory. This allows the
users to add their own translations without having to change the code.
2016-05-02 15:00:25 +02:00
mirrorwish
a7ec4c0555 Some preparations for python 3 2016-05-02 15:00:25 +02:00
be16be2bb4 Translation update
Updated English source strings.
2016-05-02 15:00:25 +02:00
d46fd6f486 Translation fix
Plural form fix
2016-05-02 15:00:25 +02:00
d625659cc6 User agent parser fix 2016-05-02 15:00:25 +02:00
ca11852632 Translation source update
NewSubscriptionDialog missing string updated.
2016-05-02 15:00:25 +02:00
baff42f578 Typo
String typo, also updated translation source.
2016-05-02 15:00:25 +02:00
e9f62efa4b Default compose body "untranslate"
There is no reason to retranslate the default message/broadcast body,
and the default was just confusing HTML with no content.
2016-05-02 15:00:25 +02:00
d25a1302ce Version bump 2016-05-02 15:00:25 +02:00
858e93befd Update build scripts
- PyInstaller script (e.g. for Windows)
- build_osx.sh for OSX
2016-05-02 15:00:25 +02:00
de14730ad9 Translations update
- synced with Transifex
2016-05-02 15:00:25 +02:00
c30433cdaa "All accounts" internationalisation fix 2016-05-02 15:00:25 +02:00
412e175f27 Translation updates
Added a RetranslateMixin. Since PyQT does not support automated language
changes of UI files (like the C++ QT does), this implements something
similar. It assumes that the UI file has the same name as the class, but
lowercase.

Added RetraslateMixin to the new blacklist and networkstatus interfaces.
2016-05-02 15:00:25 +02:00
ecfa18b1c6 Change UI loading for frozen 2016-05-02 15:00:25 +02:00
8b605a874a Translation updates
- add missing files into translation definition
- refresh english strings
- change context for "networkstatus"
2016-05-02 15:00:25 +02:00
0f267c94c7 Translations update
- added Danish translation (thanks @mirrorwish)
- added English translation (to serve as a source for other
  translations)
2016-05-02 15:00:25 +02:00
491579c368 Translations update source files 2016-05-02 15:00:25 +02:00
mirrorwish
554627dd92 Refactor Inventory 2016-05-02 15:00:25 +02:00
mirrorwish
7800272d3a Refactor Blacklist tab 2016-05-02 15:00:25 +02:00
mirrorwish
337cf93b4b Fix byte formatting 2016-05-02 15:00:25 +02:00
24ae23946b Translations config file update 2016-05-02 15:00:25 +02:00
mirrorwish
69aa618890 Combine all translation project files into one 2016-05-02 15:00:24 +02:00
mirrorwish
a23022b2db Refactor Network Status tab 2016-05-02 15:00:24 +02:00
mirrorwish
64fce79321 Refactor status icon 2016-05-02 15:00:24 +02:00
mailchuck
4f56e49a30 Unread count refresh updates 2016-05-02 15:00:24 +02:00
mailchuck
66824c32d1 sqlExecute now returns rowcount
This allows tracking of how many rows were changed, for example for
UPDATE, DELETE, INSERT.
2016-05-02 15:00:24 +02:00
mailchuck
8172fce730 Typos 2016-05-02 15:00:24 +02:00
mailchuck
a63f9054f4 Global Sent fix 2016-05-02 15:00:24 +02:00
mailchuck
0ab0e6757a Restrict pending parallel requests on proxy
This saves some network resources if using Tor, for example.
2016-05-02 15:00:24 +02:00
1b50f3898a UPnP fixes:
- external port iterator fix
- error handler fix
2016-05-02 15:00:24 +02:00
mailchuck
a1b44aab44 UPnP fixes
- UPnP handles errors better
- it tries to bind external interface (previously sometimes it searched
on 127.0.0.1 resulting in no routers being detected)
2016-05-02 15:00:24 +02:00
e03803e4e8 Translations update
Updated translation source files
2016-05-02 15:00:24 +02:00
f8dcb965ea Grammar fix
- Fixes #179
- Thanks to @Erkan-Yilmaz
2016-05-02 15:00:24 +02:00