keep the current pkt */
ldns_pkt *_cur_axfr_pkt;
uint16_t _axfr_i;
+ /* EDNS0 stuff only bufsize atm */
+ uint16_t _edns_udp_size;
};
typedef struct ldns_struct_resolver ldns_resolver;
uint8_t ldns_resolver_retry(ldns_resolver *);
uint8_t ldns_resolver_retrans(ldns_resolver *);
uint8_t ldns_resolver_ip6(ldns_resolver *);
+uint16_t ldns_resolver_edns_udp_size(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_retry(ldns_resolver *, uint8_t);
void ldns_resolver_set_ip6(ldns_resolver *, uint8_t);
void ldns_resolver_set_fail(ldns_resolver *, bool);
+void ldns_resolver_set_edns_udp_size(ldns_resolver *, uint16_t);
/**
* Prepares the resolver for an axfr query
return r->_port;
}
+uint16_t
+ldns_resolver_edns_udp_size(ldns_resolver *r)
+{
+ return r->_edns_udp_size;
+}
+
uint8_t
ldns_resolver_retry(ldns_resolver *r)
{
}
}
+void
+ldns_resolver_set_edns_udp_size(ldns_resolver *r, uint16_t s)
+{
+ r->_edns_udp_size = s;
+}
+
void
ldns_resolver_set_recursive(ldns_resolver *r, bool re)
{
ldns_resolver_set_retry(r, 4);
ldns_resolver_set_retrans(r, 5);
ldns_resolver_set_fail(r, false);
+ ldns_resolver_set_edns_udp_size(r, 0);
r->_timeout.tv_sec = LDNS_DEFAULT_TIMEOUT_SEC;
r->_timeout.tv_usec = LDNS_DEFAULT_TIMEOUT_USEC;
printf("Failed to generate pkt\n");
return NULL;
}
+ /* transfer the udp_edns_size from the resolver to the packet */
+ if (ldns_resolver_edns_udp_size(r) != 0) {
+ ldns_pkt_set_edns_udp_size(query_pkt,
+ ldns_resolver_edns_udp_size(r));
+ }
+
if (ldns_resolver_debug(r)) {
ldns_pkt_print(stdout, query_pkt);
}