forked from I2P_Developers/i2p.www
SAM: Simplify list of 3.2 changes since the details are now in the main part of the spec
This commit is contained in:
@ -54,56 +54,48 @@ Version 3.1 was introduced in I2P release 0.9.14.
|
||||
<h3>Version 3.2 Changes</h3>
|
||||
<p>
|
||||
Version 3.2 was introduced in I2P release 0.9.24.
|
||||
</p>
|
||||
|
||||
<h4>I2CP Port and Protocol Support</h4>
|
||||
<ul>
|
||||
<li>SESSION CREATE now supports options FROM_PORT=nnnn and TO_PORT=nnnn to set default I2P ports
|
||||
<li>SESSION CREATE STYLE=RAW now supports option PROTOCOL=nnn to set default I2P protocol (18 otherwise)
|
||||
<li>STREAM CONNECT, DATAGRAM SEND, and RAW SEND now support new options FROM_PORT=nnnn and TO_PORT=nnnn
|
||||
to override default I2P ports for that connection
|
||||
<li>RAW SEND now supports option PROTOCOL=nnn to override default I2P RAW protocol value (18)
|
||||
<li>SESSION CREATE options FROM_PORT and TO_PORT
|
||||
<li>SESSION CREATE STYLE=RAW option PROTOCOL
|
||||
<li>STREAM CONNECT, DATAGRAM SEND, and RAW SEND options FROM_PORT and TO_PORT
|
||||
<li>RAW SEND option PROTOCOL
|
||||
<li>DATAGRAM RECEIVED, RAW RECEIVED, and forwarded or received streams and repliable datagrams,
|
||||
now appends to the first line is FROM_PORT=nnnn TO_PORT=nnnn to indicate I2P ports
|
||||
<li>For a RAW session forwarded to an external port, if the option HEADER=true is provided,
|
||||
the forwarded raw datagram will be prepended with a line containing PROTOCOL=nnn FROM_PORT=nnnn TO_PORT=nnnn
|
||||
The line ends with \n.
|
||||
includes FROM_PORT and TO_PORT
|
||||
<li>RAW session option HEADER=true will cause
|
||||
the forwarded raw datagrams to be prepended with a line containing PROTOCOL=nnn FROM_PORT=nnnn TO_PORT=nnnn
|
||||
<li>The first line of datagrams sent through port 7655 may now start with any 3.x version
|
||||
<li>The first line of datagrams sent through port 7655 may have, after the destination,
|
||||
any of the options FROM_PORT=nnnn TO_PORT=nnnn PROTOCOL=nnn
|
||||
<li>RAW RECEIVED now appends to the first line PROTOCOL=nnn to indicate I2P protocol
|
||||
<li>Client and server may now send: PING [arbitrary text] on the control port,
|
||||
with the response:
|
||||
PONG [arbitrary text from the ping], to be used for control socket keepalive.
|
||||
Either side may close the session and socket if no response is received in a reasonable time, implementation dependent.
|
||||
<li>For authorization, client adds USER="xxx" PASSWORD="yyy" to the HELLO parameters.
|
||||
Double quotes for user and password are recommended but not required.
|
||||
A double quote inside a user or password must be escaped with a backslash.
|
||||
On failure the server will reply with an I2P_ERROR and a message.
|
||||
<li>(optional feature) Authorization configuration with the AUTH command.
|
||||
A SAM server may implement these commands to facilite persistent storage of credentials.
|
||||
<ul>
|
||||
<li>AUTH ENABLE enables authorization on subsequent connections
|
||||
<li>AUTH DISABLE disables authorization on subsequent connections
|
||||
<li>AUTH ADD USER="foo" PASSWORD="bar" adds a user/password
|
||||
<li>AUTH REMOVE USER="foo" removes this user
|
||||
</ul>
|
||||
Double quotes for user and password are recommended but not required.
|
||||
A double quote inside a user or password must be escaped with a backslash.
|
||||
On failure the server will reply with an I2P_ERROR and a message.
|
||||
<li>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.
|
||||
<li>The server's control socket may optionally offer SSL/TLS support, as configured on the server and client.
|
||||
Implementations may offer other transport layers as well; this is outside the scope of the protocol definition.
|
||||
<li>For STREAM FORWARD, client may add SSL=true to use an SSL socket
|
||||
<li>New commands QUIT, STOP and EXIT will close the session and socket. Implementation is optional,
|
||||
for ease in testing via telnet.
|
||||
<li>The first line of datagrams sent through port 7655 may contain
|
||||
any of the options FROM_PORT, TO_PORT, PROTOCOL
|
||||
<li>RAW RECEIVED includes PROTOCOL=nnn
|
||||
</ul>
|
||||
|
||||
<h4>SSL and Authentication</h4>
|
||||
<ul>
|
||||
<li>USER/PASSWORD in the HELLO parameters for authorization. See below.
|
||||
<li>Optional authorization configuration with the AUTH command. See below.
|
||||
<li>Optional SSL/TLS support on the control socket
|
||||
<li>STREAM FORWARD option SSL=true
|
||||
</ul>
|
||||
|
||||
<h4>Multithreading</h4>
|
||||
<ul>
|
||||
<li>Concurrent pending STREAM ACCEPTs are allowed on the same session ID.
|
||||
</ul>
|
||||
|
||||
<h4>Command Line Parsing and Keepalive</h4>
|
||||
<ul>
|
||||
<li>Optional commands QUIT, STOP and EXIT to close the session and socket. See below.
|
||||
<li>Command parsing will properly handle UTF-8
|
||||
<li>Command parsing reliably handles whitespace inside quotes
|
||||
<li>A backslash '\' may escape quotes on the command line
|
||||
<li>It is recommended but not required that the server map commands to upper case, for ease in testing via telnet.
|
||||
Do not map keys to upper case, as this would corrupt I2CP options.
|
||||
<li>Recommended that the server map commands to upper case, for ease in testing via telnet.
|
||||
<li>Empty option values such as PROTOCOL or PROTOCOL= may be allowed, implementation dependent.
|
||||
<li>PING/PONG for keepalive. See below.
|
||||
<li>Servers may implement timeouts for the HELLO or subsequent commands, implementation dependent.
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user