int netdev_load_one(Manager *manager, const char *filename) {
_cleanup_(netdev_unrefp) NetDev *netdev_raw = NULL, *netdev = NULL;
- _cleanup_fclose_ FILE *file = NULL;
const char *dropin_dirname;
bool independent = false;
int r;
assert(manager);
assert(filename);
- file = fopen(filename, "re");
- if (!file) {
- if (errno == ENOENT)
- return 0;
-
- return -errno;
- }
-
- if (null_or_empty_fd(fileno(file))) {
+ r = null_or_empty_path(filename);
+ if (r == -ENOENT)
+ return 0;
+ if (r < 0)
+ return r;
+ if (r > 0) {
log_debug("Skipping empty file: %s", filename);
return 0;
}
return 0;
}
- r = fseek(file, 0, SEEK_SET);
- if (r < 0)
- return -errno;
-
netdev = malloc0(NETDEV_VTABLE(netdev_raw)->object_size);
if (!netdev)
return log_oom();
int network_load_one(Manager *manager, OrderedHashmap **networks, const char *filename) {
_cleanup_free_ char *fname = NULL, *name = NULL;
_cleanup_(network_unrefp) Network *network = NULL;
- _cleanup_fclose_ FILE *file = NULL;
const char *dropin_dirname;
char *d;
int r;
assert(manager);
assert(filename);
- file = fopen(filename, "re");
- if (!file) {
- if (errno == ENOENT)
- return 0;
-
- return -errno;
- }
-
- if (null_or_empty_fd(fileno(file))) {
+ r = null_or_empty_path(filename);
+ if (r == -ENOENT)
+ return 0;
+ if (r < 0)
+ return r;
+ if (r > 0) {
log_debug("Skipping empty file: %s", filename);
return 0;
}