Lines Matching refs:xprt

73  * kept in xprt->xp_p2
86 #define su_data(xprt) ((struct svc_door_data *)(xprt->xp_p2))
98 __svc_add_to_xlist(SVCXPRT_LIST **list, SVCXPRT *xprt, mutex_t *lockp)
104 l->xprt = xprt;
115 __svc_rm_from_xlist(SVCXPRT_LIST **list, SVCXPRT *xprt, mutex_t *lockp)
122 if ((*l)->xprt == xprt) {
160 svc_door_destroy_pvt(l->xprt);
181 svc_door_dispatch(SVCXPRT *xprt, struct rpc_msg *msg, struct svc_req *r)
185 struct svc_door_data *su = su_data(xprt);
188 r->rq_xprt = xprt;
199 svcerr_auth(xprt, why);
205 (*su->call_info.dispatch)(r, xprt);
214 svcerr_progvers(xprt, su->call_info.versnum,
217 svcerr_noprog(xprt);
229 SVCXPRT *xprt;
249 if ((xprt = get_xprt_copy(parent, result_buf)) == NULL) {
259 msg = SVCEXT(xprt)->msg;
261 r = SVCEXT(xprt)->req;
263 cred_area = SVCEXT(xprt)->cred_area;
270 su = su_data(xprt);
274 if (svc_door_recv(xprt, msg))
275 svc_door_dispatch(xprt, msg, r);
277 if ((len = return_xprt_copy(xprt)) > 0) {
288 * xprt = svc_door_create(dispatch, prognum, versnum, sendsize);
289 * Once *xprt is initialized, it is registered.
296 svc_door_xprtfree(SVCXPRT *xprt)
299 struct svc_door_data *su = xprt ? su_data(xprt) : NULL;
301 if (xprt == NULL)
303 if (xprt->xp_netid)
304 free(xprt->xp_netid);
305 if (xprt->xp_tp)
306 free(xprt->xp_tp);
309 svc_xprt_free(xprt);
316 SVCXPRT *xprt;
333 if ((xprt = svc_xprt_alloc()) == NULL) {
338 svc_flags(xprt) |= SVC_DOOR;
371 did = door_create(door_server, (void *)xprt, DOOR_REFUSE_DESC);
405 xprt->xp_p2 = (caddr_t)su;
406 xprt->xp_verf.oa_base = su->su_verfbody;
407 xprt->xp_ops = svc_door_ops();
408 xprt->xp_netid = strdup("door");
409 if (xprt->xp_netid == NULL) {
413 xprt->xp_tp = strdup(rendezvous);
414 if (xprt->xp_tp == NULL) {
418 xprt->xp_fd = did;
421 if (!__svc_add_to_xlist(&dxlist, xprt, NULL)) {
427 return (xprt);
433 if (xprt)
434 svc_door_xprtfree(xprt);
443 SVCXPRT *xprt;
446 if ((xprt = svc_xprt_alloc()) == NULL)
450 SVCEXT(xprt)->parent = parent;
452 SVCEXT(xprt)->flags = SVCEXT(parent)->flags;
454 xprt->xp_fd = parent->xp_fd;
455 xprt->xp_port = parent->xp_port;
456 xprt->xp_ops = svc_door_ops();
458 xprt->xp_tp = (char *)strdup(parent->xp_tp);
459 if (xprt->xp_tp == NULL) {
461 svc_door_xprtfree(xprt);
466 xprt->xp_netid = (char *)strdup(parent->xp_netid);
467 if (xprt->xp_netid == NULL) {
471 svc_door_xprtfree(xprt);
475 xprt->xp_type = parent->xp_type;
478 svc_door_xprtfree(xprt);
486 xprt->xp_p2 = (caddr_t)su; /* su_data(xprt) = su */
487 xprt->xp_verf.oa_base = su->su_verfbody;
489 return (xprt);
499 SVCXPRT *xprt;
506 xprt = xret->xprt;
508 svc_flags(xprt) = svc_flags(parent);
510 xprt = svc_door_xprtcopy(parent);
512 if (xprt) {
516 su = su_data(xprt);
520 return (xprt);
524 return_xprt_copy(SVCXPRT *xprt)
529 int len = su_data(xprt)->len;
533 if ((parent = SVCEXT(xprt)->parent) == NULL) {
540 xlist = SVCEXT(xprt)->my_xlist;
553 svc_flags(xprt) |= svc_flags(parent);
555 if (svc_defunct(xprt)) {
560 svc_door_destroy_pvt(xprt);
568 svc_door_stat(SVCXPRT *xprt)
574 svc_door_recv(SVCXPRT *xprt, struct rpc_msg *msg)
577 struct svc_door_data *su = su_data(xprt);
588 svc_door_reply(SVCXPRT *xprt, struct rpc_msg *msg)
591 struct svc_door_data *su = su_data(xprt);
604 svc_door_getargs(SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr)
607 return ((*xdr_args)(&(su_data(xprt)->su_xdrs), args_ptr));
611 svc_door_freeargs(SVCXPRT *xprt, xdrproc_t xdr_args, caddr_t args_ptr)
614 XDR *xdrs = &(su_data(xprt)->su_xdrs);
621 svc_door_destroy(SVCXPRT *xprt)
624 svc_door_destroy_pvt(xprt);
629 svc_door_destroy_pvt(SVCXPRT *xprt)
632 if (SVCEXT(xprt)->parent)
634 xprt = SVCEXT(xprt)->parent;
636 svc_flags(xprt) |= SVC_DEFUNCT;
638 if (SVCEXT(xprt)->refcnt > 0)
641 __svc_rm_from_xlist(&dxlist, xprt, NULL);
643 if (xprt->xp_tp) {
644 (void) fdetach(xprt->xp_tp);
645 (void) unlink(xprt->xp_tp);
647 (void) door_revoke(xprt->xp_fd);
649 svc_xprt_destroy(xprt);
657 svc_door_control(SVCXPRT *xprt, const uint_t rq, void *in)
670 if (door_setparam(xprt->xp_fd, DOOR_PARAM_DATA_MAX,
677 if (door_getparam(xprt->xp_fd, DOOR_PARAM_DATA_MAX,
721 __svc_get_door_cred(SVCXPRT *xprt, svc_local_cred_t *lcred)
737 __svc_get_door_ucred(const SVCXPRT *xprt, ucred_t *ucp)