Moved to new module init structure.
[citadel.git] / citadel / serv_test.c
index bec09516fb2d647a9abc148e60edd145d787c639..356b167b5607c0d54dfd7435992ffd8a135aa89f 100644 (file)
@@ -1,3 +1,11 @@
+/*
+ * $Id$
+ *
+ * A skeleton module to test the dynamic loader.
+ *
+ */
+
+#include "sysdep.h"
 #include <stdlib.h>
 #include <unistd.h>
 #include <stdio.h>
 #include <pwd.h>
 #include <errno.h>
 #include <sys/types.h>
-#include <sys/time.h>
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+
 #include <sys/wait.h>
 #include <string.h>
 #include <limits.h>
-#include <pthread.h>
-#include "citadel.h"
-#include "server.h"
-#include <syslog.h>
-#include <time.h>
-#include "sysdep_decls.h"
-#include "citserver.h"
-#include "support.h"
-#include "config.h"
-#include "dynloader.h"
-#include "room_ops.h"
-#include "policy.h"
-#include "database.h"
-#include "msgbase.h"
+#include "ctdl_module.h"
 
 extern struct CitContext *ContextList;
 
-#define MODULE_NAME    "Dummy test module"
-#define MODULE_AUTHOR  "Art Cancro"
-#define MODULE_EMAIL   "ajc@uncnsrd.mt-kisco.ny.us"
-#define MAJOR_VERSION  0
-#define MINOR_VERSION  3
-
-static struct DLModule_Info info = {
-       MODULE_NAME,
-       MODULE_AUTHOR,
-       MODULE_EMAIL,
-       MAJOR_VERSION,
-       MINOR_VERSION
-       };
-
 void CleanupTest(void) {
-       lprintf(9, "--- test of adding an unload hook --- \n");
+       lprintf(CTDL_DEBUG, "--- test of adding an unload hook --- \n");
        }
 
 void NewRoomTest(void) {
-       lprintf(9, "--- test module was told we're now in %s ---\n",
-               CC->cs_room);
+       lprintf(CTDL_DEBUG, "--- test module was told we're now in a new room ---\n");
        }
 
 void SessionStartTest(void) {
-       lprintf(9, "--- starting up session %d ---\n",
+       lprintf(CTDL_DEBUG, "--- starting up session %d ---\n",
                CC->cs_pid);
        }
 
 void SessionStopTest(void) {
-       lprintf(9, "--- ending session %d ---\n", 
+       lprintf(CTDL_DEBUG, "--- ending session %d ---\n", 
                CC->cs_pid);
        }
 
 void LoginTest(void) {
-       lprintf(9, "--- Hello, %s ---\n", CC->curr_user);
-       }
-
-
-void Ygorl(char *username, long usernum) {
-       if (!strcasecmp(username, "Hexslinger")) {
-               strcpy(username, "Flaming Asshole");
-               }
-       }
-
-
-
-void DoPurgeMessages(struct quickroom *qrbuf) {
-       struct ExpirePolicy epbuf;
-       long delnum;
-       time_t xtime, now;
-       char msgid[64];
-       int a;
-
-       time(&now);
-       GetExpirePolicy(&epbuf, qrbuf);
-       
-       /* lprintf(9, "ExpirePolicy for <%s> is <%d> <%d>\n",
-               qrbuf->QRname, epbuf.expire_mode, epbuf.expire_value);
-        */
-
-       /* If the room is set to never expire messages ... do nothing */
-       if (epbuf.expire_mode == EXPIRE_NEXTLEVEL) return;
-       if (epbuf.expire_mode == EXPIRE_MANUAL) return;
-
-       get_msglist(qrbuf);
-       
-       /* Nothing to do if there aren't any messages */
-       if (CC->num_msgs == 0) return;
-
-       /* If the room is set to expire by count, do that */
-       if (epbuf.expire_mode == EXPIRE_NUMMSGS) {
-               while (CC->num_msgs > epbuf.expire_value) {
-                       delnum = MessageFromList(0);
-                       lprintf(5, "Expiring message %ld\n", delnum);
-                       cdb_delete(CDB_MSGMAIN, &delnum, sizeof(long));
-                       memcpy(&CC->msglist[0], &CC->msglist[1],
-                               (sizeof(long)*(CC->num_msgs - 1)));
-                       CC->num_msgs = CC->num_msgs - 1;
-                       }
-               }
-
-       /* If the room is set to expire by age... */
-       if (epbuf.expire_mode == EXPIRE_AGE) {
-               for (a=0; a<(CC->num_msgs); ++a) {
-                       delnum = MessageFromList(a);
-                       sprintf(msgid, "%ld", delnum);
-                       xtime = output_message(msgid, MT_DATE, 0, 0);
-
-                       if ((xtime > 0L)
-                          && (now - xtime > (time_t)(epbuf.expire_value * 86400L))) {
-                               cdb_delete(CDB_MSGMAIN, &delnum, sizeof(long));
-                               SetMessageInList(a, 0L);
-                               lprintf(5, "Expiring message %ld\n", delnum);
-                               }
-                       }
-               }
-       CC->num_msgs = sort_msglist(CC->msglist, CC->num_msgs);
-       put_msglist(qrbuf);
+       lprintf(CTDL_DEBUG, "--- Hello, %s ---\n", CC->curr_user);
        }
 
-void PurgeMessages(void) {
-       ForEachRoom(DoPurgeMessages);
-       }
-
-struct DLModule_Info *Dynamic_Module_Init(void)
+/* To insert this module into the server activate the next block by changing the #if 0 to #if 1 */
+CTDL_MODULE_INIT(test)
 {
+#if 0
    CtdlRegisterCleanupHook(CleanupTest);
-   CtdlRegisterCleanupHook(PurgeMessages);
    CtdlRegisterSessionHook(NewRoomTest, EVT_NEWROOM);
    CtdlRegisterSessionHook(SessionStartTest, EVT_START);
    CtdlRegisterSessionHook(SessionStopTest, EVT_STOP);
    CtdlRegisterSessionHook(LoginTest, EVT_LOGIN);
-   CtdlRegisterUserHook(Ygorl, EVT_OUTPUTMSG);
-   return &info;
+#endif
+
+   /* return our Subversion id for the Log */
+   return "$Id$";
 }