hack.txt for Citadel/UX
- written by Art Cancro (ajc@uncnsrd.mt-kisco.ny.us)
+ (some of this stuff is *very* out of date.)
Much of this document is borrowed from the original hack.doc from
Citadel-CP/M and Citadel-86, because many of the concepts are the same. Hats
BYTE Mnemonic Comments
A Author Name of originator of message.
-B Phone number The dialup number of the system this message
- originated on. This is optional, and is only
- defined for helping implement C86Net gateways.
D Destination Contains name of the system this message should
be sent to, for mail routing (private mail only).
-G Gateway domain This field is provided solely for the implementation
- of C86Net gateways, and holds the C86Net domain of
- the system this message originated on. Unless you're
- implementing such a gateway, there's no need to even
- bother with this field.
+E Extended ID A persistent alphanumeric Message ID used for
+ network replication. When a message arrives that
+ contains an Extended ID, any existing messages which
+ contain the same Extended ID and are *older* than this
+ message should be deleted. If there exist any messages
+ with the same Extended ID that are *newer*, then this
+ message should be dropped.
+F rFc822 address For Internet mail, this is the delivery address of the
+ message author.
H HumanNodeName Human-readable name of system message originated on.
I Original ID A 32-bit integer containing the message ID on the
system the message *originated* on.
network. Usually means that the message isn't really
a message, but rather some other network function:
-> "S" followed by "FILE" (followed by a null, of
- course) means that the message text is actually an
- IGnet/Open file transfer.
+ course) means that the message text is actually an
+ IGnet/Open file transfer.
+ -> "S" followed by "CANCEL" means that this message
+ should be deleted from the local message base once
+ it has been replicated to all network systems.
T Date/Time A 32-bit integer containing the date and time of
the message in standard UNIX format (the number
of seconds since January 1, 1970 GMT).
cycling under control.
(Uncoincidentally) the format used to transmit messages for networking
-purposes is precisely that used on disk, except that there may be any amount
-of garbage between the null ending a message and the <FF> starting the next
-one. This allows greater compatibility if slight problems crop up. The current
-distribution includes netproc.c, which is basically a database replicator;
+purposes is precisely that used on disk, serialized. The current
+distribution includes serv_network.c, which is basically a database replicator;
please see network.txt on its operation and functionality (if any).
Portability issues
- At this point, all hardware-dependent stuff has been removed from the
-system. On the server side, most of the OS-dependent stuff has been isolated
-into the sysdep.c source module. The server should compile on any POSIX
-compliant system with a full pthreads implementation and TCP/IP support. In
-the future, we may try to port it to non-POSIX systems as well.
+ Citadel/UX is 64-bit clean, architecture-independent, and Year 2000
+compliant. The software should compile on any POSIX compliant system with
+a full pthreads implementation and TCP/IP support. In the future we may
+try to port it to non-POSIX systems as well.
On the client side, it's also POSIX compliant. The client even seems to
-build ok on non-POSIX systems with porting libraries (such as the Cygnus
-Win32 stuff).
+build ok on non-POSIX systems with porting libraries (such as Cygwin).
"Room" records (quickroom)