summaryrefslogtreecommitdiff
path: root/src/basic/ether-addr-util.h
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-11-04 19:18:32 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-11-09 21:39:05 +0900
commit76a5d3dee27124e017a5ebbb1fe461b13d9415c2 (patch)
tree9e23232794c2288fc832b8d0bacfe6b9beeabb4e /src/basic/ether-addr-util.h
parent777c17b9d1a035c0a0a9efb747409514204ccbd7 (diff)
downloadsystemd-76a5d3dee27124e017a5ebbb1fe461b13d9415c2.tar.gz
ether-addr-util: introduce parse_hw_addr()
Diffstat (limited to 'src/basic/ether-addr-util.h')
-rw-r--r--src/basic/ether-addr-util.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/basic/ether-addr-util.h b/src/basic/ether-addr-util.h
index c5cfdb4233..983f1bbe64 100644
--- a/src/basic/ether-addr-util.h
+++ b/src/basic/ether-addr-util.h
@@ -6,6 +6,7 @@
#include <stdbool.h>
#include "hash-funcs.h"
+#include "in-addr-util.h"
#include "macro.h"
#include "memory-util.h"
@@ -18,10 +19,17 @@ struct hw_addr_data {
union {
struct ether_addr ether;
uint8_t infiniband[INFINIBAND_ALEN];
+ struct in_addr in;
+ struct in6_addr in6;
uint8_t bytes[HW_ADDR_MAX_SIZE];
};
};
+int parse_hw_addr_full(const char *s, size_t expected_len, struct hw_addr_data *ret);
+static inline int parse_hw_addr(const char *s, struct hw_addr_data *ret) {
+ return parse_hw_addr_full(s, 0, 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]);