Show command may re-search for targets that support it
[pazpar2-moved-to-github.git] / src / pazpar2_config.c
index c9d15a9..c6567bd 100644 (file)
@@ -56,7 +56,6 @@ struct conf_config
     database_hosts_t database_hosts;
 };
 
-
 static void conf_metadata_assign(NMEM nmem, 
                                  struct conf_metadata * metadata,
                                  const char *name,
@@ -103,7 +102,6 @@ static void conf_sortkey_assign(NMEM nmem,
     sortkey->type = type;
 }
 
-
 static struct conf_service *service_init(struct conf_server *server,
                                          int num_metadata, int num_sortkeys,
                                          const char *service_id)
@@ -128,9 +126,9 @@ static struct conf_service *service_init(struct conf_server *server,
     service->num_metadata = num_metadata;
     service->metadata = 0;
     if (service->num_metadata)
-      service->metadata 
-          = nmem_malloc(nmem, 
-                        sizeof(struct conf_metadata) * service->num_metadata);
+        service->metadata 
+            = nmem_malloc(nmem, 
+                          sizeof(struct conf_metadata) * service->num_metadata);
     service->num_sortkeys = num_sortkeys;
     service->sortkeys = 0;
     if (service->num_sortkeys)
@@ -168,7 +166,6 @@ static struct conf_metadata* conf_service_add_metadata(
     return md;
 }
 
-
 static struct conf_sortkey * conf_service_add_sortkey(
     struct conf_service *service,
     int field_id,
@@ -178,7 +175,7 @@ static struct conf_sortkey * conf_service_add_sortkey(
     struct conf_sortkey * sk = 0;
 
     if (!service || !service->sortkeys || !service->num_sortkeys
-        || field_id < 0  || !(field_id < service->num_sortkeys))
+        || field_id < 0 || !(field_id < service->num_sortkeys))
         return 0;
 
     //sk = &((service->sortkeys)[field_id]);
@@ -188,7 +185,6 @@ static struct conf_sortkey * conf_service_add_sortkey(
     return sk;
 }
 
-
 int conf_service_metadata_field_id(struct conf_service *service,
                                    const char * name)
 {
@@ -196,16 +192,13 @@ int conf_service_metadata_field_id(struct conf_service *service,
 
     if (!service || !service->metadata || !service->num_metadata)
         return -1;
-
-    for(i = 0; i < service->num_metadata; i++) {
+    
+    for (i = 0; i < service->num_metadata; i++)
         if (!strcmp(name, (service->metadata[i]).name))
             return i;
-    }
-   
     return -1;
 }
 
-
 int conf_service_sortkey_field_id(struct conf_service *service,
                                   const char * name)
 {
@@ -214,11 +207,9 @@ int conf_service_sortkey_field_id(struct conf_service *service,
     if (!service || !service->sortkeys || !service->num_sortkeys)
         return -1;
 
-    for(i = 0; i < service->num_sortkeys; i++) {
+    for (i = 0; i < service->num_sortkeys; i++)
         if (!strcmp(name, (service->sortkeys[i]).name))
             return i;
-    }
-   
     return -1;
 }
 
@@ -634,7 +625,6 @@ struct conf_service *service_create(struct conf_server *server,
     if (service)
     {
         inherit_server_settings(service);
-        resolve_databases(service);
         assert(service->mutex == 0);
         pazpar2_mutex_create(&service->mutex, "conf");
     }
@@ -659,7 +649,7 @@ static struct conf_server *server_create(struct conf_config *config,
     server->charsets = 0;
     server->http_server = 0;
     server->iochan_man = 0;
-    server->database_hosts = 0;
+    server->database_hosts = config->database_hosts;
     server->settings_fname = 0;
 
     if (server_id)
@@ -897,7 +887,7 @@ struct conf_config *config_create(const char *fname, int verbose)
     config->servers = 0;
     config->no_threads = 0;
     config->iochan_man = 0;
-    config->database_hosts = 0;
+    config->database_hosts = database_hosts_create();
 
     config->confdir = wrbuf_alloc();
     if ((p = strrchr(fname, 
@@ -964,9 +954,8 @@ void config_destroy(struct conf_config *config)
             struct conf_server *s_next = server->next;
             server_destroy(server);
             server = s_next;
+            database_hosts_destroy(&config->database_hosts);
         }
-        database_hosts_destroy(&config->database_hosts);
-
         wrbuf_destroy(config->confdir);
         nmem_destroy(config->nmem);
     }
@@ -983,22 +972,18 @@ void config_process_events(struct conf_config *conf)
 {
     struct conf_server *ser;
     
-    conf->database_hosts = database_hosts_create();
     for (ser = conf->servers; ser; ser = ser->next)
     {
         struct conf_service *s = ser->service;
 
-        ser->database_hosts = conf->database_hosts;
-
         for (;s ; s = s->next)
         {
-            resolve_databases(s);
             assert(s->mutex == 0);
             pazpar2_mutex_create(&s->mutex, "service");
         }
         http_mutex_init(ser);
     }
-    iochan_man_events(conf->iochan_man);    
+    iochan_man_events(conf->iochan_man);
 }
 
 int config_start_listeners(struct conf_config *conf,