Initialize ID setting searlier -- Should alleviate need for explicitly setting id
authorSebastian Hammer <quinn@indexdata.com>
Fri, 18 May 2007 19:52:52 +0000 (19:52 +0000)
committerSebastian Hammer <quinn@indexdata.com>
Fri, 18 May 2007 19:52:52 +0000 (19:52 +0000)
src/database.c
src/settings.c

index 2553b7c..dafb4bc 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: database.c,v 1.26 2007-05-11 16:57:42 quinn Exp $
+/* $Id: database.c,v 1.27 2007-05-18 19:52:52 quinn Exp $
    Copyright (c) 2006-2007, Index Data.
 
 This file is part of Pazpar2.
@@ -107,6 +107,7 @@ static struct database *load_database(const char *id)
     struct host *host;
     char hostport[256];
     char *dbname;
+    struct setting *idset;
 
     yaz_log(YLOG_LOG, "New database: %s", id);
     if (!nmem)
@@ -138,7 +139,18 @@ static struct database *load_database(const char *id)
     db->databases[1] = 0;
     db->errors = 0;
     db->explain = explain;
+
     db->settings = 0;
+
+    db->settings = nmem_malloc(nmem, sizeof(struct settings*) * settings_num());
+    memset(db->settings, 0, sizeof(struct settings*) * settings_num());
+    idset = nmem_malloc(nmem, sizeof(*id));
+    idset->precedence = 0;
+    idset->name = "pz:id";
+    idset->target = idset->value = db->url;
+    idset->next = 0;
+    db->settings[PZ_ID] = idset;
+
     db->next = databases;
     databases = db;
 
index e0ef312..f602843 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: settings.c,v 1.21 2007-05-16 17:16:21 quinn Exp $
+/* $Id: settings.c,v 1.22 2007-05-18 19:52:52 quinn Exp $
    Copyright (c) 2006-2007, Index Data.
 
 This file is part of Pazpar2.
@@ -295,6 +295,7 @@ static void update_database(void *context, struct database *db)
     if (!match_zurl(db->url, set->target))
         return;
 
+#ifdef GAGA
     // Initialize settings array if it doesn't exist.
     // If so, also set the 'id' automatic setting
     if (!db->settings)
@@ -309,6 +310,7 @@ static void update_database(void *context, struct database *db)
         id->next = 0;
         db->settings[PZ_ID] = id;
     }
+#endif
     if ((offset = settings_offset_cprefix(set->name)) < 0)
         abort(); // Should never get here