Commit Graph

2121 Commits

Author SHA1 Message Date
Peter Šurda 266d8eba1f
SafeHTMLParser unicode / subprocess
- don't do subprocess in SafeHTMLParser, it doesn't work in frozen mode
  and an attempt to fix it would take too much refactoring and I'm not
  even sure it would work
- instead, make it handle broken unicode correctly
- I think the previous reports of freezes were caused by trying to
  interpret data as unicode, causing a crash
- it does about 1MB/s on my machine, so a timeout is not a big problem
2017-02-22 09:05:05 +01:00
Justin Ramos fd95f8f519
allowing for max outbound connection configuration
Signed-off-by: Justin Ramos <justin.ramos@gmail.com>
2017-02-21 16:28:54 -06:00
Peter Šurda c8429365e3
Typo
- typo in last commit
2017-02-21 10:25:59 +01:00
Peter Šurda fef6126a74
Error handling improvement in sendDataThread
- don't uncecessarily report EPIPE as a big error, just close the
  connection
2017-02-21 09:58:28 +01:00
Peter Šurda ea9f10a8bb
Simplify and fix list of addresses to send
- it didn't always send the maximum possible amount
- it probably was slow
2017-02-20 22:32:49 +01:00
Peter Šurda 579ba49f38
Deamon mode without PyQt4
- daemon mode shouldn't require PyQt4
2017-02-20 20:53:50 +01:00
Peter Šurda 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
Peter Šurda 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
Peter Šurda 249a513630
Pyinstaller warning
- remove unnecessary includes
2017-02-19 21:53:32 +01:00
Peter Šurda 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
Peter Šurda 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
Peter Šurda a95f4aa255
LibreSSL compatibility
- code distinguishes between OpenSSL 1.1.x and LibreSSL and works with
  both
2017-02-18 17:22:17 +01:00
Peter Šurda 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
Peter Šurda 6c907e2046
Windows socket typo 2017-02-17 21:14:39 +01:00
Peter Šurda f499a3b1d8
Typo 2017-02-14 13:57:20 +01:00
Peter Šurda f94b2d2d4b
Windows compatibility fixes
- there is no errno.WSAEAGAIN, only errno.WSAEWOULDBLOCK
2017-02-14 01:38:58 +01:00
Peter Šurda 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
Peter Šurda 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
Peter Šurda d8ae44f9ee
Obsolete imports, missing exception type 2017-02-09 21:04:07 +01:00
Peter Šurda 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
Peter Šurda e664746f04
More knownNodes init
- also init children if they are missing
2017-02-08 20:52:18 +01:00
Peter Šurda b0539f5cb4
SSL handshake fewer errors
- don't unnecessarily raise exceptions if SSL handshake fails
2017-02-08 20:49:14 +01:00
Peter Šurda 35a712d11d
KnownNodes missing init
- init knownnodes when connecting to a stream
2017-02-08 20:48:22 +01:00
Peter Šurda 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
Peter Šurda 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
Peter Šurda 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
Peter Šurda 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
Peter Šurda 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
Peter Šurda 2c72b337c1
Typos and formatting 2017-02-07 20:09:11 +01:00
Peter Šurda 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
Peter Šurda 8515f9a9fc
Set SSL socket to blocking
- otherwise the error handling gets too complicated
2017-02-07 16:42:02 +01:00
Peter Šurda 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
Peter Šurda 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
Peter Šurda 15c620dcc2
SSL socket blocking error handling 2017-02-07 13:00:24 +01:00
Peter Šurda 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
Peter Šurda 61770ba89a
Typo 2017-02-06 19:34:38 +01:00
Peter Šurda 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
Peter Šurda 79b566a907
Fix bitflags in version packet 2017-02-06 17:39:42 +01:00
Peter Šurda e434825bb2
Pending download counter fix
- handles expired objects better
- counts objects that failed download more accurately
2017-02-06 11:02:03 +01:00
Peter Šurda 23fcf2cdec
SSL handshake python version compatibility
- error handling should now work with < 2.7.9
2017-02-03 10:05:35 +01:00
Peter Šurda c979481564
Unhandled missing peer 2017-02-03 09:43:47 +01:00
Peter Šurda 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
Peter Šurda 4f70eaa01f
Fix curses mode 2017-02-02 15:48:56 +01:00
Peter Šurda f3849eeb48
Unused imports, problematic variable names 2017-01-19 20:04:45 +01:00
Peter Šurda 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
Peter Šurda 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
Peter Šurda 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
Peter Šurda 5708a38be0
Fix sending messages crashing 2017-01-17 01:07:39 +01:00
Peter Šurda 9197c425d2
Object requesting fix 2017-01-17 00:32:05 +01:00
Peter Šurda 9ed59dd825
Shutdown procedure cleanup 2017-01-16 23:38:18 +01:00