Lines Matching full:handle
73 int ns_msg_getflag(ns_msg handle, int flag) { in ns_msg_getflag() argument
74 return(((handle)._flags & _ns_flagdata[flag].mask) >> _ns_flagdata[flag].shift); in ns_msg_getflag()
102 ns_initparse(const u_char *msg, int msglen, ns_msg *handle) { in ns_initparse() argument
106 handle->_msg = msg; in ns_initparse()
107 handle->_eom = eom; in ns_initparse()
110 NS_GET16(handle->_id, msg); in ns_initparse()
113 NS_GET16(handle->_flags, msg); in ns_initparse()
117 NS_GET16(handle->_counts[i], msg); in ns_initparse()
120 if (handle->_counts[i] == 0) in ns_initparse()
121 handle->_sections[i] = NULL; in ns_initparse()
124 handle->_counts[i]); in ns_initparse()
128 handle->_sections[i] = msg; in ns_initparse()
133 setsection(handle, ns_s_max); in ns_initparse()
138 ns_parserr(ns_msg *handle, ns_sect section, int rrnum, ns_rr *rr) { in ns_parserr() argument
146 if (section != handle->_sect) in ns_parserr()
147 setsection(handle, section); in ns_parserr()
151 rrnum = handle->_rrnum; in ns_parserr()
152 if (rrnum < 0 || rrnum >= handle->_counts[(int)section]) in ns_parserr()
154 if (rrnum < handle->_rrnum) in ns_parserr()
155 setsection(handle, section); in ns_parserr()
156 if (rrnum > handle->_rrnum) { in ns_parserr()
157 b = ns_skiprr(handle->_msg_ptr, handle->_eom, section, in ns_parserr()
158 rrnum - handle->_rrnum); in ns_parserr()
162 handle->_msg_ptr += b; in ns_parserr()
163 handle->_rrnum = rrnum; in ns_parserr()
167 b = dn_expand(handle->_msg, handle->_eom, in ns_parserr()
168 handle->_msg_ptr, rr->name, NS_MAXDNAME); in ns_parserr()
171 handle->_msg_ptr += b; in ns_parserr()
172 if (handle->_msg_ptr + NS_INT16SZ + NS_INT16SZ > handle->_eom) in ns_parserr()
174 NS_GET16(rr->type, handle->_msg_ptr); in ns_parserr()
175 NS_GET16(rr->rr_class, handle->_msg_ptr); in ns_parserr()
181 if (handle->_msg_ptr + NS_INT32SZ + NS_INT16SZ > handle->_eom) in ns_parserr()
183 NS_GET32(rr->ttl, handle->_msg_ptr); in ns_parserr()
184 NS_GET16(rr->rdlength, handle->_msg_ptr); in ns_parserr()
185 if (handle->_msg_ptr + rr->rdlength > handle->_eom) in ns_parserr()
187 rr->rdata = handle->_msg_ptr; in ns_parserr()
188 handle->_msg_ptr += rr->rdlength; in ns_parserr()
190 if (++handle->_rrnum > handle->_counts[(int)section]) in ns_parserr()
191 setsection(handle, (ns_sect)((int)section + 1)); in ns_parserr()
201 ns_parserr2(ns_msg *handle, ns_sect section, int rrnum, ns_rr2 *rr) { in ns_parserr2() argument
208 if (section != handle->_sect) in ns_parserr2()
209 setsection(handle, section); in ns_parserr2()
213 rrnum = handle->_rrnum; in ns_parserr2()
214 if (rrnum < 0 || rrnum >= handle->_counts[(int)section]) in ns_parserr2()
216 if (rrnum < handle->_rrnum) in ns_parserr2()
217 setsection(handle, section); in ns_parserr2()
218 if (rrnum > handle->_rrnum) { in ns_parserr2()
219 b = ns_skiprr(handle->_msg_ptr, handle->_eom, section, in ns_parserr2()
220 rrnum - handle->_rrnum); in ns_parserr2()
224 handle->_msg_ptr += b; in ns_parserr2()
225 handle->_rrnum = rrnum; in ns_parserr2()
229 b = ns_name_unpack2(handle->_msg, handle->_eom, handle->_msg_ptr, in ns_parserr2()
233 handle->_msg_ptr += b; in ns_parserr2()
234 if (handle->_msg_ptr + NS_INT16SZ + NS_INT16SZ > handle->_eom) in ns_parserr2()
236 NS_GET16(rr->type, handle->_msg_ptr); in ns_parserr2()
237 NS_GET16(rr->rr_class, handle->_msg_ptr); in ns_parserr2()
243 if (handle->_msg_ptr + NS_INT32SZ + NS_INT16SZ > handle->_eom) in ns_parserr2()
245 NS_GET32(rr->ttl, handle->_msg_ptr); in ns_parserr2()
246 NS_GET16(rr->rdlength, handle->_msg_ptr); in ns_parserr2()
247 if (handle->_msg_ptr + rr->rdlength > handle->_eom) in ns_parserr2()
249 rr->rdata = handle->_msg_ptr; in ns_parserr2()
250 handle->_msg_ptr += rr->rdlength; in ns_parserr2()
252 if (++handle->_rrnum > handle->_counts[(int)section]) in ns_parserr2()
253 setsection(handle, (ns_sect)((int)section + 1)); in ns_parserr2()