Skip to content
Snippets Groups Projects
Commit e45e70c5 authored by Vladimír Čunát's avatar Vladimír Čunát Committed by Ondřej Surý
Browse files

utils: add union inaddr

It will be a useful idiom for IP address storage and correct conversion
of sockaddr* pointers.
parent 6aad8c0f
2 merge requests!2571.2 merge master,!2181.2.4 dev
......@@ -120,14 +120,8 @@ struct qr_task
worker_cb_t on_complete;
void *baton;
struct {
union {
struct sockaddr_in ip4;
struct sockaddr_in6 ip6;
} addr;
union {
struct sockaddr_in ip4;
struct sockaddr_in6 ip6;
} dst_addr;
union inaddr addr;
union inaddr dst_addr;
uv_handle_t *handle;
} source;
uint32_t refs;
......
......@@ -78,11 +78,7 @@ struct kr_nsrep
unsigned reputation; /**< NS reputation */
const knot_dname_t *name; /**< NS name */
struct kr_context *ctx; /**< Resolution context */
union {
struct sockaddr ip;
struct sockaddr_in ip4;
struct sockaddr_in6 ip6;
} addr[KR_NSREP_MAXADDR]; /**< NS address(es) */
union inaddr addr[KR_NSREP_MAXADDR]; /**< NS address(es) */
};
/** @internal Address bytes for given family. */
......
......@@ -137,6 +137,13 @@ KR_EXPORT
int kr_pkt_put(knot_pkt_t *pkt, const knot_dname_t *name, uint32_t ttl,
uint16_t rclass, uint16_t rtype, const uint8_t *rdata, uint16_t rdlen);
/** Simple storage for IPx address or AF_UNSPEC. */
union inaddr {
struct sockaddr ip;
struct sockaddr_in ip4;
struct sockaddr_in6 ip6;
};
/** Address bytes for given family. */
KR_EXPORT KR_PURE
const char *kr_inaddr(const struct sockaddr *addr);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment