]> code.citadel.org Git - citadel.git/blobdiff - citadel/include/ctdl_module.h
threads are using signals and the GC code is #ifdef if available.
[citadel.git] / citadel / include / ctdl_module.h
index 71fa155340686ef1876aabcbf5f01f78f2edfa77..e4973849a62c3d7fc3b4735801c2c2f17d904e03 100644 (file)
@@ -4,6 +4,19 @@
 #define CTDL_MODULE_H
 
 #include "sysdep.h"
+
+#ifdef HAVE_GC
+#define GC_THREADS
+#define GC_REDIRECT_TO_LOCAL
+#include <gc/gc_local_alloc.h>
+#else
+#define GC_MALLOC malloc
+#define GC_MALLOC_ATOMIC malloc
+#define GC_FREE free
+#define GC_REALLOC realloc
+#endif
+
+
 #include <stdlib.h>
 #include <unistd.h>
 #include <stdio.h>
@@ -45,6 +58,8 @@
 #include "msgbase.h"
 #include "threads.h"
 #include "citadel_dirs.h"
+#include "context.h"
+
 /*
  * define macros for module init stuff
  */
@@ -187,6 +202,11 @@ int CtdlWantSingleUser(void);
 int CtdlIsSingleUser(void);
 
 
+int CtdlIsUserLoggedIn (char *user_name);
+int CtdlIsUserLoggedInByNum (long usernum);
+void CtdlBumpNewMailCounter(long which_user);
+
+
 /*
  * CtdlGetCurrentMessageNumber()  -  Obtain the current highest message number in the system
  * This provides a quick way to initialise a variable that might be used to indicate
@@ -295,6 +315,34 @@ void CtdlSetRelationship(struct visit *newvisit,
                         struct ctdlroom *rel_room);
 void CtdlMailboxName(char *buf, size_t n, const struct ctdluser *who, const char *prefix);
 
+int CtdlLoginExistingUser(char *authname, char *username);
+
+/*
+ * Values which may be returned by CtdlLoginExistingUser()
+ */
+enum {
+       pass_ok,
+       pass_already_logged_in,
+       pass_no_user,
+       pass_internal_error,
+       pass_wrong_password
+};
+
+int CtdlTryPassword(char *password);
+/*
+ * Values which may be returned by CtdlTryPassword()
+ */
+enum {
+       login_ok,
+       login_already_logged_in,
+       login_too_many_users,
+       login_not_found
+};
+
+void CtdlUserLogout(void);
+
+
+
 
 /*
  * Expose API calls from msgbase.c
@@ -302,4 +350,13 @@ void CtdlMailboxName(char *buf, size_t n, const struct ctdluser *who, const char
 char *CtdlGetSysConfig(char *sysconfname);
 void CtdlPutSysConfig(char *sysconfname, char *sysconfdata);
 
+
+
+
+/*
+ * Expose API calls from euidindex.c
+ */
+long CtdlLocateMessageByEuid(char *euid, struct ctdlroom *qrbuf);
+
+
 #endif /* CTDL_MODULE_H */