libworker.c (266114) | libworker.c (276605) |
---|---|
1/* 2 * libunbound/worker.c - worker thread or process that resolves 3 * 4 * Copyright (c) 2007, NLnet Labs. All rights reserved. 5 * 6 * This software is open source. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 219 unchanged lines hidden (view full) --- 228 } 229 w->back = outside_network_create(w->base, cfg->msg_buffer_size, 230 (size_t)cfg->outgoing_num_ports, cfg->out_ifs, 231 cfg->num_out_ifs, cfg->do_ip4, cfg->do_ip6, 232 cfg->do_tcp?cfg->outgoing_num_tcp:0, 233 w->env->infra_cache, w->env->rnd, cfg->use_caps_bits_for_id, 234 ports, numports, cfg->unwanted_threshold, 235 &libworker_alloc_cleanup, w, cfg->do_udp, w->sslctx, | 1/* 2 * libunbound/worker.c - worker thread or process that resolves 3 * 4 * Copyright (c) 2007, NLnet Labs. All rights reserved. 5 * 6 * This software is open source. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 219 unchanged lines hidden (view full) --- 228 } 229 w->back = outside_network_create(w->base, cfg->msg_buffer_size, 230 (size_t)cfg->outgoing_num_ports, cfg->out_ifs, 231 cfg->num_out_ifs, cfg->do_ip4, cfg->do_ip6, 232 cfg->do_tcp?cfg->outgoing_num_tcp:0, 233 w->env->infra_cache, w->env->rnd, cfg->use_caps_bits_for_id, 234 ports, numports, cfg->unwanted_threshold, 235 &libworker_alloc_cleanup, w, cfg->do_udp, w->sslctx, |
236 cfg->delay_close); | 236 cfg->delay_close, NULL); |
237 if(!w->is_bg || w->is_bg_thread) { 238 lock_basic_unlock(&ctx->cfglock); 239 } 240 free(ports); 241 if(!w->back) { 242 libworker_delete(w); 243 return NULL; 244 } --- 571 unchanged lines hidden (view full) --- 816{ 817 struct libworker* w = (struct libworker*)arg; 818 slabhash_clear(&w->env->rrset_cache->table); 819 slabhash_clear(w->env->msg_cache); 820} 821 822struct outbound_entry* libworker_send_query(uint8_t* qname, size_t qnamelen, 823 uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, | 237 if(!w->is_bg || w->is_bg_thread) { 238 lock_basic_unlock(&ctx->cfglock); 239 } 240 free(ports); 241 if(!w->back) { 242 libworker_delete(w); 243 return NULL; 244 } --- 571 unchanged lines hidden (view full) --- 816{ 817 struct libworker* w = (struct libworker*)arg; 818 slabhash_clear(&w->env->rrset_cache->table); 819 slabhash_clear(w->env->msg_cache); 820} 821 822struct outbound_entry* libworker_send_query(uint8_t* qname, size_t qnamelen, 823 uint16_t qtype, uint16_t qclass, uint16_t flags, int dnssec, |
824 int want_dnssec, struct sockaddr_storage* addr, socklen_t addrlen, 825 uint8_t* zone, size_t zonelen, struct module_qstate* q) | 824 int want_dnssec, int nocaps, struct sockaddr_storage* addr, 825 socklen_t addrlen, uint8_t* zone, size_t zonelen, 826 struct module_qstate* q) |
826{ 827 struct libworker* w = (struct libworker*)q->env->worker; 828 struct outbound_entry* e = (struct outbound_entry*)regional_alloc( 829 q->region, sizeof(*e)); 830 if(!e) 831 return NULL; 832 e->qstate = q; 833 e->qsent = outnet_serviced_query(w->back, qname, | 827{ 828 struct libworker* w = (struct libworker*)q->env->worker; 829 struct outbound_entry* e = (struct outbound_entry*)regional_alloc( 830 q->region, sizeof(*e)); 831 if(!e) 832 return NULL; 833 e->qstate = q; 834 e->qsent = outnet_serviced_query(w->back, qname, |
834 qnamelen, qtype, qclass, flags, dnssec, want_dnssec, | 835 qnamelen, qtype, qclass, flags, dnssec, want_dnssec, nocaps, |
835 q->env->cfg->tcp_upstream, q->env->cfg->ssl_upstream, addr, 836 addrlen, zone, zonelen, libworker_handle_service_reply, e, 837 w->back->udp_buff); 838 if(!e->qsent) { 839 return NULL; 840 } 841 return e; 842} --- 105 unchanged lines hidden (view full) --- 948{ 949 log_assert(0); 950} 951 952struct outbound_entry* worker_send_query(uint8_t* ATTR_UNUSED(qname), 953 size_t ATTR_UNUSED(qnamelen), uint16_t ATTR_UNUSED(qtype), 954 uint16_t ATTR_UNUSED(qclass), uint16_t ATTR_UNUSED(flags), 955 int ATTR_UNUSED(dnssec), int ATTR_UNUSED(want_dnssec), | 836 q->env->cfg->tcp_upstream, q->env->cfg->ssl_upstream, addr, 837 addrlen, zone, zonelen, libworker_handle_service_reply, e, 838 w->back->udp_buff); 839 if(!e->qsent) { 840 return NULL; 841 } 842 return e; 843} --- 105 unchanged lines hidden (view full) --- 949{ 950 log_assert(0); 951} 952 953struct outbound_entry* worker_send_query(uint8_t* ATTR_UNUSED(qname), 954 size_t ATTR_UNUSED(qnamelen), uint16_t ATTR_UNUSED(qtype), 955 uint16_t ATTR_UNUSED(qclass), uint16_t ATTR_UNUSED(flags), 956 int ATTR_UNUSED(dnssec), int ATTR_UNUSED(want_dnssec), |
956 struct sockaddr_storage* ATTR_UNUSED(addr), | 957 int ATTR_UNUSED(nocaps), struct sockaddr_storage* ATTR_UNUSED(addr), |
957 socklen_t ATTR_UNUSED(addrlen), uint8_t* ATTR_UNUSED(zone), 958 size_t ATTR_UNUSED(zonelen), struct module_qstate* ATTR_UNUSED(q)) 959{ 960 log_assert(0); 961 return 0; 962} 963 964void --- 62 unchanged lines hidden --- | 958 socklen_t ATTR_UNUSED(addrlen), uint8_t* ATTR_UNUSED(zone), 959 size_t ATTR_UNUSED(zonelen), struct module_qstate* ATTR_UNUSED(q)) 960{ 961 log_assert(0); 962 return 0; 963} 964 965void --- 62 unchanged lines hidden --- |