bool _usevc;
/** \brief Wether to ignore the tc bit */
bool _igntc;
- /** \brief Wether to use ip6, 0->ip4, 1->ip6 */
- bool _ip6;
+ /** \brief Wether to use ip6, 0->does not matter, 1 ipv4, 2->ip6 */
+ uint8_t _ip6;
/** \brief if true append the default domain */
bool _defnames;
/** \brief if true apply the search list */
bool _dnsrch;
-
/** timeout for socket connections */
struct timeval _timeout;
uint8_t ldns_resolver_retry(ldns_resolver *);
uint8_t ldns_resolver_retrans(ldns_resolver *);
+uint8_t ldns_resolver_ip6(ldns_resolver *);
ldns_pkt * ldns_resolver_bgsend();
ldns_pkt * ldns_resolver_send(ldns_resolver *, ldns_rdf*, ldns_rr_type, ldns_rr_class, uint16_t);
void ldns_resolver_set_dnssec(ldns_resolver *, bool);
void ldns_resolver_set_retrans(ldns_resolver *, uint8_t);
void ldns_resolver_set_retry(ldns_resolver *, uint8_t);
+void ldns_resolver_set_ip6(ldns_resolver *, uint8_t);
/**
* Prepares the resolver for an axfr query
return r->_retrans;
}
-bool
+uint8_t
ldns_resolver_ip6(ldns_resolver *r)
{
return r->_ip6;
r->_debug = d;
}
+void
+ldns_resolver_set_ip6(ldns_resolver *r, uint8_t ip6)
+{
+ r->_ip6 = ip6;
+}
+
void
ldns_resolver_set_searchlist_count(ldns_resolver *r, size_t c)
{
ldns_resolver_set_port(r, LDNS_PORT);
ldns_resolver_set_domain(r, NULL);
ldns_resolver_set_defnames(r, false);
+ ldns_resolver_set_retry(r, 4);
+ ldns_resolver_set_retrans(r, 5);
r->_timeout.tv_sec = LDNS_DEFAULT_TIMEOUT_SEC;
r->_timeout.tv_usec = LDNS_DEFAULT_TIMEOUT_USEC;
ldns_pkt *query_pkt;
ldns_pkt *answer_pkt;
uint16_t id;
+ uint8_t retries;
assert(r != NULL);
assert(name != NULL);
+
+ answer_pkt = NULL;
/* do all the preprocessing here, then fire of an query to
* the network */
ldns_pkt_set_id(query_pkt, id);
/* return NULL on error */
- answer_pkt = ldns_send(r, query_pkt);
+ for (retries = ldns_resolver_retry(r); retries > 0; retries--) {
+ answer_pkt = ldns_send(r, query_pkt);
+ if (answer_pkt) {
+ break;
+ }
+ }
ldns_pkt_free(query_pkt);
* It defaults to '\n\t ' (newline, tab, space);
*/
int
-readword(char *word, FILE *from, char *del, size_t lim)
+readword(char *word, FILE *from, const char *del, size_t lim)
{
int c;
char *l;
- char *d;
+ const char *d;
const char *delim;
int i;
/**
* return a word from a stream
*/
-int readword(char *, FILE *, char *, size_t);
+int readword(char *, FILE *, const char *, size_t);
#endif /* !_UTIL_H */