Home | History | Annotate | Download | only in BsdSocketLib

Lines Matching refs:handle

123 ns_initparse(const u_char *msg, int msglen, ns_msg *handle) {

127 memset(handle, 0x5e, sizeof *handle);
128 handle->_msg = msg;
129 handle->_eom = eom;
132 NS_GET16(handle->_id, msg);
135 NS_GET16(handle->_flags, msg);
139 NS_GET16(handle->_counts[i], msg);
142 if (handle->_counts[i] == 0)
143 handle->_sections[i] = NULL;
146 handle->_counts[i]);
150 handle->_sections[i] = msg;
155 handle->_sect = ns_s_max;
156 handle->_rrnum = -1;
157 handle->_msg_ptr = NULL;
165 ns_parserr(ns_msg *handle, ns_sect section, int rrnum, ns_rr *rr) {
171 if ((int)section != (int)handle->_sect) {
172 handle->_sect = section;
173 handle->_rrnum = 0;
174 handle->_msg_ptr = handle->_sections[(int)section];
179 rrnum = handle->_rrnum;
180 if (rrnum < 0 || rrnum >= handle->_counts[(int)section])
182 if (rrnum < handle->_rrnum) {
183 handle->_rrnum = 0;
184 handle->_msg_ptr = handle->_sections[(int)section];
187 b = skiprr(handle->_msg, handle->_eom, section,
188 rrnum - handle->_rrnum);
191 handle->_msg_ptr += b;
192 handle->_rrnum = rrnum;
195 b = dn_expand(handle->_msg, handle->_eom,
196 handle->_msg_ptr, rr->name, NS_MAXDNAME);
199 handle->_msg_ptr += b;
200 if (handle->_msg_ptr + NS_INT16SZ > handle->_eom)
202 NS_GET16(rr->type, handle->_msg_ptr);
203 if (handle->_msg_ptr + NS_INT16SZ > handle->_eom)
205 NS_GET16(rr->rr_class, handle->_msg_ptr);
211 if (handle->_msg_ptr + NS_INT32SZ > handle->_eom)
213 NS_GET32(rr->ttl, handle->_msg_ptr);
214 if (handle->_msg_ptr + NS_INT16SZ > handle->_eom)
216 NS_GET16(rr->rdlength, handle->_msg_ptr);
217 if (handle->_msg_ptr + rr->rdlength > handle->_eom)
219 rr->rdata = handle->_msg_ptr;
220 handle->_msg_ptr += rr->rdlength;
222 handle->_rrnum++;