Commit Graph

278 Commits

Author SHA1 Message Date
Dmitri Bogomolov 79efacffb1
Replaced lost UDPSocket.maxTimeOffset by constants.MAX_TIME_OFFSET
Closes: #1696
2021-03-01 19:55:47 +02:00
Dmitri Bogomolov 5f9d507717
announceInterval is for AnnounceThread, not UDPSocket 2021-02-22 19:56:24 +02:00
Dmitri Bogomolov 6168d63699
Replace formatting socket.error by exc_info in network.udp 2021-02-22 19:56:24 +02:00
Dmitri Bogomolov d8cf148d4a
Replaced print operator by print function in network.asyncore_pollchoose
and unmaintained modules.
2021-02-18 17:15:56 +02:00
Dmitri Bogomolov 448e9e2f36
Prevent adding bootstrap servers to knownnodes when received in addr 2021-01-22 18:52:34 +02:00
Dmitri Bogomolov 3108115570
Shorten Bootstrapper methods:
handle_close() and set_connection_fully_established()
2021-01-22 18:52:34 +02:00
Dmitri Bogomolov 2b5f605857
Set close_reason for exceptions in network.tls 2021-01-22 18:52:33 +02:00
Dmitri Bogomolov 9540d5fabe
Fixing tor related tests:
- knownnodes.cleanupKnownNodes() should set knownNodesActual = False
   if there are no nodes in stream 1 (repeated bootstrapping)
 - set socksproxytype before _initiate_bootstrap()
 - wait 5 sec in _initiate_bootstrap() to be sure all connections are closed
 - plugins do not work on travis - use socksproxytype = SOCKS5,
   check tor presence by trying to bind on port 9050
 - successfull connection to 3 onion nodes in 6 minutes is not guaranteed -
   check that bitmessage doesn't try non-onion nodes
2021-01-22 18:52:33 +02:00
navjot 9c5d329c90
replace print with logger and remove unused file 2021-01-18 23:31:45 +05:30
navjot 46e2f04488
move randomtrackingdict.py out side the network dircetory 2020-12-29 13:12:22 +05:30
navjot a2ab0a02dc
written test case randomtrackingdict dict module 2020-12-28 16:01:23 +05:30
navjot 9fe4ad0489
test case for testing old knownnodes pickle
-test case for testing old knownnodes pickle

-fixed CQ for tests.core module

-implemented shutil.copyfile feature and use small size knownnodes.dat file in test_pattern dir

-remove unnecessary code

-Fixed CQ of tests.core module
2020-12-21 22:50:38 +05:30
navjot c18b544732
fixed socket error on sendato #1583 2020-10-23 17:54:59 +05:30
Peter Šurda 95fc981ae2
Finish timeOffsetWrongCount
- now notifies in status bar
- fixes #1433
2020-08-31 11:52:30 +02:00
Dmitri Bogomolov d56191ebba
Move knownnodes module into network package 2020-07-21 16:21:43 +03:00
Dmitri Bogomolov b165a6b4ef
Do addKnownNode recursively for multiple streams 2020-07-21 16:21:43 +03:00
Dmitri Bogomolov f9dc8eaacf
Define len() for network.BMConnectionPool 2020-07-21 16:21:43 +03:00
Dmitri Bogomolov 1035d2aec4
Format network.tcp for flake8 2020-07-21 16:21:42 +03:00
Dmitri Bogomolov 54e44eac95
Add or update knownnode for connected Peer for both inbound
and outbound connections when fully established, update lastseen
before closing connection.
2020-07-21 16:21:42 +03:00
Dmitri Bogomolov d9ddbe8d24
Do not update addrQueue if not added node to own knownnodes
and more checks in knownnodes.addKnownNode moved from bmproto.
2020-07-21 16:21:42 +03:00
Dmitri Bogomolov 739ff7b439
Add knownnodes only by knownnodes.addKnownNode(),
now it can update lastseen.
2020-07-21 16:21:36 +03:00
lakshya 3f773c78f7
setting, openssl and bmproto quality fixes 2020-05-28 13:43:03 +05:30
Dmitri Bogomolov d15e614bb1
Fix streams decoding in BMProto.bm_command_version() 2020-05-22 12:58:04 +03:00
Dmitri Bogomolov d09782e53d
Obsolete bitmessagemain.connectToStream(), use BMConnectionPool method 2020-05-05 17:30:31 +03:00
Dmitri Bogomolov 185ad66ea5
Moved most of variables from shared elsewhere (mostly to state) 2020-05-05 17:27:38 +03:00
Peter Šurda 11bec55be5
Don't put addresses into queue
- attempt to fix #1598
- seems to work
- addresses won't be uploaded/announced anymore other than after connecting,
  Later I need to find out how to announce them without causing problems, but
  for the time disabling this seems an acceptable drawback
2020-02-05 20:41:36 +08:00
lakshyacis 6139efc377
Imported packages sequencing and formatting 2 2020-01-27 14:43:25 +05:30
lakshyacis f0bc74e658
Network fixes 2020-01-10 16:51:17 +05:30
lakshyacis 81872c7f2f
network code quality fixes 2020-01-08 12:53:04 +05:30
Dmitri Bogomolov 03316496b7
Stop UDPSocket on socket.error 101 (Network is unreachable) 2019-12-24 12:41:01 +02:00
Peter Šurda a69732f060
Addrthread finish
- addrthread is supposed to spread addresses as they appear. This was never
  finished during migration to asyncore
- conservative to prevent flood and loops
- randomises order
- move protocol constants into a separate file
- move addr packet creation into a separate file
- see #1575
2019-11-30 13:47:24 +01:00
Peter Šurda 2a165380bb
Restrict outbound connections on network groups
Logic borrowed from bitcoin, see CNetAddr::GetGroup() in src/netaddress.cpp
Simplified, so may not work fully identically but for our purposes it's good
enough. Won't connect to more than one host from a /16 subnet on IPv4 and a /32
subnet on IPv6.
2019-11-18 12:20:29 +01:00
Dmitri Bogomolov d6c1845b71
Moved Peer from state to network.node
and trustedPeer to network.connectionpool.BMConnectionPool attribute
2019-11-11 17:13:12 +02:00
Dmitri Bogomolov 7a1f803c92
network.BMConnectionPool: added shortcuts connections()
and establishedConnections(), some formatting fixes
2019-11-11 12:03:04 +02:00
Dmitri Bogomolov 341651973a
Reduced imports:
- exported from network package all objects used outside;
  - made all threads available in threads module.

Wrote some module docstrings.
2019-11-11 12:03:03 +02:00
George McCandless b42f536d23
Add a checkbox to the network settings tab that allows restricting outbound connections to onion services (i.e., hosts that end with '.onion'). 2019-10-21 00:03:41 +00:00
Dmitri Bogomolov bbdbca253b
Added warnings about changing port settings in api and network.tcp 2019-10-18 09:35:31 +03:00
Dmitri Bogomolov d2a896697d
Used logger.isEnabledFor() to prevent unneeded calculations 2019-10-18 09:35:31 +03:00
Dmitri Bogomolov 7a89109fc9
New logging approach in order to reduce imports from submodules
and use logging without risk of circular import. Only subpackage
that imports from debug is bitmessageqt - because it also uses
debug.resetLogging().
Instead of from debug import logger is now recommended to use:

import logging

logger = logging.getLogger('default')

All subclasses of StoppableThread now have a logger attribute.
All threading related stuff except for set_thread_name()
was moved from helper_threading to network.threads.

Fixed two my mistakes from previous edit of debug in a1a8d3a:

 - logger.handlers is not dict but iterable
 - sys.excepthook should be set unconditionally
2019-10-18 09:35:24 +03:00
Dmitri Bogomolov 53cc08edec
Renamed invalid python module http-old 2019-10-18 01:06:02 +03:00
Dmitri Bogomolov b5df242141
Fixed badly formatted docstrings and some wrong text 2019-10-18 01:06:02 +03:00
Dmitri Bogomolov 88f2c51595
quzwelsuziwqgpt2.onion:8444 is also a bootstrap server 2019-09-25 18:55:02 +03:00
Dmitri Bogomolov bdb09c2d00
Ignore self node in connectionchooser.chooseConnection() 2019-09-25 18:55:01 +03:00
Dmitri Bogomolov 4825c5a136
Universal bootstrap procedure for any connection type 2019-09-25 18:55:01 +03:00
Dmitri Bogomolov 0a06567071
Connect to bootstrap nodes by name 2019-09-25 18:55:01 +03:00
lakshyacis a961a4a2fb
proxy pylint fixes 2019-09-16 19:13:56 +05:30
lakshyacis 1e446b768c
node pylint fixes 2019-09-16 19:13:56 +05:30
lakshyacis 915bfb757d
networkthread pylint fixes 2019-09-16 19:13:55 +05:30
lakshyacis e74affe636
udp pylint fixes 2019-09-16 19:13:55 +05:30
lakshyacis 498232dbea
tls pylint fixes 2019-09-16 19:13:54 +05:30