Asynchronous interface for Sofia DNS Resolver. More...
#include "sofia-resolv/sres_config.h"
Go to the source code of this file.
Defines | |
#define | SOFIA_RESOLV_SRES_ASYNC_H |
Defined when <sofia-resolv/sres_async.h> has been included. | |
Typedefs | |
typedef SRES_ASYNC_T | sres_async_t |
Application-defined type for context used by asynchronous operation. | |
typedef int | sres_update_f (sres_async_t *async, sres_socket_t new_socket, sres_socket_t old_socket) |
Prototype for update function. | |
typedef int | sres_schedule_f (sres_async_t *async, unsigned long interval) |
Prototype for scheduler function. | |
Functions | |
SRESPUBFUN sres_async_t * | sres_resolver_set_async (sres_resolver_t *res, sres_update_f *update, sres_async_t *async, int update_all) |
Set asynchronous operation data. | |
SRESPUBFUN sres_async_t * | sres_resolver_get_async (sres_resolver_t const *res, sres_update_f *update) |
Get async operation data. | |
SRESPUBFUN int | sres_resolver_sockets (sres_resolver_t *, sres_socket_t *sockets, int n) |
Create sockets for resolver. | |
SRESPUBFUN void | sres_resolver_timer (sres_resolver_t *, int dummy) |
Resolver timer function. | |
SRESPUBFUN int | sres_resolver_set_timer_cb (sres_resolver_t *res, sres_schedule_f *callback, sres_async_t *async) |
Register resolver timer callback. | |
SRESPUBFUN int | sres_resolver_receive (sres_resolver_t *, int socket) |
Receive DNS response from socket. | |
SRESPUBFUN int | sres_resolver_error (sres_resolver_t *, int socket) |
Receive error message from socket. |
Asynchronous interface for Sofia DNS Resolver.
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <sofia-resolv/sres.h> #include <sofia-resolv/sres_async.h>
#define SOFIA_RESOLV_SRES_ASYNC_H |
Defined when <sofia-resolv/sres_async.h> has been included.
typedef SRES_ASYNC_T sres_async_t |
Application-defined type for context used by asynchronous operation.
typedef int sres_schedule_f(sres_async_t *async, unsigned long interval) |
Prototype for scheduler function.
This function is called when a timer callback is to be scheduled.
async | asynchronous object (registered with sres_resolver_set_async()) | |
interval | interval in milliseconds |
0 | when successful | |
-1 | upon an error |
typedef int sres_update_f(sres_async_t *async, sres_socket_t new_socket, sres_socket_t old_socket) |
Prototype for update function.
This kind of function is called when the nameserver configuration has been updated.
If the old_socket is not -1, it indicates that old_socket will be closed and it should be removed from poll() or select() set.
If the new_socket is not -1, it indicates that resolver has created new socket that should be added to the poll() or select() set.
SRESPUBFUN int sres_resolver_error | ( | sres_resolver_t * | res, | |
int | socket | |||
) |
Receive error message from socket.
SRESPUBFUN sres_async_t* sres_resolver_get_async | ( | sres_resolver_t const * | res, | |
sres_update_f * | callback | |||
) |
Get async operation data.
SRESPUBFUN int sres_resolver_receive | ( | sres_resolver_t * | res, | |
int | socket | |||
) |
Receive DNS response from socket.
SRESPUBFUN sres_async_t* sres_resolver_set_async | ( | sres_resolver_t * | res, | |
sres_update_f * | callback, | |||
sres_async_t * | async, | |||
int | update_all | |||
) |
Set asynchronous operation data.
Set asynchronous operation data.
SRESPUBFUN int sres_resolver_set_timer_cb | ( | sres_resolver_t * | res, | |
sres_schedule_f * | callback, | |||
sres_async_t * | async | |||
) |
Register resolver timer callback.
SRESPUBFUN int sres_resolver_sockets | ( | sres_resolver_t * | res, | |
sres_socket_t * | return_sockets, | |||
int | n | |||
) |
Create sockets for resolver.
SRESPUBFUN void sres_resolver_timer | ( | sres_resolver_t * | res, | |
int | dummy | |||
) |
Resolver timer function.
The function sresolver_timer() should be called in regular intervals. We recommend calling it in 500 ms intervals.
res | pointer to resolver object | |
dummy | argument for compatibility |
Every time it is called it goes through all query structures, and retransmits all the query messages, which have not been answered yet.