lib/in46_addr: Add 'struct in46_prefix' to represent addr + prefix
Change-Id: I797d105117e81951732bcfc2cc26a8d00fd69443
This commit is contained in:
parent
b62983d3c3
commit
7fc8694b97
|
@ -79,6 +79,13 @@ const char *in46a_ntoa(const struct in46_addr *in46)
|
|||
return addrstr_buf;
|
||||
}
|
||||
|
||||
const char *in46p_ntoa(const struct in46_prefix *in46p)
|
||||
{
|
||||
static char addrstr_buf[256];
|
||||
snprintf(addrstr_buf, sizeof(addrstr_buf), "%s/%u", in46a_ntoa(&in46p->addr), in46p->prefixlen);
|
||||
return addrstr_buf;
|
||||
}
|
||||
|
||||
/*! Determine if two in46_addr are equal or not
|
||||
* \returns 1 in case they are equal; 0 otherwise */
|
||||
int in46a_equal(const struct in46_addr *a, const struct in46_addr *b)
|
||||
|
|
|
@ -14,10 +14,16 @@ struct in46_addr {
|
|||
};
|
||||
};
|
||||
|
||||
struct in46_prefix {
|
||||
struct in46_addr addr;
|
||||
uint8_t prefixlen;
|
||||
};
|
||||
|
||||
extern int in46a_to_af(const struct in46_addr *in);
|
||||
extern int in46a_to_sas(struct sockaddr_storage *out, const struct in46_addr *in);
|
||||
extern const char *in46a_ntop(const struct in46_addr *in, char *dst, socklen_t dst_size);
|
||||
extern const char *in46a_ntoa(const struct in46_addr *in46);
|
||||
extern const char *in46p_ntoa(const struct in46_prefix *in46p);
|
||||
extern int in46a_equal(const struct in46_addr *a, const struct in46_addr *b);
|
||||
extern int in46a_prefix_equal(const struct in46_addr *a, const struct in46_addr *b);
|
||||
extern int in46a_within_mask(const struct in46_addr *addr, const struct in46_addr *net, size_t prefixlen);
|
||||
|
|
Reference in New Issue