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

Reply via email to