/* $Id$ */
-/* Uncomment this if you want to track memory leaks.
- * This incurs some overhead, so don't use it unless you're debugging the code!
- */
-/* #define DEBUG_MEMORY_LEAKS */
-
-/*
- * New format for a message in memory
- */
#ifndef SERVER_H
#define SERVER_H
#ifdef __GNUC__
-#define INLINE inline
+#define INLINE __inline__
#else
#define INLINE
#endif
#include <openssl/ssl.h>
#endif
-#define CTDLMESSAGE_MAGIC 0x159d
+/*
+ * New format for a message in memory
+ */
struct CtdlMessage {
- int cm_magic; /* Self-check */
+ int cm_magic; /* Self-check (NOT SAVED TO DISK) */
char cm_anon_type; /* Anonymous or author-visible */
char cm_format_type; /* Format type */
char *cm_fields[256]; /* Data fields */
unsigned int cm_flags; /* How to handle (NOT SAVED TO DISK) */
};
+#define CTDLMESSAGE_MAGIC 0x159d
#define CM_SKIP_HOOKS 0x01 /* Don't run server-side handlers */
};
/*
- * Static user data symbol types
+ * Static user data symbol types. Server extensions can ask for dynamic
+ * extensions to per-session data, but the symbol ID has to be listed here.
*/
enum {
SYM_DESIRED_SECTION, /* Used by the MIME parser */
SYM_MA_INFO, /* Handles multipart/alternative */
SYM_REPL, /* Used for replication checking */
+ SYM_CIT_ICAL, /* Used by the calendar service */
+ SYM_IMAP, /* Used by the IMAP service */
+ SYM_POP3, /* Used by the POP3 service */
+ SYM_SMTP, /* Used by the SMTP service */
+ SYM_SMTP_RECPS,
+ SYM_SMTP_ROOMS,
+ SYM_VCARD, /* vCard handling requires this */
SYM_MAX
};
int redirect_ssl;
#endif
+ int buffering;
+ char *output_buffer; /* hold output for one big dump */
+ int buffer_len;
+
/* A linked list of all express messages sent to us. */
struct ExpressMessage *FirstExpressMessage;
int disable_exp; /* Set to 1 to disable incoming pages */
/* Values for CitContext.state */
enum {
CON_IDLE, /* This context is doing nothing */
- CON_EXECUTING /* This context is bound to a thread */
+ CON_READY, /* This context is ready-to-run */
+ CON_EXECUTING, /* This context is bound to a thread */
};
S_NTTLIST,
S_DIRECTORY,
S_NETCONFIGS,
+ S_PUBLIC_CLIENTS,
+ S_LDAP,
+ S_FLOORCACHE,
MAX_SEMAPHORES
};
*/
struct UserFunctionHook {
struct UserFunctionHook *next;
- void (*h_function_pointer) (char *username, long usernum);
+ void (*h_function_pointer) (struct ctdluser *usbuf);
int eventtype;
};
extern struct UserFunctionHook *UserHookTable;
#define EVT_PURGEUSER 100 /* Deleting a user */
-#define EVT_OUTPUTMSG 101 /* Outputting a message */
+#define EVT_NEWUSER 102 /* Creating a user */
/*
* MessageFunctionHook extensions are used for hooks which implement handlers
long v_lastseen;
unsigned int v_flags;
char v_seen[SIZ];
+ char v_answered[SIZ];
int v_view;
};
};
-
-/* Built-in debuggable stuff for checking for memory leaks */
-#ifdef DEBUG_MEMORY_LEAKS
-
-#define mallok(howbig) tracked_malloc(howbig, __FILE__, __LINE__)
-#define phree(whichptr) tracked_free(whichptr)
-#define reallok(whichptr,howbig) tracked_realloc(whichptr,howbig)
-#define strdoop(orig) tracked_strdup(orig, __FILE__, __LINE__)
-
-void *tracked_malloc(size_t, char *, int);
-void tracked_free(void *);
-void *tracked_realloc(void *, size_t);
-void dump_tracked(void);
-char *tracked_strdup(const char *, char *, int);
-
-struct TheHeap {
- struct TheHeap *next;
- char h_file[32];
- int h_line;
- void *h_ptr;
-};
-
-extern struct TheHeap *heap;
-
-#else
-
-#define mallok(howbig) malloc(howbig)
-#define phree(whichptr) free(whichptr)
-#define reallok(whichptr,howbig) realloc(whichptr,howbig)
-#define strdoop(orig) strdup(orig)
-
-
-#endif
-
-
/*
* Serialization routines use this struct to return a pointer and a length
*/