Lines Matching refs:xprt
81 static bool_t svc_vc_control(SVCXPRT *xprt, const u_int rq, void *in);
82 static bool_t svc_vc_rendezvous_control (SVCXPRT *xprt, const u_int rq,
122 SVCXPRT *xprt = NULL; in svc_vc_create() local
139 xprt = svc_xprt_alloc(); in svc_vc_create()
140 if (xprt == NULL) { in svc_vc_create()
144 xprt->xp_p1 = r; in svc_vc_create()
145 xprt->xp_verf = _null_auth; in svc_vc_create()
146 svc_vc_rendezvous_ops(xprt); in svc_vc_create()
147 xprt->xp_port = (u_short)-1; /* It is the rendezvouser */ in svc_vc_create()
148 xprt->xp_fd = fd; in svc_vc_create()
156 xprt->xp_ltaddr.maxlen = xprt->xp_ltaddr.len = sslocal.ss_len; in svc_vc_create()
157 xprt->xp_ltaddr.buf = mem_alloc((size_t)sslocal.ss_len); in svc_vc_create()
158 if (xprt->xp_ltaddr.buf == NULL) { in svc_vc_create()
162 memcpy(xprt->xp_ltaddr.buf, &sslocal, (size_t)sslocal.ss_len); in svc_vc_create()
164 xprt->xp_rtaddr.maxlen = sizeof (struct sockaddr_storage); in svc_vc_create()
165 xprt_register(xprt); in svc_vc_create()
166 return (xprt); in svc_vc_create()
168 if (xprt) in svc_vc_create()
169 mem_free(xprt, sizeof(*xprt)); in svc_vc_create()
236 SVCXPRT *xprt; in makefd_xprt() local
243 xprt = svc_xprt_alloc(); in makefd_xprt()
244 if (xprt == NULL) { in makefd_xprt()
251 svc_xprt_free(xprt); in makefd_xprt()
252 xprt = NULL; in makefd_xprt()
257 xprt, read_vc, write_vc); in makefd_xprt()
258 xprt->xp_p1 = cd; in makefd_xprt()
259 xprt->xp_verf.oa_base = cd->verf_body; in makefd_xprt()
260 svc_vc_ops(xprt); /* truly deals with calls */ in makefd_xprt()
261 xprt->xp_port = 0; /* this is a connection, not a rendezvouser */ in makefd_xprt()
262 xprt->xp_fd = fd; in makefd_xprt()
264 xprt->xp_netid = strdup(netid); in makefd_xprt()
266 xprt_register(xprt); in makefd_xprt()
268 return (xprt); in makefd_xprt()
273 rendezvous_request(SVCXPRT *xprt, struct rpc_msg *msg) in rendezvous_request() argument
284 assert(xprt != NULL); in rendezvous_request()
287 r = (struct cf_rendezvous *)xprt->xp_p1; in rendezvous_request()
290 if ((sock = _accept(xprt->xp_fd, (struct sockaddr *)(void *)&addr, in rendezvous_request()
366 rendezvous_stat(SVCXPRT *xprt) in rendezvous_stat() argument
373 svc_vc_destroy(SVCXPRT *xprt) in svc_vc_destroy() argument
375 assert(xprt != NULL); in svc_vc_destroy()
377 xprt_unregister(xprt); in svc_vc_destroy()
378 __svc_vc_dodestroy(xprt); in svc_vc_destroy()
382 __svc_vc_dodestroy(SVCXPRT *xprt) in __svc_vc_dodestroy() argument
387 cd = (struct cf_conn *)xprt->xp_p1; in __svc_vc_dodestroy()
389 if (xprt->xp_fd != RPC_ANYFD) in __svc_vc_dodestroy()
390 (void)_close(xprt->xp_fd); in __svc_vc_dodestroy()
391 if (xprt->xp_port != 0) { in __svc_vc_dodestroy()
393 r = (struct cf_rendezvous *)xprt->xp_p1; in __svc_vc_dodestroy()
395 xprt->xp_port = 0; in __svc_vc_dodestroy()
401 if (xprt->xp_rtaddr.buf) in __svc_vc_dodestroy()
402 mem_free(xprt->xp_rtaddr.buf, xprt->xp_rtaddr.maxlen); in __svc_vc_dodestroy()
403 if (xprt->xp_ltaddr.buf) in __svc_vc_dodestroy()
404 mem_free(xprt->xp_ltaddr.buf, xprt->xp_ltaddr.maxlen); in __svc_vc_dodestroy()
405 free(xprt->xp_tp); in __svc_vc_dodestroy()
406 free(xprt->xp_netid); in __svc_vc_dodestroy()
407 svc_xprt_free(xprt); in __svc_vc_dodestroy()
412 svc_vc_control(SVCXPRT *xprt, const u_int rq, void *in) in svc_vc_control() argument
418 svc_vc_rendezvous_control(SVCXPRT *xprt, const u_int rq, void *in) in svc_vc_rendezvous_control() argument
422 cfp = (struct cf_rendezvous *)xprt->xp_p1; in svc_vc_rendezvous_control()
448 SVCXPRT *xprt; in read_vc() local
454 xprt = (SVCXPRT *)xprtp; in read_vc()
455 assert(xprt != NULL); in read_vc()
457 sock = xprt->xp_fd; in read_vc()
459 cfp = (struct cf_conn *)xprt->xp_p1; in read_vc()
497 ((struct cf_conn *)(xprt->xp_p1))->strm_stat = XPRT_DIED; in read_vc()
508 SVCXPRT *xprt; in write_vc() local
513 xprt = (SVCXPRT *)xprtp; in write_vc()
514 assert(xprt != NULL); in write_vc()
516 cd = (struct cf_conn *)xprt->xp_p1; in write_vc()
522 i = _write(xprt->xp_fd, buf, (size_t)cnt); in write_vc()
550 svc_vc_stat(SVCXPRT *xprt) in svc_vc_stat() argument
554 assert(xprt != NULL); in svc_vc_stat()
556 cd = (struct cf_conn *)(xprt->xp_p1); in svc_vc_stat()
566 svc_vc_recv(SVCXPRT *xprt, struct rpc_msg *msg) in svc_vc_recv() argument
571 assert(xprt != NULL); in svc_vc_recv()
574 cd = (struct cf_conn *)(xprt->xp_p1); in svc_vc_recv()
594 svc_vc_getargs(SVCXPRT *xprt, xdrproc_t xdr_args, void *args_ptr) in svc_vc_getargs() argument
598 assert(xprt != NULL); in svc_vc_getargs()
599 cd = (struct cf_conn *)(xprt->xp_p1); in svc_vc_getargs()
600 return (SVCAUTH_UNWRAP(&SVC_AUTH(xprt), in svc_vc_getargs()
605 svc_vc_freeargs(SVCXPRT *xprt, xdrproc_t xdr_args, void *args_ptr) in svc_vc_freeargs() argument
609 assert(xprt != NULL); in svc_vc_freeargs()
612 xdrs = &(((struct cf_conn *)(xprt->xp_p1))->xdrs); in svc_vc_freeargs()
619 svc_vc_reply(SVCXPRT *xprt, struct rpc_msg *msg) in svc_vc_reply() argument
628 assert(xprt != NULL); in svc_vc_reply()
631 cd = (struct cf_conn *)(xprt->xp_p1); in svc_vc_reply()
646 !SVCAUTH_WRAP(&SVC_AUTH(xprt), xdrs, xdr_proc, xdr_where)) { in svc_vc_reply()
661 svc_vc_ops(SVCXPRT *xprt) in svc_vc_ops() argument
678 xprt->xp_ops = &ops; in svc_vc_ops()
679 xprt->xp_ops2 = &ops2; in svc_vc_ops()
684 svc_vc_rendezvous_ops(SVCXPRT *xprt) in svc_vc_rendezvous_ops() argument
702 xprt->xp_ops = &ops; in svc_vc_rendezvous_ops()
703 xprt->xp_ops2 = &ops2; in svc_vc_rendezvous_ops()
738 SVCXPRT *xprt, *least_active; in __svc_clean_idle() local
748 xprt = __svc_xports[i]; in __svc_clean_idle()
749 if (xprt == NULL || xprt->xp_ops == NULL || in __svc_clean_idle()
750 xprt->xp_ops->xp_recv != svc_vc_recv) in __svc_clean_idle()
752 cd = (struct cf_conn *)xprt->xp_p1; in __svc_clean_idle()
759 least_active = xprt; in __svc_clean_idle()
764 __xprt_unregister_unlocked(xprt); in __svc_clean_idle()
765 __svc_vc_dodestroy(xprt); in __svc_clean_idle()