You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm running into issues with building a tcp reverse proxy server that services multiple clients. If one of the clients disconnects without properly terminating the session, the I2PListener is unable to accept new incoming connections. As long as all clients disconnect appropriately, the server will be able to accept new connections, but the moment a client disconnects without properly terminating the connection, further calls to accept will return the following error
DEBUG 2022-04-12T01:39:26Z: i2p::sam: -> STREAM ACCEPT ID=Fb4cqmgbQwofVMYg SILENT=false
DEBUG 2022-04-12T01:39:26Z: i2p::sam: <- STREAM STATUS RESULT=INVALID_ID MESSAGE="STREAM SESSION ID Fb...wofVMYg does not exist"
ERROR 2022-04-12T01:39:26Z: server::reverse_proxy::ip: failed to accept incoming connection Error {
inner:
Invalid stream id: STREAM SESSION ID Fb...wofVMYg does not exist,
}
Possible Causes
I've been having this issue for a few days now, and have been unable to work out why this is happening. The only inclination i have is from https://geti2p.net/en/docs/api/samv3
This makes the session ${nickname} listen for one incoming connection request from the I2P network. ACCEPT is not allowed while there is an active FORWARD on the session.
However further down the documentation notes
As of SAM 3.2, multiple concurrent pending STREAM ACCEPTs are allowed on the same session ID (even with the same port). Prior to 3.2, concurrent accepts would fail with ALREADY_ACCEPTING.
So I feel like accept should still work.
Reproduction Steps
$> git clone https://github.com/bonedaddy/b0n3r.git
$>cd b0n3r && make build
$> ./boner-cli config new # fill out server settings as needed
$> ./boner-cli utils gen-dest --dest-name <your-dest-name># generates a destination and stores the information in the config file
Then update your config file with tunnel settings such as this:
Now start a test tcp socket echo server in one terminal:
$> ./boner-cli server tcp-echo --listen-ip 127.0.0.1:34430
In another terminal start up the tcp reverse proxy server using the previous tunnel and destination configuration names, which forwards requests to the tcp echo server
Once the captcha has been solved and the client is authenticated, leave the terminals running for a bit (seems to take maybe 10 -> 15 minutes) and one of the clients will disconnect and the errors start happenign
The text was updated successfully, but these errors were encountered:
bonedaddy
changed the title
Difficulties With Multi-Client Server Processes
I2pListener Fails To Accept Additional Streams If A Client Disconnects
Apr 12, 2022
Overview
I'm running into issues with building a tcp reverse proxy server that services multiple clients. If one of the clients disconnects without properly terminating the session, the
I2PListener
is unable to accept new incoming connections. As long as all clients disconnect appropriately, the server will be able to accept new connections, but the moment a client disconnects without properly terminating the connection, further calls toaccept
will return the following errorPossible Causes
I've been having this issue for a few days now, and have been unable to work out why this is happening. The only inclination i have is from https://geti2p.net/en/docs/api/samv3
However further down the documentation notes
So I feel like
accept
should still work.Reproduction Steps
Then update your config file with tunnel settings such as this:
Now start a test tcp socket echo server in one terminal:
$> ./boner-cli server tcp-echo --listen-ip 127.0.0.1:34430
In another terminal start up the tcp reverse proxy server using the previous tunnel and destination configuration names, which forwards requests to the tcp echo server
Now start the example client which authenticates with the reverse proxy server and solves the VDF captcha (may take upwards of 1->2 minutes).
Once the captcha has been solved and the client is authenticated, leave the terminals running for a bit (seems to take maybe 10 -> 15 minutes) and one of the clients will disconnect and the errors start happenign
The text was updated successfully, but these errors were encountered: