SESSION LAYER PROTOCOL FOR CITADEL/UX
- (c) 1995-2000 by Art Cancro et. al. All Rights Reserved
+ (c) 1995-2001 by Art Cancro et. al. All Rights Reserved
INTRODUCTION
what you did, so that your new commands can be added to this document.
The coordinator of the Citadel/UX project is Art Cancro
-<ajc@uncnsrd.mt-kisco.ny.us>.
+<ajc@uncensored.citadel.org>.
CONNECTING TO A SERVER
Citadel/UX offers Citadel BBS service using TCP/IP. It does so via a
multithreaded server listening on a TCP port. Older (4.xx) versions employed
an inetd-based server.
-
- The port number officially assigned to Citadel by the IANA is TCP/504. Since
+
+ The port number officially assigned to Citadel by the IANA is 504/tcp. Since
our session layer assumes a clean, reliable, sequenced connection, the use
of UDP would render the server unstable and unusable, so we stick with TCP.
Unlike protocols such as FTP, all data transfers occur in-band. This means
that the same connection that is used for exchange of client/server
messages, will also be used to transfer data back and forth. (FTP opens a
-separate connection for data transfers.) We do this to allow the server to
-function over transports which can only handle one session at a time (such
-as a dialup connection).
+separate connection for data transfers.) This keeps protocol administration
+straightforward, as it can traverse firewalls without any special protocol
+support on the firewall except for opening the port number.
RESULT CODES
your own.
-> Clients other than your own should still be able to utilize your server,
even if your proprietary extensions aren't supported.
- -> Please contact Art Cancro <ajc@uncnsrd.mt-kisco.ny.us> and obtain a unique
+ -> Please contact Art Cancro <ajc@uncensored.citadel.org> and obtain a unique
server type code, which can be assigned to your server program.
-> If you document what you did in detail, perhaps it can be added to a
future release of the Citadel/UX program, so everyone can enjoy it. Better
The server message contained on the same line with LISTING_FOLLOWS will
contain the name of the system and the name of the directory, such as:
- uncnsrd.mt-kisco.ny.us|/usr/bbs/files/my_room_directory
+ uncensored.citadel.org|/usr/bbs/files/my_room_directory
SLRP (Set Last-message-Read Pointer)
HCHG is a command, usable by any user, that allows a user to change their RWHO
host value. This will mask a client's originating hostname from normal
-users; access level 6 and higher see an entry right underneath the spoofed
-entry listing the actual hostname the user originates from.
+users; access level 6 and higher can see, in an extended wholist, the actual
+hostname the user originates from.
The format of an HCHG command is:
RCHG is a command, usable by any user, that allows a user to change their RWHO
room value. This will mask a client's roomname from normal users; access
-level 6 and higher see an entry right underneath the spoofed entry listing
-the actual room the user is in.
+level 6 and higher can see, in an extended wholist, the actual room the user
+is in.
The format of an RCHG command is:
- SPEX (Set Polict for message EXpiration)
+ SPEX (Set Policy for message EXpiration)
Sets the policy of the current room, floor, or site regarding the automatic
purging (expiration) of messages. See the writeup for the GPEX command for
minutes) for well-behaved clients to voluntarily terminate, and then issue a
TERM command to forcibly disconnect the client (or perhaps a DOWN command, if
you are logging off users for the purpose of shutting down the server).
-
+
+
+ SEEN (set or clear the SEEN flag for a message)
+
+ Beginning with version 5.80, Citadel supports the concept of setting or
+clearing the "seen" flag for each individual message, instead of only allowing
+a "last seen" pointer. In fact, the old semantics are implemented in terms
+of the new semantics. This command requires two arguments: the number of the
+message to be set, and a 1 or 0 to set or clear the "seen" bit.
+
+ This command returns OK, unless the user is not logged in or a usage error
+occurred, in which case it returns ERROR. Please note that no checking is
+done on the supplied data; if the requested message does not exist, the SEEN
+command simply returns OK without doing anything.
+
+
ASYN (ASYNchronous message support)