Source clean up.
authorDave West <davew@uncensored.citadel.org>
Tue, 20 Nov 2007 20:03:22 +0000 (20:03 +0000)
committerDave West <davew@uncensored.citadel.org>
Tue, 20 Nov 2007 20:03:22 +0000 (20:03 +0000)
Moved all hook code into serv_extensions.c and serv_extensions.h since
this is more logical

citadel/serv_extensions.c
citadel/serv_extensions.h
citadel/server.h

index e248d50a1ecb5edd677314a24ee35d444777859e..5f65dbc7b466ecab49c0ca47c8d7bff9ea685230 100644 (file)
@@ -190,6 +190,20 @@ void AddPortError(char *Port, char *ErrorMessage)
 }
 
 
+int DLoader_Exec_Cmd(char *cmdbuf)
+{
+       struct ProtoFunctionHook *p;
+
+       for (p = ProtoHookList; p; p = p->next) {
+               if (!strncasecmp(cmdbuf, p->cmd, 4)) {
+                       p->handler(&cmdbuf[5]);
+                       return 1;
+               }
+       }
+       return 0;
+}
+
+
 void CtdlRegisterProtoHook(void (*handler) (char *), char *cmd, char *desc)
 {
        struct ProtoFunctionHook *p;
@@ -257,20 +271,6 @@ void CtdlDestroyProtoHooks(void)
 }
 
 
-int DLoader_Exec_Cmd(char *cmdbuf)
-{
-       struct ProtoFunctionHook *p;
-
-       for (p = ProtoHookList; p; p = p->next) {
-               if (!strncasecmp(cmdbuf, p->cmd, 4)) {
-                       p->handler(&cmdbuf[5]);
-                       return 1;
-               }
-       }
-       return 0;
-}
-
-
 void CtdlRegisterCleanupHook(void (*fcn_ptr) (void))
 {
 
index 0d18582bca5240f17345d5cdc85c4efa5dee72af..a9e150b975ef69112d8d519d48b7595d0d5306e7 100644 (file)
  * We'll probably start moving these to a more sane location in the near
  * future.  For now, this just shuts up the compiler.
  */
-void serv_calendar_destroy(void);
-char *serv_test_init(void);
-char *serv_postfix_tcpdict(void);
+//void serv_calendar_destroy(void);
+//char *serv_test_init(void);
+//char *serv_postfix_tcpdict(void);
 /*
  */
 
+/*
+ * Structure defentitions for hook tables
+ */
+
+struct LogFunctionHook {
+       struct LogFunctionHook *next;
+       int loglevel;
+       void (*h_function_pointer) (char *);
+};
+extern struct LogFunctionHook *LogHookTable;
+
+struct CleanupFunctionHook {
+       struct CleanupFunctionHook *next;
+       void (*h_function_pointer) (void);
+};
+extern struct CleanupFunctionHook *CleanupHookTable;
+
+struct FixedOutputHook {
+       struct FixedOutputHook *next;
+       char content_type[64];
+       void (*h_function_pointer) (char *, int);
+};
+extern struct FixedOutputHook *FixedOutputTable;
+
+
+
+/*
+ * SessionFunctionHook extensions are used for any type of hook for which
+ * the context in which it's being called (which is determined by the event
+ * type) will make it obvious for the hook function to know where to look for
+ * pertinent data.
+ */
+struct SessionFunctionHook {
+       struct SessionFunctionHook *next;
+       void (*h_function_pointer) (void);
+       int eventtype;
+};
+extern struct SessionFunctionHook *SessionHookTable;
+
+
+/*
+ * UserFunctionHook extensions are used for any type of hook which implements
+ * an operation on a user or username (potentially) other than the one
+ * operating the current session.
+ */
+struct UserFunctionHook {
+       struct UserFunctionHook *next;
+       void (*h_function_pointer) (struct ctdluser *usbuf);
+       int eventtype;
+};
+extern struct UserFunctionHook *UserHookTable;
+
+/*
+ * MessageFunctionHook extensions are used for hooks which implement handlers
+ * for various types of message operations (save, read, etc.)
+ */
+struct MessageFunctionHook {
+       struct MessageFunctionHook *next;
+       int (*h_function_pointer) (struct CtdlMessage *msg);
+       int eventtype;
+};
+extern struct MessageFunctionHook *MessageHookTable;
+
+
+/*
+ * NetprocFunctionHook extensions are used for hooks which implement handlers
+ * for incoming network messages.
+ */
+struct NetprocFunctionHook {
+       struct NetprocFunctionHook *next;
+       int (*h_function_pointer) (struct CtdlMessage *msg, char *target_room);
+};
+extern struct NetprocFunctionHook *NetprocHookTable;
+
+
+/*
+ * DeleteFunctionHook extensions are used for hooks which get called when a
+ * message is about to be deleted.
+ */
+struct DeleteFunctionHook {
+       struct DeleteFunctionHook *next;
+       void (*h_function_pointer) (char *target_room, long msgnum);
+};
+extern struct DeleteFunctionHook *DeleteHookTable;
+
+
+/*
+ * ExpressMessageFunctionHook extensions are used for hooks which implement
+ * the sending of an instant message through various channels.  Any function
+ * registered should return the number of recipients to whom the message was
+ * successfully transmitted.
+ */
+struct XmsgFunctionHook {
+       struct XmsgFunctionHook *next;
+       int (*h_function_pointer) (char *, char *, char *);
+       int order;
+};
+extern struct XmsgFunctionHook *XmsgHookTable;
+
+
+
+
+/*
+ * ServiceFunctionHook extensions are used for hooks which implement various
+ * protocols (either on TCP or on unix domain sockets) directly in the Citadel server.
+ */
+struct ServiceFunctionHook {
+       struct ServiceFunctionHook *next;
+       int tcp_port;
+       char *sockpath;
+       void (*h_greeting_function) (void) ;
+       void (*h_command_function) (void) ;
+       void (*h_async_function) (void) ;
+       int msock;
+       const char* ServiceName; /* this is just for debugging and logging purposes. */
+};
+extern struct ServiceFunctionHook *ServiceHookTable;
+
+
+/*
+ * RoomFunctionHook extensions are used for hooks which impliment room
+ * processing functions when new messages are added EG. SIEVE.
+ */
+struct RoomFunctionHook {
+       struct RoomFunctionHook *next;
+       int (*fcn_ptr) (struct ctdlroom *);
+};
+extern struct RoomFunctionHook *RoomHookTable;
+
+
+struct MaintenanceThreadHook {
+       struct MaintenanceThreadHook *next;
+       char *name;
+       void *(*fcn_ptr) (void *arg);
+       pthread_t MaintenanceThread_tid;
+};
+extern struct MaintenanceThreadHook *MaintenanceThreadHookTable;
+
+
+struct SearchFunctionHook {
+       struct SearchFunctionHook *next;
+       void (*fcn_ptr) (int *, long **, char *);
+       char *name;
+};
+extern struct SearchFunctionHook *SearchFunctionHookTable;
+
 void initialize_server_extensions(void);
 int DLoader_Exec_Cmd(char *cmdbuf);
 char *Dynamic_Module_Init(void);
index bcc38014b104ba2622b92e9f9c80dd0fbfed93a6..02b0de9c71b50e443490773ff541d1fa3d93222c 100644 (file)
@@ -297,44 +297,6 @@ struct cdbdata {
 };
 
 
-
-/* Structures and declarations for function hooks of various types */
-
-struct LogFunctionHook {
-       struct LogFunctionHook *next;
-       int loglevel;
-       void (*h_function_pointer) (char *);
-};
-extern struct LogFunctionHook *LogHookTable;
-
-struct CleanupFunctionHook {
-       struct CleanupFunctionHook *next;
-       void (*h_function_pointer) (void);
-};
-extern struct CleanupFunctionHook *CleanupHookTable;
-
-struct FixedOutputHook {
-       struct FixedOutputHook *next;
-       char content_type[64];
-       void (*h_function_pointer) (char *, int);
-};
-extern struct FixedOutputHook *FixedOutputTable;
-
-
-
-/*
- * SessionFunctionHook extensions are used for any type of hook for which
- * the context in which it's being called (which is determined by the event
- * type) will make it obvious for the hook function to know where to look for
- * pertinent data.
- */
-struct SessionFunctionHook {
-       struct SessionFunctionHook *next;
-       void (*h_function_pointer) (void);
-       int eventtype;
-};
-extern struct SessionFunctionHook *SessionHookTable;
-
 /* 
  * Event types can't be enum'ed, because they must remain consistent between
  * builds (to allow for binary modules built somewhere else)
@@ -352,73 +314,14 @@ extern struct SessionFunctionHook *SessionHookTable;
 #define EVT_TIMER      50      /* Timer events are called once per minute
                                   and are not tied to any session */
 #define EVT_HOUSE      51      /* as needed houskeeping stuff */
-/*
- * UserFunctionHook extensions are used for any type of hook which implements
- * an operation on a user or username (potentially) other than the one
- * operating the current session.
- */
-struct UserFunctionHook {
-       struct UserFunctionHook *next;
-       void (*h_function_pointer) (struct ctdluser *usbuf);
-       int eventtype;
-};
-extern struct UserFunctionHook *UserHookTable;
 
 #define EVT_PURGEUSER  100     /* Deleting a user */
 #define EVT_NEWUSER    102     /* Creating a user */
 
-/*
- * MessageFunctionHook extensions are used for hooks which implement handlers
- * for various types of message operations (save, read, etc.)
- */
-struct MessageFunctionHook {
-       struct MessageFunctionHook *next;
-       int (*h_function_pointer) (struct CtdlMessage *msg);
-       int eventtype;
-};
-extern struct MessageFunctionHook *MessageHookTable;
-
 #define EVT_BEFOREREAD 200
 #define EVT_BEFORESAVE 201
 #define EVT_AFTERSAVE  202
 #define EVT_SMTPSCAN   203     /* called before submitting a msg from SMTP */
-
-
-/*
- * NetprocFunctionHook extensions are used for hooks which implement handlers
- * for incoming network messages.
- */
-struct NetprocFunctionHook {
-       struct NetprocFunctionHook *next;
-       int (*h_function_pointer) (struct CtdlMessage *msg, char *target_room);
-};
-extern struct NetprocFunctionHook *NetprocHookTable;
-
-
-/*
- * DeleteFunctionHook extensions are used for hooks which get called when a
- * message is about to be deleted.
- */
-struct DeleteFunctionHook {
-       struct DeleteFunctionHook *next;
-       void (*h_function_pointer) (char *target_room, long msgnum);
-};
-extern struct DeleteFunctionHook *DeleteHookTable;
-
-
-/*
- * ExpressMessageFunctionHook extensions are used for hooks which implement
- * the sending of an instant message through various channels.  Any function
- * registered should return the number of recipients to whom the message was
- * successfully transmitted.
- */
-struct XmsgFunctionHook {
-       struct XmsgFunctionHook *next;
-       int (*h_function_pointer) (char *, char *, char *);
-       int order;
-};
-extern struct XmsgFunctionHook *XmsgHookTable;
-
 /* Priority levels for paging functions (lower is better) */
 enum {
        XMSG_PRI_LOCAL,         /* Other users on -this- server */
@@ -428,52 +331,6 @@ enum {
 };
 
 
-
-/*
- * ServiceFunctionHook extensions are used for hooks which implement various
- * protocols (either on TCP or on unix domain sockets) directly in the Citadel server.
- */
-struct ServiceFunctionHook {
-       struct ServiceFunctionHook *next;
-       int tcp_port;
-       char *sockpath;
-       void (*h_greeting_function) (void) ;
-       void (*h_command_function) (void) ;
-       void (*h_async_function) (void) ;
-       int msock;
-       const char* ServiceName; /* this is just for debugging and logging purposes. */
-};
-extern struct ServiceFunctionHook *ServiceHookTable;
-
-
-/*
- * RoomFunctionHook extensions are used for hooks which impliment room
- * processing functions when new messages are added EG. SIEVE.
- */
-struct RoomFunctionHook {
-       struct RoomFunctionHook *next;
-       int (*fcn_ptr) (struct ctdlroom *);
-};
-extern struct RoomFunctionHook *RoomHookTable;
-
-
-struct MaintenanceThreadHook {
-       struct MaintenanceThreadHook *next;
-       char *name;
-       void *(*fcn_ptr) (void *arg);
-       pthread_t MaintenanceThread_tid;
-};
-extern struct MaintenanceThreadHook *MaintenanceThreadHookTable;
-
-
-struct SearchFunctionHook {
-       struct SearchFunctionHook *next;
-       void (*fcn_ptr) (int *, long **, char *);
-       char *name;
-};
-extern struct SearchFunctionHook *SearchFunctionHookTable;
-
-
 /* Defines the relationship of a user to a particular room */
 struct visit {
        long v_roomnum;