diff options
-rw-r--r-- | src/basic/ether-addr-util.c | 72 | ||||
-rw-r--r-- | src/basic/ether-addr-util.h | 2 | ||||
-rw-r--r-- | src/network/generator/network-generator.c | 4 | ||||
-rw-r--r-- | src/network/netdev/bond.c | 2 | ||||
-rw-r--r-- | src/network/netdev/macsec.c | 2 | ||||
-rw-r--r-- | src/network/networkd-bridge-fdb.c | 2 | ||||
-rw-r--r-- | src/network/networkd-dhcp-server-static-lease.c | 2 | ||||
-rw-r--r-- | src/network/networkd-neighbor.c | 4 | ||||
-rw-r--r-- | src/network/networkd-sriov.c | 2 | ||||
-rw-r--r-- | src/network/test-networkd-conf.c | 2 | ||||
-rw-r--r-- | src/shared/conf-parser.c | 4 | ||||
-rw-r--r-- | src/udev/net/link-config.c | 4 |
12 files changed, 14 insertions, 88 deletions
diff --git a/src/basic/ether-addr-util.c b/src/basic/ether-addr-util.c index 605d5dbb28..ed0883886a 100644 --- a/src/basic/ether-addr-util.c +++ b/src/basic/ether-addr-util.c @@ -94,78 +94,6 @@ static void ether_addr_hash_func(const struct ether_addr *p, struct siphash *sta DEFINE_HASH_OPS(ether_addr_hash_ops, struct ether_addr, ether_addr_hash_func, ether_addr_compare); -int ether_addr_from_string(const char *s, struct ether_addr *ret) { - size_t pos = 0, n, field; - char sep = '\0'; - const char *hex = HEXDIGITS, *hexoff; - size_t x; - bool touched; - -#define parse_fields(v) \ - for (field = 0; field < ELEMENTSOF(v); field++) { \ - touched = false; \ - for (n = 0; n < (2 * sizeof(v[0])); n++) { \ - if (s[pos] == '\0') \ - break; \ - hexoff = strchr(hex, s[pos]); \ - if (!hexoff) \ - break; \ - assert(hexoff >= hex); \ - x = hexoff - hex; \ - if (x >= 16) \ - x -= 6; /* A-F */ \ - assert(x < 16); \ - touched = true; \ - v[field] <<= 4; \ - v[field] += x; \ - pos++; \ - } \ - if (!touched) \ - return -EINVAL; \ - if (field < (ELEMENTSOF(v)-1)) { \ - if (s[pos] != sep) \ - return -EINVAL; \ - else \ - pos++; \ - } \ - } - - assert(s); - assert(ret); - - s += strspn(s, WHITESPACE); - sep = s[strspn(s, hex)]; - - if (sep == '.') { - uint16_t shorts[3] = { 0 }; - - parse_fields(shorts); - - if (s[pos] != '\0') - return -EINVAL; - - for (n = 0; n < ELEMENTSOF(shorts); n++) { - ret->ether_addr_octet[2*n] = ((shorts[n] & (uint16_t)0xff00) >> 8); - ret->ether_addr_octet[2*n + 1] = (shorts[n] & (uint16_t)0x00ff); - } - - } else if (IN_SET(sep, ':', '-')) { - struct ether_addr out = ETHER_ADDR_NULL; - - parse_fields(out.ether_addr_octet); - - if (s[pos] != '\0') - return -EINVAL; - - for (n = 0; n < ELEMENTSOF(out.ether_addr_octet); n++) - ret->ether_addr_octet[n] = out.ether_addr_octet[n]; - - } else - return -EINVAL; - - return 0; -} - static int parse_hw_addr_one_field(const char **s, char sep, size_t len, uint8_t *buf) { const char *hex = HEXDIGITS, *p; uint16_t data = 0; diff --git a/src/basic/ether-addr-util.h b/src/basic/ether-addr-util.h index 11bea7bbcc..62afe458b0 100644 --- a/src/basic/ether-addr-util.h +++ b/src/basic/ether-addr-util.h @@ -92,6 +92,4 @@ static inline bool ether_addr_is_local(const struct ether_addr *addr) { return !FLAGS_SET(addr->ether_addr_octet[0], 0x02); } -int ether_addr_from_string(const char *s, struct ether_addr *ret); - extern const struct hash_ops ether_addr_hash_ops; diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c index c07b269f36..3185e10a83 100644 --- a/src/network/generator/network-generator.c +++ b/src/network/generator/network-generator.c @@ -353,7 +353,7 @@ static int network_set_mac_address(Context *context, const char *ifname, const c if (!network) return -ENODEV; - return ether_addr_from_string(mac, &network->mac); + return parse_ether_addr(mac, &network->mac); } static int network_set_address(Context *context, const char *ifname, int family, unsigned char prefixlen, @@ -909,7 +909,7 @@ static int parse_cmdline_ifname(Context *context, const char *key, const char *v name = strndupa_safe(value, p - value); - r = ether_addr_from_string(p + 1, &mac); + r = parse_ether_addr(p + 1, &mac); if (r < 0) return r; diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c index a7a4adce45..1b66ed837c 100644 --- a/src/network/netdev/bond.c +++ b/src/network/netdev/bond.c @@ -386,7 +386,7 @@ int config_parse_ad_actor_system( assert(rvalue); assert(data); - r = ether_addr_from_string(rvalue, &n); + r = parse_ether_addr(rvalue, &n); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, "Not a valid MAC address %s. Ignoring assignment: %m", diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c index 3b0c940804..b50d93710d 100644 --- a/src/network/netdev/macsec.c +++ b/src/network/netdev/macsec.c @@ -620,7 +620,7 @@ int config_parse_macsec_hw_address( if (r < 0) return log_oom(); - r = ether_addr_from_string(rvalue, b ? &b->sci.mac : &c->sci.mac); + r = parse_ether_addr(rvalue, b ? &b->sci.mac : &c->sci.mac); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to parse MAC address for secure channel identifier. " diff --git a/src/network/networkd-bridge-fdb.c b/src/network/networkd-bridge-fdb.c index ab1b766d48..1298727a72 100644 --- a/src/network/networkd-bridge-fdb.c +++ b/src/network/networkd-bridge-fdb.c @@ -286,7 +286,7 @@ int config_parse_fdb_hwaddr( if (r < 0) return log_oom(); - r = ether_addr_from_string(rvalue, &fdb->mac_addr); + r = parse_ether_addr(rvalue, &fdb->mac_addr); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, "Not a valid MAC address, ignoring assignment: %s", rvalue); return 0; diff --git a/src/network/networkd-dhcp-server-static-lease.c b/src/network/networkd-dhcp-server-static-lease.c index 0a9b7def25..6acd838e2b 100644 --- a/src/network/networkd-dhcp-server-static-lease.c +++ b/src/network/networkd-dhcp-server-static-lease.c @@ -184,7 +184,7 @@ int config_parse_dhcp_static_lease_hwaddr( return 0; } - r = ether_addr_from_string(rvalue, &hwaddr); + r = parse_ether_addr(rvalue, &hwaddr); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to parse MAC address for DHCPv4 static lease, ignoring assignment: %s", rvalue); diff --git a/src/network/networkd-neighbor.c b/src/network/networkd-neighbor.c index aaa3f2f1ad..2c0a7b0c7f 100644 --- a/src/network/networkd-neighbor.c +++ b/src/network/networkd-neighbor.c @@ -680,7 +680,7 @@ int config_parse_neighbor_lladdr( if (r < 0) return log_oom(); - r = ether_addr_from_string(rvalue, &n->lladdr.mac); + r = parse_ether_addr(rvalue, &n->lladdr.mac); if (r >= 0) n->lladdr_size = sizeof(n->lladdr.mac); else { @@ -725,7 +725,7 @@ int config_parse_neighbor_hwaddr( if (r < 0) return log_oom(); - r = ether_addr_from_string(rvalue, &n->lladdr.mac); + r = parse_ether_addr(rvalue, &n->lladdr.mac); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, "Neighbor MACAddress= is invalid, ignoring assignment: %s", rvalue); diff --git a/src/network/networkd-sriov.c b/src/network/networkd-sriov.c index 106560974e..6da0f83521 100644 --- a/src/network/networkd-sriov.c +++ b/src/network/networkd-sriov.c @@ -523,7 +523,7 @@ int config_parse_sr_iov_mac( return 0; } - r = ether_addr_from_string(rvalue, &sr_iov->mac); + r = parse_ether_addr(rvalue, &sr_iov->mac); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to parse SR-IOV '%s=', ignoring assignment: %s", lvalue, rvalue); diff --git a/src/network/test-networkd-conf.c b/src/network/test-networkd-conf.c index 3d7ce3aca8..27dd387059 100644 --- a/src/network/test-networkd-conf.c +++ b/src/network/test-networkd-conf.c @@ -111,7 +111,7 @@ static void test_config_parse_hwaddr(void) { test_config_parse_hwaddr_one("no:ta:ma:ca:dd:re", 0, NULL); test_config_parse_hwaddr_one("aa:bb:cc:dd:ee:fx", 0, NULL); test_config_parse_hwaddr_one("aa:bb:cc:dd:ee:ff", 0, &t[0]); - test_config_parse_hwaddr_one(" aa:bb:cc:dd:ee:ff", 0, &t[0]); + test_config_parse_hwaddr_one(" aa:bb:cc:dd:ee:ff", 0, NULL); test_config_parse_hwaddr_one("aa:bb:cc:dd:ee:ff \t\n", 0, NULL); test_config_parse_hwaddr_one("aa:bb:cc:dd:ee:ff \t\nxxx", 0, NULL); test_config_parse_hwaddr_one("aa:bb:cc: dd:ee:ff", 0, NULL); diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c index 9a367d757f..29f28af444 100644 --- a/src/shared/conf-parser.c +++ b/src/shared/conf-parser.c @@ -1350,7 +1350,7 @@ int config_parse_hwaddr( if (!n) return log_oom(); - r = ether_addr_from_string(rvalue, n); + r = parse_ether_addr(rvalue, n); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, "Not a valid MAC address, ignoring assignment: %s", rvalue); @@ -1407,7 +1407,7 @@ int config_parse_hwaddrs( if (!n) return log_oom(); - r = ether_addr_from_string(word, n); + r = parse_ether_addr(word, n); if (r < 0) { log_syntax(unit, LOG_WARNING, filename, line, r, "Not a valid MAC address, ignoring: %s", word); diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c index 0fd5f845d2..f91d2b6df1 100644 --- a/src/udev/net/link-config.c +++ b/src/udev/net/link-config.c @@ -118,8 +118,8 @@ static int link_parse_wol_password(LinkConfig *link, const char *str) { if (!p) return -ENOMEM; - /* Reuse ether_addr_from_string(), as their formats are equivalent. */ - r = ether_addr_from_string(str, (struct ether_addr*) p); + /* Reuse parse_ether_addr(), as their formats are equivalent. */ + r = parse_ether_addr(str, (struct ether_addr*) p); if (r < 0) return r; |