Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=a13872d793437ba4665e58b0421696bf3152e08c
commit a13872d793437ba4665e58b0421696bf3152e08c Author: Michel Hermier <herm...@frugalware.org> Date: Fri Nov 15 01:11:48 2013 +0100 libpacman: Move local_db directory creation to _pacman_localdb_open. diff --git a/lib/libpacman/db.c b/lib/libpacman/db.c index f05e14b..457274a 100644 --- a/lib/libpacman/db.c +++ b/lib/libpacman/db.c @@ -344,9 +344,7 @@ int _pacman_db_setlastupdate(pmdb_t *db, const char *ts) pmdb_t *_pacman_db_register(const char *treename, pacman_cb_db_register callback) { - struct stat buf; pmdb_t *db; - char path[PATH_MAX]; if(strcmp(treename, "local") == 0) { if(handle->db_local != NULL) { @@ -366,15 +364,6 @@ pmdb_t *_pacman_db_register(const char *treename, pacman_cb_db_register callback _pacman_log(PM_LOG_FLOW1, _("registering database '%s'"), treename); - /* make sure the database directory exists */ - snprintf(path, PATH_MAX, "%s%s/%s", handle->root, handle->dbpath, treename); - if(!strcmp(treename, "local") && (stat(path, &buf) != 0 || !S_ISDIR(buf.st_mode))) { - _pacman_log(PM_LOG_FLOW1, _("database directory '%s' does not exist -- try creating it"), path); - if(_pacman_makepath(path) != 0) { - RET_ERR(PM_ERR_SYSTEM, NULL); - } - } - db = _pacman_db_new(handle->root, handle->dbpath, treename); if(db == NULL) { RET_ERR(PM_ERR_DB_CREATE, NULL); diff --git a/lib/libpacman/db/localdb.c b/lib/libpacman/db/localdb.c index d5e81f0..2206c2d 100644 --- a/lib/libpacman/db/localdb.c +++ b/lib/libpacman/db/localdb.c @@ -109,6 +109,15 @@ pmlist_t *_pacman_localdb_test(pmdb_t *db) static int _pacman_localdb_open(pmdb_t *db, int flags, time_t *timestamp) { + struct stat buf; + + /* make sure the database directory exists */ + if(stat(db->path, &buf) != 0 || !S_ISDIR(buf.st_mode)) { + _pacman_log(PM_LOG_FLOW1, _("database directory '%s' does not exist -- try creating it"), db->path); + if(_pacman_makepath(db->path) != 0) { + RET_ERR(PM_ERR_SYSTEM, -1); + } + } db->handle = opendir(db->path); ASSERT(db->handle != NULL, RET_ERR(PM_ERR_DB_OPEN, -1)); _pacman_db_gettimestamp(db, timestamp); _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git