chiark / gitweb /
sd-rtnl: make string returned by sd_rtnl_message_read_string() const
[elogind.git] / src / network / networkd-netdev.c
index a97831760e44d3eca1bcf4e73a1ae6e57a483b2f..86f2250c8ffbcfd091b059b29c03cb4770412cc9 100644 (file)
@@ -341,8 +341,8 @@ int netdev_join(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback)
 int netdev_set_ifindex(NetDev *netdev, sd_rtnl_message *message) {
         uint16_t type;
         const char *kind;
-        char *received_kind;
-        char *received_name;
+        const char *received_kind;
+        const char *received_name;
         int r, ifindex;
 
         assert(netdev);
@@ -495,11 +495,6 @@ static int netdev_load_one(Manager *manager, const char *filename) {
         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)
@@ -508,6 +503,11 @@ static int netdev_load_one(Manager *manager, const char *filename) {
                         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();
@@ -525,12 +525,10 @@ static int netdev_load_one(Manager *manager, const char *filename) {
 
         r = config_parse(NULL, filename, file,
                          "Match\0NetDev\0VLAN\0MACVLAN\0VXLAN\0Tunnel\0Peer\0Tun\0Tap\0Bond\0",
-                         config_item_perf_lookup, (void*) network_netdev_gperf_lookup,
-                         false, false, netdev);
-        if (r < 0) {
-                log_warning("Could not parse config file %s: %s", filename, strerror(-r));
+                         config_item_perf_lookup, network_netdev_gperf_lookup,
+                         false, false, true, netdev);
+        if (r < 0)
                 return r;
-        }
 
         /* skip out early if configuration does not match the environment */
         if (net_match_config(NULL, NULL, NULL, NULL, NULL,
@@ -540,7 +538,7 @@ static int netdev_load_one(Manager *manager, const char *filename) {
                 return 0;
 
         if (!NETDEV_VTABLE(netdev)) {
-                log_warning("NetDev with invalid Kind configured in %s. Igonring", filename);
+                log_warning("NetDev with invalid Kind configured in %s. Ignoring", filename);
                 return 0;
         }