Commit Graph

56 Commits

Author SHA1 Message Date
Jonathan Warren 0865e863ec Added ability to limit network transfer rate 2014-09-10 16:47:51 -04:00
Jonathan Warren c306062282 Bitmessage Protocol Version Three 2014-08-27 03:14:32 -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
Yuri f107b0fbd9 Addition of bytes received/sent counts on the network information tab. 2014-07-07 13:30:23 -07:00
bmng-dev 1f9991bcd0 Fix syntax error 2014-06-08 14:03:58 +00:00
bmng-dev 0f9625aac7 Refactor packet header extraction and generation
Demote payloadLength from class instance variable to processData local variable as no other function was using it
Improve processData:
 -Utilise shared.Header
 -Use a memoryview to reduce memory overhead
 -Clean up variables before a recursive call
 -Strip null bytes from command
Refactor sendData
Various functions:
 -Use shared.CreatePacket to generate packets
Fix typo in _checkIPv4Address
2014-05-22 15:57:48 +00:00
antius 53a3d1635a Make addDataPadding method to avoid clutter. 2014-05-02 16:46:36 +02:00
Jonathan Warren 38d7db24ad Merge pull request #639 from bpeel/wip/trusted-peer
Add a 'trustedpeer' option to keys.dat
2014-04-30 17:42:28 -04:00
Jonathan Warren 22934441dc Fix #662 - 'PyBitmessage does not wait for verack' 2014-04-30 15:39:25 -04:00
Jonathan Warren 114ba4e23a slightly modify IPv6 modifications so that IPv4-only hosts properly handle v6 IPs 2014-04-27 18:05:43 -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
Neil Roberts 03263156de Add a 'trustedpeer' option to keys.dat
If this option is specified in keys.dat then Bitmessage will connect
to the host specified there instead of connecting to the hosts in the
list of known nodes. It will also stop listening for incoming
connections and the timing attack mitigation will be disabled.

The expected use case is for example where a user is running a daemon
on a dedicated machine in their local network and they occasionally
want to check for messages using a second instance of the client on
their laptop. In that case it would be much faster to catch up with
the messages by directly downloading from the dedicated machine over
the LAN. There is no need to connect to multiple peers or to do the
timing attack mitigation because the daemon is trusted.

The host is specified as hostname:port. Eg, ‘192.168.1.8:8444’.
2014-02-06 13:16:07 +00:00
Jonathan Warren 0de659a04a Ignore, and don't save to memory, messages larger than 20MB (temporary) 2014-02-05 02:45:10 -05:00
Jonathan Warren 61389b64aa fix #590 2013-12-29 22:36:23 -05:00
Jonathan Warren 45a0046e7d completed work on objectProcessorThread 2013-11-20 01:29:37 -05:00
Jonathan Warren 2a1b6dd86d some initial objectProcessorThread work 2013-11-13 22:44:42 -05:00
Jonathan Warren a20711c2ab Fix whitelist functionality 2013-10-05 13:39:53 -04:00
Jonathan Warren f5b92b2fa5 turn timing attack mitigation back on 2013-09-29 23:06:24 -04:00
Jonathan Warren 498928405b Chan fix: initial work completed 2013-09-29 19:24:27 -04:00
Jonathan Warren 02ea2a50d3 more v4 address work. Should be done. 2013-09-18 00:04:01 -04:00
Jonathan Warren 79f6169803 further v4 address work 2013-09-14 21:06:26 -04:00
Jonathan Warren 56168e82b5 most initial work on v4 pubkeys completed 2013-09-13 00:27:34 -04:00
Jonathan Warren 90e60d8145 delay addr messages random number of seconds 2013-09-09 19:26:32 -04:00
Jonathan Warren f0bf3aad48 use locks when accessing dictionary inventory 2013-09-07 18:23:20 -04:00
Jonathan Warren a9b15f83ba initial testing inv refactorization 2013-09-06 18:55:12 -04:00
Jonathan Warren c06bbc14f8 Give user feedback when disk is full 2013-09-04 20:14:25 -04:00
Jonathan Warren 7ccdd14418 fix #474 2013-09-04 12:53:18 -04:00
Jonathan Warren 5fab298559 Refactor of the way PyBitmessage looks for interesting new objects in huge inv messages from peers 2013-09-03 22:45:45 -04:00
Jonathan Warren 6159d5e622 Show inventory lookup rate on Network Status tab 2013-09-03 18:08:29 -04:00
Grant T. Olson 92c1368691 use helper_sql in class_receiveDataThread 2013-08-29 08:03:05 -04:00
Jonathan Warren 1bb86794a8 undid support for receiving v4 addresses until more chanages are implemented 2013-08-26 15:23:12 -04:00
Jonathan Warren 82db79ca39 removed option from previous commit which allowed user-settable maximum network message size pending further discussion 2013-08-24 20:23:49 -04:00
Jonathan Warren a5c65f11e8 resolve merge conflict 2013-08-24 20:18:46 -04:00
Jonathan Warren 0132db33dc show number of each message type processed in the API command clientStatus 2013-08-24 19:40:48 -04:00
Adam Fontenot ef312c6e2c Updated several missed references to version 3 addresses 2013-08-15 04:26:14 -05:00
Bob Mottram 3063c256d4 Maximum message length configurable within keys.dat 2013-08-03 12:45:15 +01:00
Jonathan Warren 5c3bc63a1f Only allow 1 connection per IP 2013-08-01 12:16:31 -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
Jonathan Warren d036ca18ed Completed chan integration in the GUI 2013-07-22 01:10:22 -04:00
Gergö Barany fc5da5d3ff Refactor type 2 message decoding, drop any extra lines from subject.
This allows other clients to insert headers in extra lines of text between
the Subject and Body fields of the message, as discussed on the 24x7 mailing
list. The PyBitmessage client was never able to meaningfully display
multi-line subjects, so this does not break anything. The extra lines are
thrown away and never stored anywhere, so this also protects against
watermarking attacks.
2013-07-12 12:16:34 +02:00
Jonathan Warren 21ce1f5a19 manual merge 2013-07-05 16:56:49 -04:00
Pedro Gimeno 55b899f5c1 Better fix for issue #183
The former patch was too local; this one integrates better with the structure of the code.
2013-07-02 17:43:54 +02:00
Jonathan Warren 2012096673 Merge branch 'master' of git://github.com/linkerlin/PyBitmessage into linkerlin-master 2013-07-01 15:51:55 -04:00
Pedro Gimeno 95a1afb84b Fix issue #183 (CPU 100% usage)
As per http://docs.python.org/2/howto/sockets.html#using-a-socket it's
possible that a socket recv() call returns 0 bytes if the remote closes
the connection. In that case, recv() does not obey settimeout(): it
just doesn't block and returns zero bytes immediately, which in this
case results in an infinite loop if the transmission was incomplete.
2013-07-01 07:36:22 +02:00
Linker Lin 4a84a30fc6 replace acquire lock by 'with' statement 2013-06-30 01:29:35 +08:00
Jonathan Warren 61ab0013aa added new variable: doTimingAttackMitigation 2013-06-24 17:29:15 -04:00
Jonathan Warren 3204c6b833 added new variable: doTimingAttackMitigation 2013-06-24 17:29:04 -04:00