Commit Graph

36 Commits

Author SHA1 Message Date
Peter Šurda 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
Peter Šurda 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
mailchuck 47f1c0c267 Thread names for IPv6
Thread names for IPv6 contained ":". This caused problems in log
parsers.
2016-05-02 15:00:23 +02:00
mailchuck e4a7e71790 SSL fixes 2016-05-02 15:00:21 +02:00
mailchuck 281630757e SSL fixes 2016-05-02 15:00:21 +02:00
mailchuck 18f7ef06e2 SSL fixes
Handle old Python compatibility better.
2016-05-02 15:00:21 +02:00
mailchuck 3c9df7151c Logging fix 2016-05-02 15:00:21 +02:00
mailchuck aa55f45a0d Logging fix 2016-05-02 15:00:21 +02:00
mailchuck 231219a193 Improved logging
Fixes #118

- changed almost all "print" into logger
- threads have nicer names
- logger can have configuration in "logger.dat" in the same directory as
"keys.dat", and the logger will pick the one named "default" to replace
the "console" and "file" that are in PyBitmessage otherwise

Example file for logging to syslog:

[loggers]
keys = root,syslog

[logger_root]
level=NOTSET
handlers=syslog

[logger_syslog]
level=DEBUG
handlers=syslog
qualname=default

[handlers]
keys = syslog

[handler_syslog]
class = handlers.SysLogHandler
formatter = syslog
level = DEBUG
args=(('localhost', handlers.SYSLOG_UDP_PORT),
handlers.SysLogHandler.LOG_LOCAL7)

[formatters]
keys = syslog

[formatter_syslog]
format=%(asctime)s %(threadName)s %(filename)s@%(lineno)d %(message)s
datefmt=%b %d %H:%M:%S
2016-05-02 15:00:21 +02:00
mailchuck c7fb9e6a43 SSL fixes
- uses constants for service flags
- requires SSL to use TLSv1 version (protection against POODLE-style
attacks)
- retry if sock.recv incomplete
2016-05-02 15:00:21 +02:00
mailchuck 53b0d2749b Opportunistic encryption with TLS (1 of 2)
Fixes Bitmessage#264
Fixes Bitmessage#648
2016-05-02 15:00:20 +02:00
Jonathan Warren 05182e7465 Make data send rate more accurate 2015-07-01 15:26:23 -04:00
Jonathan Warren 0865e863ec Added ability to limit network transfer rate 2014-09-10 16:47:51 -04:00
Jonathan Warren c84cdecba4 Normalize the noncetrialsperbyte and payloadlengthextrabytes for each of the user's existing addresses 2014-09-02 19:25:03 -04:00
Jonathan Warren ea6f34ade6 removed use of memoryview so that we can support python 2.7.3 2014-08-06 15:54:59 -04:00
Jonathan Warren 9e16e81283 resolve merge conflict and show transfer rate 2014-08-01 17:25:47 -04:00
Jonathan Warren a2a7edc9be resolve merge conflict 2014-07-14 19:29:47 -04:00
Jonathan Warren 254bac6b32 minor change to 'addDataPadding' commit 2014-07-14 14:15:38 -04:00
Yuri f107b0fbd9 Addition of bytes received/sent counts on the network information tab. 2014-07-07 13:30:23 -07:00
bmng-dev 1f75047223 Refactor generation of packet headers 2014-05-22 16:21:20 +00:00
antius 53a3d1635a Make addDataPadding method to avoid clutter. 2014-05-02 16:46:36 +02:00
Jonathan Warren a49ab786bb resolve merge conflict 2014-04-30 18:48:00 -04:00
Jonathan Warren 22934441dc Fix #662 - 'PyBitmessage does not wait for verack' 2014-04-30 15:39:25 -04:00
Neil Roberts 7da6ea958f Add support for IPv6
It will now listen on an IPv6 socket if possible or fall back to IPv4
if that doesn't work. It will no longer filter out all IPv6 addresses
and instead it will only filter out those that point to the local
network.

It looks like the DNS bootstrapping should just automatically work
because getaddrinfo already returns IPv6 addresses from the AAAA
record.

In order to convert from the ASCII representation of IPv6 addresses
and back we need inet_ntop and inet_pton. Python 2 doesn't currently
provide these for Windows so instead this patch provides a hot patch
to the socket module which wraps WSAStringToAddress and
WSAAddressToString using ctypes.
2014-03-12 01:48:48 +00:00
Jonathan Warren 61389b64aa fix #590 2013-12-29 22:36:23 -05:00
Jonathan Warren 90e60d8145 delay addr messages random number of seconds 2013-09-09 19:26:32 -04:00
Jonathan Warren 831edf0d24 completed inv refactorization 2013-09-06 21:47:54 -04:00
Jonathan Warren a9b15f83ba initial testing inv refactorization 2013-09-06 18:55:12 -04:00
Gergö Barany 6b01e8aa33 Bug fixes in new peer handling. 2013-08-01 12:32:07 +02:00
nobody d606bb1333 Fix: Distinguish peers by both IP address and port.
Until now many parts of the code assumed that IP addresses are
unique for peers. However, more than one Bitmessage instance might
be running with a given IP address due to multi-user systems or
firewalls.
2013-07-30 22:23:18 +02:00
Linker Lin 4a84a30fc6 replace acquire lock by 'with' statement 2013-06-30 01:29:35 +08:00
Jonathan Warren c857f73d0b Continued moving code into individual modules 2013-06-24 15:51:01 -04:00
Jordan Hall 2eb6558cf1 Added a number of missing imports fixing several issues (thank you PyDev) 2013-06-23 20:52:39 +01:00
Jordan Hall e9dc2d5c5e Fixed missing hashlib import in class_sendDataThread 2013-06-23 19:31:47 +01:00
Jordan Hall fe8998ca3a Seperating out all peer networking classes and merging with upstream 2013-06-22 00:49:50 +01:00
Jordan Hall 27a8662f22 Seperating class_singleListener, class_receiveDataThread, class_sendDataThread 2013-06-21 23:29:04 +01:00