Commit Graph

2477 Commits

Author SHA1 Message Date
orignal
a3e0b3710c pass std::string_view to parse 2024-09-02 17:34:15 -04:00
orignal
bbadbdbfdb Switch to C++17 for Mac OS X 2024-09-01 15:23:14 -04:00
orignal
509c039e2f use Rng from pool if possible 2024-08-31 08:02:56 -04:00
orignal
a1f40d3048 use __has_include(<filesystem>)) to detect if std::filesystem can be used 2024-08-30 17:56:34 -04:00
orignal
2f5f39aaf2 disable clock_cast iuntil implemented 2024-08-30 17:51:03 -04:00
orignal
5cc15fac31 rollback 2024-08-30 15:03:50 -04:00
orignal
ea3f356856 removed dependency from boost::filesystem 2024-08-30 14:40:44 -04:00
orignal
8189ff0f48 innclude <filesystem> before _cpp_lib_filesystem check 2024-08-30 14:36:56 -04:00
orignal
604bdf314f improved window size reculculation algorithm 2024-08-29 18:57:14 -04:00
orignal
937809bc0f don't use clock_cast with clang 2024-08-29 15:14:17 -04:00
Vort
e87ace0c3d implement UTF-8 conversion with WinAPI for Windows platform 2024-08-29 16:52:25 +03:00
orignal
bc48e6881d use boost::filesystem for Win32 and clang 2024-08-28 18:25:42 -04:00
orignal
e957d7bbfb use std::filesystem for windows 2024-08-28 17:52:08 -04:00
orignal
ac876a0cd5 use boost::filesystem for Mac OS X 2024-08-28 13:43:01 -04:00
orignal
4a4b76141a C++20 support 2024-08-28 11:34:07 -04:00
orignal
a93043f064 check for __cpp_lib_filesystem 2024-08-27 22:12:13 -04:00
orignal
ae309ca632 use std::filesystem for C++17 2024-08-27 21:49:23 -04:00
orignal
3ff79038b5 handle individual NACKs 2024-08-27 15:33:59 -04:00
orignal
da0e527777 termination check timeout variance 2024-08-26 20:57:28 -04:00
orignal
66223792f3 use std::mt19937 instead rand(). termination timeout variance 2024-08-26 19:35:13 -04:00
orignal
a69eade1f4 use pool's rng for random tunnel/remote lease selection 2024-08-25 21:35:33 -04:00
orignal
e7423b1ffc save timestamp from epoch instead local time to profiles 2024-08-25 19:07:01 -04:00
orignal
ff5c76f8f2 don't include expired lease to LeaseSet for I2Cp 2024-08-21 19:21:02 -04:00
orignal
0191e58b05 adjust number of leases in LS2 if expired tunnels 2024-08-21 16:28:19 -04:00
orignal
c43926083e don't include already expired lease to LeaseSet 2024-08-21 14:07:04 -04:00
orignal
bd98f2c3ee max flush interval 2024-08-20 21:21:28 -04:00
orignal
02c52f59cb max flush interval 2024-08-20 20:59:41 -04:00
orignal
fa218d3cf5 reset routing path if session is stuck 2024-08-20 15:50:37 -04:00
orignal
d169b422da drop window if remote lease changes 2024-08-19 19:10:00 -04:00
orignal
7be64dad89 limit number of resent packets at the time 2024-08-19 18:30:49 -04:00
orignal
3720a5fce3 don't select same peer too often 2024-08-19 15:51:56 -04:00
orignal
0df895b6a7 check minimal router version for connected peer selection 2024-08-19 14:39:07 -04:00
orignal
32ab95478e check crypto type and congestion of connected peer for tunnel 2024-08-18 18:34:28 -04:00
orignal
28adb54c0a don't send quick ack for each duplicated packet 2024-08-18 13:33:16 -04:00
orignal
b4fcf76480 fixed warning 2024-08-17 17:52:42 -04:00
orignal
fb8e0e1b5b limit stream's inbound speed 2024-08-17 17:11:28 -04:00
orignal
41dd8b527d reduce number of acks being sent 2024-08-17 08:30:16 -04:00
orignal
7376f7c399 generate max number of tags for follow on tagsets 2024-08-17 08:13:17 -04:00
orignal
d47ae3012a periodic sending ack requests in ECEISX25519 session and dead path detection in I2CP 2024-08-15 13:35:51 -04:00
orignal
09dbe9fc03 check option and packet length 2024-08-14 13:43:24 -04:00
orignal
11328a429d set minimal resend interval. Resend attempt after only Ack 2024-08-14 10:13:35 -04:00
orignal
0c924836cf fixed AEAD verification for LibreSSL 2024-08-13 15:36:13 -04:00
orignal
52a313bb65 force LeaseSet timestamp update if published at the same second 2024-08-12 21:29:05 -04:00
orignal
d75f15104e select only established sessions for peer tests 2024-08-10 14:43:29 -04:00
orignal
b306bf2db9 don't handle connect timer for already terminated session 2024-08-09 08:14:39 -04:00
orignal
349c4e30b6 correct receive ratchet tagsetid calculation 2024-08-06 13:58:21 -04:00
orignal
3c69e0b2af keep sending reverse key until tag received on new tagset 2024-08-05 14:44:10 -04:00
orignal
42782944fb Streaming congestion control improvements. Patch by onon 2024-08-01 13:49:32 -04:00
orignal
efd754eb93 set min pacing time to 250 microseconds 2024-07-31 07:56:40 -04:00
orignal
db4208e2e2 fixed 2024-07-30 08:13:24 -04:00
orignal
fe740249a5 2.53.1 2024-07-29 19:40:33 -04:00
orignal
86f86fc711 fixed #2078. don't stop service when destination stops 2024-07-29 14:44:47 -04:00
orignal
1410fa5c21 added i2cp.inboundlimit and i2cp.outboundlimit 2024-07-28 14:53:46 -04:00
orignal
3a4833aa67
Merge pull request #2017 from Vort/show_bw_caps
show bandwidth caps for hops
2024-07-28 08:21:52 -04:00
orignal
d3062d2994 don't create full identity from buffer if only ident hash is needed 2024-07-25 20:36:46 -04:00
orignal
d7ff459f12 include tagsetid into msgid 2024-07-25 15:05:00 -04:00
orignal
f232c8f2df don't limit num attempts in routing path. Increased routing path expiration to 2 minutes 2024-07-23 21:55:56 -04:00
orignal
f6ddcd432e removed openssl/engine.h 2024-07-21 09:43:29 -04:00
orignal
bed5a18294 2.53.0 2024-07-17 07:41:41 -04:00
orignal
45221da1dc floodfill must have published ipv6 if no published ipv4 2024-07-12 11:43:39 -04:00
orignal
8440633614 increased number of floodfills threshold to 1200 2024-07-12 10:44:05 -04:00
orignal
50f455e0a2 make a floodfill eligble if reachable by ipv4 2024-07-12 09:33:37 -04:00
orignal
5fbcfadd6d set min floodfill version to 0.9.59 2024-07-11 15:22:12 -04:00
orignal
5af13849a9 check if offline signature is expired when load keys 2024-07-09 13:44:30 -04:00
orignal
a9c486d7a1 fixed stream hanging due to inactivity. Smoother RTT 2024-07-09 10:51:22 -04:00
orignal
8c0a1197d7 drop incoming SSU2 session from duplicated router 2024-07-08 10:39:18 -04:00
orignal
4e5f5c218a mark router as dup0licted only if address mismatch 2024-07-08 08:00:36 -04:00
orignal
64cc59d1e9 recognize duplicated routers and store duplicated flag in profile 2024-07-07 11:26:17 -04:00
orignal
0c943f4405 use received RouterInfo if older than one in netdb 2024-07-06 10:28:18 -04:00
orignal
37d3d9e604 removed openssl 1.0.2 support 2024-07-06 08:50:51 -04:00
orignal
d23451fdf6 delete unused variable 2024-07-04 13:43:05 -04:00
orignal
d843502832 calculate min pacing time. Return wrongly removed line 2024-07-04 13:28:18 -04:00
orignal
0428b5ece1 limit stream's outbound speed 2024-07-04 13:07:57 -04:00
orignal
df787060c3 stop destination's thread before cleanup 2024-06-30 11:40:35 -04:00
orignal
ea9c69cd53 some cleanup 2024-06-30 08:11:12 -04:00
orignal
199d149bed improved congestion control 2024-06-29 09:17:11 -04:00
orignal
ff8941af71 check if address is still introducer before trying to introduce 2024-06-27 18:02:17 -04:00
orignal
f125936b2e try to lookup other introducers' routers if found out doesn't have applicable addresses 2024-06-26 08:53:04 -04:00
orignal
457b64f92d try to connect to introducer through any available address 2024-06-14 18:05:01 -04:00
orignal
6caec6b551 check if updated router is still introducer. Remove non-introducer sessions from introducers list 2024-06-13 18:10:45 -04:00
orignal
362edc68ad removed ls's reseed 2024-06-11 15:14:06 -04:00
orignal
29872fc003 check if local address exists 2024-06-10 17:58:19 -04:00
orignal
81d383c99e don't pick routers older that 0.9.58 for client tunnels 2024-06-10 13:40:07 -04:00
orignal
12653f2fe4 don't try introducer with invalid address. Terminate session immediately if appropriate introducer not found 2024-06-09 18:38:13 -04:00
orignal
43f5ba286c update congestion caps before initial publishing 2024-06-09 15:25:19 -04:00
orignal
f990a2f69f don't reply with relay tag if we are not on introducer on that address 2024-06-09 15:07:12 -04:00
orignal
0b97b4294c don't request relay tag for every session if we have enough introducers 2024-06-08 19:28:05 -04:00
orignal
4178ac8eac select newest introducers to publish 2024-06-08 16:08:32 -04:00
orignal
6a590bf970 use std::mt19937 instead rand() 2024-06-07 22:10:52 -04:00
orignal
2f847d62bb fixed typo 2024-06-07 13:35:37 -04:00
orignal
df6d48dbae request only not found routers from introducers 2024-06-07 13:29:51 -04:00
orignal
bacce7dc60 fixed introducer's index 2024-06-06 16:13:30 -04:00
orignal
b3314380cc don't use expired introducer even if we a session with it 2024-06-06 14:19:30 -04:00
orignal
d4eea61b82 use mt19937 instead rand 2024-06-05 15:08:51 -04:00
orignal
a1995c13cd flood to 2 next day closest floodfills before UTC midnight 2024-06-04 12:45:35 -04:00
orignal
bc8adf1433 move unsent I2NP messages to new session if replaced 2024-06-01 20:02:04 -04:00
orignal
a1322d4667 move unsent I2NP messages to new session if replaced 2024-06-01 17:46:18 -04:00
orignal
4100249313 removed bootstrap from floodfill. Removed requested destinations mutex 2024-05-31 21:11:47 -04:00
orignal
acbd3f897b fixed race condition between local buffer creation and sending it through the transports 2024-05-26 15:33:37 -04:00
orignal
7dc5a04b8d update timestamp for non-reachable router 2024-05-26 11:06:39 -04:00
orignal
03635f4444 publish through tunnels in case of restricted routes 2024-05-26 10:55:19 -04:00
orignal
0fae04f96a update local RouterInfo timestamp by timer even in hidden mode 2024-05-26 10:21:26 -04:00
orignal
bb531a878d request newly discovered routers with random intervals after exploratory 2024-05-25 15:17:09 -04:00
orignal
0f7db8e418 list of request callbacks 2024-05-24 21:49:39 -04:00
orignal
9a724b2af9 separate timer for netdb requests cleanup 2024-05-23 14:27:39 -04:00
orignal
f4ea6138e8 removed non longer used mutex 2024-05-23 13:36:29 -04:00
orignal
e74272781f moved exploratory to netdb requests thread 2024-05-22 18:29:40 -04:00
orignal
b75e418879 request destination in netdb requests thread 2024-05-22 13:43:00 -04:00
orignal
927123188c handle onDrop for request message in nedb requests thread 2024-05-22 12:30:01 -04:00
orignal
c00eb8cf44 handle requests completions in netdb requests thread 2024-05-22 10:07:01 -04:00
orignal
265bb8b779 handle DatabaseSearchReply in netdb requests thread 2024-05-21 22:19:42 -04:00
orignal
e3be409945 moved netdb requests to separate thread 2024-05-21 21:25:19 -04:00
orignal
39e16824b9 reset routing path if duplicated SYN received 2024-05-17 19:19:17 -04:00
orignal
285e693a4e fixed deadlock 2024-05-17 19:07:51 -04:00
orignal
940628bf36 update LeaseSet if inbond tunnel failed 2024-05-17 17:35:16 -04:00
orignal
b5994e058a increment num attempts if no reply tunnel specified 2024-05-15 14:12:57 -04:00
orignal
22dabfd79e use unordered_map for excluded routers. don't request to self 2024-05-15 13:31:31 -04:00
orignal
0e41c3fa36 resend more interval variance 2024-05-15 11:57:14 -04:00
orignal
124698854f skip resent recently sessions during resend 2024-05-14 18:17:47 -04:00
orignal
f5b823a712 common code for sending netdb lookup 2024-05-13 14:45:41 -04:00
r4sas
6921c8391e
[FS] boost 1.85.0 support
Signed-off-by: r4sas <r4sas@i2pmail.org>
2024-05-12 23:58:05 +00:00
orignal
9d38facf3b 2.52.0 2024-05-11 07:15:28 -04:00
orignal
b98b3a87b0 fixed race codition between RouterInfo's buffer persist and update 2024-05-08 19:09:03 -04:00
orignal
425ef2cfe5 persist routers in separate thread 2024-05-08 16:19:00 -04:00
orignal
c454685605 exclude addresses with wrong keys 2024-05-07 18:38:00 -04:00
orignal
c98926abf2 use mt19937 instead rand() 2024-05-07 13:01:27 -04:00
orignal
7aacc97351 initialize requests before reseeds 2024-05-07 11:58:17 -04:00
orignal
c49e17ad40 use timestamp to reset rng 2024-05-07 11:53:18 -04:00
orignal
296b721929 shared_ptr for NetdbRequests 2024-05-06 18:23:20 -04:00
orignal
d0cf385f4b memory pool for requested destination. Reduced request attaempts to 5 2024-05-05 11:24:44 -04:00
orignal
b91f5a7430 fixed race condition on stop 2024-05-03 20:38:57 -04:00
orignal
4d8431907d use std::sample for exploratory selection if C++17 2024-05-03 19:09:31 -04:00
orignal
b0cf5130a2 don't try another flloofill if request already exists 2024-05-03 13:34:11 -04:00
orignal
396aa6944d cache complete request for a while and not send the same request again 2024-05-03 13:00:30 -04:00
orignal
8a20d3219b don't build exploratory selection on each request 2024-05-03 08:54:55 -04:00
orignal
13a746162a reduce exploratory selection size 2024-05-02 21:38:51 -04:00
orignal
7e5370fbe5 check for excluded routers during exploratory 2024-05-02 19:55:53 -04:00
orignal
ec59308fad return up to 16 hash in expolatory reply 2024-05-02 19:16:48 -04:00
orignal
5ed76b997c log initial destination request 2024-05-02 13:17:15 -04:00
orignal
535fbdb4c9 don't check exporatory too often 2024-05-01 15:57:04 -04:00
orignal
034332a0ef changed minimal exploratory interval to 55 seconds. added variance 2024-05-01 14:10:34 -04:00
orignal
a1eac6f28e drop unsolicited database serach replies 2024-05-01 13:40:01 -04:00
orignal
ba22a940f1 30 seconds timeout for exploratory requests 2024-05-01 12:08:47 -04:00
orignal
8439f6dc57 don't reply with close than us only floodfills for lookup 2024-05-01 09:48:34 -04:00
orignal
a21bec0ed8 check if router if real only if tunnel build rate is low and router's profile is presented when handle exploratory request 2024-04-30 14:16:05 -04:00
orignal
5adbc2c3fe don't stop lookup if number of attempts < 3 2024-04-30 12:52:00 -04:00
orignal
cdfdfc9e24 don't manage netdb is transports are not running 2024-04-30 07:51:46 -04:00
orignal
62d279e1b0 don't return routers with 'f' cap to exploratory request 2024-04-29 15:05:47 -04:00
orignal
a1fcd8af39 don't accept too old RouterInfo 2024-04-29 10:07:47 -04:00
orignal
8c6c954ea2 enable previously disabled floodfill 2024-04-28 11:23:35 -04:00
orignal
77bb7432bc insert previously ecluded floodfill back when connected 2024-04-28 11:16:59 -04:00
orignal
720ffa8a31 move traverse thrugh profiles files to deleting thread 2024-04-28 08:05:19 -04:00
orignal
733a4a2869 moved save/delete profile disk oprations to separate threads 2024-04-27 16:00:43 -04:00
orignal
648a884a18 use copy of excluded peers 2024-04-27 08:38:43 -04:00
orignal
8fe989050e use share_ptr to store peers 2024-04-27 08:18:49 -04:00
orignal
bb6212ccc1 fixed typo 2024-04-26 18:11:05 -04:00
orignal
5f39f65540 mutex for request's excluded peers 2024-04-26 15:35:32 -04:00
orignal
146b3f52c0 check if pool is ready before sending next request 2024-04-26 13:48:44 -04:00
orignal
cc75ccd070 don't manage requests if exploratory pool is not ready. use monotonic timer and milliseconds 2024-04-26 12:43:48 -04:00
orignal
0ddc514221 don't send next request if requested destination is over 2024-04-25 18:52:10 -04:00
Vort
6592fab41c manage netDb requests more frequently 2024-04-24 16:44:24 +03:00
orignal
02895d4cf5 respond with confirmied router to exploratory lookup 2024-04-23 18:30:56 -04:00
orignal
8b7941c4ce fixed typo 2024-04-23 18:21:25 -04:00
orignal
de673464d1 don't try to connect directy by SSU2 to unnconfirmed router if direct NTCP2 is presented 2024-04-23 11:40:11 -04:00
orignal
6ce2c30522 build client tunnels through confimed routers only if low rate 2024-04-22 13:03:59 -04:00
orignal
c5a1e8cac8 give preference to direct connection 2024-04-19 19:12:29 -04:00
orignal
f67c38d8d2 fixed typo 2024-04-18 18:06:24 -04:00
orignal
1f1a3270f7 fixed IsPublished for ipv6 2024-04-15 09:26:30 -04:00
orignal
ffee29272f avoid two firewalled routers in the row 2024-04-14 20:09:06 -04:00
orignal
26fac94d05 delete unused varibale 2024-04-08 19:24:44 -04:00
orignal
9a30068ae5 don't compare OBEP hash twice to check if it's a fresh tunnel 2024-04-08 19:00:02 -04:00
Vort
b2e21a4f12 increase maximum stream resend attempts to 9 2024-04-08 12:35:50 +03:00
Vort
57e46ba0cf reset stream RTO if outbound tunnel was changed 2024-04-07 21:24:56 +03:00
Vort
df3dc1f574 change tunnels during stream resend attempts 5 and 6 2024-04-07 17:30:19 +03:00
r4sas
1b5f67e185
[FS] misc: bump year
Signed-off-by: r4sas <r4sas@i2pmail.org>
2024-04-06 20:38:58 +00:00
orignal
c49dd712de 2.51.0 2024-04-06 08:53:54 -04:00
orignal
4f1cb74f75 request choking delay if too many NACKs. Drop window size to 1 if choking delay received 2024-04-02 18:49:16 -04:00
orignal
75df8d3c7b drop ack Through to last packet if Number of NACKs exceeds 255 2024-04-02 11:30:38 -04:00
orignal
85be76b01a check if LeaseSet was submitted recently. Fixed typo 2024-04-01 08:41:58 -04:00
Vort
ac9d92c681 select maximum SSU2 queue size depending on RTT value 2024-03-26 10:18:56 +02:00
Vort
a703d31893 don't double initial RTO 2024-03-19 10:48:42 +02:00
Vort
4f8f3a386f restart stream resend timer after updating initial RTO 2024-03-19 09:21:57 +02:00
Vort
83f0b9c041 extract single RTT sample from stream ACK 2024-03-19 09:21:43 +02:00
Vort
cf77be0eeb add lower limit for stream RTO 2024-03-19 06:37:21 +02:00
Vort
e7ff15c573 exclude resent stream packets from RTT calculations 2024-03-16 20:55:49 +02:00
orignal
161ff3579b don't delete new session with same router hash from sessions-by-hash table 2024-03-15 20:12:47 -04:00
orignal
f2085ecc8d fixed warning 2024-03-15 19:17:25 -04:00
Vort
d74033dd2b tune RTT calculations 2024-03-15 09:06:33 +02:00
Vort
0236769134 lower SSU2 resend traffic spikes 2024-03-14 19:41:16 +02:00
orignal
530a078535 don't request temination if session was not established 2024-03-13 13:56:10 -04:00
Vort
08cc256c54 fix typo in message expiration check 2024-03-13 16:41:01 +02:00
orignal
6432963294
Merge pull request #2037 from vovasty/fs_ios_simulator_fix
fix HashedStorage::Init exceptions in ios simulator.
2024-03-11 14:55:16 -04:00
Vlad Solomenchuk
59beb5e4e4 fix TARGET_OS_SIMULATOR check 2024-03-11 11:29:41 -07:00
Vort
2d06c0cbe6 add expiration for messages in SSU2 send queue 2024-03-09 19:09:05 +02:00
Vlad Solomenchuk
51446f0324 fix FS::HashedStorage::Init exceptions in ios simulator. 2024-03-08 10:23:51 -08:00
orignal
66d0b7aec4 correct publication verification for encrypted LeaseSet 2024-03-07 10:25:10 -05:00
orignal
92b49fb969 clear excluded floodfills after successive publishing 2024-03-06 21:01:17 -05:00
orignal
17dd5c1285 publish encrypted leaset on floodfill closest to store hash 2024-03-06 18:36:01 -05:00
Vort
3ceb64db2e 1. Use EWMA for stream RTT estimation;
2. Drop window size by 10% instead of 50% in case of resend.

Change is based on code by onon.
2024-03-06 15:06:04 +02:00
orignal
bb702700f7 don't check session for single tag 2024-03-06 07:17:59 -05:00