X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fresolve%2Fresolved-dns-packet.h;h=4e3001911e7c74a64e27ff9c4946c699b286a5fc;hp=ad4a38e6e42188c3dad8b996ecfbd2e61432650c;hb=8db0d2f5c37e7e8f5bfce016cfdad7947a3ea939;hpb=623a4c97b9175f95c4b1c6fc34e36c56f1e4ddbf diff --git a/src/resolve/resolved-dns-packet.h b/src/resolve/resolved-dns-packet.h index ad4a38e6e..4e3001911 100644 --- a/src/resolve/resolved-dns-packet.h +++ b/src/resolve/resolved-dns-packet.h @@ -99,6 +99,8 @@ static inline uint8_t* DNS_PACKET_DATA(DnsPacket *p) { #define DNS_PACKET_OPCODE(p) ((be16toh(DNS_PACKET_HEADER(p)->flags) >> 11) & 15) #define DNS_PACKET_RCODE(p) (be16toh(DNS_PACKET_HEADER(p)->flags) & 15) #define DNS_PACKET_TC(p) ((be16toh(DNS_PACKET_HEADER(p)->flags) >> 9) & 1) +#define DNS_PACKET_C(p) ((be16toh(DNS_PACKET_HEADER(p)->flags) >> 10) & 1) +#define DNS_PACKET_T(p) ((be16toh(DNS_PACKET_HEADER(p)->flags) >> 8) & 1) #define DNS_PACKET_QDCOUNT(p) be16toh(DNS_PACKET_HEADER(p)->qdcount) #define DNS_PACKET_ANCOUNT(p) be16toh(DNS_PACKET_HEADER(p)->ancount) #define DNS_PACKET_NSCOUNT(p) be16toh(DNS_PACKET_HEADER(p)->nscount) @@ -190,3 +192,11 @@ DnsProtocol dns_protocol_from_string(const char *s) _pure_; #define LLMNR_MULTICAST_IPV4_ADDRESS ((struct in_addr) { .s_addr = htobe32(224U << 24 | 252U) }) #define LLMNR_MULTICAST_IPV6_ADDRESS ((struct in6_addr) { .s6_addr = { 0xFF, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03 } }) + +#define DNSKEY_FLAG_ZONE_KEY (1u << 8) +#define DNSKEY_FLAG_SEP (1u << 0) + +static inline uint16_t dnskey_to_flags(const DnsResourceRecord *rr) { + return (rr->dnskey.zone_key_flag * DNSKEY_FLAG_ZONE_KEY | + rr->dnskey.sep_flag * DNSKEY_FLAG_SEP); +}