Merge pull request #3137 from keszybz/dirent-simplification

Various small cleanups in shared code
This commit is contained in:
Lennart Poettering
2016-04-29 10:40:15 +02:00
13 changed files with 64 additions and 52 deletions
+4 -8
View File
@@ -52,12 +52,10 @@ int dirent_ensure_type(DIR *d, struct dirent *de) {
bool dirent_is_file(const struct dirent *de) {
assert(de);
if (hidden_file(de->d_name))
if (!IN_SET(de->d_type, DT_REG, DT_LNK, DT_UNKNOWN))
return false;
if (de->d_type != DT_REG &&
de->d_type != DT_LNK &&
de->d_type != DT_UNKNOWN)
if (hidden_or_backup_file(de->d_name))
return false;
return true;
@@ -66,12 +64,10 @@ bool dirent_is_file(const struct dirent *de) {
bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix) {
assert(de);
if (de->d_type != DT_REG &&
de->d_type != DT_LNK &&
de->d_type != DT_UNKNOWN)
if (!IN_SET(de->d_type, DT_REG, DT_LNK, DT_UNKNOWN))
return false;
if (hidden_file_allow_backup(de->d_name))
if (de->d_name[0] == '.')
return false;
return endswith(de->d_name, suffix);
+1 -1
View File
@@ -38,7 +38,7 @@ bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix) _pu
on_error; \
} \
break; \
} else if (hidden_file((de)->d_name)) \
} else if (hidden_or_backup_file((de)->d_name)) \
continue; \
else
+1 -1
View File
@@ -231,7 +231,7 @@ int close_all_fds(const int except[], unsigned n_except) {
while ((de = readdir(d))) {
int fd = -1;
if (hidden_file(de->d_name))
if (hidden_or_backup_file(de->d_name))
continue;
if (safe_atoi(de->d_name, &fd) < 0)
+1 -1
View File
@@ -151,7 +151,7 @@ int fdset_new_fill(FDSet **_s) {
while ((de = readdir(d))) {
int fd = -1;
if (hidden_file(de->d_name))
if (hidden_or_backup_file(de->d_name))
continue;
r = safe_atoi(de->d_name, &fd);
+27 -27
View File
@@ -756,37 +756,37 @@ char *file_in_same_dir(const char *path, const char *filename) {
return ret;
}
bool hidden_file_allow_backup(const char *filename) {
bool hidden_or_backup_file(const char *filename) {
const char *p;
assert(filename);
return
filename[0] == '.' ||
streq(filename, "lost+found") ||
streq(filename, "aquota.user") ||
streq(filename, "aquota.group") ||
endswith(filename, ".rpmnew") ||
endswith(filename, ".rpmsave") ||
endswith(filename, ".rpmorig") ||
endswith(filename, ".dpkg-old") ||
endswith(filename, ".dpkg-new") ||
endswith(filename, ".dpkg-tmp") ||
endswith(filename, ".dpkg-dist") ||
endswith(filename, ".dpkg-bak") ||
endswith(filename, ".dpkg-backup") ||
endswith(filename, ".dpkg-remove") ||
endswith(filename, ".ucf-new") ||
endswith(filename, ".ucf-old") ||
endswith(filename, ".ucf-dist") ||
endswith(filename, ".swp");
}
bool hidden_file(const char *filename) {
assert(filename);
if (endswith(filename, "~"))
if (filename[0] == '.' ||
streq(filename, "lost+found") ||
streq(filename, "aquota.user") ||
streq(filename, "aquota.group") ||
endswith(filename, "~"))
return true;
return hidden_file_allow_backup(filename);
p = strrchr(filename, '.');
if (!p)
return false;
return STR_IN_SET(p + 1,
"rpmnew",
"rpmsave",
"rpmorig",
"dpkg-old",
"dpkg-new",
"dpkg-tmp",
"dpkg-dist",
"dpkg-bak",
"dpkg-backup",
"dpkg-remove",
"ucf-new",
"ucf-old",
"ucf-dist",
"swp");
}
bool is_device_path(const char *path) {
+1 -2
View File
@@ -122,7 +122,6 @@ bool path_is_safe(const char *p) _pure_;
char *file_in_same_dir(const char *path, const char *filename);
bool hidden_file_allow_backup(const char *filename);
bool hidden_file(const char *filename) _pure_;
bool hidden_or_backup_file(const char *filename) _pure_;
bool is_device_path(const char *path);
+1 -1
View File
@@ -522,7 +522,7 @@ int on_ac_power(void) {
if (!de)
break;
if (hidden_file(de->d_name))
if (hidden_or_backup_file(de->d_name))
continue;
device = openat(dirfd(d), de->d_name, O_DIRECTORY|O_RDONLY|O_CLOEXEC|O_NOCTTY);