/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ /* DNS resolver interface definitions. * * Copyright (C) 2018 Red Hat, Inc. All Rights Reserved. * Written by David Howells ([email protected]) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public Licence * as published by the Free Software Foundation; either version * 2 of the Licence, or (at your option) any later version. */ #ifndef _UAPI_LINUX_DNS_RESOLVER_H #define _UAPI_LINUX_DNS_RESOLVER_H #include <linux/types.h> /* * Type of payload. */ enum dns_payload_content_type { … }; /* * Type of address that might be found in an address record. */ enum dns_payload_address_type { … }; /* * Type of protocol used to access a server. */ enum dns_payload_protocol_type { … }; /* * Source of record included in DNS resolver payload. */ enum dns_record_source { … }; /* * Status of record included in DNS resolver payload. */ enum dns_lookup_status { … }; /* * Header at the beginning of binary format payload. */ struct dns_payload_header { … } __packed; /* * Header at the beginning of a V1 server list. This is followed directly by * the server records. Each server records begins with a struct of type * dns_server_list_v1_server. */ struct dns_server_list_v1_header { … } __packed; /* * Header at the beginning of each V1 server record. This is followed by the * characters of the name with no NUL-terminator, followed by the address * records for that server. Each address record begins with a struct of type * struct dns_server_list_v1_address. */ struct dns_server_list_v1_server { … } __packed; /* * Header at the beginning of each V1 address record. This is followed by the * bytes of the address, 4 for IPV4 and 16 for IPV6. */ struct dns_server_list_v1_address { … } __packed; #endif /* _UAPI_LINUX_DNS_RESOLVER_H */