Commits

Anonymous committed effa508

Clarify connection setup.

Comments (0)

Files changed (1)

doc/technical/ts6-protocol.txt

 
 service: client with umode +S. This implies that it is on a services server.
 
+connection setup:
+The initiator sends the PASS, CAPAB and SERVER messages. Upon receiving the
+SERVER, the listener will check the information, and if it is valid, it will
+send its own PASS, CAPAB and SERVER messages, followed by SVINFO and the burst.
+Upon receiving the SERVER, the initiator will send SVINFO and the burst. If
+ziplinks are used, SVINFO is the first compressed message.
+
+The burst consists of SID and SERVER messages for all known servers, UID or
+EUID messages for all known users (possibly followed by ENCAP REALHOST, ENCAP
+LOGIN and/or AWAY) and SJOIN messages for all known channels (possibly followed
+by BMASK and/or TB).
+
 user modes:
 (all)
 +D (deaf: does not receive channel messages)
 propagation: none
 parameters: space separated capability list
 
-Sends capabilities of the server. This must include QS and ENCAP.
+Sends capabilities of the server. This must include QS and ENCAP. It is also
+strongly recommended to include EX, CHW, IE and KNOCK, and for charybdis TS6
+also SAVE and EUID. For use with services, SERVICES and RSFNC are strongly
+recommended.
+
+The capabilities may depend on the configuration for the server they are sent
+to.
 
 CHGHOST
 charybdis TS6
 
 PING
 source: any
-parameters: origin, destination server
+parameters: origin, opt. destination server
 
-Sends a PING to the destination server, which will reply with a PONG.
+Sends a PING to the destination server, which will reply with a PONG. If the
+destination server parameter is not present, the server receiving the message
+must reply.
 
-The origin field is not used in the server protocol.
+The origin field is not used in the server protocol. It is sent as the name
+(not UID/SID) of the source.
 
 Remote PINGs are used for end-of-burst detection, therefore all servers must
 implement them.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.