Lines Matching +full:1 +full:q

70 		ctx_logfile_overridden = 1;  in context_finalize()
89 if(!auth_zones_apply_cfg(ctx->env->auth_zones, cfg, 1, &is_rpz, in context_finalize()
117 ctx->finalized = 1; in context_finalize()
124 return -1; in context_query_cmp()
126 return 1; in context_query_cmp()
131 context_query_delete(struct ctx_query* q) in context_query_delete() argument
133 if(!q) return; in context_query_delete()
134 ub_resolve_free(q->res); in context_query_delete()
135 free(q->msg); in context_query_delete()
136 free(q); in context_query_delete()
153 return 1; in find_id()
160 struct ctx_query* q = (struct ctx_query*)calloc(1, sizeof(*q)); in context_new() local
161 if(!q) return NULL; in context_new()
163 if(!find_id(ctx, &q->querynum)) { in context_new()
165 free(q); in context_new()
169 q->node.key = &q->querynum; in context_new()
170 q->async = (cb != NULL || cb_event != NULL); in context_new()
171 q->cb = cb; in context_new()
172 q->cb_event = cb_event; in context_new()
173 q->cb_arg = cbarg; in context_new()
174 q->res = (struct ub_result*)calloc(1, sizeof(*q->res)); in context_new()
175 if(!q->res) { in context_new()
176 free(q); in context_new()
179 q->res->qname = strdup(name); in context_new()
180 if(!q->res->qname) { in context_new()
181 free(q->res); in context_new()
182 free(q); in context_new()
185 q->res->qtype = rrtype; in context_new()
186 q->res->qclass = rrclass; in context_new()
190 if(q->async) in context_new()
192 (void)rbtree_insert(&ctx->queries, &q->node); in context_new()
194 return q; in context_new()
216 a = (struct alloc_cache*)calloc(1, sizeof(*a)); in context_obtain_alloc()
240 context_serialize_new_query(struct ctx_query* q, uint32_t* len) in context_serialize_new_query() argument
250 size_t slen = strlen(q->res->qname) + 1/*end of string*/; in context_serialize_new_query()
255 sldns_write_uint32(p+sizeof(uint32_t), (uint32_t)q->querynum); in context_serialize_new_query()
256 sldns_write_uint32(p+2*sizeof(uint32_t), (uint32_t)q->res->qtype); in context_serialize_new_query()
257 sldns_write_uint32(p+3*sizeof(uint32_t), (uint32_t)q->res->qclass); in context_serialize_new_query()
258 memmove(p+4*sizeof(uint32_t), q->res->qname, slen); in context_serialize_new_query()
265 struct ctx_query* q = (struct ctx_query*)calloc(1, sizeof(*q)); in context_deserialize_new_query() local
266 if(!q) return NULL; in context_deserialize_new_query()
267 if(len < 4*sizeof(uint32_t)+1) { in context_deserialize_new_query()
268 free(q); in context_deserialize_new_query()
272 q->querynum = (int)sldns_read_uint32(p+sizeof(uint32_t)); in context_deserialize_new_query()
273 q->node.key = &q->querynum; in context_deserialize_new_query()
274 q->async = 1; in context_deserialize_new_query()
275 q->res = (struct ub_result*)calloc(1, sizeof(*q->res)); in context_deserialize_new_query()
276 if(!q->res) { in context_deserialize_new_query()
277 free(q); in context_deserialize_new_query()
280 q->res->qtype = (int)sldns_read_uint32(p+2*sizeof(uint32_t)); in context_deserialize_new_query()
281 q->res->qclass = (int)sldns_read_uint32(p+3*sizeof(uint32_t)); in context_deserialize_new_query()
282 q->res->qname = strdup((char*)(p+4*sizeof(uint32_t))); in context_deserialize_new_query()
283 if(!q->res->qname) { in context_deserialize_new_query()
284 free(q->res); in context_deserialize_new_query()
285 free(q); in context_deserialize_new_query()
291 (void)rbtree_insert(&ctx->queries, &q->node); in context_deserialize_new_query()
292 return q; in context_deserialize_new_query()
298 struct ctx_query* q; in context_lookup_new_query() local
300 if(len < 4*sizeof(uint32_t)+1) { in context_lookup_new_query()
305 q = (struct ctx_query*)rbtree_search(&ctx->queries, &querynum); in context_lookup_new_query()
306 if(!q) { in context_lookup_new_query()
309 log_assert(q->async); in context_lookup_new_query()
310 return q; in context_lookup_new_query()
314 context_serialize_answer(struct ctx_query* q, int err, sldns_buffer* pkt, in context_serialize_answer() argument
323 * o uint32 length of why_bogus string (+1 for eos); 0 absent. in context_serialize_answer()
330 size_t wlen = (pkt&&q->res->why_bogus)?strlen(q->res->why_bogus)+1:0; in context_serialize_answer()
336 sldns_write_uint32(p+sizeof(uint32_t), (uint32_t)q->querynum); in context_serialize_answer()
338 sldns_write_uint32(p+3*sizeof(uint32_t), (uint32_t)q->msg_security); in context_serialize_answer()
339 sldns_write_uint32(p+4*sizeof(uint32_t), (uint32_t)q->res->was_ratelimited); in context_serialize_answer()
342 memmove(p+size_of_uint32s, q->res->why_bogus, wlen); in context_serialize_answer()
354 struct ctx_query* q = NULL ; in context_deserialize_answer() local
360 q = (struct ctx_query*)rbtree_search(&ctx->queries, &id); in context_deserialize_answer()
361 if(!q) return NULL; in context_deserialize_answer()
363 q->msg_security = sldns_read_uint32(p+3*sizeof(uint32_t)); in context_deserialize_answer()
364 q->res->was_ratelimited = (int)sldns_read_uint32(p+4*sizeof(uint32_t)); in context_deserialize_answer()
368 q->res->why_bogus = (char*)memdup( in context_deserialize_answer()
370 if(!q->res->why_bogus) { in context_deserialize_answer()
372 q->msg_len = 0; in context_deserialize_answer()
374 return q; in context_deserialize_answer()
376 q->res->why_bogus[wlen-1] = 0; /* zero terminated for sure */ in context_deserialize_answer()
379 q->msg_len = len - size_of_uint32s - wlen; in context_deserialize_answer()
380 q->msg = (uint8_t*)memdup(p+size_of_uint32s+wlen, in context_deserialize_answer()
381 q->msg_len); in context_deserialize_answer()
382 if(!q->msg) { in context_deserialize_answer()
384 q->msg_len = 0; in context_deserialize_answer()
386 return q; in context_deserialize_answer()
389 return q; in context_deserialize_answer()
393 context_serialize_cancel(struct ctx_query* q, uint32_t* len) in context_serialize_cancel() argument
402 sldns_write_uint32(p+sizeof(uint32_t), (uint32_t)q->querynum); in context_serialize_cancel()
409 struct ctx_query* q; in context_deserialize_cancel() local
414 q = (struct ctx_query*)rbtree_search(&ctx->queries, &id); in context_deserialize_cancel()
415 return q; in context_deserialize_cancel()