|
|
|
@ -55,14 +55,14 @@ |
|
|
|
|
|
|
|
|
|
/* Macros for constructing a DNS header */ |
|
|
|
|
#define DNS_HEADER_SET_QID(h, v) DNS__SET16BIT(h, v) |
|
|
|
|
#define DNS_HEADER_SET_QR(h, v) ((h)[2] |= (((v) & 0x1) << 7)) |
|
|
|
|
#define DNS_HEADER_SET_OPCODE(h, v) ((h)[2] |= (((v) & 0xf) << 3)) |
|
|
|
|
#define DNS_HEADER_SET_AA(h, v) ((h)[2] |= (((v) & 0x1) << 2)) |
|
|
|
|
#define DNS_HEADER_SET_TC(h, v) ((h)[2] |= (((v) & 0x1) << 1)) |
|
|
|
|
#define DNS_HEADER_SET_RD(h, v) ((h)[2] |= (((v) & 0x1))) |
|
|
|
|
#define DNS_HEADER_SET_RA(h, v) ((h)[3] |= (((v) & 0x1) << 7)) |
|
|
|
|
#define DNS_HEADER_SET_Z(h, v) ((h)[3] |= (((v) & 0x7) << 4)) |
|
|
|
|
#define DNS_HEADER_SET_RCODE(h, v) ((h)[3] |= (((v) & 0xf))) |
|
|
|
|
#define DNS_HEADER_SET_QR(h, v) ((h)[2] |= (unsigned char)(((v) & 0x1) << 7)) |
|
|
|
|
#define DNS_HEADER_SET_OPCODE(h, v) ((h)[2] |= (unsigned char)(((v) & 0xf) << 3)) |
|
|
|
|
#define DNS_HEADER_SET_AA(h, v) ((h)[2] |= (unsigned char)(((v) & 0x1) << 2)) |
|
|
|
|
#define DNS_HEADER_SET_TC(h, v) ((h)[2] |= (unsigned char)(((v) & 0x1) << 1)) |
|
|
|
|
#define DNS_HEADER_SET_RD(h, v) ((h)[2] |= (unsigned char)((v) & 0x1)) |
|
|
|
|
#define DNS_HEADER_SET_RA(h, v) ((h)[3] |= (unsigned char)(((v) & 0x1) << 7)) |
|
|
|
|
#define DNS_HEADER_SET_Z(h, v) ((h)[3] |= (unsigned char)(((v) & 0x7) << 4)) |
|
|
|
|
#define DNS_HEADER_SET_RCODE(h, v) ((h)[3] |= (unsigned char)((v) & 0xf)) |
|
|
|
|
#define DNS_HEADER_SET_QDCOUNT(h, v) DNS__SET16BIT((h) + 4, v) |
|
|
|
|
#define DNS_HEADER_SET_ANCOUNT(h, v) DNS__SET16BIT((h) + 6, v) |
|
|
|
|
#define DNS_HEADER_SET_NSCOUNT(h, v) DNS__SET16BIT((h) + 8, v) |
|
|
|
|