/* $Id$ */
+#ifndef SYSDEP_DECLS_H
+#define SYSDEP_DECLS_H
/*
* Uncomment this #define if you are a Citadel developer tracking
* down memory leaks in the server. Do NOT do this on a production
* system because it definitely incurs a lot of additional overhead.
+#define DEBUG_MEMORY_LEAKS
*/
-/* #define DEBUG_MEMORY_LEAKS */
#include <pthread.h>
+#include <stdarg.h>
#include "sysdep.h"
#include "server.h"
+#if SIZEOF_SIZE_T == SIZEOF_INT
+#define SIZE_T_FMT "%d"
+#else
+#define SIZE_T_FMT "%ld"
+#endif
+
+
/* Logging levels - correspond to syslog(3) */
enum LogLevel {
/* When about to exit the server for an unrecoverable error */
void cprintf (const char *format, ...);
#endif
+void vlprintf (enum LogLevel loglevel, const char *format, va_list arg_ptr);
+
extern pthread_key_t MyConKey; /* TSD key for MyContext() */
extern int enable_syslog;
void init_sysdep (void);
void begin_critical_section (int which_one);
void end_critical_section (int which_one);
-int ig_tcp_server (char *ip_addr, int port_number, int queue_len);
-int ig_uds_server(char *sockpath, int queue_len);
+int ig_tcp_server (char *ip_addr, int port_number, int queue_len,char **errormessage);
+int ig_uds_server(char *sockpath, int queue_len, char **errormessage);
struct CitContext *MyContext (void);
struct CitContext *CreateNewContext (void);
void InitMyContext (struct CitContext *con);
void InitializeMasterCC(void);
void init_master_fdset(void);
void create_worker(void);
+void InitialiseSemaphores(void);
+void ctdl_internal_thread_gc (int shutdown);
+
extern int num_sessions;
extern volatile int time_to_die;
+extern volatile int shutdown_and_halt;
+extern volatile int running_as_daemon;
+extern volatile int restart_server;
+
extern int verbosity;
extern int rescan[];
struct worker_node *next;
} *worker_list;
+
+extern struct CtdlThreadNode {
+ pthread_t tid;
+ char *name;
+ void *(*thread_func) (void *arg);
+ void *user_args;
+ int flags;
+ int running;
+ int valid;
+ struct CtdlThreadNode *prev;
+ struct CtdlThreadNode *next;
+} *CtdlThreadList;
+
extern int SyslogFacility(char *name);
extern int syslog_facility;
void dump_heap(void);
#endif
-void create_indexer_thread(void);
-extern pthread_t indexer_thread_tid;
+void create_maintenance_threads(void);
+
+#endif /* SYSDEP_DECLS_H */