// 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.
// 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
};
// 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];
};
+// 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
};
-// 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;
};
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
};
-// 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