X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=etc%2Fcnid_dbd%2Fcmd_dbd.c;h=57c56e08daf2e3e833c5100135dae8f696157694;hb=06b7f576daa4a127964febf210869f4729235dc3;hp=de1803eacb5aeaf688f9f4904720e0748df54291;hpb=630e099b8bcd83186cf6df8290d0856f9e801c4f;p=netatalk.git diff --git a/etc/cnid_dbd/cmd_dbd.c b/etc/cnid_dbd/cmd_dbd.c index de1803ea..57c56e08 100644 --- a/etc/cnid_dbd/cmd_dbd.c +++ b/etc/cnid_dbd/cmd_dbd.c @@ -90,15 +90,16 @@ static int exclusive; /* Exclusive volume access */ static struct db_param db_param = { NULL, /* Volume dirpath */ 1, /* bdb logfile autoremove */ - 256 * 1024, /* bdb cachesize (256 MB) */ - 5000, /* maxlocks */ - 5000, /* maxlockobjs */ - -1, /* not used ... */ - -1, - "", - -1, - -1, - -1 + 64 * 1024, /* bdb cachesize (64 MB) */ + DEFAULT_MAXLOCKS, /* maxlocks */ + DEFAULT_MAXLOCKOBJS, /* maxlockobjs */ + 0, /* flush_interval */ + 0, /* flush_frequency */ + 1000, /* txn_frequency */ + 0, /* usock_file */ + -1, /* fd_table_size */ + -1, /* idle_timeout */ + -1 /* max_vols */ }; static char dbpath[MAXPATHLEN+1]; /* Path to the dbd database */ @@ -437,14 +438,12 @@ int main(int argc, char **argv) /* Check if -f is requested and wipe db if yes */ if ((flags & DBD_FLAGS_FORCE) && rebuild && (volinfo.v_flags & AFPVOL_CACHE)) { char cmd[8 + MAXPATHLEN]; - snprintf(cmd, 8 + MAXPATHLEN, "rm -rf \"%s\"", dbpath); + close(lockfd); + snprintf(cmd, 8 + MAXPATHLEN, "rm -f \"%s/*\"", dbpath); dbd_log( LOGDEBUG, "Removing old database of volume: '%s'", volpath); system(cmd); - if ((mkdir(dbpath, 0755)) != 0) { - dbd_log( LOGSTD, "Can't create dbpath \"%s\": %s", dbpath, strerror(errno)); - exit(EXIT_FAILURE); - } dbd_log( LOGDEBUG, "Removed old database."); + lockfd = get_lock(dbpath); } /* @@ -481,9 +480,11 @@ int main(int argc, char **argv) /* Cleanup */ dbd_log(LOGDEBUG, "Closing db"); - if (! nocniddb && dbif_close(dbd) < 0) { - dbd_log( LOGSTD, "Error closing database"); - goto exit_failure; + if (! nocniddb) { + if (dbif_close(dbd) < 0) { + dbd_log( LOGSTD, "Error closing database"); + goto exit_failure; + } } exit_success: