orignal
|
bebf333f03
|
Merge pull request #2579 from Vort/cplusplus
Use correct __cplusplus value for MSVC
|
2026-10-02 08:27:49 -04:00 |
|
Vort
|
a64d0fae63
|
Use correct __cplusplus value for MSVC
|
2026-10-02 15:15:17 +03:00 |
|
orignal
|
ab57514b5f
|
return string instead string_view from RecognizeClientByPeerID
|
2026-10-01 22:31:28 -04:00 |
|
orignal
|
2de93be1a3
|
check is host end with .i2p using ends_with
|
2026-10-01 22:21:16 -04:00 |
|
orignal
|
d2b9c1a099
|
insert existing node to routing table
|
2026-10-01 22:11:03 -04:00 |
|
orignal
|
842a2cb9b9
|
initialize lastUpdateTime
|
2026-10-01 22:05:47 -04:00 |
|
orignal
|
a5797cdf98
|
cleanup all nodes list. Store pointer to node in routing table
|
2026-10-01 21:24:17 -04:00 |
|
orignal
|
2b7ed0df9a
|
Merge pull request #2578 from pobregat0/ntcp2-datetime-block-length
Check datetime block size in NTCP2 data frame
|
2026-10-01 21:20:03 -04:00 |
|
PobreGato
|
2c1d3612e0
|
check datetime block size in NTCP2 data frame
|
2026-10-01 21:17:20 -04:00 |
|
orignal
|
94ff267b45
|
send ping to expiring nodes
|
2026-10-01 18:26:44 -04:00 |
|
orignal
|
4c48933c17
|
try to print value of peerID for unknown client
|
2026-10-01 15:13:12 -04:00 |
|
orignal
|
3a488a3dcb
|
recognize more clients by peerID
|
2026-10-01 13:51:29 -04:00 |
|
orignal
|
15b75e2bb7
|
handle magnetLink field
|
2026-09-30 22:03:43 -04:00 |
|
orignal
|
8756184af8
|
link with boost_url
|
2026-09-30 21:48:04 -04:00 |
|
orignal
|
9d3d0ebdf9
|
link with boost_url
|
2026-09-30 21:42:36 -04:00 |
|
orignal
|
637507be67
|
add quoerying node to nodes list
|
2026-09-30 18:53:07 -04:00 |
|
orignal
|
5eaf86e432
|
send multiple get_peers requests
|
2026-09-30 16:04:12 -04:00 |
|
orignal
|
ff93190c11
|
cleanup non-responded queries
|
2026-09-30 10:25:02 -04:00 |
|
orignal
|
5d2bd1d299
|
insert nodes to routing table in sorted order after load
|
2026-09-29 21:51:07 -04:00 |
|
orignal
|
3361c59718
|
use infoHash as torrent name if no dn= in magnet link
|
2026-09-29 21:06:51 -04:00 |
|
orignal
|
5b4f3de9d5
|
return 0 in pecentDone for new magnet
|
2026-09-29 21:04:49 -04:00 |
|
orignal
|
2d8efa8d0d
|
less aggressive DHT announcement
|
2026-09-29 21:02:42 -04:00 |
|
orignal
|
5bf161e29c
|
get peers throught DHT and announce own torrents
|
2026-09-29 18:59:46 -04:00 |
|
orignal
|
14eb418c5e
|
remove empty buckets after load DHT nodes
|
2026-09-28 22:37:42 -04:00 |
|
orignal
|
19c0f98126
|
update timestamp of existing peer
|
2026-09-28 21:11:30 -04:00 |
|
orignal
|
847f3748f2
|
return existing tunnel ID for duplicated torrent
|
2026-09-28 20:58:56 -04:00 |
|
orignal
|
ccd494160d
|
cleanup DHT torrents
|
2026-09-28 20:32:24 -04:00 |
|
orignal
|
8d5becd90a
|
set DHT datagram receiver after datagram destionation initializtion. Save nodes from ping and get_peers queires
|
2026-09-28 15:16:59 -04:00 |
|
orignal
|
b0a22f8793
|
generate random nodeID by 4 bytes
|
2026-09-28 13:34:23 -04:00 |
|
orignal
|
daaa336276
|
generate random nodeid in bucket
|
2026-09-28 12:01:11 -04:00 |
|
orignal
|
50235645ea
|
fixed typo
|
2026-09-28 07:46:42 -04:00 |
|
orignal
|
b126b2455a
|
select random node to request from
|
2026-09-27 22:31:45 -04:00 |
|
orignal
|
8510dce429
|
remove expired nodes from routing table
|
2026-09-27 21:09:16 -04:00 |
|
orignal
|
1078c347f1
|
fixed typo in log message
|
2026-09-27 18:13:37 -04:00 |
|
orignal
|
1eb06e3c45
|
store bucket's node in map rather than list
|
2026-09-27 18:09:31 -04:00 |
|
orignal
|
ae481480eb
|
request node from node from the same bucket. Respond to find_node
|
2026-09-27 17:27:42 -04:00 |
|
orignal
|
46ea7caa8d
|
explore DHT nodes
|
2026-09-27 12:43:29 -04:00 |
|
orignal
|
c9cc1c80be
|
check if received timestamp is too high
|
2026-09-27 09:52:09 -04:00 |
|
orignal
|
6cfb14b422
|
correct local NodeID generation. Handle find_node query
|
2026-09-26 22:05:17 -04:00 |
|
orignal
|
a8b4000490
|
handle get_peers response. Send announce_peer
|
2026-09-26 19:13:44 -04:00 |
|
orignal
|
4be508a882
|
save own nodeInfo in dht file
|
2026-09-26 12:06:59 -04:00 |
|
orignal
|
ed9135be69
|
Merge pull request #2576 from pobregat0/sam-version-overflow
don't overflow int when parsing SAM version
|
2026-09-26 07:20:23 -04:00 |
|
PobreGato
|
28c65b6d59
|
don't overflow int when parsing SAM version
|
2026-09-26 01:24:43 -04:00 |
|
orignal
|
bdac44084f
|
close .part file before renaming
|
2026-09-25 21:46:14 -04:00 |
|
orignal
|
3ebcd21135
|
store node info in separate map
|
2026-09-25 20:06:07 -04:00 |
|
orignal
|
685776eba3
|
parse id and infoHash as 20-bytes array. Add node to DHT after receiveing ping. Send reposnse to announce_peer
|
2026-09-25 14:57:50 -04:00 |
|
orignal
|
dae46c9540
|
Merge pull request #2575 from Elcoid/iss2570
sam: fix inconsistencies in version negotiation of sam handshake
|
2026-09-25 14:15:45 -04:00 |
|
Elcoid
|
61e18baf68
|
sam: replace C-style 0/1 with C++-style false/true
|
2026-09-25 13:30:18 -04:00 |
|
Elcoid
|
d1428cd2ae
|
sam: fix inconsistencies in version negotiation of sam handshake
This commit fixes [issue #2570](https://github.com/PurpleI2P/i2pd/issues/2570).
The [specification of the SAM protocol](https://i2p.net/en/docs/api/samv3/)
says the following:
- "As of version 3.1 (I2P 0.9.14), the MIN and MAX parameters are optional."
- "SAM will always return the highest version possible given the MIN and MAX
constraints"
Given this, the following handshakes do not change:
```
printf "HELLO VERSION MIN=3.1 MAX=3.3\n" | nc -q 0 127.0.0.1 7656
HELLO REPLY RESULT=OK VERSION=3.3
printf "HELLO VERSION MAX=3.3\n" | nc -q 0 127.0.0.1 7656
HELLO REPLY RESULT=OK VERSION=3.3
printf "HELLO VERSION MIN=31 MAX=31\n" | nc -q 0 127.0.0.1 7656
HELLO REPLY RESULT=OK VERSION=3.1
(periods are still optional)
```
But the following ones do (the responses before and after this commit
are included):
```
printf "HELLO VERSION MAX=3.4\n" | nc -q 0 127.0.0.1 7656
before: HELLO REPLY RESULT=NOVERSION
after: HELLO REPLY RESULT=OK VERSION=3.3
printf "HELLO VERSION MIN=3.0\n" | nc -q 0 127.0.0.1 7656
before: HELLO REPLY RESULT=OK VERSION=3.0
after: HELLO REPLY RESULT=OK VERSION=3.3
printf "HELLO VERSION MIN=3.1\n" | nc -q 0 127.0.0.1 7656
before: HELLO REPLY RESULT=OK VERSION=3.1
after: HELLO REPLY RESULT=OK VERSION=3.3
printf "HELLO VERSION MIN=2.9\n" | nc -q 0 127.0.0.1 7656
before: HELLO REPLY RESULT=NOVERSION
after: HELLO REPLY RESULT=OK VERSION=3.3
printf "HELLO VERSION\n" | nc -q 0 127.0.0.1 7656
before: HELLO REPLY RESULT=NOVERSION
after: HELLO REPLY RESULT=OK VERSION=3.3
printf "HELLO VERSION MIN=3.3 MAX=3.1\n" | nc -q 0 127.0.0.1 7656
before: HELLO REPLY RESULT=OK VERSION=3.1
after: HELLO REPLY RESULT=NOVERSION
printf "HELLO VERSION MIN=3.5 MAX=2.7\n" | nc -q 0 127.0.0.1 7656
before: HELLO REPLY RESULT=OK VERSION=2.7
after: HELLO REPLY RESULT=NOVERSION
printf "HELLO VERSION MIN=2.7 MAX=3.5\n" | nc -q 0 127.0.0.1 7656
before: HELLO REPLY RESULT=NOVERSION
after: HELLO REPLY RESULT=OK VERSION=3.3
printf "HELLO VERSION MIN=aab3vsg1df MAX=fd3gfbgf1bf\n" | nc -q 0 127.0.0.1 7656
before: HELLO REPLY RESULT=OK VERSION=3.1
after: HELLO REPLY RESULT=NOVERSION
```
I included a script to automatically test these handshakes.
|
2026-09-25 10:52:05 -04:00 |
|
orignal
|
54f51044e5
|
use destination's b32 for dht file name
|
2026-09-25 09:02:11 -04:00 |
|