summaryrefslogtreecommitdiff
path: root/lib/libalpm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libalpm')
-rw-r--r--lib/libalpm/be_local.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/libalpm/be_local.c b/lib/libalpm/be_local.c
index 848ecc58..c3461b77 100644
--- a/lib/libalpm/be_local.c
+++ b/lib/libalpm/be_local.c
@@ -351,18 +351,22 @@ static int checkdbdir(pmdb_t *db)
static int is_dir(const char *path, struct dirent *entry)
{
#ifdef HAVE_STRUCT_DIRENT_D_TYPE
- return(entry->d_type == DT_DIR);
-#else
- char buffer[PATH_MAX];
- snprintf(buffer, PATH_MAX, "%s/%s", path, entry->d_name);
+ if(entry->d_type != DT_UNKNOWN) {
+ return(entry->d_type == DT_DIR);
+ }
+#endif
+ {
+ char buffer[PATH_MAX];
+ struct stat sbuf;
+
+ snprintf(buffer, PATH_MAX, "%s/%s", path, entry->d_name);
- struct stat sbuf;
- if (!stat(buffer, &sbuf)) {
- return(S_ISDIR(sbuf.st_mode));
+ if (!stat(buffer, &sbuf)) {
+ return(S_ISDIR(sbuf.st_mode));
+ }
}
return(0);
-#endif
}
static int local_db_populate(pmdb_t *db)
@@ -462,7 +466,7 @@ static int local_db_populate(pmdb_t *db)
}
/* add to the collection */
- _alpm_log(PM_LOG_FUNCTION, "adding '%s' to package cache for db '%s'\n",
+ _alpm_log(PM_LOG_DEBUG, "adding '%s' to package cache for db '%s'\n",
pkg->name, db->treename);
db->pkgcache = _alpm_pkghash_add(db->pkgcache, pkg);
count++;