From: Yu Watanabe Date: Thu, 4 Nov 2021 15:15:44 +0000 (+0900) Subject: ether-addr-util: introduce parse_ether_addr() X-Git-Tag: v250-rc1~319^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=02160bc909ae4643e343746be468f9b4bc3f3f7a;p=thirdparty%2Fsystemd.git ether-addr-util: introduce parse_ether_addr() --- diff --git a/src/basic/ether-addr-util.c b/src/basic/ether-addr-util.c index 0cc18b3115d..605d5dbb281 100644 --- a/src/basic/ether-addr-util.c +++ b/src/basic/ether-addr-util.c @@ -309,3 +309,18 @@ int parse_hw_addr_full(const char *s, size_t expected_len, struct hw_addr_data * memcpy(ret->bytes, bytes, ret->length); return 0; } + +int parse_ether_addr(const char *s, struct ether_addr *ret) { + struct hw_addr_data a; + int r; + + assert(s); + assert(ret); + + r = parse_hw_addr_full(s, ETH_ALEN, &a); + if (r < 0) + return r; + + *ret = a.ether; + return 0; +} diff --git a/src/basic/ether-addr-util.h b/src/basic/ether-addr-util.h index 983f1bbe64d..11bea7bbccf 100644 --- a/src/basic/ether-addr-util.h +++ b/src/basic/ether-addr-util.h @@ -29,6 +29,7 @@ int parse_hw_addr_full(const char *s, size_t expected_len, struct hw_addr_data * static inline int parse_hw_addr(const char *s, struct hw_addr_data *ret) { return parse_hw_addr_full(s, 0, ret); } +int parse_ether_addr(const char *s, struct ether_addr *ret); #define HW_ADDR_TO_STRING_MAX (3*HW_ADDR_MAX_SIZE) char* hw_addr_to_string(const struct hw_addr_data *addr, char buffer[HW_ADDR_TO_STRING_MAX]);