linux/include/uapi/linux/dns_resolver.h

/* 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 */