Asterisk - The Open Source Telephony Project
21.4.1
|
DNS Recurring Query Support. More...
#include "asterisk.h"
#include "asterisk/astobj2.h"
#include "asterisk/linkedlists.h"
#include "asterisk/sched.h"
#include "asterisk/strings.h"
#include "asterisk/dns_core.h"
#include "asterisk/dns_recurring.h"
#include "asterisk/dns_internal.h"
#include <arpa/nameser.h>
Go to the source code of this file.
Macros | |
#define | EXTRA_TTL 2 |
Delay between TTL expiration and the next DNS query, to make sure the resolver cache really expired. | |
#define | MAX_TTL ((INT_MAX - EXTRA_TTL) / 1000) |
Functions | |
struct ast_dns_query_recurring * | ast_dns_resolve_recurring (const char *name, int rr_type, int rr_class, ast_dns_resolve_callback callback, void *data) |
Asynchronously resolve a DNS query, and continue resolving it according to the lowest TTL available. More... | |
int | ast_dns_resolve_recurring_cancel (struct ast_dns_query_recurring *recurring) |
Cancel an asynchronous recurring DNS resolution. More... | |
static void | dns_query_recurring_destroy (void *data) |
Destructor for a DNS query. | |
static void | dns_query_recurring_resolution_callback (const struct ast_dns_query *query) |
Query resolution callback. | |
static int | dns_query_recurring_scheduled_callback (const void *data) |
Scheduled recurring query callback. | |
DNS Recurring Query Support.
Definition in file dns_recurring.c.
struct ast_dns_query_recurring* ast_dns_resolve_recurring | ( | const char * | name, |
int | rr_type, | ||
int | rr_class, | ||
ast_dns_resolve_callback | callback, | ||
void * | data | ||
) |
Asynchronously resolve a DNS query, and continue resolving it according to the lowest TTL available.
name | The name of what to resolve |
rr_type | Resource record type |
rr_class | Resource record class |
callback | The callback to invoke upon completion |
data | User data to make available on the query |
non-NULL | success - query has been sent for resolution |
NULL | failure |
Definition at line 114 of file dns_recurring.c.
References ast_dns_query_recurring::active, ao2_bump, ao2_ref, ast_dns_get_sched(), ast_dns_resolve_async(), ast_dns_query_recurring::callback, dns_query_recurring_destroy(), dns_query_recurring_resolution_callback(), ast_dns_query_recurring::name, ast_dns_query_recurring::rr_class, ast_dns_query_recurring::rr_type, ast_dns_query_recurring::timer, and ast_dns_query_recurring::user_data.
Referenced by rtp_reload().
int ast_dns_resolve_recurring_cancel | ( | struct ast_dns_query_recurring * | recurring | ) |
Cancel an asynchronous recurring DNS resolution.
recurring | The DNS query returned from ast_dns_resolve_recurring |
0 | success - any active query has been cancelled and the query will no longer occur |
-1 | failure - an active query was in progress and could not be cancelled |
Definition at line 143 of file dns_recurring.c.
References ast_dns_query_recurring::active, ao2_ref, ao2_replace, ast_dns_get_sched(), ast_dns_resolve_cancel(), AST_SCHED_DEL_UNREF, ast_dns_query_recurring::cancelled, and ast_dns_query_recurring::timer.