chiark / gitweb /
Move player/decoder PIDs back into the main queue_entry structure, now
[disorder] / server / disorderd.c
index 72a8e3d918cbd97333c8c03fab0b83fcf856679d..2bf64343e8e6aed6e9c1f4f1fce6822e5ec814f1 100644 (file)
@@ -209,7 +209,10 @@ int main(int argc, char **argv) {
   fix_path();
   srand(time(0));                      /* don't start the same every time */
   /* gcrypt initialization */
+  if(!gcry_check_version(NULL))
+    disorder_fatal(0, "gcry_check_version failed");
   gcry_control(GCRYCTL_INIT_SECMEM, 1);
+  gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
   /* make sure we can't have more than FD_SETSIZE files open (event.c does
    * check but this provides an additional line of defence) */
   if(getrlimit(RLIMIT_NOFILE, rl) < 0)
@@ -227,7 +230,7 @@ int main(int argc, char **argv) {
   if(ev_child_setup(ev)) fatal(0, "ev_child_setup failed");
   /* read config */
   config_uaudio_apis = uaudio_apis;
-  if(config_read(1))
+  if(config_read(1,  NULL))
     fatal(0, "cannot read configuration");
   /* make sure the home directory exists and has suitable permissions */
   make_home();
@@ -260,7 +263,15 @@ int main(int argc, char **argv) {
   trackdb_init(TRACKDB_NORMAL_RECOVER|TRACKDB_MAY_CREATE);
   trackdb_master(ev);
   /* install new config (calls trackdb_open()) */
-  reconfigure(ev, 0);
+  if(reconfigure(ev, 0))
+    fatal(0, "failed to read configuration");
+  /* Open the database */
+  trackdb_open(TRACKDB_CAN_UPGRADE);
+  /* load the queue and recently-played list */
+  queue_read();
+  recent_read();
+  /* Arrange timeouts for schedule actions */
+  schedule_init(ev);
   /* pull in old users */
   trackdb_old_users();
   /* create a root login */