Lines Matching refs:task_transfer

2179 		if(!xfer_set_masters(&x->task_transfer->masters, c, 1)) {
2336 if(xfr->task_transfer) {
2337 auth_free_masters(xfr->task_transfer->masters);
2338 comm_point_delete(xfr->task_transfer->cp);
2339 comm_timer_delete(xfr->task_transfer->timer);
2340 if(xfr->task_transfer->chunks_first) {
2341 auth_chunks_delete(xfr->task_transfer);
2343 free(xfr->task_transfer);
4000 for(p = xfr->task_transfer->masters; p; p=p->next) {
4017 /** start the lookups for task_transfer */
4022 xfr->task_transfer->scan_addr = NULL;
4023 xfr_masterlist_free_addrs(xfr->task_transfer->masters);
4026 xfr->task_transfer->lookup_target = xfr->task_transfer->masters;
4027 xfr->task_transfer->lookup_aaaa = 0;
4030 /** move to the next lookup of hostname for task_transfer */
4034 if(!xfr->task_transfer->lookup_target)
4036 if(!xfr->task_transfer->lookup_aaaa && env->cfg->do_ip6) {
4038 xfr->task_transfer->lookup_aaaa = 1;
4041 xfr->task_transfer->lookup_target =
4042 xfr->task_transfer->lookup_target->next;
4043 xfr->task_transfer->lookup_aaaa = 0;
4044 if(!env->cfg->do_ip4 && xfr->task_transfer->lookup_target!=NULL)
4045 xfr->task_transfer->lookup_aaaa = 1;
4078 /** start the iteration of the task_transfer list of masters */
4083 xfr->task_transfer->scan_specific = find_master_by_host(
4084 xfr->task_transfer->masters, spec->host);
4085 if(xfr->task_transfer->scan_specific) {
4086 xfr->task_transfer->scan_target = NULL;
4087 xfr->task_transfer->scan_addr = NULL;
4088 if(xfr->task_transfer->scan_specific->list)
4089 xfr->task_transfer->scan_addr =
4090 xfr->task_transfer->scan_specific->list;
4095 xfr->task_transfer->scan_specific = NULL;
4096 xfr->task_transfer->scan_addr = NULL;
4098 xfr->task_transfer->scan_target = xfr->task_transfer->masters;
4099 if(xfr->task_transfer->scan_target && xfr->task_transfer->
4101 xfr->task_transfer->scan_addr =
4102 xfr->task_transfer->scan_target->list;
4131 /** pick up the master that is being scanned right now, task_transfer */
4135 if(xfr->task_transfer->scan_specific)
4136 return xfr->task_transfer->scan_specific;
4137 return xfr->task_transfer->scan_target;
4149 /** true if at end of list, task_transfer */
4153 return !xfr->task_transfer->scan_specific &&
4154 !xfr->task_transfer->scan_target;
4164 /** move to next master in list, task_transfer */
4168 if(!xfr->task_transfer->scan_specific &&
4169 !xfr->task_transfer->scan_target)
4171 if(xfr->task_transfer->scan_addr) {
4172 xfr->task_transfer->scan_addr =
4173 xfr->task_transfer->scan_addr->next;
4174 if(xfr->task_transfer->scan_addr)
4177 if(xfr->task_transfer->scan_specific) {
4178 xfr->task_transfer->scan_specific = NULL;
4179 xfr->task_transfer->scan_target = xfr->task_transfer->masters;
4180 if(xfr->task_transfer->scan_target && xfr->task_transfer->
4182 xfr->task_transfer->scan_addr =
4183 xfr->task_transfer->scan_target->list;
4186 if(!xfr->task_transfer->scan_target)
4188 xfr->task_transfer->scan_target = xfr->task_transfer->scan_target->next;
4189 if(xfr->task_transfer->scan_target && xfr->task_transfer->
4191 xfr->task_transfer->scan_addr =
4192 xfr->task_transfer->scan_target->list;
4256 xfr->task_transfer->got_xfr_serial = 0;
4257 xfr->task_transfer->rr_scan_num = 0;
4258 xfr->task_transfer->incoming_xfr_serial = 0;
4259 xfr->task_transfer->on_ixfr_is_axfr = 0;
4260 xfr->task_transfer->on_ixfr = 1;
4262 if(!have_zone || xfr->task_transfer->ixfr_fail || !master->ixfr) {
4264 xfr->task_transfer->ixfr_fail = 0;
4265 xfr->task_transfer->on_ixfr = 0;
4603 chunk = xfr->task_transfer->chunks_first;
4673 xfr->task_transfer->master->host,
4674 xfr->task_transfer->master->file,
4698 *rr_chunk = xfr->task_transfer->chunks_first;
5092 xfr->task_transfer->master->file,
5093 (int)chunklist_sum(xfr->task_transfer->chunks_first));
5094 if(xfr->task_transfer->chunks_first && verbosity >= VERB_ALGO) {
5096 if(xfr->task_transfer->chunks_first->len+1 > sizeof(preview)) {
5097 memmove(preview, xfr->task_transfer->chunks_first->data,
5101 memmove(preview, xfr->task_transfer->chunks_first->data,
5102 xfr->task_transfer->chunks_first->len);
5103 preview[xfr->task_transfer->chunks_first->len]=0;
5112 "but got '%s'", xfr->task_transfer->master->host,
5113 xfr->task_transfer->master->file,
5128 chunk = xfr->task_transfer->chunks_first;
5142 xfr->task_transfer->master->file,
5152 xfr->task_transfer->master->file,
5161 xfr->task_transfer->master->file,
5181 for(p = xfr->task_transfer->chunks_first; p ; p = p->next) {
5241 if(xfr->task_transfer->master->http) {
5305 if(xfr->task_transfer->master->http) {
5309 xfr->task_transfer->master->host);
5312 } else if(xfr->task_transfer->on_ixfr &&
5313 !xfr->task_transfer->on_ixfr_is_axfr) {
5317 " data", xfr->task_transfer->master->host);
5325 " data", xfr->task_transfer->master->host);
5334 " (or malformed RR)", xfr->task_transfer->master->host);
5353 verbose(VERB_ALGO, "xfr from %s: ZONEMD failed for %s, transfer is failed", xfr->task_transfer->master->host, zname);
5386 /** disown task_transfer. caller must hold xfr.lock */
5391 comm_timer_delete(xfr->task_transfer->timer);
5392 xfr->task_transfer->timer = NULL;
5394 comm_point_delete(xfr->task_transfer->cp);
5395 xfr->task_transfer->cp = NULL;
5397 xfr->task_transfer->worker = NULL;
5398 xfr->task_transfer->env = NULL;
5407 struct auth_master* master = xfr->task_transfer->lookup_target;
5433 if(xfr->task_transfer->lookup_aaaa)
5441 " for task_transfer", buf2);
5478 struct auth_master* master = xfr->task_transfer->master;
5486 if(xfr->task_transfer->scan_addr) {
5487 addrlen = xfr->task_transfer->scan_addr->addrlen;
5488 memmove(&addr, &xfr->task_transfer->scan_addr->addr, addrlen);
5503 if(xfr->task_transfer->cp) {
5504 comm_point_delete(xfr->task_transfer->cp);
5505 xfr->task_transfer->cp = NULL;
5507 if(!xfr->task_transfer->timer) {
5508 xfr->task_transfer->timer = comm_timer_create(env->worker_base,
5510 if(!xfr->task_transfer->timer) {
5525 xfr->task_transfer->on_ixfr = 0;
5528 xfr->task_transfer->cp = outnet_comm_point_for_http(
5532 if(!xfr->task_transfer->cp) {
5540 comm_timer_set(xfr->task_transfer->timer, &t);
5555 xfr->task_transfer->id = GET_RANDOM_ID(env->rnd);
5557 xfr->task_transfer->id, master);
5560 xfr->task_transfer->cp = outnet_comm_point_for_tcp(env->outnet,
5564 if(!xfr->task_transfer->cp) {
5572 comm_timer_set(xfr->task_transfer->timer, &t);
5578 (xfr->task_transfer->on_ixfr?"IXFR":"AXFR"), as);
5587 log_assert(xfr->task_transfer->worker == env->worker);
5590 while(xfr->task_transfer->lookup_target) {
5611 xfr->task_transfer->master = xfr_transfer_current_master(xfr);
5689 /** callback for task_transfer lookup of host name, of A or AAAA */
5696 log_assert(xfr->task_transfer);
5698 env = xfr->task_transfer->env;
5710 if(xfr->task_transfer->lookup_aaaa)
5720 xfr_master_add_addrs(xfr->task_transfer->
5726 verbose(VERB_ALGO, "auth zone %s host %s type %s transfer lookup has nodata", zname, xfr->task_transfer->lookup_target->host, (xfr->task_transfer->lookup_aaaa?"AAAA":"A"));
5733 verbose(VERB_ALGO, "auth zone %s host %s type %s transfer lookup has no answer", zname, xfr->task_transfer->lookup_target->host, (xfr->task_transfer->lookup_aaaa?"AAAA":"A"));
5741 verbose(VERB_ALGO, "auth zone %s host %s type %s transfer lookup failed", zname, xfr->task_transfer->lookup_target->host, (xfr->task_transfer->lookup_aaaa?"AAAA":"A"));
5744 if(xfr->task_transfer->lookup_target->list &&
5745 xfr->task_transfer->lookup_target == xfr_transfer_current_master(xfr))
5746 xfr->task_transfer->scan_addr = xfr->task_transfer->lookup_target->list;
5749 * or move to fetch the zone, or, if nothing to do, end task_transfer */
5769 xfr->task_transfer->master->host);
5774 xfr->task_transfer->master->host);
5779 xfr->task_transfer->master->host);
5783 if(LDNS_ID_WIRE(wire) != xfr->task_transfer->id) {
5785 xfr->task_transfer->master->host);
5793 if(xfr->task_transfer->on_ixfr) {
5800 xfr->task_transfer->master->host,
5802 xfr->task_transfer->ixfr_fail = 1;
5808 xfr->task_transfer->master->host, rcode);
5813 xfr->task_transfer->master->host);
5818 xfr->task_transfer->master->host,
5831 xfr->task_transfer->master->host);
5838 xfr->task_transfer->master->host);
5844 xfr->task_transfer->master->host);
5852 xfr->task_transfer->master->host);
5855 if(xfr->task_transfer->on_ixfr) {
5859 xfr->task_transfer->master->host);
5866 xfr->task_transfer->master->host);
5881 xfr->task_transfer->master->host);
5887 xfr->task_transfer->master->host);
5897 xfr->task_transfer->master->host);
5903 if(xfr->task_transfer->rr_scan_num == 0 &&
5907 xfr->task_transfer->master->host);
5910 if(xfr->task_transfer->rr_scan_num == 1 &&
5914 xfr->task_transfer->on_ixfr_is_axfr = 1;
5921 xfr->task_transfer->master->host);
5928 xfr->task_transfer->master->host);
5937 if(xfr->task_transfer->on_ixfr &&
5938 xfr->task_transfer->rr_scan_num == 0 &&
5943 xfr->task_transfer->master->host,
5945 xfr->task_transfer->ixfr_fail = 1;
5951 if(xfr->task_transfer->got_xfr_serial == 0) {
5952 xfr->task_transfer->got_xfr_serial = 1;
5953 xfr->task_transfer->incoming_xfr_serial =
5957 xfr->task_transfer->master->host,
5960 } else if(!xfr->task_transfer->on_ixfr ||
5961 xfr->task_transfer->on_ixfr_is_axfr) {
5966 xfr->task_transfer->master->host);
5968 } else if(xfr->task_transfer->incoming_xfr_serial ==
5969 serial && xfr->task_transfer->got_xfr_serial
5971 xfr->task_transfer->got_xfr_serial++;
5974 } else if(xfr->task_transfer->incoming_xfr_serial ==
5975 serial && xfr->task_transfer->got_xfr_serial
5978 xfr->task_transfer->master->host);
5984 xfr->task_transfer->rr_scan_num++;
5997 xfr->task_transfer->master->host);
6003 xfr->task_transfer->master->host);
6013 xfr->task_transfer->master->host);
6026 xfr->task_transfer->master->host);
6032 xfr->task_transfer->master->host);
6042 xfr->task_transfer->master->host);
6069 if(!xfr->task_transfer->chunks_first)
6070 xfr->task_transfer->chunks_first = e;
6071 if(xfr->task_transfer->chunks_last)
6072 xfr->task_transfer->chunks_last->next = e;
6073 xfr->task_transfer->chunks_last = e;
6085 auth_chunks_delete(xfr->task_transfer);
6120 auth_chunks_delete(xfr->task_transfer);
6122 xfr->task_transfer->ixfr_fail = 1;
6129 /** callback for the task_transfer timer */
6136 log_assert(xfr->task_transfer);
6138 env = xfr->task_transfer->env;
6145 xfr->task_transfer->master->host);
6148 if(xfr->task_transfer->on_ixfr) {
6149 xfr->task_transfer->ixfr_possible_timeout_count++;
6150 if(xfr->task_transfer->ixfr_possible_timeout_count >=
6154 xfr->task_transfer->master->host);
6155 xfr->task_transfer->ixfr_fail = 1;
6161 auth_chunks_delete(xfr->task_transfer);
6162 comm_point_delete(xfr->task_transfer->cp);
6163 xfr->task_transfer->cp = NULL;
6169 /** callback for task_transfer tcp connections */
6178 log_assert(xfr->task_transfer);
6180 env = xfr->task_transfer->env;
6186 comm_timer_disable(xfr->task_transfer->timer);
6191 * and continue task_transfer*/
6193 xfr->task_transfer->master->host);
6196 if(xfr->task_transfer->on_ixfr) {
6197 xfr->task_transfer->ixfr_possible_timeout_count++;
6198 if(xfr->task_transfer->ixfr_possible_timeout_count >=
6202 xfr->task_transfer->master->host);
6203 xfr->task_transfer->ixfr_fail = 1;
6210 auth_chunks_delete(xfr->task_transfer);
6211 comm_point_delete(xfr->task_transfer->cp);
6212 xfr->task_transfer->cp = NULL;
6219 if(xfr->task_transfer->on_ixfr)
6220 xfr->task_transfer->ixfr_possible_timeout_count = 0;
6232 xfr->task_transfer->master->host);
6237 comm_point_delete(xfr->task_transfer->cp);
6238 xfr->task_transfer->cp = NULL;
6252 /** callback for task_transfer http connections */
6259 log_assert(xfr->task_transfer);
6261 env = xfr->task_transfer->env;
6268 comm_timer_disable(xfr->task_transfer->timer);
6273 * and continue task_transfer*/
6275 xfr->task_transfer->master->host);
6278 auth_chunks_delete(xfr->task_transfer);
6281 comm_point_delete(xfr->task_transfer->cp);
6282 xfr->task_transfer->cp = NULL;
6295 xfr->task_transfer->master->host);
6303 comm_point_delete(xfr->task_transfer->cp);
6304 xfr->task_transfer->cp = NULL;
6324 log_assert(xfr->task_transfer != NULL);
6325 log_assert(xfr->task_transfer->worker == NULL);
6326 log_assert(xfr->task_transfer->chunks_first == NULL);
6327 log_assert(xfr->task_transfer->chunks_last == NULL);
6328 xfr->task_transfer->worker = env->worker;
6329 xfr->task_transfer->env = env;
6540 if(xfr->task_transfer->worker == NULL) {
6546 if(xfr->task_transfer->masters &&
6547 xfr->task_transfer->masters->http)
6873 /** start task_probe if possible, if no masters for probe start task_transfer
6888 if(xfr->task_transfer->worker == NULL) {
7044 if(x->task_transfer && x->task_transfer->worker != NULL) {
7045 auth_chunks_delete(x->task_transfer);
7088 xfr->task_transfer = (struct auth_transfer*)calloc(1,
7090 if(!xfr->task_transfer) {
7117 lock_protect(&xfr->lock, &xfr->task_transfer->worker,
7118 sizeof(xfr->task_transfer->worker));
8678 m += auth_chunks_get_mem(xfr->task_transfer->chunks_first);
8679 m += auth_primaries_get_mem(xfr->task_transfer->masters);
8680 m += comm_point_get_mem(xfr->task_transfer->cp);
8681 m += comm_timer_get_mem(xfr->task_transfer->timer);
8739 if(xfr->task_transfer->worker == worker) {