The probe task. More...
#include <authzone.h>
Data Fields | |
struct worker * | worker |
struct module_env * | env |
struct auth_master * | masters |
list of upstream masters for this zone, from config | |
struct auth_master * | lookup_target |
for the hostname lookups, which master is current | |
int | lookup_aaaa |
are we looking up A or AAAA, first A, then AAAA (if ip6 enabled) | |
int | only_lookup |
we only want to do lookups for making config work (for notify), don't proceed with UDP SOA probe queries | |
int | have_new_lease |
we have seen a new lease this scan, because one of the masters replied with the current SOA serial version | |
struct auth_master * | scan_specific |
once notified, or the timeout has been reached. More... | |
struct auth_master * | scan_target |
scan tries all the upstream masters. More... | |
struct auth_addr * | scan_addr |
if not NULL, the specific addr for the current master | |
uint16_t | id |
dns id of packet in flight | |
struct comm_point * | cp |
the SOA probe udp event. More... | |
int | cp_is_ip6 |
is the cp for ip6 or ip4 | |
struct comm_timer * | timer |
timeout for packets. More... | |
int | timeout |
timeout in msec | |
The probe task.
Send a SOA UDP query to see if the zone needs to be updated (or similar, potential, HTTP probe query) and check serial number. If yes, start the auth_transfer task. If no, make sure auth_nextprobe timeout wait task is running. Needs to be a task, because the UDP query needs an event entry. This task could also be started by eg. a NOTIFY being received, even though another worker is performing the nextprobe task (and that worker keeps waiting uninterrupted).
struct auth_master* auth_probe::scan_specific |
once notified, or the timeout has been reached.
a scan starts. the scan specific target (notify source), or NULL if none
Referenced by xfr_probe_current_master(), xfr_probe_end_of_list(), xfr_probe_nextmaster(), and xfr_probe_start_list().
struct auth_master* auth_probe::scan_target |
scan tries all the upstream masters.
the scan current target. or NULL if not working on sequential scan
Referenced by xfr_probe_current_master(), xfr_probe_end_of_list(), xfr_probe_nextmaster(), and xfr_probe_start_list().
struct comm_point* auth_probe::cp |
the SOA probe udp event.
on the workers event base.
Referenced by auth_xfer_delete(), auth_xfer_probe_timer_callback(), auth_xfer_probe_udp_callback(), xfr_probe_disown(), xfr_probe_send_probe(), and xfr_start_probe().
struct comm_timer* auth_probe::timer |
timeout for packets.
on the workers event base.
Referenced by auth_xfer_delete(), auth_xfer_probe_udp_callback(), xfr_probe_disown(), and xfr_probe_send_probe().