$Log$
+ Revision 608.1 2003/07/15 14:54:09 ajc
+ * Killed off CtdlGetDynamicSymbol() and just put all the symbols in server.h
+
Revision 608.0 2003/07/15 04:12:52 ajc
* THIS IS 6.08
Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
* Initial CVS import
-
-/*
- * Get a dynamic symbol number for per-session user data.
- * This API call should be made only ONCE per symbol per citserver run.
- */
-int CtdlGetDynamicSymbol()
-{
- static unsigned int next_symbol = SYM_MAX;
- return ++next_symbol;
-}
-
/*
void *CtdlGetUserData(unsigned long requested_sym);
void CtdlAllocUserData(unsigned long requested_sym, size_t num_bytes);
void CtdlReallocUserData(unsigned long requested_sym, size_t num_bytes);
-int CtdlGetDynamicSymbol(void);
void do_command_loop(void);
void begin_session(struct CitContext *con);
void citproto_begin_session(void);
icalcomponent *cal;
};
-/* Session-local data for calendaring. */
-long SYM_CIT_ICAL;
-
/*
* Utility function to create a new VCALENDAR component with some of the
char *serv_calendar_init(void)
{
#ifdef CITADEL_WITH_CALENDAR_SERVICE
- SYM_CIT_ICAL = CtdlGetDynamicSymbol();
CtdlRegisterMessageHook(ical_obj_beforesave, EVT_BEFORESAVE);
CtdlRegisterMessageHook(ical_obj_aftersave, EVT_AFTERSAVE);
CtdlRegisterSessionHook(ical_create_room, EVT_LOGIN);
*
*/
-extern long SYM_CIT_ICAL;
-
struct cit_ical {
int avoid_sending_invitations;
};
struct irl **irl;
};
-long SYM_IMAP;
-
/*
* If there is a message ID map in memory, free it
*/
char *serv_imap_init(void)
{
- SYM_IMAP = CtdlGetDynamicSymbol();
CtdlRegisterServiceHook(config.c_imap_port,
NULL,
imap_greeting,
/* $Id$
*/
-extern long SYM_IMAP;
-
void imap_cleanup_function(void);
void imap_greeting(void);
int skipthisline = 0;
int i;
- lprintf(7, "Spooling <%s>\n", room_to_spool);
if (getroom(&CC->room, room_to_spool) != 0) {
lprintf(1, "ERROR: cannot load <%s>\n", room_to_spool);
return;
fp = fopen(filename, "r");
if (fp == NULL) {
- lprintf(7, "Outbound batch processing skipped for <%s>\n",
- CC->room.QRname);
end_critical_section(S_NETCONFIGS);
return;
}
- lprintf(5, "Outbound batch processing started for <%s>\n",
- CC->room.QRname);
+ lprintf(5, "Networking started for <%s>\n", CC->room.QRname);
while (fgets(buf, sizeof buf, fp) != NULL) {
buf[strlen(buf)-1] = 0;
fclose(fp);
}
end_critical_section(S_NETCONFIGS);
-
- lprintf(5, "Outbound batch processing finished for <%s>\n",
- CC->room.QRname);
}
#include "serv_pop3.h"
#include "md5.h"
-long SYM_POP3;
-
/*
* This cleanup function blows away the temporary memory and files used by
char *serv_pop3_init(void)
{
- SYM_POP3 = CtdlGetDynamicSymbol();
CtdlRegisterServiceHook(config.c_pop3_port,
NULL,
pop3_greeting,
#define SMTP_RECPS ((char *)CtdlGetUserData(SYM_SMTP_RECPS))
#define SMTP_ROOMS ((char *)CtdlGetUserData(SYM_SMTP_ROOMS))
-long SYM_SMTP;
-long SYM_SMTP_RECPS;
-long SYM_SMTP_ROOMS;
int run_queue_now = 0; /* Set to 1 to ignore SMTP send retry times */
char *serv_smtp_init(void)
{
- SYM_SMTP = CtdlGetDynamicSymbol();
-
CtdlRegisterServiceHook(config.c_smtp_port, /* On the net... */
NULL,
smtp_greeting,
};
/* Message number symbol used internally by these functions */
-unsigned long SYM_VCARD;
#define VC ((struct vcard_internal_info *)CtdlGetUserData(SYM_VCARD))
char *serv_vcard_init(void)
{
- SYM_VCARD = CtdlGetDynamicSymbol();
CtdlRegisterSessionHook(vcard_session_startup_hook, EVT_START);
CtdlRegisterSessionHook(vcard_session_login_hook, EVT_LOGIN);
CtdlRegisterMessageHook(vcard_upload_beforesave, EVT_BEFORESAVE);
*/
/* #define DEBUG_MEMORY_LEAKS */
-/*
- * New format for a message in memory
- */
#ifndef SERVER_H
#define SERVER_H
#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
};
/* -t specifies where to log trace messages to */
if (!strncmp(argv[a], "-t", 2)) {
- strcpy(tracefile, argv[a]);
+ safestrncpy(tracefile, argv[a], sizeof tracefile);
strcpy(tracefile, &tracefile[2]);
freopen(tracefile, "r", stdin);
freopen(tracefile, "w", stdout);