assert(manager);
assert(filename);
- if (null_or_empty_path(filename)) {
- log_debug("skipping empty file: %s", filename);
- return 0;
- }
-
file = fopen(filename, "re");
if (!file) {
if (errno == ENOENT)
return -errno;
}
+ if (null_or_empty_fd(fileno(file))) {
+ log_debug("Skipping empty file: %s", filename);
+ return 0;
+ }
+
netdev = new0(NetDev, 1);
if (!netdev)
return log_oom();
return -errno;
}
- if (null_or_empty_path(filename)) {
- log_debug("skipping empty file: %s", filename);
+ if (null_or_empty_fd(fileno(file))) {
+ log_debug("Skipping empty file: %s", filename);
return 0;
}
return null_or_empty(&st);
}
+int null_or_empty_fd(int fd) {
+ struct stat st;
+
+ assert(fd >= 0);
+
+ if (fstat(fd, &st) < 0)
+ return -errno;
+
+ return null_or_empty(&st);
+}
+
DIR *xopendirat(int fd, const char *name, int flags) {
int nfd;
DIR *d;
bool null_or_empty(struct stat *st) _pure_;
int null_or_empty_path(const char *fn);
+int null_or_empty_fd(int fd);
DIR *xopendirat(int dirfd, const char *name, int flags);
assert(ctx);
assert(filename);
- if (null_or_empty_path(filename)) {
- log_debug("skipping empty file: %s", filename);
- return 0;
- }
-
file = fopen(filename, "re");
if (!file) {
if (errno == ENOENT)
return -errno;
}
+ if (null_or_empty_fd(fileno(file))) {
+ log_debug("Skipping empty file: %s", filename);
+ return 0;
+ }
+
link = new0(link_config, 1);
if (!link)
return log_oom();
int line_nr = 0;
unsigned int i;
- if (null_or_empty_path(filename)) {
- log_debug("skip empty file: %s", filename);
- return 0;
+ f = fopen(filename, "re");
+ if (!f) {
+ if (errno == ENOENT)
+ return 0;
+ else
+ return -errno;
}
- log_debug("read rules file: %s", filename);
- f = fopen(filename, "re");
- if (f == NULL)
- return -1;
+ if (null_or_empty_fd(fileno(f))) {
+ log_debug("Skipping empty file: %s", filename);
+ return 0;
+ } else
+ log_debug("Reading rules file: %s", filename);
first_token = rules->token_cur;
filename_off = rules_add_string(rules, filename);