res_search()

Updated: April 19, 2023

Query a local server, using search options

Synopsis:

#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>

int res_search( const char * dname, 
                int class, 
                int type,
                u_char * answer, 
                int anslen ); 

Arguments:

dname
The fully qualified domain name that you want to query.
class
The class of information that you want; one of:
  • C_IN — ARPA Internet.
  • C_CHAOS — Chaos net (MIT).
  • C_HS — Hesiod name server (MIT).
  • C_ANY — any class.

You typically use C_IN.

type
The type of information that you want. You typically use T_PTR, but you can use any of the T_* constants defined in <arpa/nameser.h>.
answer
A pointer to a buffer where the function can store the answer to the query.
anslen
The length of the buffer.

Library:

libsocket

Use the -l socket option to qcc to link against this library.

Description:

The res_search() routine makes an Internet domain name search. Like res_query(), res_search() makes a query and waits for a response. But it also implements the default and search rules controlled by the RES_DEFNAMES and RES_DNSRCH options. It returns the first successful reply.

The resolver routines are used for making, sending, and interpreting query and reply messages with Internet domain name servers.

Global configuration and state information used by the resolver routines is kept in the structure _res. For more information on the options, see res_init().

Based on:

RFC 974, RFC 1032, RFC 1033, RFC 1034, RFC 1035

Returns:

The length of a reply message, in bytes, or -1 if an error occurs (h_errno is set).

Errors:

See herror.

Files:

/etc/resolv.conf
Resolver configuration file.

Environment variables:

LOCALDOMAIN
When set, LOCALDOMAIN contains a domain name that overrides the current domain name.

Classification:

Unix

Safety:  
Cancellation point Yes
Interrupt handler No
Signal handler No
Thread No