-#ifndef IRCD_H
-#define IRCD_H
-
-/*=============================================================================
- * Macro's
+/** @file ircd.h
+ * @brief Global data for the daemon.
+ * @version $Id$
*/
+#ifndef INCLUDED_ircd_h
+#define INCLUDED_ircd_h
+#ifndef INCLUDED_struct_h
+#include "struct.h" /* struct Client */
+#endif
+#ifndef INCLUDED_sys_types_h
+#include <sys/types.h> /* size_t, time_t */
+#endif
-#define TStime() (now + TSoffset)
-#define BadPtr(x) (!(x) || (*(x) == '\0'))
+/** Describes status for a daemon. */
+struct Daemon
+{
+ int argc; /**< Number of command-line arguments. */
+ char** argv; /**< Array of command-line arguments. */
+ pid_t pid; /**< %Daemon's process id. */
+ uid_t uid; /**< %Daemon's user id. */
+ uid_t euid; /**< %Daemon's effective user id. */
+ unsigned int bootopt; /**< Boot option flags. */
+ int pid_fd; /**< File descriptor for process id file. */
+};
+
+/*
+ * Macros
+ */
+#define TStime() (CurrentTime + TSoffset) /**< Current network time*/
+#define OLDEST_TS 780000000 /**< Any TS older than this is bogus */
+#define BadPtr(x) (!(x) || (*(x) == '\0')) /**< Is \a x a bad string? */
/* Miscellaneous defines */
-#define UDP_PORT "7007"
-#define MINOR_PROTOCOL "09"
-#define MAJOR_PROTOCOL "10"
-#define BASE_VERSION "u2.10"
+#define UDP_PORT "7007" /**< Default port for server-to-server pings. */
+#define MINOR_PROTOCOL "09" /**< Minimum protocol version supported. */
+#define MAJOR_PROTOCOL "10" /**< Current protocol version. */
+#define BASE_VERSION "u2.10" /**< Base name of IRC daemon version. */
-/* Flags for bootup options (command line flags) */
-
-#define BOOT_CONSOLE 1
-#define BOOT_QUICK 2
-#define BOOT_DEBUG 4
-#define BOOT_INETD 8
-#define BOOT_TTY 16
-#define BOOT_AUTODIE 32
-
-/*=============================================================================
+/*
* Proto types
*/
+extern void server_die(const char* message);
+extern void server_panic(const char* message);
+extern void server_restart(const char* message);
+
+extern struct Client me;
+extern time_t CurrentTime;
+extern struct Client* GlobalClientList;
+extern time_t TSoffset;
+extern int GlobalRehashFlag; /* 1 if SIGHUP is received */
+extern int GlobalRestartFlag; /* 1 if SIGINT is received */
+extern char* configfile;
+extern int debuglevel;
+extern char* debugmode;
+extern int running;
+
+#endif /* INCLUDED_ircd_h */
-#ifdef PROFIL
-extern RETSIGTYPE s_monitor(HANDLER_ARG(int sig));
-#endif
-extern RETSIGTYPE s_die(HANDLER_ARG(int sig));
-extern RETSIGTYPE s_restart(HANDLER_ARG(int sig));
-
-extern void restart(char *mesg);
-extern void server_reboot(void);
-
-extern aClient me;
-extern time_t now;
-extern aClient *client;
-extern time_t TSoffset;
-extern unsigned int bootopt;
-extern time_t nextdnscheck;
-extern time_t nextconnect;
-extern int dorehash;
-extern time_t nextping;
-extern unsigned short int portnum;
-extern char *configfile;
-extern int debuglevel;
-extern char *debugmode;
-
-#endif /* IRCD_H */