Commit Graph

1637 Commits

Author SHA1 Message Date
PyBitmessage Translations fe6f446d07 Auto-updated language pl from transifex 2017-03-06 21:44:06 +01:00
PyBitmessage Translations bbf2264862
Auto-updated language eo from transifex 2017-03-06 20:54:39 +01:00
Dmitri Bogomolov ee7e630694
Show a dialog with QR-code for selected bm-address 2017-03-06 18:00:23 +02:00
Dmitri Bogomolov 9836206402
Missed translations: namecoin and welcom message 2017-03-05 23:07:18 +02:00
Peter Šurda bea675f9a6
Remove unnecessary "print" from previous commit 2017-03-02 15:09:01 +01:00
Peter Šurda 53657dba47
Phase 1 of SHA256 support
- new variable "digestalg" which defaults to "sha1", but allows "sha256"
  for those who want to sign using this
- Addresses #953
2017-03-02 15:03:08 +01:00
Peter Šurda 405a06c08a
Indentation 2017-03-02 15:02:51 +01:00
PyBitmessage Translations ab39541ef5
Auto-updated language ru from transifex 2017-03-01 17:06:12 +01:00
Peter Šurda b304872b68
Version bump for 0.6.2 2017-03-01 13:12:31 +01:00
Peter Šurda 15077c9388
More accurate PendingUpload tracking
- works correctly when starting offline
- stops tracking after after 60 seconds but only if at least 1
  successful upload
2017-03-01 10:05:08 +01:00
Peter Šurda 9263f53d86
OpenCL PoW fix
- previous commit created some problems, now it should work
2017-02-28 23:52:27 +01:00
Peter Šurda 8d829b587e
Reset OpenCL when settings change
- previously, changing the OpenCL vendor (or turning it on/off) required
  a restart and this wasn't clear
2017-02-28 22:59:44 +01:00
Peter Šurda 171bc83ec0
HTML parser fix
- URLs followed with space were broken
2017-02-28 22:47:56 +01:00
Peter Šurda eaafb9efa5
Listening port shouldn't be grey 2017-02-28 22:04:34 +01:00
PyBitmessage Translations 2906bff6b4 Auto-updated language de from transifex 2017-02-28 19:25:41 +01:00
PyBitmessage Translations e33c6023b3
Auto-updated language sk from transifex 2017-02-28 19:21:29 +01:00
PyBitmessage Translations a90f35fe6d Auto-updated language pl from transifex 2017-02-28 19:13:31 +01:00
PyBitmessage Translations 97f803ccde
Auto-updated language eo from transifex 2017-02-28 19:12:14 +01:00
PyBitmessage Translations e55407ff4b
Auto-updated language ja from transifex 2017-02-28 19:08:45 +01:00
Dmitri Bogomolov 34084bbc80
Total setup.py cleanup and simple script installation 2017-02-28 15:51:49 +02:00
Peter Šurda e7506b2ac0
Fix tracking of already attempted connections
- it didn't delete the entries correctly, resulting in outgoing syn
  sender deadlocking
2017-02-28 09:43:09 +01:00
Peter Šurda f5b430b567
Excessive random seeding
- outgoing thread was calling a seed reinit before each peer selection.
  This is not necessary, just init when the thread starts
2017-02-28 09:40:28 +01:00
Peter Šurda 42246f83ef
Reset connection list on UPnP
- reset the already attempted connection list after UPnP port mapping is
  established. This allows to resubmit externally reachable port
2017-02-28 01:15:49 +01:00
Peter Šurda 59e1739136
Revert duplicate IP treatment for bootstrap
- bootstrap provider mode shouldn't accept multiple connections from a
  single IP after all, it creates problems
2017-02-28 00:20:34 +01:00
Peter Šurda d0b0d15dc3
Fix potential deadlock
- alreadyAttemptedConnectionsListLock probably deadlocked
- removed locking where unnecessary and rewrote the important part with
  proper locking
2017-02-28 00:12:49 +01:00
Peter Šurda af8957ed72
Typo in the second most recent commit 2017-02-27 23:37:15 +01:00
Peter Šurda d9d2deee25
Typo in last commit 2017-02-27 23:35:48 +01:00
Peter Šurda 339e375958
Bootstrap provider mode and minor knownNodes changes
- if knownNodes grows to 20000, instead of ignoring new nodes, forget
  the 1000 oldest ones
- drop connection after sendaddr if too many connections, even if it's
  an outbound one
- if maximum total connections are lower than maximum outbound
  connections, active bootstrap provider mode
- in this mode, check all addresses received before announcing them
- so basically it only annouces those addresses it successfully
  connected to
2017-02-27 23:31:12 +01:00
Peter Šurda 5d068ec84a
Unnecessary locking
- there was a sleep inside a lock
2017-02-27 23:30:31 +01:00
Peter Šurda 741ac5ca05
UPnP recommendation notification fixes
- notify also if no connections and no change
2017-02-27 16:18:22 +01:00
Peter Šurda ff786725ed
Typo
- UPnP / connectivity recommendation was active when on proxy rather
  than without
2017-02-27 16:12:19 +01:00
Peter Šurda e15d9e3e03
Save UPnP externa port after creating mapping 2017-02-27 15:55:59 +01:00
Peter Šurda cd0972c0f3
Recommend enabling UPnP on network problems
- it looks like there aren't enough listening nodes
- if connection is dropped, notify non-proxy users about the UPnP option
2017-02-27 15:30:19 +01:00
Peter Šurda 124b321b8c
Less verbose error handling
- if socket sending results in EHOSTUNREACH or ETIMEDOUT, don't show
  backtrace
2017-02-27 15:27:46 +01:00
Peter Šurda 484d4abb3c
Frozen mode message type static
- I can't get the dynamic loading to work on OSX in frozen mode
- I think that if someone wants to build a frozen executable with custom
  messagetypes modules, he can edit the file
- so now it lists the existing types manually (for frozen mode only)
2017-02-26 20:50:06 +01:00
Peter Šurda 511b89ebbe
PoW Worker should wait for sql thread to init
- I think this was causing freezing queue on launch if not empty
- I can't reproduce the bug anymore
2017-02-26 20:44:56 +01:00
Peter Šurda d8301ff512
Less verbose connection error reporting
- don't print tracebacks on normal (timeout/reset) errors
2017-02-26 20:29:07 +01:00
Peter Šurda cff1af1b4f
Subscription wrong tab
- when subscribing from addressbook, it switched to blacklist tab
  instead of subscriptions
2017-02-26 20:03:47 +01:00
Peter Šurda 88658b074e
Socks proxy hostname resolving error handling
- if resolving fails, it wasn't handled
2017-02-26 20:03:14 +01:00
Peter Šurda 7ebe837eb0
Make some network parameters configurable
- maxtotalconnections = maximum number of total full connections
  (incoming + outgoing) the node will allow. Default 200 as it was.
- maxbootstrapconnections = number of additional (to total) connection
  that will act in bootstrap mode, closing after sending the list of
  addresses. Default 20 as it was.
- maxaddrperstreamsend = initial address list maximum size, per
  participating stream. Default 500. Child streams get half. The
  response is chunked into pieces of max. 1000 addresses as that's the
  protocol limit.
2017-02-26 17:46:02 +01:00
Peter Šurda 0fa0599cd4
IPv4 listen socket fix
- on OpenBSD, you can't have a socket that supports both IPv4 and IPv6.
  This allows handling for this error, and then it will try IPv4 only,
  just like for other similar errors.
2017-02-26 12:55:43 +01:00
Peter Šurda 191650f5a4
Typos
- previous commit contained typos
2017-02-26 12:52:28 +01:00
Peter Šurda b1b0c46555
Improve exception handling
- there were reports of errors in FreeBSD (I could only reproduce some)
  and Gentoo without IPv4 support (I don't have a VM for testing ready)
- adds an exception handler for double task_done in case sender thread
  has to close prematurely (I saw this triggered on FreeBSD 11)
- listening socket opening error handler was broken (triggered if you
  can't open a socket with both IPv4 and IPv6 support)
- error handler for socket.accept. Reported on FreeBSD 10.3
- fixes #854
2017-02-26 12:42:18 +01:00
Peter Šurda 74c85b4a9e
Retransmit timing changes
- makes it behave more like in the description
- partial for #847
2017-02-25 23:40:37 +01:00
Peter Šurda 7ef91bd607
Changed Makefile to use CXX instead of g++
- is more standardised
- closes #882
2017-02-25 22:33:31 +01:00
Justin Ramos b50198afb5
changes needed to get current code to run 2017-02-25 00:06:04 -06:00
PyBitmessage Translations 93c881172e
Auto-updated language ja from transifex 2017-02-23 15:11:17 +01:00
PyBitmessage Translations 30952f91cf
Auto-updated language ru from transifex 2017-02-22 17:11:30 +01:00
Peter Šurda a6dbb1e37e
Less timestamp penalty for inbound connections
- was over 2 days, but PyBM will only spread those with more recent than
  3 hours. So it's now set to 2 hours
2017-02-22 16:18:08 +01:00
Peter Šurda d7076626c2
TTL label is in red and warning when too low
- TTL to chans shouldn't be too low so the UI gives a feedback
- warning when sending wouldn either require a lot of refactoring or
  wouldn't have good usability
2017-02-22 16:07:39 +01:00
Peter Šurda e9899743ef
Typos, formatting, obsolete imports 2017-02-22 15:09:36 +01:00
PyBitmessage Translations 71ca2a761b
Auto-updated language pl from transifex 2017-02-22 12:53:17 +01:00
PyBitmessage Translations fa1fc2a031
Auto-updated language eo from transifex 2017-02-22 12:36:09 +01:00
Peter Šurda af1bed9034
MessageView Unicode HTML fix
- the HTML on/off click label should be unicode rather than str
2017-02-22 12:30:14 +01:00
Peter Šurda 57a3c35299
Context menu on messages to deleted accounts
- messages from deleted chans still stay in global inbox
- this crated problems with account detection
- created NoAccount class for such accounts
2017-02-22 12:15:52 +01:00
PyBitmessage Translations 72ed3e340f
Auto-updated language sk from transifex 2017-02-22 11:29:18 +01:00
PyBitmessage Translations bda5b02118
Auto-updated language de from transifex 2017-02-22 11:27:17 +01:00
PyBitmessage Translations 56384a353a
Auto-updated language ja from transifex 2017-02-22 11:18:16 +01:00
Peter Šurda 6062277d60
Rename configparser.py to bmconfigparser.py
- it was causing problems with py2app because the source of python's own
  CongigParser is also configparser.py
2017-02-22 09:34:54 +01:00
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 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