Sortix
Sortix Download Manual Development Source Code News Blog More
current nightly

Sortix nightly manual

This manual documents Sortix nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.

NAME

getdnsconfig, setdnsconfig — get and set the kernel DNS resolver list

SYNOPSIS

#include <sys/dnsconfig.h>
#define DNSCONFIG_MAX_SERVERS 3
int
getdnsconfig(struct dnsconfig *cfg);
int
getdnsconfig(const struct dnsconfig *cfg);

DESCRIPTION

getdnsconfig() gets and setdnsconfig() sets the kernel DNS resolver list.
cfg points to a struct dnsconfig structure. The servers array can contain up to DNSCONFIG_MAX_SERVERS DNS resolvers. The servers_count field marks how many of the entries in servers are populated.
struct dnsconfig { 
	size_t servers_count; 
	struct dnsconfig_server servers[DNSCONFIG_MAX_SERVERS]; 
}
Each DNS resolver in the servers array is described by a struct dnsconfig_server structure. The resolver can be defined by either an IPv4 or an IPv6 address.
For an IPv4 address family is AF_INET, addrsize is sizeof(struct in_addr), and the address is stored in the in field of the addr union.
For an IPv6 address family is AF_INET6, addrsize is sizeof(struct in_addr6), and the address is stored in the in6 field of the addr union.
union dnsconfig_server_union { 
	struct in_addr in; 
	struct in6_addr in6; 
} 
 
struct dnsconfig_server { 
	sa_family_t family; 
	size_t addrsize; 
	union dnsconfig_server_union addr; 
}

RETURN VALUES

On success 0 is returned. On error -1 is returned, and errno is set appropriately.

ERRORS

getdnsconfig() and setdnsconfig() will fail if:
EFAULT
cfg points to an invalid address.
setdnsconfig() will additionally fail if:
EAFNOSUPPORT
family is set to an address family other than AF_INET or AF_INET6.
EINVAL
servers_count is larger than DNSCONFIG_MAX_SERVERS.
EINVAL
addrsize does not match the size of the address corresponding to family.

SEE ALSO

inet(4), inet6(4), dhclient(8), dnsconfig(8)

HISTORY

The getdnsconfig() and setdnsconfig() system calls originally appeared in Sortix 1.1.
Copyright 2011-2025 Jonas 'Sortie' Termansen and contributors.
Sortix's source code is free software under the ISC license.
#sortix on irc.sortix.org
@sortix_org