/** \file daemon.h exported symbols from daemon.c */
-void daemon_init(void);
-FILE *open_log(const char *logfile_name);
-void close_log(FILE* logfile);
-void log_welcome(const char *whoami, int loglevel);
-void para_drop_privileges(const char *username);
+void daemonize(void);
+void daemon_open_log_or_die(void);
+void daemon_close_log(void);
+void log_welcome(const char *whoami);
+void drop_privileges_or_die(const char *username, const char *groupname);
/** used for server_uptime() */
enum uptime {UPTIME_SET, UPTIME_GET};
time_t server_uptime(enum uptime set_or_get);
__malloc char *uptime_str(void);
+void daemon_set_logfile(char *logfile_name);
+void daemon_set_flag(unsigned flag);
+void daemon_clear_flag(unsigned flag);
+void daemon_set_loglevel(char *loglevel);
+void daemon_set_default_log_colors(void);
+int daemon_set_log_color(char const *arg);
+
+/** Daemon log configuration flags. */
+enum daemon_flags {
+ /** Whether the hostname should be logged. */
+ DF_LOG_HOSTNAME = 1,
+ /** Whether the PID should be logged. */
+ DF_LOG_PID = 2,
+ /** Prepend log message with date and time. */
+ DF_LOG_TIME = 4,
+ /** Also print the loglevel for each message. */
+ DF_LOG_LL = 8,
+ /** Use colored output. */
+ DF_COLOR_LOG = 16,
+};