From 416ef5e2bf59bb2e45066a1d5d91ac677c0f48e5 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Wed, 10 Dec 2014 03:05:47 +0000 Subject: Initial commit --- src/libs6dns/s6dns_message_header_unpack.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/libs6dns/s6dns_message_header_unpack.c (limited to 'src/libs6dns/s6dns_message_header_unpack.c') diff --git a/src/libs6dns/s6dns_message_header_unpack.c b/src/libs6dns/s6dns_message_header_unpack.c new file mode 100644 index 0000000..ae2b35c --- /dev/null +++ b/src/libs6dns/s6dns_message_header_unpack.c @@ -0,0 +1,18 @@ +/* ISC license. */ + +#include +#include + +void s6dns_message_header_unpack (char const *s, s6dns_message_header_t *h) +{ + uint16_unpack_big(s, &h->id) ; + h->qr = s[2] & 0x8000U ? 1 : 0 ; + h->opcode = (s[2] >> 3) & 15 ; + h->aa = s[2] & 4 ? 1 : 0 ; + h->tc = s[2] & 2 ? 1 : 0 ; + h->rd = s[2] & 1 ; + h->ra = s[3] & 0x8000U ? 1 : 0 ; + h->z = (s[3] >> 4) & 7 ; + h->rcode = s[3] & 15 ; + s6dns_message_counts_unpack(s+4, &h->counts) ; +} -- cgit v1.3.1