Lines Matching refs:cont

34 	Context *cont;  in udp_response_start()  local
39 cont = context_create(); in udp_response_start()
40 if (!cont) in udp_response_start()
41 return (response_abort (cont, -1)); in udp_response_start()
43 cont->mesg.p = mesg_buf; in udp_response_start()
44 cont->mesg_len = mesg_len; in udp_response_start()
45 cont->wp = mesg_buf + mesg_len; /* just after the answer section */ in udp_response_start()
46 cont->q_id = cont->mesg.hdr->id; in udp_response_start()
47 cont->netifaddr = nia_copy (inif); in udp_response_start()
48 memcpy (cont->peer, sa_p, SOCKADDR_SIZEOF(*sa_p)); in udp_response_start()
50 if (cont->mesg.hdr->opcode == OP_QUERY) { in udp_response_start()
54 cont->process = udp_response_recursive_process; in udp_response_start()
55 cont->retry = udp_response_recursive_retry; in udp_response_start()
58 switch (request_start (cont, QUERY_TCP)) { in udp_response_start()
64 cont->mesg.hdr->rcode = RC_FMTERR; in udp_response_start()
65 return (udp_response_finish (cont)); in udp_response_start()
68 cont->mesg.hdr->rcode = RC_SERVERERR; in udp_response_start()
69 return (udp_response_finish (cont)); in udp_response_start()
73 cont->mesg.hdr->opcode); in udp_response_start()
74 cont->mesg.hdr->rcode = RC_NIMP; in udp_response_start()
75 return udp_response_finish (cont); in udp_response_start()
82 int udp_response_recursive_process (Context *cont) { in udp_response_recursive_process() argument
83 switch (recursive_process (cont)) { in udp_response_recursive_process()
89 return udp_response_finish (cont); in udp_response_recursive_process()
92 cont->mesg.hdr->rcode = RC_SERVERERR; in udp_response_recursive_process()
93 return udp_response_finish (cont); in udp_response_recursive_process()
97 int udp_response_recursive_retry (Context *cont) { in udp_response_recursive_retry() argument
99 return response_abort (cont, 0); in udp_response_recursive_retry()
102 int udp_response_finish (Context *cont) { in udp_response_finish() argument
122 assemble_response (cont); in udp_response_finish()
123 if (cont->mesg_len < 0 || cont->mesg_len > MAX_PACKET) { in udp_response_finish()
125 list_destroy (cont->ar_list, rrset_freev); in udp_response_finish()
126 cont->ar_list = NULL; in udp_response_finish()
128 assemble_response (cont); in udp_response_finish()
130 if (cont->mesg_len < 0 || cont->mesg_len > MAX_PACKET) { in udp_response_finish()
136 list_destroy (cont->ns_list, rrset_freev); in udp_response_finish()
137 cont->ns_list = NULL; in udp_response_finish()
139 assemble_response (cont); in udp_response_finish()
141 if (cont->mesg_len < 0 || cont->mesg_len > MAX_PACKET) { in udp_response_finish()
143 list_destroy (cont->an_list, rrset_freev); in udp_response_finish()
144 cont->an_list = NULL; in udp_response_finish()
145 assemble_response (cont); in udp_response_finish()
146 cont->mesg.hdr->tc = 1; in udp_response_finish()
149 if (cont->mesg_len < 0 || cont->mesg_len > MAX_PACKET) { in udp_response_finish()
151 return (response_abort (cont, 1)); in udp_response_finish()
155 len = net_mesg_send (cont->netifaddr, cont->mesg.p, cont->mesg_len, in udp_response_finish()
156 cont->peer); in udp_response_finish()
158 if (len < cont->mesg_len) { in udp_response_finish()
160 return (response_abort (cont, -1)); in udp_response_finish()
163 context_destroy (cont); in udp_response_finish()