mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-23 08:10:30 -05:00
- Fix that auth zone uses correct network type for sockets for
SOA serial probes. This fixes that probes fail because earlier probe addresses are unreachable. git-svn-id: file:///svn/unbound/trunk@5154 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
bd3c02bd59
commit
474afc9016
3 changed files with 18 additions and 0 deletions
|
|
@ -1,3 +1,8 @@
|
||||||
|
11 April 2019: Wouter
|
||||||
|
- Fix that auth zone uses correct network type for sockets for
|
||||||
|
SOA serial probes. This fixes that probes fail because earlier
|
||||||
|
probe addresses are unreachable.
|
||||||
|
|
||||||
8 April 2019: Wouter
|
8 April 2019: Wouter
|
||||||
- Fix to use event_assign with libevent for thread-safety.
|
- Fix to use event_assign with libevent for thread-safety.
|
||||||
- verbose information about auth zone lookup process, also lookup
|
- verbose information about auth zone lookup process, also lookup
|
||||||
|
|
|
||||||
|
|
@ -5900,7 +5900,18 @@ xfr_probe_send_probe(struct auth_xfer* xfr, struct module_env* env,
|
||||||
xfr->task_probe->id = (uint16_t)(ub_random(env->rnd)&0xffff);
|
xfr->task_probe->id = (uint16_t)(ub_random(env->rnd)&0xffff);
|
||||||
xfr_create_soa_probe_packet(xfr, env->scratch_buffer,
|
xfr_create_soa_probe_packet(xfr, env->scratch_buffer,
|
||||||
xfr->task_probe->id);
|
xfr->task_probe->id);
|
||||||
|
/* we need to remove the cp if we have a different ip4/ip6 type now */
|
||||||
|
if(xfr->task_probe->cp &&
|
||||||
|
((xfr->task_probe->cp_is_ip6 && !addr_is_ip6(&addr, addrlen)) ||
|
||||||
|
(!xfr->task_probe->cp_is_ip6 && addr_is_ip6(&addr, addrlen)))
|
||||||
|
) {
|
||||||
|
comm_point_delete(xfr->task_probe->cp);
|
||||||
|
xfr->task_probe->cp = NULL;
|
||||||
|
}
|
||||||
if(!xfr->task_probe->cp) {
|
if(!xfr->task_probe->cp) {
|
||||||
|
if(addr_is_ip6(&addr, addrlen))
|
||||||
|
xfr->task_probe->cp_is_ip6 = 1;
|
||||||
|
else xfr->task_probe->cp_is_ip6 = 0;
|
||||||
xfr->task_probe->cp = outnet_comm_point_for_udp(env->outnet,
|
xfr->task_probe->cp = outnet_comm_point_for_udp(env->outnet,
|
||||||
auth_xfer_probe_udp_callback, xfr, &addr, addrlen);
|
auth_xfer_probe_udp_callback, xfr, &addr, addrlen);
|
||||||
if(!xfr->task_probe->cp) {
|
if(!xfr->task_probe->cp) {
|
||||||
|
|
|
||||||
|
|
@ -327,6 +327,8 @@ struct auth_probe {
|
||||||
/** the SOA probe udp event.
|
/** the SOA probe udp event.
|
||||||
* on the workers event base. */
|
* on the workers event base. */
|
||||||
struct comm_point* cp;
|
struct comm_point* cp;
|
||||||
|
/** is the cp for ip6 or ip4 */
|
||||||
|
int cp_is_ip6;
|
||||||
/** timeout for packets.
|
/** timeout for packets.
|
||||||
* on the workers event base. */
|
* on the workers event base. */
|
||||||
struct comm_timer* timer;
|
struct comm_timer* timer;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue