X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=server.c;h=538d201b78a4a69a23467f94fef595933f8f802b;hp=c46966ea8e2343f38366b14f34d360dce6d67026;hb=126ff375933fbe83d35e67aeaa2d145be1bc3af5;hpb=bc6c214340c1760203b24097c2066abfcaa1c539 diff --git a/server.c b/server.c index c46966ea..538d201b 100644 --- a/server.c +++ b/server.c @@ -278,41 +278,25 @@ static void setup_signal_handling(void) static void init_dbtool(void) { - int i; + int i, ret; mmd->dbt_change = -1; /* no change nec., set to new dbt num by com_cdt */ - if (!dblist[1].name) + if (!conf.dbtool_given) goto random; - if (conf.dbtool_given) { - for (i = 0; dblist[i].name; i++) { - if (strcmp(dblist[i].name, conf.dbtool_arg)) - continue; - PARA_NOTICE_LOG("initializing %s database tool\n", - dblist[i].name); - if (dblist[i].init(&dblist[i]) < 0) { - PARA_WARNING_LOG("init %s failed", - dblist[i].name); - goto random; - } - mmd->dbt_num = i; - return; - } - PARA_WARNING_LOG("%s", "no such dbtool, switching to random\n"); - goto random; - } - /* use the first dbtool that works - * (assuming that random always works) - */ - for (i = 1; dblist[i].name; i++) { - int ret = dblist[i].init(&dblist[i]); - if (ret >= 0) { - PARA_INFO_LOG("initialized %s\n", dblist[i].name); - mmd->dbt_num = i; - return; + for (i = 0; dblist[i].name; i++) { + if (strcmp(dblist[i].name, conf.dbtool_arg)) + continue; + PARA_NOTICE_LOG("initializing %s database tool\n", + dblist[i].name); + ret = dblist[i].init(&dblist[i]); + if (ret < 0) { + PARA_WARNING_LOG("%s", PARA_STRERROR(-ret)); + break; } - PARA_CRIT_LOG("%s init failed: %s\n", dblist[i].name, - PARA_STRERROR(-ret)); + mmd->dbt_num = i; + return; } + PARA_WARNING_LOG("%s", "falling back to the random dbtool\n"); random: mmd->dbt_num = 0; dblist[0].init(&dblist[0]); /* always successful */