3f61bd694b
Define a helper function to read a varint and trim payload
2023-10-12 19:49:32 +03:00
7812e4bbc2
Use shared.stream when assembling i2p_dest object instead of hardcoded 1
2023-10-12 19:49:32 +03:00
fda6ecfe01
Unify and improve message.Version:
...
- from_message() decoding method as in other messages;
- support multiple streams and move stream check to connection;
- use shared.stream instead of hardcoded 1;
- replace values from shared with the instance attributes in to_bytes(),
put conventional 1 as services of a remote host.
2023-10-12 19:49:32 +03:00
428580a980
Add a test for version message
2023-10-12 19:49:32 +03:00
399fc6f21f
Improve structure.Object:
...
- use shared.stream instead of hardcoded 1;
- reuse pow_initial_hash() in is_valid().
2023-10-12 19:49:31 +03:00
218905739c
Add a test for object covering also proofofwork
2023-10-12 19:48:52 +03:00
e4887734a0
Send ping into inactive connection, not pong
2023-10-07 17:55:49 +03:00
58a80bb4a4
Remove unreachable except clause for ConnectionResetError
...
- handled in socket.error branch. TODO: follow PEP 3151
2023-08-20 01:19:11 +03:00
8755e56167
Replace Manager.clean_objects() by the extended version from main
...
and call it upon the Manager start.
2023-08-20 01:14:17 +03:00
45a4a8fd31
Manifest disconnecting
2023-08-16 03:42:16 +03:00
67ecbf95d3
Suppress false positives on unsubscriptable-object in connection
2023-08-14 23:59:57 +03:00
b38e00c0a3
Handle pylint warnings in test_process, suppress fixme globally
2023-08-14 06:05:29 +03:00
e249e501cc
Fix formatting lint issues
2023-08-14 05:53:20 +03:00
4f1e14da2a
Finish test_address() using a sample data, generated with pybitmessage
2023-08-14 05:15:09 +03:00
dd2b0b89af
Improve docstrings in message and structure and add more
2023-08-14 05:15:08 +03:00
3788b12a28
Complete test_packet()
...
with parsing a prepared message and assertion of validation,
including message.Header; use magic_bytes from shared
assuming the value from the Spec.
Cover message.Message except for repr
2023-08-14 05:14:31 +03:00
c6d8bd64b2
Bump version to 0.3.2
2023-08-12 06:36:17 +03:00
6558245a32
Minimal implementation of anti-intersection delay to wait before getdata
2023-08-12 06:35:15 +03:00
1dfe98cf1f
Test shutting down minode --i2p if there is no running i2pd
2023-08-10 03:55:48 +03:00
e8dc62f08b
Allow shutting down while starting I2P listener
2023-08-10 03:52:16 +03:00
761c95d561
Fix SSLError in incoming connection with python 3.10
2023-08-04 00:27:38 +03:00
42995c5ca7
Check host and port of I2P connections
2023-08-02 23:02:21 +03:00
c6d0160001
Move s and state into the base
2023-08-02 05:23:33 +03:00
82c4062325
Inherit I2P classes from base util.I2PThread()
2023-08-02 05:23:33 +03:00
7113916347
Try to test with i2pd:
...
- TestProcessI2P runs minode with i2p args with _connection_limit = 4
- TestProcess waits for connections _wait_time sec (120 for TestProcessI2P)
2023-08-02 05:23:33 +03:00
1d82774c96
Fix unused variable in test_process
2023-08-02 05:17:58 +03:00
1a1db393c1
Fix some pylint warnings in the tests
2023-08-02 00:17:06 +03:00
e95f2b522a
Add basic docstrings
2023-07-30 03:45:59 +03:00
ae727a8327
Don't check for overlimit connections in test_process,
...
leaving the buggy logic as a separate function.
2023-01-23 02:37:04 +02:00
23769a8bf3
Fix logic in test_process
2023-01-22 23:57:46 +02:00
d145143e4b
Fix a mistake in Listener.run()
2022-09-23 08:44:55 +03:00
5462e990dc
Don't log FileNotFoundError while loading I2P destination private key
2022-09-23 08:16:49 +03:00
140e0139ef
Don't use exc_info if found that IPv6 is not supported while starting listener
2022-09-23 08:11:07 +03:00
30a8a32c92
Lower the level of most log messages, but add exc_info for some
...
- log info on disconnect, debug on disconnected locally
- don't log connections failed because of obvious resons
2022-09-10 19:30:39 +03:00
60dc1b9d08
Lower connection limit on windows
2022-09-10 18:08:17 +03:00
b2722acdf7
Add some tests for message
2022-09-10 18:08:16 +03:00
4d67881576
Add some tests for structure
2022-09-10 18:07:45 +03:00
03d6361a3d
Disable pylint unused-argumet warning on the signal handler
2021-08-02 20:06:55 +03:00
a93c0f8417
Rename pow module to proofofwork
2021-08-02 20:06:50 +03:00
23d305bf15
Mark random.uniform() in manager for skipping by bandit
2021-08-02 19:48:15 +03:00
ba4bbd4129
Lint fixes:
...
- split the last long line in the connection module
- resolved pylint useless-object-inheritance and unused-variable
2021-08-01 19:06:44 +03:00
4b0424807e
Fixed formatting pattern for addr in listener
2021-08-01 19:06:44 +03:00
e77f59154c
Bump version to 0.3.1
2021-03-09 19:40:22 +02:00
070541922b
Add minimal process tests based on pybitmessage and a test script
2021-03-09 18:35:07 +02:00
3fa84d1f4b
Formatted the code with flake8
2021-03-09 18:35:03 +02:00
83c2e48fe5
Use dotted imports
2021-03-09 18:31:20 +02:00
TheKysek
f0f277f731
Add new I2P bootstrap nodes
2018-02-04 14:59:03 +01:00
TheKysek
2d2b7503d5
Bump version to 0.3.0
2017-08-23 19:30:09 +02:00
TheKysek
e83fc0d838
Change logging messages
2017-08-23 19:03:13 +02:00
TheKysek
5e949d0e01
Validate objects loaded from disk
2017-08-23 18:51:33 +02:00
TheKysek
9c73986e2a
Reject objects with end of life set too far into the future
2017-08-23 18:35:48 +02:00
TheKysek
05d3b4244d
Retry connections to SAM bridge
...
Remove unnecessary debug logging
2017-08-23 18:29:07 +02:00
TheKysek
b38d5f8054
Added a few more bootstrap nodes
2017-08-23 18:03:04 +02:00
TheKysek
6a78dd0490
Handle OSError exception during data sending
2017-08-21 11:21:45 +02:00
TheKysek
f74cb829fc
Reject duplicate I2P connections and do not connect to ourselves
2017-07-30 09:26:16 +02:00
TheKysek
7ff7a16470
Do not publish transient I2P destinations
2017-07-23 20:58:00 +02:00
TheKysek
2085f01281
Code cleanup
2017-07-20 18:22:59 +02:00
TheKysek
ae799c295c
Add an option to generate new I2P destination on every start
2017-07-20 16:12:32 +02:00
TheKysek
b41606ad1f
Add a few I2P bootstrap nodes
2017-07-20 15:52:27 +02:00
TheKysek
593bae59cb
OpenSSL 1.1 support
2017-07-12 09:53:20 +02:00
TheKysek
708e2db22c
Do not advertise our IP address after incoming I2P connection
2017-07-12 09:12:18 +02:00
TheKysek
ca5a489d2c
Do not crash when receiving an object we no longer need
2017-07-12 08:31:08 +02:00
TheKysek
ef2b3bba0a
Do not re-request invalid objects
2017-07-11 13:04:51 +02:00
TheKysek
df665813ac
Object requesting tweaks
...
- re-request objects after 10 minutes
- better spread object requests between dfferent peers
2017-07-11 12:49:14 +02:00
TheKysek
974568164f
Destination sharing tweaks
2017-07-03 09:23:02 +02:00
TheKysek
1d4d92c931
And again
2017-07-01 17:21:02 +02:00
TheKysek
912d5331b9
Python 3.4 fixes
2017-07-01 17:05:39 +02:00
TheKysek
57fffaafc0
Python 3.4 TLS fix
2017-07-01 16:50:08 +02:00
TheKysek
0b6bb7f932
POW tweaks
2017-07-01 16:14:31 +02:00
TheKysek
c6f721db8e
Change default I2P tunnel length to 2
2017-07-01 16:01:48 +02:00
TheKysek
47fd7a4c44
First publish I2P destination earlier after start
2017-07-01 16:00:35 +02:00
TheKysek
057b25a812
I2P improvements
...
- local destination publishing
- destination gathering
2017-07-01 15:05:06 +02:00
TheKysek
02af66b976
TLS updates
2017-06-25 10:29:46 +02:00
TheKysek
55e263a394
Object exchange tweaks
2017-06-19 08:54:41 +02:00
TheKysek
15620435ff
Send known addresses before objects
2017-06-16 09:32:59 +02:00
TheKysek
918a926c88
I2P tweaks
2017-06-11 07:55:53 +02:00
TheKysek
244d076cab
Fix TLS handshake failure
2017-06-09 21:06:29 +02:00
TheKysek
1a3e340537
Experimental I2P support
2017-06-09 20:41:33 +02:00