Citadel Servers talk to each others using the IGnet Communication. Here are the relevant commands:
This command is used by client software to identify itself as a transport session for Citadel site-to-site networking. It should be called with two arguments: the node name of the calling system, and the “shared secret” password for that connection. If the authentication succeeds, NETP will return OK, otherwise, it returns ERROR.
This command can be used to synchronize the contents of a room on the network. It is only usable by Aides. It accepts one argument: the name of a network node (which must be a valid one).
When NSYN is run, the *entire* contents of the current room will be spooled to the specified node, without regard to whether any of the messages have already undergone network processing. It is up to the receiving node to check for duplicates (the Citadel networker does handle this) and avoid posting them twice.
The command returns OK upon success or ERROR if the user is not an Aide.
Open a network spool file for uploading. The client must have already identified itself as a network session using the NETP command. If the command returns OK, the client may begin transmitting IGnet/Open spool data using a series of WRIT commands. When a UCLS command is issued, the spooled data is entered into the server if the argument to UCLS is 1 or discarded if the argument to UCLS is 0. If the client has not authenticated itself with a NETP command, ERROR+HIGHER_ACCESS_REQUIRED will be returned.
Open a network spool file for downloading. The client must have already identified itself as a network session using the NETP command. If the command returns OK, the client may begin receiving IGnet/Open spool data using a series of READ commands. When a CLOS command is issued, the spooled data is deleted from the server and may not be read again. If the client has not authenticated itself with a NETP command, ERROR+HIGHER_ACCESS_REQUIRED will be returned.
These commands get/set the network configuration for the current room. Aide or Room Aide privileges are required, otherwise an ERROR code is returned. If the command succeeds, LISTING_FOLLOWS or SEND_LISTING is returned. The network configuration for a specific room includes neighbor nodes with whom the room is shared, and mailing list recipients. The format of the network configuration is described in the file “netconfigs.txt”.