]> code.citadel.org Git - citadel.git/blobdiff - citadel/server.h
Continue phase 2 of modules stuff.
[citadel.git] / citadel / server.h
index 19eb12a2a1b722a4e06a197fa134166207223a60..11cd6319b8a982bc28c4b10159e16df7005d5b75 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 */
@@ -140,8 +141,6 @@ struct CitContext {
        struct citpop3 *POP3;
        struct citsmtp *SMTP;
        struct citmgsve *MGSVE; /**< Managesieve Session struct */
-       char *SMTP_RECPS;
-       char *SMTP_ROOMS;
        struct cit_ical *CIT_ICAL;              /* calendaring data */
        struct ma_info *ma;                     /* multipart/alternative data */
 };
@@ -237,6 +236,7 @@ enum {
        S_JOURNAL_QUEUE,
        S_RPLIST,
        S_SIEVELIST,
+       S_CHKPWD,
        MAX_SEMAPHORES
 };
 
@@ -346,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
@@ -379,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.
@@ -441,6 +440,26 @@ 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;
+
+
 
 /* Defines the relationship of a user to a particular room */
 struct visit {