Commit Graph

2346 Commits

Author SHA1 Message Date
f97ada87
be0e724b23
implement stealth ack objects 2017-09-30 19:45:40 +10:00
f97ada87
08748fa9ae
move config read inside main function 2017-09-27 00:36:43 +10:00
f97ada87
dbd12ab8b4
fix truncation of received ackdata in objectProcessor 2017-09-25 20:14:03 +10:00
PyBitmessage Translations
1798c90622
Auto-updated language ja from transifex 2017-09-25 11:10:16 +02:00
9923d288e0
Dandelion fixes
- in route selector, some connections may not have the services
attribute (yet)
- Addresses #1049
2017-09-25 09:17:15 +02:00
d574b167d8
Dandelion updates & fixes
- Addresses #1049
- Add dandelion routes for locally generated objects
- Minor bugfixes
- Send dinv commands on stem objects (instead of always sending inv
command)
2017-09-25 08:49:21 +02:00
6ce86b1d0a
Dandelion++ implementation
- untested, some functionality may be missing, don't turn on
- also, it randomises upload of requested objects
- affects #1049
2017-09-25 01:17:04 +02:00
PyBitmessage Translations
8495836428
Auto-updated language ru from transifex 2017-09-24 11:49:32 +02:00
f97ada87
c89d86a779
use getopt parser for command-line arguments 2017-09-24 07:42:37 +10:00
aaa5e9d309
Windows daemon mode workaround 2017-09-23 18:25:41 +02:00
f97ada87
cfa84cf81a
change default log output from stdout to stderr 2017-09-24 01:50:49 +10:00
PyBitmessage Translations
a8ab574c3e
Auto-updated language pl from transifex 2017-09-21 21:06:53 +02:00
PyBitmessage Translations
680cc2cafc
Auto-updated language de from transifex 2017-09-21 19:16:40 +02:00
PyBitmessage Translations
df21f53271
Auto-updated language eo from transifex 2017-09-21 19:08:10 +02:00
1881bcea68
Don't connect on first start until approved 2017-09-21 18:18:42 +02:00
0150a35dd4
Change main thread name to PyBitmessage 2017-09-21 17:51:34 +02:00
4f75dcb9be
Merge pull request '1047' into v0.6
- notifications moved into plugins
- improvements in setup.py
- remove obsolete imports
2017-09-21 13:30:53 +02:00
2504bc6670
Fixed fetch of connected hosts number in bitmessageqt.support 2017-09-21 13:59:43 +03:00
53c3eeb8f7
Sound plugins using pycanberra and gst-python 2017-09-20 10:21:27 +03:00
1f47a4060e
Added "Set notification sound..." context menu on addressbook entry. 2017-09-20 10:21:27 +03:00
b77eb0c7e5
Namespace 'bitmessage' for plugins entry points 2017-09-20 10:21:27 +03:00
c8a47b988f
Moved "Ubuntu" MessagingMenu code into indicator_libmessaging plugin 2017-09-20 10:21:27 +03:00
cd81718871
Moved sound category constants to the separate module sound
for importing from the sound theme plugins.
2017-09-20 10:21:27 +03:00
289a6c5bfa
Added support for sound notification plugins which use
the desktop sound theme, with pycanberra for example. Plugin name should
start with 'theme' in that case, whereas the name of plugins playing the
sound file starts with 'file'.
2017-09-20 10:21:27 +03:00
84a903f116
Redirected output of the player programs to /dev/null 2017-09-20 10:21:27 +03:00
91eb75b140
gst-play-1.0 is another player program which bundled with gstreamer 1.0 2017-09-20 10:21:27 +03:00
be716bf228
Improved and documented plugin module 2017-09-20 10:21:27 +03:00
ef8f40ccc4
Moved notifications to plugins (including sound) 2017-09-20 10:21:27 +03:00
PyBitmessage Translations
022e0ce593
Auto-updated language ja from transifex 2017-08-26 04:35:44 +02:00
PyBitmessage Translations
a8e5ea18a6
Auto-updated language eo from transifex 2017-08-24 21:30:54 +02:00
7e35ea6bdf
Email gateway autoregistration fixes
- don't treat "@" in label as an email address
- ask for confirmation before autoregistering. It confused some
newbies into thinking that bitmessage requires payment
2017-08-24 14:16:37 +02:00
660997b8f4
Code Quality 2017-08-22 13:49:27 +02:00
18119339f8
Add shutdown to CLI 2017-08-22 13:23:03 +02:00
b7f808cde1
Add shutdown command to API
- calling "shutdown" now cleanly shuts down PyBitmessage, however the
call may not return so you need to add an error handler to the call.
With python for example, wrap the "shutdown()" in
"try:/except socket.error"
2017-08-21 10:39:03 +02:00
b886f935d4
Daemon Windows fix
- closing the filehandle isn't the correct approach, it causes more
bugs. Use os.devnull instead
2017-08-20 12:05:53 +02:00
314af0925f
Daemonize fix for Windows
- /dev/null isn't available on Windows so just close the console
sockets directly
2017-08-20 11:55:54 +02:00
2da4d00730
Support message C PoW fix 2017-08-15 18:14:36 +02:00
8b3d7ea278
C PoW init fix 2017-08-15 14:09:19 +02:00
623553393b
PID file truncate fix
- on unix it truncated the file if a second instance was being
launched
2017-08-15 12:25:38 +02:00
a48dff3bee
PoW init reordering
- inited by the worker thread on its own init, instead of when the
imports are being evaluated
- also got rid of windows-style newlines in OpenCL PoW
2017-08-15 12:24:43 +02:00
58b47bc6de
Forking fixes 2017-08-15 12:22:24 +02:00
PyBitmessage Translations
3c50615998
Auto-updated language zh_cn from transifex 2017-08-13 16:54:52 +02:00
PyBitmessage Translations
4d0a40fd2a
Auto-updated language sk from transifex 2017-08-11 09:46:06 +02:00
PyBitmessage Translations
85e4e5438c
Auto-updated language de from transifex 2017-08-11 09:38:00 +02:00
e7231f3aea
Fix multiple TCP bind address handling 2017-08-09 23:30:22 +02:00
6c695c8ac7
Remove non-asyncore network code (partial) 2017-08-09 17:36:52 +02:00
0b07b1c89a
Peer discovery updates
- allow loopback addresses, now you can bind different loopback IP
addresses on a single system and they will auto-cross-connect
- always listen for discovery on 0.0.0.0
- [network] - bind now also applies for the TCP socket as well as UDP
socket
- closing socket iterator fix
2017-08-09 17:34:47 +02:00
e071efac1a
Typo 2017-08-09 17:29:48 +02:00
cc955cd69d
Try new ports of binding fails
- API and BM protocol will try random ports for binding if those
configured are occupied
2017-08-09 17:29:23 +02:00
0324958e92
Peer discovery fixes
- incoming packets weren't correctly processed
2017-08-06 23:05:54 +02:00
d9e4f2ceb8
Typo in previous commit 2017-08-06 21:38:23 +02:00
f338c00f8e
Change peer discovery tracking from queue to a dict
- with a queue, a situation could occur when new entries are appended
but nothing is polling the queue
2017-08-06 21:29:54 +02:00
4564d37f5b
Typo in previous commits 2017-08-06 21:26:25 +02:00
38872159fb
Typo in previous commit 2017-08-06 20:40:35 +02:00
5895dc2f1f
Asyncore Windows error handling
- windows behaves somewhat differently when using select
2017-08-06 20:39:14 +02:00
578c5dd495
Fix windows PID file 2017-08-06 18:29:08 +02:00
5108d08ac9
Windows asyncore error handler fix
- WSAEWOULDBLOCK is now checked on connect and accept
2017-08-06 18:18:21 +02:00
8f14fb05a1
UDP socket setsockopt fix 2017-08-05 10:14:15 +02:00
7a4551e1e7
Fix signal handler in daemon mode
- signal handler requires the main thread to run
2017-07-30 09:36:20 +02:00
3e6de7a9ad
Flush PID file on unix as well 2017-07-28 19:21:56 +02:00
e7382b7714
Write PID into the lock file 2017-07-28 09:39:49 +02:00
501f07dd34
Setsid is not available on Windows
- wrap an error handler around it
2017-07-28 09:19:53 +02:00
20cbac9752
Fix daemonize for Windows
Fixes #1034
2017-07-28 08:54:34 +02:00
a29f7534ee
Add EINTR handler for select and poll pollers 2017-07-21 09:06:02 +02:00
2530c62050
epoll throws IOError rather than select.error 2017-07-21 07:49:34 +02:00
aa059d6f2f
Handle TLS errors in receivequeuethread
- well at least EBADF, it seems to happen sometimes
2017-07-21 07:47:18 +02:00
4f19c37fdc
Parser fix for multi-level arrays 2017-07-11 10:29:29 +02:00
dcc181bf75
Asyncore processing thread synchronisation
- threre was a synchronisation problem where one thread could process
more data than another thread was expecting, leading to the thread
crashing
2017-07-10 23:18:58 +02:00
f6d5d93bf2
Multiple receive queues fix
- forgot to commit busy handler
2017-07-10 20:52:11 +02:00
db2d78c9b6
Make protocol decoder less recursive
- apparently, recursion has bad performance in Python, so the decoder is
now flat, except when parsing "version" command
2017-07-10 07:15:27 +02:00
853c8561ec
Per connection node id part 2
- forgot to include this in the previous commit
2017-07-10 07:12:52 +02:00
3941b39136
Randomise node id
- in order to detect if it's connected to to itself, PyBitmessage now
uses a per-connection id rather than a global one
2017-07-10 07:10:05 +02:00
bdf61489ae
Allow multiple ReceiveQueue threads
- defaults to 3
2017-07-10 07:08:10 +02:00
f088e0ae21
Change thread names
- not needed to have "Thread" in the name of a thread
2017-07-10 07:05:50 +02:00
4fce01e34a
Less data transferred in invThread and addrThread 2017-07-08 18:02:47 +02:00
2df9598774
Asyncore update: Fix incoming connections
- dereferencing wasn't done correctly for incoming connections
2017-07-08 07:33:29 +02:00
2d7d9c2f92
Asyncore update
- request downloads in bigger chunks
- don't put whole objects into the receiveDataQueue
2017-07-08 06:54:25 +02:00
0f3a69adf4
Asyncore update: remove references to deleted files 2017-07-08 06:53:20 +02:00
5ae1b6d865
Asyncore update: remove obsolete files 2017-07-08 06:52:17 +02:00
PyBitmessage Translations
1aa45d6eac
Auto-updated language eo from transifex 2017-07-07 16:32:25 +02:00
PyBitmessage Translations
6eb9e93575
Auto-updated language ja from transifex 2017-07-07 16:31:14 +02:00
PyBitmessage Translations
4f969088cf
Auto-updated language pl from transifex 2017-07-07 07:56:19 +02:00
a98b8690d3
Asyncore fixes
- fix broken loops
- optimise I/O tests
2017-07-07 07:55:29 +02:00
de22e547c5
Remove buggy log message if prctl is missing
- it's not that important that you need to be informed of it, and
importing logging may cause cyclic dependencies/other problems
2017-07-06 20:06:43 +02:00
ba4162d7fe
Asyncore update
- get rid of per-connection writeQueue/receiveQueue, and instead use
strings and locking
- minor code cleanup
- all state handlers now should set expectBytes
- almost all data processing happens in ReceiveDataThread, and
AsyncoreThread is almost only I/O (plus TLS). AsyncoreThread simply
puts the connection object into the queue when it has some data for
processing
- allow poll, epoll and kqueue handlers. kqueue is untested and
unoptimised, poll and epoll seem to work ok (linux)
- stack depth threshold handler  in decode_payload_content, this is
recursive and I think was causing occasional RuntimeErrors. Fixes #964
- longer asyncore loops, as now data is handled in ReceiveDataThread
- randomise node order when deciding what to download. Should prevent
retries being stuck to the same node
- socks cleanup (socks5 works ok, socks4a untested but should work too)
2017-07-06 19:45:36 +02:00
a2b8867c1a
Tooltips for network status columns 2017-07-06 19:36:04 +02:00
4536e44b8c
Thread names propagate to system
- the thread names should now show up in the monitoring tools of
operating systems (tested on linux)
2017-07-06 19:35:40 +02:00
PyBitmessage Translations
00a4558971
Auto-updated language eo from transifex 2017-07-06 04:53:29 +02:00
PyBitmessage Translations
83e60d231a
Auto-updated language pl from transifex 2017-07-06 04:52:26 +02:00
PyBitmessage Translations
1dbf98d7f7
Auto-updated language ja from transifex 2017-07-06 00:06:05 +02:00
PyBitmessage Translations
27f9fb0237
Auto-updated language ru from transifex 2017-07-05 17:09:30 +02:00
fe0664640e
Migrate antiIntersectionDelay to asyncore
- implemented by ignoring getdata during the delay rather than sleeping
as it was in the threaded model
- it can happen that a valid getdata request is received during the
delay. A node should be implemented in a way that retries to download,
that may not be the case with older PyBitmessage versions or other
implementations
2017-07-05 09:27:52 +02:00
fc19e4119a
Download thread updates
- now tracks downloads globally too, so it doesn't request the same
object from multiple peers at the same time
- retries at the earliest every minute
- stops trying to download an object after an hour
- minor fixes in retrying downloading invalid objects
2017-07-05 09:25:49 +02:00
846fced0a2
Remove obsolete inactive code 2017-07-05 09:19:56 +02:00
d086781ce8
AddrQueue fix
- forgot to commit import
2017-07-05 09:19:18 +02:00
a0bbd21efc
Add ratings to peers
- outbound peers now have a rating
- it's also shown in the network status tab
- currently it's between -1 to +1, changes by 0.1 steps and uses a
hyperbolic function 0.05/(1.0 - rating) to convert rating to
probability with which we should connect to that node when randomly
chosen
- it increases when we successfully establish a full outbound connection
to a node, and decreases when we fail to do that
- onion nodes have priority when using SOCKS
2017-07-05 09:17:01 +02:00
9d09f9f3ce
Reduce severity of socks connectivity errors
- Fixes #1024
- Fixes #1019
2017-07-05 09:07:00 +02:00
773d91bbe2
Unknown object log entry less severe
- unnecessarily classified as critical
- fixes #1023
2017-07-05 09:01:40 +02:00
e00a02206b
AddrThread
- this thread is for spreading new/updated addresses in active
connections, analogous to the InvThread
- it doesn't do anything yet, this is just a dummy queue at the moment
2017-07-05 08:57:44 +02:00
27f5de0f9c
Unified random number provider
- not used yet, just an inactive helper function
- I received feedback that OpenSSL.rand isn't more secure than
os.urandom. I read several debates/analyses about it and concur
2017-07-05 08:52:16 +02:00
PyBitmessage Translations
70c5929e92
Auto-updated language ru from transifex 2017-07-04 17:51:58 +02:00
cc3cf77759
New class multiqueue
- to be used for invthread and addthread
- updated invthread for multiqueue
2017-06-27 13:25:12 +02:00
f5a143d0b8
Config validator
- config options can have validators
- limit maxoutboundconnections to max 8
2017-06-27 13:19:12 +02:00
20e01860cf
Network status peer list shouldn't be editable 2017-06-27 13:16:41 +02:00
PyBitmessage Translations
8a3577aed7
Auto-updated language eo from transifex 2017-06-25 19:26:14 +02:00
PyBitmessage Translations
30b65aaefc
Auto-updated language pl from transifex 2017-06-25 19:25:47 +02:00
PyBitmessage Translations
ccfe58c2c0
Auto-updated language ja from transifex 2017-06-25 16:49:31 +02:00
aa203b23ee
Fix typo introduced by code quality patch 2017-06-24 23:09:08 +02:00
189578cba3
Asyncore proxy fixes
- SOCKS5 now seems to work, SOCKS4a untested
2017-06-24 12:23:56 +02:00
916b85c862
Connection pool cleanup
- minor code quality improvement
2017-06-24 12:23:16 +02:00
0dc0b22974
Expired / Stream mismatch / duplicate object error handling
- cleanup of the code
2017-06-24 12:22:41 +02:00
0a79490e2c
Known nodes maximum configurable part 2 2017-06-24 12:21:42 +02:00
d57b0c55ee
Object validator trigger moved
- from bmproto to bmobject
2017-06-24 12:21:06 +02:00
dc5a91f326
Remove stack depth warnings
- I was never able to trigger them
2017-06-24 12:19:19 +02:00
e9edf70d3a
TLS updates
- save TLS version
- minor TLS error handling updates
2017-06-24 12:18:15 +02:00
b9d60f8b41
Max known nodes configurable 2017-06-24 12:17:01 +02:00
26eb54a82e
Network status updates
- now lists each node with its info instead of a per-stream summary
2017-06-24 12:16:12 +02:00
bfbdd7e140
Chan address validator button feedback
- During validation, the button not only turns gray but also changes
label
2017-06-24 12:14:23 +02:00
2685fe29b1
Code quality improvements 2017-06-24 12:13:35 +02:00
243025a1aa
Leave __delitem__ unimplemented in filesystem storage
- rename the cleaning method
2017-06-21 12:17:40 +02:00
618f3865c1
Main thread end
- instead of sleeping, it just ends
2017-06-21 12:16:56 +02:00
0cc8589b27
Asyncore updates
- should prevent the same object being re-requested indefinitely
- locking for object tracking
- move SSL-specific error handling to TLSDispatcher
- observe maximum connection limit when accepting a new connection
- stack depth test (for debugging purposes)
- separate download thread
- connection pool init moved to main thread
2017-06-21 12:16:33 +02:00
76fed78211
Made it possible to use installed umsgpack 2017-06-12 13:54:44 +03:00
a3a55e53c4
UDP Socket dict address fix
- fixes #1008
2017-06-11 14:11:39 +02:00
cba749088a
Asyncore updates
- mainly work on proxy support, but it's still not fully working
- minor bugfixes
2017-06-10 10:13:49 +02:00
7deb7c3d4f
Typo 2017-06-10 10:11:50 +02:00
8d41d5fcf6
default known nodes update 2017-06-10 10:11:21 +02:00
7f06cb7c27
Inventory flush fix in GUI
- Fixes #1011
2017-06-10 10:10:59 +02:00
7e8ee51322
Fallback umsgpack import fix 2017-06-10 10:09:44 +02:00
f366447e94
Fix identicon imports 2017-06-10 10:09:14 +02:00
d34fdbb3f4
Fix network status in api 2017-06-10 10:08:40 +02:00
ae97f7abd8
Typo 2017-06-10 10:07:47 +02:00
009a215224
Fix api connected hosts lists 2017-06-09 10:07:51 +02:00
7bde4e9445
Missing module name in bmproto 2017-06-04 10:25:16 +02:00
e8d9a7f183
Asyncore connect handling
- minor improvements in handling of connect events so that it's not
processed twice
2017-06-03 16:30:05 +02:00
a9c0000c17
Treat some invalid objects as received
- update to 6044df5adf
- objects that are expired or in wrong stream are not re-requested
anymore, even if they aren't stored in the inventory
- the previous option "acceptmismatch" now only affects whether such
objects are stored in the inventory
2017-06-03 16:29:21 +02:00
Scott
f78f1a718b
Change api.py 2017-06-02 18:53:13 -06:00
6044df5adf
Optional storing of expired and off-stream objects
- a new config file option, network/acceptmismatch, allows the inventory
to store objects that expired or are from a stream we're not
interested in. Having this on will prevent re-requesting objects that
other nodes incorrectly advertise. It defaults to false
2017-06-02 15:43:35 +02:00
d75d920a68
Asyncore updates
- clean object tracking dictionaries in the cleaner thread
- clean up close / handle_close
- add locking to tracking dictionaries
2017-06-02 07:09:35 +02:00
4c17a18006
Don't send invs to unestablished connections 2017-05-31 23:34:06 +02:00
18988ae2e6
Asyncore updates
- performance optimisation, reduce number of loops when waiting
for protocol headers / commands
2017-05-31 10:17:36 +02:00
2555f692eb
Network status update part 2
- only update processed items every 2 seconds
2017-05-31 10:16:30 +02:00
e522f015a8
Network status updates
- only update processed numbers once every 2 seconds
- moved inventory lookups to the main inventory so now all
storage modules work with it
2017-05-31 10:15:47 +02:00
d9e3349eeb
Fix own IP detection
- minor bug in the previous commit
2017-05-31 00:22:07 +02:00
f23c169eec
Don't connect to myself
- track local IP+port of incoming connections and don't connect
to them in the future
2017-05-31 00:04:21 +02:00
fa9811f426
Asyncore update
- duplicate checking implemented
- connection pool vs. socket closing cleanup
2017-05-30 23:53:43 +02:00
abaa2c72e5
typo 2017-05-29 15:04:22 +02:00
11d02b1e41
typo 2017-05-29 14:59:42 +02:00
3a543efd83
Typo 2017-05-29 14:54:13 +02:00
7f381c0c25
Asyncore update
- incoming object handling fix
2017-05-29 14:52:31 +02:00
1ccfd41c3f
Asyncore updates
- fix connected to myself check
2017-05-29 14:41:02 +02:00
0aa5dbd958
Asyncore update
- shutdown fix
2017-05-29 14:35:08 +02:00
bdaa939e2c
ENOTSOCK fix 2017-05-29 13:39:26 +02:00
97c44b97f4
Asyncore update
- handle WSAENOTSOCK
2017-05-29 13:14:25 +02:00
a5c1b0c529
Asyncore fixes
- better handling of WSA* checks on non-windows systems
- handle EBADF on Windows/select
- better timeouts / loop lengths in main asyncore loop and
spawning new connections
- remove InvThread prints
2017-05-29 12:56:59 +02:00
74f1a74a8c
Make SO_REUSEPORT optional
- apparently not available on Windows
2017-05-29 11:30:56 +02:00
e7525d47be
Disable memory usage logging
- it looks like it's Unix specific and doesn't work on windows
2017-05-29 11:26:56 +02:00
02a07e5119
Asyncore update
- default to true (original attempt didn't work correctly)
2017-05-29 03:16:14 +02:00
73c41bff9d
typo
-BMConfigParser. instead of BMConfigParser().
2017-05-29 02:30:18 +02:00
65bb6648e7
Asyncore updates
- fix crash in inv thread
- more prints changed into logger
- minor fixes
2017-05-29 00:47:41 +02:00
c85d52b8e8
Asyncore updates
- asyncore is now on by default
- inv announcements implemented
- bandwidth limit implemented / fixed
- stats on download / upload speed now work
- make prints into logger
- limit knownNodes to 20k as it was before
- green light fixed
- other minor fixes
2017-05-29 00:24:07 +02:00
5d4e1e2007
asyncore fixes
- bm headers and commands are only read up to expected length.
On a very fast connection (e.g. local VM), reading verack
also read a part of the TLS handshake
- some debugging info moved from print to logger.debug
- tls handshake cleanup
2017-05-27 22:30:30 +02:00
21f6d38ec2
Asyncore fixes
- TCP fixes
2017-05-27 21:52:56 +02:00
99e714c432
UDP socket bugfixes 2017-05-27 20:43:27 +02:00
fa9ad537a5
Add task_done to asyncore-related queues 2017-05-27 19:39:19 +02:00
f8b4b427fc
Asyncore update
- bugfixes
- UDP socket for local peer discovery
- new function assembleAddr to unify creating address command
- open port checker functionality (inactive)
- sendBigInv is done in a thread separate from the network IO
thread
2017-05-27 19:09:21 +02:00
36b5e2c04f
Inventory storage abstraction
- can have multiple storage types for inventory
- sqlite is the old one, filesystem is a new available
2017-05-27 19:03:27 +02:00
1d87c63504
Traceback on Ctrl-C
- Ctrl-C will print a traceback of all threads instead of
complaining
2017-05-27 19:02:05 +02:00
7b9b7504ad
Don't clean right on startup 2017-05-27 19:01:14 +02:00
d699a28e49
Add variables to errno and socket
- to make sure they work cross platform without having to do
complicated tests
2017-05-27 19:00:19 +02:00
b37a05fd0a
Allow encoding 3 in broadcast API 2017-05-27 07:48:29 +02:00
e309a1edb3
Asyncore update
- separate queue for processing blocking stuff on reception
- rewrote write buffer as a queue
- some addr handling
- number of half open connections correct
2017-05-25 23:04:33 +02:00
51e52401fe
Windows plaform check pythonic
- moved to .startswith instead of 'in'
- thanks @Lvl4sword
2017-05-25 15:00:10 +02:00
9683c879bc
Asyncore update
- Network status UI works but current speed isn't implemented yet
- Track per connection and global transferred bytes
- Add locking to write queue so that other threads can put stuff
there
- send ping on timeout (instead of closing the connection)
- implement open port checker (untested, never triggered yet)
- error handling on IO
2017-05-25 14:59:18 +02:00
edcba9982b
Asyncore getdata processing performance improvement
- no need to query DB for existence of each entry
2017-05-24 21:35:50 +02:00
fa56ab3e6f
Asyncore update
- better error handling
- bug fixes
- remove some debug output
2017-05-24 21:15:36 +02:00
bafdd6a93a
Allow making outbound connections in asyncore 2017-05-24 16:54:33 +02:00
d635e515b9
Big Asyncore update
- most of the stuff is done so it partially works
- disabled pollers other than select (debugging necessary)
- can switch in the settings, section network, option asyncore (defaults
to False)
2017-05-24 16:51:49 +02:00
d498f1c0ae
Configparser update
- add default values for maxdownload/uploadrate, asyncore
- rework error handler slightly
2017-05-24 16:49:16 +02:00
198470f734
Revert parser/renderer max message size
- it's now dealt with during decoding
2017-05-15 12:25:30 +02:00
183f509f09
Decompression limit
- there is now a configurable decompression limit, default at
1MB. Oversize messages are trated as if they never arrived,
just a log entry
2017-05-15 12:23:16 +02:00
9f4a1fa0a4
Config file defaults and address unification
- bmconfigpaser.py now allows to put default values for a specific
option in the file
- addresses as sections are now detected by "BM-" rather than
just ignoring bitmessagesettings. There can now be other sections
with a cleaner config file
2017-05-15 12:18:07 +02:00
660997f8e7
Quick hack for excessively long messages
- only process the first MB of a message for GUI purposes
(parsing/rendering)
2017-05-14 15:40:35 +02:00
fd2603247d
Fix onionbindip for some systems with IPv6
- in some cases when IPv6 stack is available and onionbindip is an IPv4
  address, socket.bind doesn't change the bound address, ending up
  listening on everything
2017-05-10 20:01:23 +02:00
d9d3515905
Node class, WIP
- for new network subsystem
2017-05-07 20:16:49 +02:00
23b9555929
Add TLS version debug info 2017-05-07 20:15:57 +02:00
1c55bf7d4b
Add umsgpack as fallback
- if a "big" msgpack module isn't available, use bundled umsgpack
2017-05-07 20:15:16 +02:00
bf76c7f6ec
Allow extended encoding in API 2017-04-30 10:39:48 +02:00
96d58f3c11
Asyncore update (WIP) 2017-04-16 18:27:15 +02:00
e6f0b34f9b
Fixed some inconvenience on first run mainly in Ubuntu.
- immediately return from initCL() if numpy or pyopencl is unevailable
   (no ImportError because of resetPoW() call)
 - use glob to find C extension even if it named like
   `bitmsghash.x86_64-linux-gnu.so`

If user chooses to show the Settings dialog:

 - activate the "Network Settings" tab
 - remove option 'dontconnect' if settings have been saved
2017-04-05 14:25:02 +03:00
51aeb284ca
Async network IO updates
- WIP
2017-04-04 10:46:01 +02:00
fe93473fc5
getpubkey length handling
- don't try to process getpubkey that is too long
2017-04-04 10:44:53 +02:00
c1bdcc2aba
ACKdata handling changes
- any type of object can now serve as ACKdata
2017-04-04 10:43:29 +02:00
46c9ea9403
Async network updates (WIP)
- cleaner command handling
- separating into header and command handling
- incoming connection handler
- bugfixes and more debug information
2017-03-20 18:32:26 +01:00
913b401dd0
PendingDownloadQueue updates
- track pending hashId more accurately
- add timeout and a cleanup so that the download queues don't
get stuck and memory is freed
- randomise download order (only works for inv commands with
more than 1 entry)
2017-03-20 01:22:37 +01:00
1af49a0165
Download tracking refactoring
- replace PendingDownload singleton dict with a Queue
- total memory and CPU requirements should be reduced
- get rid of somObjectsOfWhichThisRemoteNodeIsAlearedyAware. It has very
little practicle effect and only uses memory
2017-03-19 22:08:00 +01:00
0529fe2313
Known node count updates
- if too many nodes, only delete oldest nodes in bootstrap provider
  mode, in normal mode ignore new nodes as it used to before
- in bootstrap provider mode, penalise nodes announced by others by 1
  day instead of 3 hours
2017-03-11 12:14:40 +01:00
49869d0b56
Networking subsystem updates
- version command struct for faster unpacking
- increase read buffer to 2MB to allow a full command to fit
- initial bitmessage protocol class (WIP)
- error handling
- remove duplicate method
2017-03-11 11:12:08 +01:00
a1d1114cb2
New network subsystem updates
- auto-select select/poll/epoll/kqueue depending on what's available
2017-03-10 23:56:38 +01:00
998935be5f
New network subsystem, WIP
- finished proxy design
- socks4a and socks5 implemented
- authentication not tested
- resolver for both socks4a and socks5
- http client example using the proxy
2017-03-10 23:11:57 +01:00
3ac67e5da7
Connection error reporting changes
- fewer tracebacks
- more standardised reports including errno
2017-03-09 11:26:44 +01:00
PyBitmessage Translations
4014b80b7c
Auto-updated language ja from transifex 2017-03-08 17:25:19 +01:00
PyBitmessage Translations
b28fe3a220
Auto-updated language fr from transifex 2017-03-07 18:38:10 +01:00
PyBitmessage Translations
964809bbd6
Auto-updated language ru from transifex 2017-03-07 10:23:54 +01:00
PyBitmessage Translations
5d545dbcab
Auto-updated language sk from transifex 2017-03-06 22:16:29 +01:00
PyBitmessage Translations
5c2af00306
Auto-updated language de from transifex 2017-03-06 22:06:42 +01:00
PyBitmessage Translations
f4caf5f6a4 Auto-updated language fr from transifex 2017-03-06 21:58:59 +01:00
PyBitmessage Translations
fd871fca85 Auto-updated language ru from transifex 2017-03-06 21:56:38 +01:00
PyBitmessage Translations
76ae62c1f0 Auto-updated language ja from transifex 2017-03-06 21:55:52 +01:00
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
ee7e630694
Show a dialog with QR-code for selected bm-address 2017-03-06 18:00:23 +02:00
9836206402
Missed translations: namecoin and welcom message 2017-03-05 23:07:18 +02:00
bea675f9a6
Remove unnecessary "print" from previous commit 2017-03-02 15:09:01 +01:00
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
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
b304872b68
Version bump for 0.6.2 2017-03-01 13:12:31 +01:00
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
9263f53d86
OpenCL PoW fix
- previous commit created some problems, now it should work
2017-02-28 23:52:27 +01:00
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
171bc83ec0
HTML parser fix
- URLs followed with space were broken
2017-02-28 22:47:56 +01:00
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
34084bbc80
Total setup.py cleanup and simple script installation 2017-02-28 15:51:49 +02:00
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
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
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
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
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
af8957ed72
Typo in the second most recent commit 2017-02-27 23:37:15 +01:00
d9d2deee25
Typo in last commit 2017-02-27 23:35:48 +01:00
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
5d068ec84a
Unnecessary locking
- there was a sleep inside a lock
2017-02-27 23:30:31 +01:00
741ac5ca05
UPnP recommendation notification fixes
- notify also if no connections and no change
2017-02-27 16:18:22 +01:00
ff786725ed
Typo
- UPnP / connectivity recommendation was active when on proxy rather
  than without
2017-02-27 16:12:19 +01:00
e15d9e3e03
Save UPnP externa port after creating mapping 2017-02-27 15:55:59 +01:00
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
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
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
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
d8301ff512
Less verbose connection error reporting
- don't print tracebacks on normal (timeout/reset) errors
2017-02-26 20:29:07 +01:00
cff1af1b4f
Subscription wrong tab
- when subscribing from addressbook, it switched to blacklist tab
  instead of subscriptions
2017-02-26 20:03:47 +01:00
88658b074e
Socks proxy hostname resolving error handling
- if resolving fails, it wasn't handled
2017-02-26 20:03:14 +01:00
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
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
191650f5a4
Typos
- previous commit contained typos
2017-02-26 12:52:28 +01:00
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
74c85b4a9e
Retransmit timing changes
- makes it behave more like in the description
- partial for #847
2017-02-25 23:40:37 +01:00
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
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
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
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
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
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
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
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
c8429365e3
Typo
- typo in last commit
2017-02-21 10:25:59 +01:00
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
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
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
d63ecfc566 Translation update
- typos
- updated German translation
- Fixes Bitmessage#844
2016-05-02 15:00:24 +02:00
3fcaa47232 Ack received translation typo
Fixes Bitmessage#644
2016-05-02 15:00:24 +02:00
143abe3c34 Preliminary Tor hidden service support 2016-05-02 15:00:24 +02:00
c5363c3c5e Add bitcoin URI handler for message viewer 2016-05-02 15:00:24 +02:00
2e47ab0cd2 Keyboard modifiers with quick navigation
The quick navigation key disrupted keybindings with keyboard modifiers,
like Ctrl-C for copy. This restricts the quick navigation only where no
keyboard modifiers are active.

Fixes #184
2016-05-02 15:00:24 +02:00
a30d5af948 Global Sent and Trash folders 2016-05-02 15:00:24 +02:00
mailchuck
8d8cfe8555 More unicode fixes
Addresses #180
2016-05-02 15:00:24 +02:00
mailchuck
da036c6b6b UTF fixes
Label edits now accept and save utf8 characters.
Addresses #180
Still need to check how it behaves on invalid chars.
2016-05-02 15:00:24 +02:00
mailchuck
47bc85f0b6 Sent folder in chans extended
Previously, it only showed message sent to the selected chan address.
Now it shows both those sent to and sent from the chan address.

Fixes #181
2016-05-02 15:00:24 +02:00
mailchuck
d8aa484b8c Email gateway interface usability improvements
- don't allow status request / settings unless registered already
- if registered, status request is the default selected option

Fixes #182
2016-05-02 15:00:24 +02:00
mailchuck
2adafdaadc Improved URI detector 2016-05-02 15:00:24 +02:00
mailchuck
ed5c8a01ef loadResource incorrect parameters 2016-05-02 15:00:24 +02:00
mailchuck
a79f6cce3b Clipboard copy unicode
Copying unicode subjects to clipboard didn't work.

Fixes #183
2016-05-02 15:00:24 +02:00
113ceb0868 Email links "From"
Clicking email links now sets "From" based on the message the link is
in.
2016-05-02 15:00:24 +02:00
af193a1bca Keybindings
- delete key now works when message body is focused as well
- N for next message (down)
- P for previous message (up)
- R for reply
- C for compose
- F for find
- Find is now dynamic if the search text is least 3 characters long

Fixes Bitmessage#655
Addresses #155
2016-05-02 15:00:24 +02:00
9e2ae4eeb5 Allow close to tray
PyBitmessage can now close to tray. Even though the main code was there,
the UI and config variable were missing.

Fixes Bitmessage#564
2016-05-02 15:00:24 +02:00
b3b69b1eac deleteRowFromMessagelist implementation
Rows are deleted from a message list in multiple places, and this is an
attempt to refactor it so that it is done in one function. It's not used
anywhere yet.
2016-05-02 15:00:24 +02:00
976af4b3cd Empty resource loader for messageview
MessageView does not currently load external resources (QTextBrowser by
default interprets all external resources as local file names and tries
to load them like that. This can, in the future, be implemented. For
example, if SOCKS (Tor) is used, the resource could be loaded through
the SOCKS too.

This commit is a skeleton for it that does not actually do anything and
can be filled with an implementation that does the loading.
2016-05-02 15:00:24 +02:00
96a1726426 Clickable email and http links in plain text
Email addresses and URIs are now clickable when viewing a message in
plain text mode. Clicking an email address moves to the Send tab, while
clicking an URI has the same result as clicking an URI in html mode, it
will ask for confirmation before opening it in external handler.
2016-05-02 15:00:24 +02:00
f27ca0d3d6 HTML parser updates
HTML parser wasn't correctly handling img tags.
Now it also by defaults disabled external schemas to prevent
deanonymisation (even though the renderer actually doesn't support
external schemas at the moment)

Addresses #178
2016-05-02 15:00:24 +02:00
b202ac6fab Do not allow port 0
Attackers injected node addresses with port 0 into the network. Port 0
is unusable on many OSes and can't be listened on. PyBitmessage won't
accept nodes that have port 0 anymore.
2016-05-02 15:00:24 +02:00
9239813ebb Constant time decryption
Always try to decrypt with all keys.
2016-05-02 15:00:24 +02:00
4c2ce7208c Sleep on invalid getdata
- postpone initial sleep until the first getdata is received
- also sleep when received a getdata request for an object that hasn't
been advertised to the other node yet
2016-05-02 15:00:24 +02:00
1a92db54c9 Process gateway registration rejections
A message from gateway registration addres regarding registration
rejection is processed and a dialog displayed to get a new email
address.

Fixes #14
2016-05-02 15:00:24 +02:00
6b8f255a60 Email gateway updates
- settings option available
- reduce max TTL to 2 days
2016-05-02 15:00:24 +02:00
2b6bffc7ff Email gateway account status query
- addresses #14
2016-05-02 15:00:24 +02:00
db84d699db Search improvements
- selecting a new folder will apply search
- newly arrived message will consider search
- fixes #166
2016-05-02 15:00:24 +02:00