]> code.citadel.org Git - citadel.git/blobdiff - citadel/server/server.h
Assert that eMessageText MUST be serialized last.
[citadel.git] / citadel / server / server.h
index 4ded3617956a49714da533af39c222d6d857b1d4..8d1f7d0ff3bbf99c93e9bfa5895d407dc53e286b 100644 (file)
@@ -1,6 +1,6 @@
 // Data types for the Citadel Server
 //
-// Copyright (c) 1987-2023 by the citadel.org team
+// Copyright (c) 1987-2024 by the citadel.org team
 //
 // This program is open source software.  Use, duplication, or disclosure
 // is subject to the terms of the GNU General Public License, version 3.
@@ -68,8 +68,15 @@ struct ExpressMessage {
 
 // Row being stored or fetched in the database
 struct cdbdata {
-       size_t len;
-       char *ptr;
+       size_t len;                     // size of datum pointed to by ptr
+       char *ptr;                      // datum
+};
+
+
+// Row being fetched from the database, both key and value are returned
+struct cdbkeyval {
+       struct cdbdata key;             // size and pointer to key
+       struct cdbdata val;             // size and pointer to value
 };
 
 
@@ -77,9 +84,9 @@ struct cdbdata {
 // NOTE: if you add fields to this, you have to also write export/import code in server/modules/migrate/serv_migrate.c
 // NOTE: if you add fields to this, you have to also write conversion code in utils/ctdl3264/*
 struct visit {
-       long v_roomnum;
-       long v_roomgen;
-       long v_usernum;
+       long v_roomnum;         //
+       long v_roomgen;         // The first three fields , sizeof(long)*3 , are the index format.
+       long v_usernum;         //
        long v_lastseen;
        unsigned v_flags;
        char v_seen[SIZ];
@@ -88,6 +95,14 @@ struct visit {
 };
 
 
+// This is the db index format for "visit" records, which describe the relationship between one user and one room.
+struct visit_index {
+       long iRoomID;
+       long iRoomGen;
+       long iUserID;
+};
+
+
 // Supplementary data for a message on disk
 // These are kept separate from the message itself for one of two reasons:
 // 1. Either their values may change at some point after initial save, or
@@ -112,17 +127,10 @@ struct arcq {
 };
 
 
-// Serialization routines use this struct to return a pointer and a length
-struct ser_ret {
-       size_t len;
-       unsigned char *ser;
-};
-
-
 // The S_USETABLE database is used in several modules now, so we define its format here.
 struct UseTable {
-       char ut_msgid[SIZ];
-       time_t ut_timestamp;
+       int hash;
+       time_t timestamp;
 };
 
 
@@ -135,8 +143,8 @@ struct ctdluser {                   // User record
        uid_t uid;                      // Associate with a unix account?
        char password[32];              // password
        unsigned flags;                 // See US_ flags below
-       long timescalled;               // Total number of logins
-       long posted;                    // Number of messages ever submitted
+       long unused1;
+       long unused2;
        cit_uint8_t axlevel;            // Access level
        long usernum;                   // User number (never recycled)
        time_t lastcall;                // Date/time of most recent login
@@ -210,12 +218,4 @@ struct CtdlCompressHeader {
 };
 
 
-// This is the db index format for "visit" records, which describe the relationship between one user and one room.
-struct visit_index {
-       long iRoomID;
-       long iRoomGen;
-       long iUserID;
-};
-
-
 #endif // SERVER_H