From 02160bc909ae4643e343746be468f9b4bc3f3f7a Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 5 Nov 2021 00:15:44 +0900 Subject: [PATCH] ether-addr-util: introduce parse_ether_addr() --- src/basic/ether-addr-util.c | 15 +++++++++++++++ src/basic/ether-addr-util.h | 1 + 2 files changed, 16 insertions(+) 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]); -- 2.47.3