filter: Make ->open() optional.
[paraslash.git] / server.c
index 68434e94e56820c81bb14de76b6759bc645cce29..088cc8b124448123ed6f4cb73f0226f584dffc25 100644 (file)
--- a/server.c
+++ b/server.c
@@ -7,16 +7,13 @@
 /** \file server.c Paraslash's main server. */
 
 /**
- * \mainpage Main data structures:
+ * \mainpage Main data structures and selected APIs:
  *
- *     - Server: \ref server_command, \ref sender,
+ *     - Senders: \ref sender,
  *     - Audio file selector: \ref afs_info, \ref afs_table,
  *     - Audio format handler: \ref audio_format_handler, \ref afh_info
  *     - Receivers/filters/writers: \ref receiver, \ref receiver_node,
  *       \ref filter, \ref filter_node, \ref writer_node, \ref writer.
- *
- * Selected APIs:
- *
  *     - Scheduling: \ref sched.h,
  *     - Buffer trees: \ref buffer_tree.h,
  *     - Sideband API: \ref sideband.h,
@@ -29,7 +26,7 @@
  *     - Interactive sessions: \ref interactive.h,
  *     - File descriptors: \ref fd.h,
  *     - Signals: \ref signal.h,
- *     - Networking: \ref net.h,
+ *     - Networking: \ref net.h,
  *     - Time: \ref time.c,
  *     - Doubly linked lists: \ref list.h.
  */
@@ -78,7 +75,7 @@ INIT_SERVER_ERRLISTS;
 
 /**
  * Pointer to shared memory area for communication between para_server
- * and its children. Exported to vss.c. command.c and to afs.
+ * and its children. Exported to vss.c, command.c and to afs.
  */
 struct misc_meta_data *mmd;
 
@@ -210,8 +207,12 @@ void parse_config_or_die(int override)
                daemon_open_log_or_die();
        }
 
-       daemon_init_colors_or_die(conf.color_arg, color_arg_auto, color_arg_no,
-               conf.logfile_given, conf.log_color_arg, conf.log_color_given);
+       if (daemon_init_colors_or_die(conf.color_arg, color_arg_auto, color_arg_no,
+                       conf.logfile_given)) {
+               int i;
+               for (i = 0; i < conf.log_color_given; i++)
+                       daemon_set_log_color_or_die(conf.log_color_arg[i]);
+       }
        daemon_set_flag(DF_LOG_PID);
        daemon_set_flag(DF_LOG_LL);
        daemon_set_flag(DF_LOG_TIME);
@@ -466,10 +467,11 @@ static void server_init(int argc, char **argv)
        version_handle_flag("server", conf.version_given);
        if (conf.help_given || conf.detailed_help_given)
                print_help_and_die();
+       daemon_set_priority(conf.priority_arg);
        daemon_drop_privileges_or_die(conf.user_arg, conf.group_arg);
        /* parse config file, open log and set defaults */
        parse_config_or_die(0);
-       daemon_log_welcome("para_server");
+       daemon_log_welcome("server");
        init_ipc_or_die(); /* init mmd struct and mmd->lock */
        daemon_set_start_time();
        init_user_list(user_list_file);