]> code.citadel.org Git - citadel.git/blobdiff - citadel/techdoc/hack.txt
* Added a new message function hook type EVT_SMTPSCAN which permits modules to
[citadel.git] / citadel / techdoc / hack.txt
index 4028ccecc9e166d1195cb387fda811a724819c2f..af5ce2cd13742ad82f9afa470156d3177bb41cc0 100644 (file)
@@ -1,5 +1,5 @@
  hack.txt for Citadel/UX
- (possibly a little out of date)
+ (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
@@ -78,9 +78,6 @@ all software should be written to IGNORE fields not currently defined.
 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).
 E      Extended ID     A persistent alphanumeric Message ID used for
@@ -90,13 +87,8 @@ E    Extended ID     A persistent alphanumeric Message ID used for
                        message should be deleted.  If there exist any messages
                        with the same Extended ID that are *newer*, then this
                        message should be dropped.
-F      rFc821 address  For Internet mail, this is the delivery address of the
+F      rFc822 address  For Internet mail, this is the delivery address of the
                        message author.
-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.
 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.
@@ -125,6 +117,11 @@ T  Date/Time       A 32-bit integer containing the date and time of
 U       Subject         Optional.  Developers may choose whether they wish to
                         generate or display subject fields.  Citadel/UX does
                         not generate them, but it does print them when found.
+0      Error           This field is typically never found in a message on
+                       disk or in transit.  Message scanning modules are
+                       expected to fill in this field when rejecting a message
+                       with an explanation as to what happened (virus found,
+                       message looks like spam, etc.)
   
                        EXAMPLE
 
@@ -178,23 +175,19 @@ The above discussion should make the function of the fields reasonably clear:
     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)