network: fdb: use ether_addr_from_string()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 11 Jul 2019 01:48:41 +0000 (10:48 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 11 Jul 2019 13:22:29 +0000 (22:22 +0900)
src/network/networkd-fdb.c

index f53f661..5b7468c 100644 (file)
@@ -215,17 +215,9 @@ int config_parse_fdb_hwaddr(
         if (r < 0)
                 return log_oom();
 
-        /* read in the MAC address for the FDB table. */
-        r = sscanf(rvalue, "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
-                   &fdb_entry->mac_addr.ether_addr_octet[0],
-                   &fdb_entry->mac_addr.ether_addr_octet[1],
-                   &fdb_entry->mac_addr.ether_addr_octet[2],
-                   &fdb_entry->mac_addr.ether_addr_octet[3],
-                   &fdb_entry->mac_addr.ether_addr_octet[4],
-                   &fdb_entry->mac_addr.ether_addr_octet[5]);
-
-        if (r != ETHER_ADDR_LEN) {
-                log_syntax(unit, LOG_ERR, filename, line, 0, "Not a valid MAC address, ignoring assignment: %s", rvalue);
+        r = ether_addr_from_string(rvalue, &fdb_entry->mac_addr);
+        if (r < 0) {
+                log_syntax(unit, LOG_ERR, filename, line, r, "Not a valid MAC address, ignoring assignment: %s", rvalue);
                 return 0;
         }