Lines Matching defs:nbp

104 static int  nbssn_recv(struct nbpcb *nbp, struct mbuf **mpp, int *lenp,
116 nbssn_rselect(struct nbpcb *nbp, const struct timespec *ts, int events,
120 return pollsock(nbp->nbp_tso, ts, events);
124 nb_intr(struct nbpcb *nbp, struct lwp *l)
132 struct nbpcb *nbp = (void *)arg;
134 if (arg == NULL || nbp->nbp_selectid == NULL)
136 wakeup(nbp->nbp_selectid);
171 nb_connect_in(struct nbpcb *nbp, struct sockaddr_in *to, struct lwp *l)
181 nbp->nbp_tso = so;
182 so->so_upcallarg = (void *)nbp;
208 (error = nb_intr(nbp, l)) != 0) {
223 smb_nbst_disconnect(nbp->nbp_vc, l);
228 nbssn_rq_request(struct nbpcb *nbp, struct lwp *l)
242 (void) nb_put_name(mbp, nbp->nbp_paddr);
243 (void) nb_put_name(mbp, nbp->nbp_laddr);
245 error = nb_sosend(nbp->nbp_tso, mbp->mb_top, 0, l);
247 nbp->nbp_state = NBST_RQSENT;
253 error = nbssn_rselect(nbp, &nb_timo, POLLIN, l);
260 error = nbssn_recv(nbp, &m0, &rplen, &rpcode, l);
273 nbp->nbp_state = NBST_SESSION;
274 nbp->nbp_flags |= NBF_CONNECTED;
288 nbp->nbp_state = NBST_RETARGET;
289 smb_nbst_disconnect(nbp->nbp_vc, l);
290 error = nb_connect_in(nbp, &sin, l);
292 error = nbssn_rq_request(nbp, l);
294 smb_nbst_disconnect(nbp->nbp_vc, l);
304 nbssn_recvhdr(struct nbpcb *nbp, int *lenp,
307 struct socket *so = nbp->nbp_tso;
340 nbssn_recv(struct nbpcb *nbp, struct mbuf **mpp, int *lenp,
343 struct socket *so = nbp->nbp_tso;
364 error = nbssn_recvhdr(nbp, &len, &rpcode, MSG_DONTWAIT, l);
367 nbp->nbp_state = NBST_CLOSED;
373 if (len == 0 && nbp->nbp_state != NBST_SESSION)
432 if (nbp->nbp_state == NBST_SESSION &&
464 struct nbpcb *nbp;
466 nbp = malloc(sizeof *nbp, M_NBDATA, M_WAITOK|M_ZERO);
467 nbp->nbp_state = NBST_CLOSED;
468 nbp->nbp_vc = vcp;
469 vcp->vc_tdata = nbp;
476 struct nbpcb *nbp = vcp->vc_tdata;
478 if (nbp == NULL)
481 if (nbp->nbp_laddr)
482 free(nbp->nbp_laddr, M_SONAME);
483 if (nbp->nbp_paddr)
484 free(nbp->nbp_paddr, M_SONAME);
485 free(nbp, M_NBDATA);
492 struct nbpcb *nbp = vcp->vc_tdata;
499 if (nbp->nbp_flags & NBF_LOCADDR)
515 nbp->nbp_laddr = snb;
516 nbp->nbp_flags |= NBF_LOCADDR;
525 struct nbpcb *nbp = vcp->vc_tdata;
531 if (nbp->nbp_tso != NULL)
533 if (nbp->nbp_laddr == NULL)
538 if (nbp->nbp_paddr) {
539 free(nbp->nbp_paddr, M_SONAME);
540 nbp->nbp_paddr = NULL;
545 nbp->nbp_paddr = snb;
547 error = nb_connect_in(nbp, &sin, l);
550 error = nbssn_rq_request(nbp, l);
559 struct nbpcb *nbp = vcp->vc_tdata;
562 if (nbp == NULL || nbp->nbp_tso == NULL)
564 if ((so = nbp->nbp_tso) != NULL) {
565 nbp->nbp_flags &= ~NBF_CONNECTED;
566 nbp->nbp_tso = NULL;
572 if (nbp->nbp_state != NBST_RETARGET) {
573 nbp->nbp_state = NBST_CLOSED;
581 struct nbpcb *nbp = vcp->vc_tdata;
584 if (nbp->nbp_state != NBST_SESSION) {
592 error = nb_sosend(nbp->nbp_tso, m0, 0, l);
604 struct nbpcb *nbp = vcp->vc_tdata;
608 nbp->nbp_flags |= NBF_RECVLOCK;
609 error = nbssn_recv(nbp, mpp, &rplen, &rpcode, l);
610 nbp->nbp_flags &= ~NBF_RECVLOCK;
624 struct nbpcb *nbp = vcp->vc_tdata;
627 if (nbp == NULL || (so = nbp->nbp_tso) == NULL)
661 struct nbpcb *nbp = vcp->vc_tdata;
665 nbp->nbp_selectid = data;