diff options
author | Timo Teräs <timo.teras@iki.fi> | 2013-02-06 14:01:46 +0200 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2013-02-06 14:01:46 +0200 |
commit | 89362a08fe4da0992e8dc10374b3d898fc78a4ea (patch) | |
tree | 91fb7bc180a184d6b0e78d303d49d6cb98fc5209 /src/addr.h | |
parent | da50a45d29de99a8ed49e24e9c2e1e6d400fc4c3 (diff) | |
download | squark-89362a08fe4da0992e8dc10374b3d898fc78a4ea.tar.bz2 squark-89362a08fe4da0992e8dc10374b3d898fc78a4ea.tar.xz |
auth-snmp: allow specifying management network prefix
So we don't go and try querying untrusted LLDP capable devices in
non-managed subnets.
Diffstat (limited to 'src/addr.h')
-rw-r--r-- | src/addr.h | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -10,11 +10,22 @@ typedef union { } sockaddr_any; int addr_len(const sockaddr_any *addr); -sockaddr_any *addr_parse(blob_t text, sockaddr_any *addr); +sockaddr_any *addr_parse_prefix(blob_t text, sockaddr_any *addr, uint8_t *prefix); unsigned long addr_hash(const sockaddr_any *addr); const char *addr_print(const sockaddr_any *addr); blob_t addr_get_hostaddr_blob(const sockaddr_any *addr); void addr_push_hostaddr(blob_t *b, const sockaddr_any *addr); +int addr_prefix_cmp(const sockaddr_any *a, const sockaddr_any *b, int prefix); + +static inline void addr_invalidate(sockaddr_any *addr) +{ + addr->any.sa_family = AF_UNSPEC; +} + +static inline sockaddr_any *addr_parse(blob_t b, sockaddr_any *addr) +{ + return addr_parse_prefix(b, addr, NULL); +} static inline void addr_copy(sockaddr_any *dst, const sockaddr_any *src) { |