Lines Matching defs:rqp

183 	struct nbns_rq *rqp;
191 error = smbfs_nbns_rq_create(NBNS_OPCODE_QUERY, ctx, &rqp);
203 rqp->nr_nmflags = NBNS_NMFLAG_RD;
204 rqp->nr_qdname = &nn;
205 rqp->nr_qdtype = NBNS_QUESTION_TYPE_NB;
206 rqp->nr_qdclass = NBNS_QUESTION_CLASS_IN;
207 rqp->nr_qdcount = 1;
208 rqp->nr_maxretry = 5;
210 error = smbfs_nbns_rq_prepare(rqp);
212 smbfs_nbns_rq_done(rqp);
217 error = smbfs_nbns_rq(rqp);
220 if ((rqp->nr_rpnmflags & NBNS_NMFLAG_AA) == 0) {
229 error = smbfs_nbns_rq_getrr(rqp, &rr);
232 error = smbfs_nbns_rq_getrr(rqp, &rr);
235 bcopy(rr.rr_data, &rqp->nr_dest, 4);
238 if (rqp->nr_rpancount == 0) {
242 error = smbfs_nbns_rq_getrr(rqp, &rr);
260 ctx->nb_lastns = rqp->nr_sender;
263 smbfs_nbns_rq_done(rqp);
274 struct nbns_rq *rqp;
283 error = smbfs_nbns_rq_create(NBNS_OPCODE_QUERY, ctx, &rqp);
290 rqp->nr_nmflags = 0;
291 rqp->nr_qdname = &nn;
292 rqp->nr_qdtype = NBNS_QUESTION_TYPE_NBSTAT;
293 rqp->nr_qdclass = NBNS_QUESTION_CLASS_IN;
294 rqp->nr_qdcount = 1;
295 rqp->nr_maxretry = 2;
297 rqp->nr_dest = *targethost;
298 error = smbfs_nbns_rq_prepare(rqp);
300 smbfs_nbns_rq_done(rqp);
308 error = smbfs_nbns_rq(rqp);
311 if (rqp->nr_rpancount == 0) {
315 error = smbfs_nbns_rq_getrr(rqp, &rr);
364 ctx->nb_lastns = rqp->nr_sender;
367 smbfs_nbns_rq_done(rqp);
374 struct nbns_rq *rqp;
380 rqp = malloc(sizeof (*rqp));
381 if (rqp == NULL)
383 bzero(rqp, sizeof (*rqp));
384 error = smbfs_mb_init_sz(&rqp->nr_rq, NBDG_MAXSIZE);
386 free(rqp);
389 rqp->nr_opcode = opcode;
390 rqp->nr_nbd = ctx;
391 rqp->nr_trnid = trnid++;
392 *rqpp = rqp;
397 smbfs_nbns_rq_done(struct nbns_rq *rqp)
399 if (rqp == NULL)
401 if (rqp->nr_fd >= 0)
402 (void) close(rqp->nr_fd);
403 smbfs_mb_done(&rqp->nr_rq);
404 smbfs_mb_done(&rqp->nr_rp);
405 if (rqp->nr_if)
406 free(rqp->nr_if);
407 free(rqp);
415 smbfs_nbns_rq_getrr(struct nbns_rq *rqp, struct nbns_rr *rrp)
417 struct mbdata *mbp = &rqp->nr_rp;
440 smbfs_nbns_rq_prepare(struct nbns_rq *rqp)
442 struct nb_ctx *ctx = rqp->nr_nbd;
443 struct mbdata *mbp = &rqp->nr_rq;
447 error = smbfs_mb_init_sz(&rqp->nr_rp, NBDG_MAXSIZE);
455 smbfs_mb_put_uint16be(mbp, rqp->nr_trnid);
456 ofr = ((rqp->nr_opcode & 0x1F) << 11) |
457 ((rqp->nr_nmflags & 0x7F) << 4); /* rcode=0 */
459 smbfs_mb_put_uint16be(mbp, rqp->nr_qdcount);
460 smbfs_mb_put_uint16be(mbp, rqp->nr_ancount);
461 smbfs_mb_put_uint16be(mbp, rqp->nr_nscount);
462 error = smbfs_mb_put_uint16be(mbp, rqp->nr_arcount);
463 if (rqp->nr_qdcount) {
464 if (rqp->nr_qdcount > 1)
466 (void) smbfs_nb_name_encode(mbp, rqp->nr_qdname);
467 smbfs_mb_put_uint16be(mbp, rqp->nr_qdtype);
468 error = smbfs_mb_put_uint16be(mbp, rqp->nr_qdclass);
481 smbfs_nbns_rq_recv(struct nbns_rq *rqp)
483 struct mbdata *mbp = &rqp->nr_rp;
488 int s = rqp->nr_fd;
497 tv.tv_sec = rqp->nr_nbd->nb_timo;
513 rqp->nr_sender = sender;
518 smbfs_nbns_rq_opensocket(struct nbns_rq *rqp)
522 struct nb_ctx *ctx = rqp->nr_nbd;
524 s = rqp->nr_fd = socket(AF_INET, SOCK_DGRAM, 0);
544 smbfs_nbns_rq_send(struct nbns_rq *rqp, in_addr_t ina)
547 struct mbdata *mbp = &rqp->nr_rq;
548 int s = rqp->nr_fd;
561 nmflags = rqp->nr_nmflags | NBNS_NMFLAG_BCAST;
564 ofr = ((rqp->nr_opcode & 0x1F) << 11) |
586 smbfs_nbns_rq(struct nbns_rq *rqp)
588 struct nb_ctx *ctx = rqp->nr_nbd;
589 struct mbdata *mbp = &rqp->nr_rq;
593 error = smbfs_nbns_rq_opensocket(rqp);
597 maxretry = rqp->nr_maxretry;
604 if (rqp->nr_dest.s_addr) {
605 error = smbfs_nbns_rq_send(rqp, rqp->nr_dest.s_addr);
609 0, error, inet_ntoa(rqp->nr_dest));
615 error = smbfs_nbns_rq_send(rqp, ctx->nb_wins1);
624 error = smbfs_nbns_rq_send(rqp, ctx->nb_wins2);
639 error = smbfs_nbns_rq_send(rqp, INADDR_BROADCAST);
651 error = smbfs_nbns_rq_recv(rqp);
661 mbp = &rqp->nr_rp;
665 if (rpid != rqp->nr_trnid)
673 rqp->nr_rpnmflags = (ofr >> 4) & 0x7F;
674 rqp->nr_rprcode = ofr & 0xf;
675 if (rqp->nr_rprcode)
676 return (NBERROR(rqp->nr_rprcode));
678 smbfs_md_get_uint16be(mbp, &rqp->nr_rpancount);
679 smbfs_md_get_uint16be(mbp, &rqp->nr_rpnscount);
680 smbfs_md_get_uint16be(mbp, &rqp->nr_rparcount);