res_send()

Updated: April 19, 2023

Send a preformatted Internet domain name query

Synopsis:

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

int res_send( const u_char * msg, 
              int msglen, 
              u_char * answer,
              int anslen );

Arguments:

msg
The preformatted Internet domain name query that you want to send.
msglen
The length of the message.
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_send() function is a low-level routine that's used by res_query() to send a preformatted Internet domain name query and return an answer. It calls res_init() if RES_INIT isn't set, sends the query to the local name server, and handles timeouts and retries.

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.

Errors:

ECONNREFUSED
No name servers found.
ETIMEDOUT
No answer obtained.

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