Dmitri Bogomolov
2504bc6670
Fixed fetch of connected hosts number in bitmessageqt.support
2017-09-21 13:59:43 +03:00
Dmitri Bogomolov
53c3eeb8f7
Sound plugins using pycanberra and gst-python
2017-09-20 10:21:27 +03:00
Dmitri Bogomolov
1f47a4060e
Added "Set notification sound..." context menu on addressbook entry.
2017-09-20 10:21:27 +03:00
Dmitri Bogomolov
b77eb0c7e5
Namespace 'bitmessage' for plugins entry points
2017-09-20 10:21:27 +03:00
Dmitri Bogomolov
c8a47b988f
Moved "Ubuntu" MessagingMenu code into indicator_libmessaging plugin
2017-09-20 10:21:27 +03:00
Dmitri Bogomolov
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
Dmitri Bogomolov
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
Dmitri Bogomolov
84a903f116
Redirected output of the player programs to /dev/null
2017-09-20 10:21:27 +03:00
Dmitri Bogomolov
91eb75b140
gst-play-1.0 is another player program which bundled with gstreamer 1.0
2017-09-20 10:21:27 +03:00
Dmitri Bogomolov
be716bf228
Improved and documented plugin module
2017-09-20 10:21:27 +03:00
Dmitri Bogomolov
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
Peter Šurda
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
Peter Šurda
660997b8f4
Code Quality
2017-08-22 13:49:27 +02:00
Peter Šurda
18119339f8
Add shutdown to CLI
2017-08-22 13:23:03 +02:00
Peter Šurda
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
Peter Šurda
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
Peter Šurda
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
Peter Šurda
2da4d00730
Support message C PoW fix
2017-08-15 18:14:36 +02:00
Peter Šurda
8b3d7ea278
C PoW init fix
2017-08-15 14:09:19 +02:00
Peter Šurda
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
Peter Šurda
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
Peter Šurda
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
Peter Šurda
e7231f3aea
Fix multiple TCP bind address handling
2017-08-09 23:30:22 +02:00
Peter Šurda
6c695c8ac7
Remove non-asyncore network code (partial)
2017-08-09 17:36:52 +02:00
Peter Šurda
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
Peter Šurda
e071efac1a
Typo
2017-08-09 17:29:48 +02:00
Peter Šurda
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
Peter Šurda
0324958e92
Peer discovery fixes
...
- incoming packets weren't correctly processed
2017-08-06 23:05:54 +02:00
Peter Šurda
d9e4f2ceb8
Typo in previous commit
2017-08-06 21:38:23 +02:00
Peter Šurda
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
Peter Šurda
4564d37f5b
Typo in previous commits
2017-08-06 21:26:25 +02:00
Peter Šurda
38872159fb
Typo in previous commit
2017-08-06 20:40:35 +02:00
Peter Šurda
5895dc2f1f
Asyncore Windows error handling
...
- windows behaves somewhat differently when using select
2017-08-06 20:39:14 +02:00
Peter Šurda
578c5dd495
Fix windows PID file
2017-08-06 18:29:08 +02:00
Peter Šurda
5108d08ac9
Windows asyncore error handler fix
...
- WSAEWOULDBLOCK is now checked on connect and accept
2017-08-06 18:18:21 +02:00
Peter Šurda
8f14fb05a1
UDP socket setsockopt fix
2017-08-05 10:14:15 +02:00
Peter Šurda
7a4551e1e7
Fix signal handler in daemon mode
...
- signal handler requires the main thread to run
2017-07-30 09:36:20 +02:00
Peter Šurda
3e6de7a9ad
Flush PID file on unix as well
2017-07-28 19:21:56 +02:00
Peter Šurda
e7382b7714
Write PID into the lock file
2017-07-28 09:39:49 +02:00
Peter Šurda
501f07dd34
Setsid is not available on Windows
...
- wrap an error handler around it
2017-07-28 09:19:53 +02:00
Peter Šurda
20cbac9752
Fix daemonize for Windows
...
Fixes #1034
2017-07-28 08:54:34 +02:00
Peter Šurda
a29f7534ee
Add EINTR handler for select and poll pollers
2017-07-21 09:06:02 +02:00
Peter Šurda
2530c62050
epoll throws IOError rather than select.error
2017-07-21 07:49:34 +02:00
Peter Šurda
aa059d6f2f
Handle TLS errors in receivequeuethread
...
- well at least EBADF, it seems to happen sometimes
2017-07-21 07:47:18 +02:00
Peter Šurda
4f19c37fdc
Parser fix for multi-level arrays
2017-07-11 10:29:29 +02:00
Peter Šurda
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
Peter Šurda
f6d5d93bf2
Multiple receive queues fix
...
- forgot to commit busy handler
2017-07-10 20:52:11 +02:00
Peter Šurda
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
Peter Šurda
853c8561ec
Per connection node id part 2
...
- forgot to include this in the previous commit
2017-07-10 07:12:52 +02:00
Peter Šurda
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
Peter Šurda
bdf61489ae
Allow multiple ReceiveQueue threads
...
- defaults to 3
2017-07-10 07:08:10 +02:00
Peter Šurda
f088e0ae21
Change thread names
...
- not needed to have "Thread" in the name of a thread
2017-07-10 07:05:50 +02:00
Peter Šurda
4fce01e34a
Less data transferred in invThread and addrThread
2017-07-08 18:02:47 +02:00
Peter Šurda
2df9598774
Asyncore update: Fix incoming connections
...
- dereferencing wasn't done correctly for incoming connections
2017-07-08 07:33:29 +02:00
Peter Šurda
2d7d9c2f92
Asyncore update
...
- request downloads in bigger chunks
- don't put whole objects into the receiveDataQueue
2017-07-08 06:54:25 +02:00
Peter Šurda
0f3a69adf4
Asyncore update: remove references to deleted files
2017-07-08 06:53:20 +02:00
Peter Šurda
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
Peter Šurda
a98b8690d3
Asyncore fixes
...
- fix broken loops
- optimise I/O tests
2017-07-07 07:55:29 +02:00
Peter Šurda
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
Peter Šurda
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
Peter Šurda
a2b8867c1a
Tooltips for network status columns
2017-07-06 19:36:04 +02:00
Peter Šurda
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
Peter Šurda
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
Peter Šurda
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
Peter Šurda
846fced0a2
Remove obsolete inactive code
2017-07-05 09:19:56 +02:00
Peter Šurda
d086781ce8
AddrQueue fix
...
- forgot to commit import
2017-07-05 09:19:18 +02:00
Peter Šurda
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
Peter Šurda
9d09f9f3ce
Reduce severity of socks connectivity errors
...
- Fixes #1024
- Fixes #1019
2017-07-05 09:07:00 +02:00
Peter Šurda
773d91bbe2
Unknown object log entry less severe
...
- unnecessarily classified as critical
- fixes #1023
2017-07-05 09:01:40 +02:00
Peter Šurda
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
Peter Šurda
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
Peter Šurda
cc3cf77759
New class multiqueue
...
- to be used for invthread and addthread
- updated invthread for multiqueue
2017-06-27 13:25:12 +02:00
Peter Šurda
f5a143d0b8
Config validator
...
- config options can have validators
- limit maxoutboundconnections to max 8
2017-06-27 13:19:12 +02:00
Peter Šurda
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
Peter Šurda
aa203b23ee
Fix typo introduced by code quality patch
2017-06-24 23:09:08 +02:00
Peter Šurda
189578cba3
Asyncore proxy fixes
...
- SOCKS5 now seems to work, SOCKS4a untested
2017-06-24 12:23:56 +02:00
Peter Šurda
916b85c862
Connection pool cleanup
...
- minor code quality improvement
2017-06-24 12:23:16 +02:00
Peter Šurda
0dc0b22974
Expired / Stream mismatch / duplicate object error handling
...
- cleanup of the code
2017-06-24 12:22:41 +02:00
Peter Šurda
0a79490e2c
Known nodes maximum configurable part 2
2017-06-24 12:21:42 +02:00
Peter Šurda
d57b0c55ee
Object validator trigger moved
...
- from bmproto to bmobject
2017-06-24 12:21:06 +02:00
Peter Šurda
dc5a91f326
Remove stack depth warnings
...
- I was never able to trigger them
2017-06-24 12:19:19 +02:00
Peter Šurda
e9edf70d3a
TLS updates
...
- save TLS version
- minor TLS error handling updates
2017-06-24 12:18:15 +02:00
Peter Šurda
b9d60f8b41
Max known nodes configurable
2017-06-24 12:17:01 +02:00
Peter Šurda
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