#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
#define EVT_SMTPSCAN 203 /* called before submitting a msg from SMTP */
-
/*
* NetprocFunctionHook extensions are used for hooks which implement handlers
* for incoming network messages.
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 {