Server protocol:SINFO command

The SINFO command is used to communicate server feature information.

For users
IRCOps can use the  command to see server feature information.

For server writers
Below is technical documentation for server/services coders:

Syntax


Where:
 * up_since: boottime of the server (UNIX timestamp)
 * protocolversion: see Server protocol:Protocol version.
 * umodes: list of usermodes available on the server
 * chanmodes: list of channel modes available on the server (syntax identical to CHANMODES= in 005)
 * nickchars: nick character set used on the server
 * software name: name of the software on the server

Note that currently there are 6 parameters. In the future it may be extended to be 7, 8 or more, but these new elements will always be inserted BEFORE software name, since software name will always be the last parameter because it may contain spaces.

How to use
Servers NEVER send SINFO information about themselves. The PROTOCTL command is used to convey this information. So you receive information from directly linked servers always via PROTOCTL, and from servers behind that always via SINFO (if supported).

Only for leafs behind you, you may send SINFO information. Such as when the leaf behind you is authenticated and linking in, or a PROTOCTL change at runtime.

As a services developer you will probably never send a SINFO command to any server. But you will still receive them, and can interpret them if you want to.

Purpose
The information received via PROTOCTL and SINFO can be used in a number of ways, not only for displaying purposes.

Module coders
The up_since can be accessed via acptr->serv->boottime and the featureset of a server can be accessed (see src/modules/m_sinfo.c) via acptr->serv->features.xyz, where xyz is (at time of writing) one of: usermodes, chanmodes[], protocol, software and nickchars.