ao: Get rid of E_AO_BAD_SAMPLE_FORMAT.
[paraslash.git] / daemon.h
index 11035b50b9dc2636b7a60d717907c2e91be7c560..b530b0d76b48b673fd7ae7626c48a6dd91ab7751 100644 (file)
--- a/daemon.h
+++ b/daemon.h
@@ -1,12 +1,36 @@
 /** \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);
-/** used for server_uptime() */
-enum uptime {UPTIME_SET, UPTIME_GET};
-time_t server_uptime(enum uptime set_or_get);
-__malloc char *uptime_str(void);
+int daemonize(bool parent_waits);
+void daemon_open_log_or_die(void);
+void daemon_close_log(void);
+void daemon_log_welcome(const char *whoami);
+void daemon_set_priority(int prio);
+void daemon_drop_privileges_or_die(const char *username, const char *groupname);
+void daemon_set_start_time(void);
+time_t daemon_get_uptime(const struct timeval *current_time);
+__malloc char *daemon_get_uptime_str(const struct timeval *current_time);
+void daemon_set_logfile(const char *logfile_name);
+void daemon_set_hooks(void (*pre_log_hook)(void), void (*post_log_hook)(void));
+void daemon_set_flag(unsigned flag);
+void daemon_set_loglevel(const char *loglevel);
+bool daemon_init_colors_or_die(int color_arg, int color_arg_auto,
+               int color_arg_no, bool logfile_given);
+void daemon_set_log_color_or_die(const char *arg);
+__printf_2_3 void daemon_log(int ll, const char* fmt,...);
+
+/** 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,
+       /** Include milliseconds in log output. */
+       DF_LOG_TIMING = 32
+};