]> code.citadel.org Git - citadel.git/blobdiff - citadel/techdoc/hack.txt
* Variable names, comments, documentation, etc... removed the acronym 'BBS'
[citadel.git] / citadel / techdoc / hack.txt
index 29ebcd6df681220ff301c890b393c4d38c8c2d17..b85b3c74fb7822463b83283490945f5b5f8e9eb2 100644 (file)
@@ -1,5 +1,5 @@
             ------------------------------------------------------
-             The totally incomplete guide to Citadel/UX internals
+             The totally incomplete guide to Citadel internals
             ------------------------------------------------------
 
  Citadel has evolved quite a bit since its early days, and the data structures
@@ -24,10 +24,10 @@ by Citadel.  Here are some of the tables we keep on disk:
 user name (translated to lower case for indexing purposes).  The records in
 this file look something like this:
 
-struct user {                       /* User record                      */
+struct ctdluser {                       /* User record                      */
         int version;                    /* Cit vers. which created this rec */
         uid_t uid;                      /* Associate with a unix account?   */
-        char password[32];              /* password (for BBS-only users)    */
+        char password[32];              /* password (for Citadel-only users)*/
         unsigned flags;                 /* See US_ flags below              */
         long timescalled;               /* Total number of logins           */
         long posted;                    /* Number of messages posted (ever) */
@@ -66,7 +66,7 @@ information so we set it up dynamically.
 system, public or private or mailbox.  It's indexed by room name (also in
 lower case for easy indexing) and it contains records which look like this:
 
-struct room {
+struct ctdlroom {
         char QRname[ROOMNAMELEN];       /* Name of room                     */
         char QRpasswd[10];              /* Only valid if it's a private rm  */
         long QRroomaide;                /* User number of room aide         */
@@ -239,14 +239,18 @@ all software should be written to IGNORE fields not currently defined.
 BYTE   Mnemonic        Comments
 
 A      Author          Name of originator of message.
+B      Big message     This is a flag which indicates that the message is
+                        big, and Citadel is storing the body in a separate
+                        record.  You will never see this field because the
+                        internal API handles it.
 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
+E      Exclusive 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
+                       contains an Exclusive ID, any existing messages which
+                       contain the same Exclusive 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
+                       with the same Exclusive 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.
@@ -276,7 +280,7 @@ 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).
 U       Subject         Optional.  Developers may choose whether they wish to
-                        generate or display subject fields.  Citadel/UX does
+                        generate or display subject fields.  Citadel 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
@@ -289,14 +293,14 @@ U       Subject         Optional.  Developers may choose whether they wish to
 Let <FF> be a 0xFF byte, and <0> be a null (0x00) byte.  Then a message
 which prints as...
 
-Apr 12, 1988 23:16 From Test User In Network Test> @lifesys (Life BBS)
+Apr 12, 1988 23:16 From Test User In Network Test> @lifesys (Life Central)
 Have a nice day!
 
  might be stored as...
 <FF><40><0>I12345<0>Pneighbor!lifesys!test_user<0>T576918988<0>    (continued)
 -----------|Mesg ID#|--Message Path---------------|--Date------
 
-AThe Test User<0>ONetwork Test<0>Nlifesys<0>HLife BBS<0>MHave a nice day!<0>
+AThe Test User<0>ONetwork Test<0>Nlifesys<0>HLife Central<0>MHave a nice day!<0>
 |-----Author-----|-Room name-----|-nodename-|Human Name-|--Message text-----
 
  Weird things can happen if fields are missing, especially if you use the
@@ -348,7 +352,7 @@ please see network.txt on its operation and functionality (if any).
 
                        Portability issues
  
- Citadel/UX is 64-bit clean, architecture-independent, and Year 2000
+ Citadel 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.