Fixed: mutex protect session nmem malloc in show_range_start. Cosmetic: renamed sessi...
[pazpar2-moved-to-github.git] / src / pazpar2_config.c
index 2cfba23..ec87caf 100644 (file)
@@ -38,6 +38,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #if HAVE_UNISTD_H
 #include <unistd.h>
 #endif
+#include "ppmutex.h"
 #include "incref.h"
 #include "pazpar2_config.h"
 #include "settings.h"
@@ -697,7 +698,7 @@ struct conf_service *service_create(struct conf_server *server,
         inherit_server_settings(service);
         resolve_databases(service);
         assert(service->mutex == 0);
-        yaz_mutex_create(&service->mutex);
+        pazpar2_mutex_create(&service->mutex, "conf");
     }
     return service;
 }
@@ -839,9 +840,8 @@ static struct conf_server *server_create(struct conf_config *config,
     return server;
 }
 
-WRBUF conf_get_fname(struct conf_service *service, const char *fname)
+WRBUF conf_get_fname(struct conf_config *config, const char *fname)
 {
-    struct conf_config *config = service->server->config;
     WRBUF w = wrbuf_alloc();
 
     conf_dir_path(config, w, fname);
@@ -1024,12 +1024,15 @@ void config_destroy(struct conf_config *config)
     if (config)
     {
         struct conf_server *server = config->servers;
+        iochan_man_destroy(&config->iochan_man);    
         while (server)
         {
             struct conf_server *s_next = server->next;
             server_destroy(server);
             server = s_next;
         }
+        database_hosts_destroy(&config->database_hosts);
+
         wrbuf_destroy(config->confdir);
         nmem_destroy(config->nmem);
     }
@@ -1057,7 +1060,7 @@ void config_process_events(struct conf_config *conf)
         {
             resolve_databases(s);
             assert(s->mutex == 0);
-            yaz_mutex_create(&s->mutex);
+            pazpar2_mutex_create(&s->mutex, "service");
         }
         http_mutex_init(ser);
     }