The transfer task. More...
#include <authzone.h>
Data Fields | |
struct worker * | worker |
struct module_env * | env |
struct auth_chunk * | chunks_first |
xfer data that has been transferred, the data is applied once the transfer has completed correctly | |
struct auth_chunk * | chunks_last |
last element in chunks list (to append new data at the end) | |
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) | |
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 |
what address we are scanning for the master, or NULL if the master is in IP format itself | |
struct auth_master * | master |
the zone transfer in progress (or NULL if in scan). More... | |
int | ixfr_fail |
failed ixfr transfer, retry with axfr (to the current master), the IXFR was 'REFUSED', 'SERVFAIL', 'NOTIMPL' or the contents of the IXFR did not apply cleanly (out of sync, delete of nonexistent data or add of duplicate data). More... | |
int | ixfr_possible_timeout_count |
we saw an ixfr-indicating timeout, count of them | |
int | on_ixfr |
we are doing IXFR right now | |
int | got_xfr_serial |
did we detect the current AXFR/IXFR serial number yet, 0 not yet, 1 we saw the first, 2 we saw the second, 3 must be last SOA in xfr | |
size_t | rr_scan_num |
number of RRs scanned for AXFR/IXFR detection | |
int | on_ixfr_is_axfr |
we are doing an IXFR but we detected an AXFR contents | |
uint32_t | incoming_xfr_serial |
the serial number for the current AXFR/IXFR incoming reply, for IXFR, the outermost SOA records serial | |
uint16_t | id |
dns id of AXFR query | |
struct comm_point * | cp |
the transfer (TCP) to the master. More... | |
struct comm_timer * | timer |
timeout for the transfer. More... | |
The transfer task.
Once done, make sure the nextprobe waiting task is running, whether done with failure or success. If failure, use shorter timeout for wait time.
struct auth_master* auth_transfer::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_transfer_current_master(), xfr_transfer_end_of_list(), xfr_transfer_nextmaster(), and xfr_transfer_start_list().
struct auth_master* auth_transfer::scan_target |
scan tries all the upstream masters.
the scan current target. or NULL if not working on sequential scan
Referenced by xfr_transfer_current_master(), xfr_transfer_end_of_list(), xfr_transfer_nextmaster(), and xfr_transfer_start_list().
struct auth_master* auth_transfer::master |
the zone transfer in progress (or NULL if in scan).
It is from this master
Referenced by apply_http(), auth_xfer_transfer_http_callback(), auth_xfer_transfer_timer_callback(), http_parse_add_rr(), xfr_process_chunk_list(), xfr_transfer_init_fetch(), xfr_transfer_nexttarget_or_end(), and xfr_write_after_update().
int auth_transfer::ixfr_fail |
failed ixfr transfer, retry with axfr (to the current master), the IXFR was 'REFUSED', 'SERVFAIL', 'NOTIMPL' or the contents of the IXFR did not apply cleanly (out of sync, delete of nonexistent data or add of duplicate data).
Flag is cleared once the retry with axfr is done.
Referenced by auth_xfer_transfer_timer_callback(), and process_list_end_transfer().
struct comm_point* auth_transfer::cp |
the transfer (TCP) to the master.
on the workers event base.
Referenced by auth_xfer_delete(), auth_xfer_transfer_http_callback(), auth_xfer_transfer_timer_callback(), xfr_transfer_disown(), and xfr_transfer_init_fetch().
struct comm_timer* auth_transfer::timer |
timeout for the transfer.
on the workers event base.
Referenced by auth_xfer_delete(), auth_xfer_transfer_http_callback(), xfr_transfer_disown(), and xfr_transfer_init_fetch().