SAM: Simplify list of 3.2 changes since the details are now in the main part of the spec

This commit is contained in:
zzz
2016-01-03 13:20:58 +00:00
parent 96029fd419
commit 516f0dc867

View File

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