]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
ether-addr-util: introduce parse_ether_addr()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 4 Nov 2021 15:15:44 +0000 (00:15 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 9 Nov 2021 12:39:09 +0000 (21:39 +0900)
src/basic/ether-addr-util.c
src/basic/ether-addr-util.h

index 0cc18b3115de52c989c43b0b82c8ebc80d20424f..605d5dbb28184c1aaa12f27cb8529a92424cc6cd 100644 (file)
@@ -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;
+}
index 983f1bbe64d16f73d1377e35b60b6a8544760ea1..11bea7bbccf11f9da2a0011b9374a914a4957dad 100644 (file)
@@ -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]);