X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fcitadel.h;h=881faac63230676a2046a9c6e562349a6be81d9c;hb=51834f3a61644b1f6f5a5f528cf36fbfbc73b2de;hp=87224168af6d7d86cacb5ea62ea0e17f5c44c36b;hpb=7974c7b863e396a87e1479525a10db9b9cf93ca9;p=citadel.git diff --git a/citadel/citadel.h b/citadel/citadel.h index 87224168a..881faac63 100644 --- a/citadel/citadel.h +++ b/citadel/citadel.h @@ -1,7 +1,7 @@ /* * Main Citadel header file * - * Copyright (c) 1987-2012 by the citadel.org team + * Copyright (c) 1987-2019 by the citadel.org team * * This program is open source software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3. @@ -35,23 +35,11 @@ extern "C" { */ #define CITADEL PACKAGE_STRING -/* - * REV_LEVEL is the current version number (multiplied by 100 to avoid having - * to fiddle with the decimal). REV_MIN is the oldest version of Citadel - * whose data files are compatible with the current version. If the data files - * are older than REV_MIN, none of the programs will work until the setup - * program is run again to bring things up to date. EXPORT_REV_MIN is the - * oldest version of Citadel whose export files we can read. The latter is - * usually more strict because you're not really supposed to dump/load and - * upgrade at the same time. - */ -#define REV_LEVEL 813 /* This version */ -#define REV_MIN 591 /* Oldest compatible database */ -#define EXPORT_REV_MIN 760 /* Oldest compatible export files */ -#define LIBCITADEL_MIN 812 /* Minimum required version of libcitadel */ - -#define SERVER_TYPE 0 /* zero for stock Citadel; other developers please - obtain SERVER_TYPE codes for your implementations */ +#define REV_LEVEL 927 // This version +#define REV_MIN 591 // Oldest compatible database +#define EXPORT_REV_MIN 760 // Oldest compatible export files +#define LIBCITADEL_MIN 922 // Minimum required version of libcitadel +#define SERVER_TYPE 0 // zero for stock Citadel; other developers please obtain SERVER_TYPE codes for your implementations #ifdef LIBCITADEL_VERSION_NUMBER #if LIBCITADEL_VERSION_NUMBER < LIBCITADEL_MIN @@ -61,11 +49,9 @@ extern "C" { /* Various length constants */ -#define ROOMNAMELEN 128 /* The size of a roomname string */ - -#define USERNAME_SIZE 64 /* The size of a username string */ -#define MAX_EDITORS 5 /* # of external editors supported */ - /* MUST be at least 1 */ +#define ROOMNAMELEN 128 /* The size of a roomname string */ +#define USERNAME_SIZE 64 /* The size of a username string */ +#define MAX_EDITORS 5 /* number of external editors supported ; must be at least 1 */ /* * Message expiration policy stuff @@ -76,10 +62,10 @@ struct ExpirePolicy { int expire_value; }; -#define EXPIRE_NEXTLEVEL 0 /* Inherit expiration policy */ -#define EXPIRE_MANUAL 1 /* Don't expire messages at all */ -#define EXPIRE_NUMMSGS 2 /* Keep only latest n messages */ -#define EXPIRE_AGE 3 /* Expire messages after n days */ +#define EXPIRE_NEXTLEVEL 0 // Inherit expiration policy +#define EXPIRE_MANUAL 1 // Don't expire messages at all +#define EXPIRE_NUMMSGS 2 // Keep only latest n messages +#define EXPIRE_AGE 3 // Expire messages after n days /* @@ -98,62 +84,54 @@ struct march { int march_access; }; -#define NODENAME config.c_nodename -#define FQDN config.c_fqdn -#define HUMANNODE config.c_humannode -#define PHONENUM config.c_phonenum -#define CTDLUID config.c_ctdluid -#define CREATAIDE config.c_creataide -#define REGISCALL config.c_regiscall -#define TWITDETECT config.c_twitdetect -#define TWITROOM config.c_twitroom -#define RESTRICT_INTERNET config.c_restrict /* * User records. */ typedef struct ctdluser ctdluser; -struct ctdluser { /* User record */ - int version; /* Cit vers. which created this rec */ - 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 */ - cit_uint8_t axlevel; /* Access level */ - long usernum; /* User number (never recycled) */ - time_t lastcall; /* Date/time of most recent login */ - int USuserpurge; /* Purge time (in days) for user */ - char fullname[64]; /* Display name (primary identifier) */ +struct ctdluser { // User record + int version; // Cit vers. which created this rec + 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 + cit_uint8_t axlevel; // Access level + long usernum; // User number (never recycled) + time_t lastcall; // Date/time of most recent login + int USuserpurge; // Purge time (in days) for user + char fullname[64]; // Display name (primary identifier) + long msgnum_bio; // msgnum of user's profile (bio) + long msgnum_pic; // msgnum of user's avatar (photo) + char emailaddrs[512]; // Internet email addresses }; -/* Bits which may appear in CitControl.MMflags. Note that these don't - * necessarily pertain to the message base -- it's just a good place to - * store any global flags. +/* Bits which may appear in MMflags. */ -#define MM_VALID 4 /* New users need validating */ +#define MM_VALID 4 // New users need validating /* * Room records. */ typedef struct ctdlroom ctdlroom; 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 */ - long QRhighest; /* Highest message NUMBER in room */ - time_t QRgen; /* Generation number of room */ - unsigned QRflags; /* See flag values below */ - char QRdirname[15]; /* Directory name, if applicable */ - long QRinfo; /* Info file update relative to msgs*/ - char QRfloor; /* Which floor this room is on */ - time_t QRmtime; /* Date/time of last post */ - struct ExpirePolicy QRep; /* Message expiration policy */ - long QRnumber; /* Globally unique room number */ - char QRorder; /* Sort key for room listing order */ - unsigned QRflags2; /* Additional flags */ - int QRdefaultview; /* How to display the contents */ + char QRname[ROOMNAMELEN]; // Name of room + char QRpasswd[10]; // Only valid if it's a private rm + long QRroomaide; // User number of room aide + long QRhighest; // Highest message NUMBER in room + time_t QRgen; // Generation number of room + unsigned QRflags; // See flag values below + char QRdirname[15]; // Directory name, if applicable + long msgnum_info; // msgnum of room banner (info file) + char QRfloor; // Which floor this room is on + time_t QRmtime; // Date/time of last post + struct ExpirePolicy QRep; // Message expiration policy + long QRnumber; // Globally unique room number + char QRorder; // Sort key for room listing order + unsigned QRflags2; // Additional flags + int QRdefaultview; // How to display the contents + long msgnum_pic; // msgnum of room picture or icon }; /* Private rooms are always flagged with QR_PRIVATE. If neither QR_PASSWORDED @@ -165,14 +143,13 @@ struct ctdlroom { /* * Miscellaneous */ -#define MES_NORMAL 65 /* Normal message */ -#define MES_ANONONLY 66 /* "****" header */ -#define MES_ANONOPT 67 /* "Anonymous" header */ +#define MES_NORMAL 65 // Normal message +#define MES_ANONONLY 66 // "****" header +#define MES_ANONOPT 67 // "Anonymous" header -#define MES_ERROR (-1) /* Can't send message due to bad address */ -#define MES_LOCAL 0 /* Local message, do no network processing */ -#define MES_INTERNET 1 /* Convert msg and send as Internet mail */ -#define MES_IGNET 2 /* Process recipient and send via Cit net */ +#define MES_ERROR (-1) // Can't send message due to bad address +#define MES_LOCAL 0 // Local message, do no network processing +#define MES_INTERNET 1 // Convert msg and send as Internet mail /****************************************************************************/ @@ -181,26 +158,25 @@ struct ctdlroom { */ typedef struct floor floor; struct floor { - unsigned short f_flags; /* flags */ - char f_name[256]; /* name of floor */ - int f_ref_count; /* reference count */ - struct ExpirePolicy f_ep; /* default expiration policy */ + unsigned short f_flags; // flags + char f_name[256]; // name of floor + int f_ref_count; // reference count + struct ExpirePolicy f_ep; // default expiration policy }; -#define F_INUSE 1 /* floor is in use */ +#define F_INUSE 1 // floor is in use /* * Values used internally for function call returns, etc. */ - -#define NEWREGISTER 0 /* new user to register */ -#define REREGISTER 1 /* existing user reregistering */ +#define NEWREGISTER 0 // new user to register +#define REREGISTER 1 // existing user reregistering /* number of items which may be handled by the CONF command */ -#define NUM_CONFIGS 70 +#define NUM_CONFIGS 71 -#define TRACE syslog(LOG_DEBUG, "Checkpoint: %s, %d\n", __FILE__, __LINE__) +#define TRACE syslog(LOG_DEBUG, "\033[31mCheckpoint: %s : %d\033[0m", __FILE__, __LINE__) #ifndef LONG_MAX #define LONG_MAX 2147483647L @@ -209,13 +185,18 @@ struct floor { /* * Authentication modes */ -#define AUTHMODE_NATIVE 0 /* Native (self-contained or "black box") */ -#define AUTHMODE_HOST 1 /* Authenticate against the host OS user database */ -#define AUTHMODE_LDAP 2 /* Authenticate against an LDAP server with RFC 2307 schema */ -#define AUTHMODE_LDAP_AD 3 /* Authenticate against non-standard MS Active Directory LDAP */ +#define AUTHMODE_NATIVE 0 // Native (self-contained or "black box") +#define AUTHMODE_HOST 1 // Authenticate against the host OS user database +#define AUTHMODE_LDAP 2 // Authenticate against an LDAP server with RFC 2307 schema +#define AUTHMODE_LDAP_AD 3 // Authenticate against non-standard MS Active Directory LDAP #ifdef __cplusplus } #endif +#if __GNUC__ >= 8 +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-truncation" +#endif + #endif /* CITADEL_H */