]> code.citadel.org Git - citadel.git/blobdiff - citadel/server.h
Continue phase 2 of modules stuff.
[citadel.git] / citadel / server.h
index 88fc1575795d0c64e33a4cb6a06f54395e02306c..927abb6e867ace165e62846b6ab8f6c253cd146d 100644 (file)
@@ -70,6 +70,7 @@ struct CitContext {
        int nologin;            /* not allowed to log in */
        int is_local_socket;    /* set to 1 if client is on unix domain sock */
        int curr_view;          /* The view type for the current user/room */
+       int is_master;          /* Is this session logged in using the master user? */
 
        char net_node[32]       ;/* Is the client another Citadel server? */
        time_t previous_login;  /* Date/time of previous login */
@@ -345,7 +346,7 @@ 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
@@ -378,7 +379,6 @@ extern struct MessageFunctionHook *MessageHookTable;
 #define EVT_SMTPSCAN   203     /* called before submitting a msg from SMTP */
 
 
-
 /*
  * NetprocFunctionHook extensions are used for hooks which implement handlers
  * for incoming network messages.
@@ -440,6 +440,33 @@ struct ServiceFunctionHook {
 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 {