X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fcitadel.h;h=f3ef0ceb0c0426a59fed397846b0209eb8ffd21e;hb=2c441d09e5c799d28510595ef453db91987a640f;hp=92c24fc6c8132ae66fb736226a4a1e02f3382cf5;hpb=b2971ed49d2cfe5128190ec1d5d8c0fa239f0004;p=citadel.git diff --git a/citadel/citadel.h b/citadel/citadel.h index 92c24fc6c..f3ef0ceb0 100644 --- a/citadel/citadel.h +++ b/citadel/citadel.h @@ -1,8 +1,21 @@ /* - * $Id$ - * * Main Citadel header file - * See copyright.txt for copyright information. + * + * Copyright (c) 1987-2010 by the citadel.org team + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* system customizations are in sysconfig.h */ @@ -11,15 +24,6 @@ #define CITADEL_H /* #include uncomment if using dmalloc */ -/* Build Citadel with the calendar service only if the header *and* - * library for libical are both present. - */ -#ifdef HAVE_LIBICAL -#ifdef HAVE_ICAL_H -#define CITADEL_WITH_CALENDAR_SERVICE 1 -#endif -#endif - #include "sysdep.h" #include #include "sysconfig.h" @@ -47,12 +51,19 @@ extern "C" { * usually more strict because you're not really supposed to dump/load and * upgrade at the same time. */ -#define REV_LEVEL 711 /* This version */ +#define REV_LEVEL 801 /* This version */ #define REV_MIN 591 /* Oldest compatible database */ -#define EXPORT_REV_MIN 706 /* Oldest compatible export files */ +#define EXPORT_REV_MIN 760 /* Oldest compatible export files */ +#define LIBCITADEL_MIN 801 /* Minimum required version of libcitadel */ + +#define SERVER_TYPE 0 /* zero for stock Citadel; other developers please + obtain SERVER_TYPE codes for your implementations */ -#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 +#error libcitadel is too old. Please upgrade it before continuing. +#endif +#endif /* Various length constants */ @@ -70,6 +81,7 @@ extern "C" { /* * Message expiration policy stuff */ +typedef struct ExpirePolicy ExpirePolicy; struct ExpirePolicy { /* #include "datadefinitions.h" @@ -91,6 +103,7 @@ struct ExpirePolicy { * fetches from the server. This allows the client to "march" through * relevant rooms without having to ask the server each time where to go next. */ +typedef struct march march; struct march { /* #include "datadefinitions.h" @@ -120,25 +133,24 @@ struct march { /* * User records. */ +typedef struct ctdluser ctdluser; struct ctdluser { /* User record */ /* #include "datadefinitions.h" #include "dtds/user-defs.h" #include "undef_data.h" */ - int version; /* Cit vers. which created this rec */ - uid_t uid; /* Associate with a unix account? */ - 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) */ - cit_uint8_t axlevel; /* Access level */ - long usernum; /* User number (never recycled) */ - time_t lastcall; /* Last time the user called */ - int USuserpurge; /* Purge time (in days) for user */ - char fullname[64]; /* Name for Citadel messages & mail */ - cit_uint8_t USscreenwidth; /* Screen width (for textmode users)*/ - cit_uint8_t USscreenheight; /* Screen height(for textmode users)*/ + 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) */ }; @@ -151,6 +163,7 @@ struct ctdluser { /* User record */ /* * Room records. */ +typedef struct ctdlroom ctdlroom; struct ctdlroom { /* #include "datadefinitions.h" @@ -197,6 +210,7 @@ struct ctdlroom { /* * Floor record. The floor number is implicit in its location in the file. */ +typedef struct floor floor; struct floor { /* #include "datadefinitions.h" @@ -263,26 +277,21 @@ enum { #define IGNETMAP "application/x-citadel-ignet-map" #define FILTERLIST "application/x-citadel-filter-list" #define SIEVECONFIG "application/x-citadel-sieve-config" +#define XMPPMORTUARY "application/x-citadel-xmpp-mortuary" -#define TRACE lprintf(CTDL_DEBUG, "Checkpoint: %s, %d\n", __FILE__, __LINE__) +#define TRACE syslog(LOG_DEBUG, "Checkpoint: %s, %d\n", __FILE__, __LINE__) #ifndef LONG_MAX #define LONG_MAX 2147483647L #endif - /* - * Views + * Authentication modes */ -#define VIEW_BBS 0 /* Bulletin board view */ -#define VIEW_MAILBOX 1 /* Mailbox summary */ -#define VIEW_ADDRESSBOOK 2 /* Address book view */ -#define VIEW_CALENDAR 3 /* Calendar view */ -#define VIEW_TASKS 4 /* Tasks view */ -#define VIEW_NOTES 5 /* Notes view */ -#define VIEW_WIKI 6 /* Wiki view */ -#define VIEW_CALBRIEF 7 /* Brief Calendar view */ -#define VIEW_SIEVE 8 /* Sieve manage rules store */ +#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 }