#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <sofia-resolv/sres.h> #include <sofia-resolv/sres_async.h>
#include "sofia-resolv/sres_config.h"
Include dependency graph for sres_async.h:
Go to the source code of this file.
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, int new_socket, int old_socket) |
Prototype for update 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 *, int *sockets, int n) |
Create sockets for resolver. | |
SRESPUBFUN void | sres_resolver_timer (sres_resolver_t *, int dummy) |
Resolver timer function. | |
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. |
typedef int sres_update_f(sres_async_t *async, int new_socket, int 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 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.
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.