Lines Matching refs:xprt

87 static bool_t svc_vc_control(SVCXPRT *xprt, const u_int rq, void *in);
88 static bool_t svc_vc_rendezvous_control (SVCXPRT *xprt, const u_int rq,
91 struct cf_rendezvous { /* kept in xprt->xp_p1 for rendezvouser */
97 struct cf_conn { /* kept in xprt->xp_p1 for actual connection */
111 * xprt = svc_vc_create(sock, send_buf_size, recv_buf_size);
114 * Once *xprt is initialized, it is registered as a transporter
131 SVCXPRT *xprt;
148 xprt = svc_xprt_alloc();
149 if (xprt == NULL) {
153 xprt->xp_p1 = r;
154 xprt->xp_verf = _null_auth;
155 svc_vc_rendezvous_ops(xprt);
156 xprt->xp_port = (u_short)-1; /* It is the rendezvouser */
157 xprt->xp_fd = fd;
165 xprt->xp_ltaddr.maxlen = xprt->xp_ltaddr.len = sslocal.ss_len;
166 xprt->xp_ltaddr.buf = mem_alloc((size_t)sslocal.ss_len);
167 if (xprt->xp_ltaddr.buf == NULL) {
171 memcpy(xprt->xp_ltaddr.buf, &sslocal, (size_t)sslocal.ss_len);
173 xprt->xp_rtaddr.maxlen = sizeof (struct sockaddr_storage);
174 xprt_register(xprt);
175 return (xprt);
177 if (xprt)
178 mem_free(xprt, sizeof(*xprt));
251 SVCXPRT *xprt;
258 xprt = svc_xprt_alloc();
259 if (xprt == NULL) {
266 svc_xprt_free(xprt);
267 xprt = NULL;
272 xprt, read_vc, write_vc);
273 xprt->xp_p1 = cd;
274 xprt->xp_verf.oa_base = cd->verf_body;
275 svc_vc_ops(xprt); /* truely deals with calls */
276 xprt->xp_port = 0; /* this is a connection, not a rendezvouser */
277 xprt->xp_fd = fd;
279 xprt->xp_netid = strdup(netid);
281 xprt_register(xprt);
283 return (xprt);
288 rendezvous_request(xprt, msg)
289 SVCXPRT *xprt;
301 assert(xprt != NULL);
304 r = (struct cf_rendezvous *)xprt->xp_p1;
307 if ((sock = _accept(xprt->xp_fd, (struct sockaddr *)(void *)&addr,
323 * make a new transporter (re-uses xprt)
369 rendezvous_stat(xprt)
370 SVCXPRT *xprt;
377 svc_vc_destroy(xprt)
378 SVCXPRT *xprt;
380 assert(xprt != NULL);
382 xprt_unregister(xprt);
383 __svc_vc_dodestroy(xprt);
387 __svc_vc_dodestroy(xprt)
388 SVCXPRT *xprt;
393 cd = (struct cf_conn *)xprt->xp_p1;
395 if (xprt->xp_fd != RPC_ANYFD)
396 (void)_close(xprt->xp_fd);
397 if (xprt->xp_port != 0) {
399 r = (struct cf_rendezvous *)xprt->xp_p1;
401 xprt->xp_port = 0;
407 if (xprt->xp_rtaddr.buf)
408 mem_free(xprt->xp_rtaddr.buf, xprt->xp_rtaddr.maxlen);
409 if (xprt->xp_ltaddr.buf)
410 mem_free(xprt->xp_ltaddr.buf, xprt->xp_ltaddr.maxlen);
411 if (xprt->xp_tp)
412 free(xprt->xp_tp);
413 if (xprt->xp_netid)
414 free(xprt->xp_netid);
415 svc_xprt_free(xprt);
420 svc_vc_control(xprt, rq, in)
421 SVCXPRT *xprt;
429 svc_vc_rendezvous_control(xprt, rq, in)
430 SVCXPRT *xprt;
436 cfp = (struct cf_rendezvous *)xprt->xp_p1;
465 SVCXPRT *xprt;
471 xprt = (SVCXPRT *)xprtp;
472 assert(xprt != NULL);
474 sock = xprt->xp_fd;
476 cfp = (struct cf_conn *)xprt->xp_p1;
514 ((struct cf_conn *)(xprt->xp_p1))->strm_stat = XPRT_DIED;
528 SVCXPRT *xprt;
533 xprt = (SVCXPRT *)xprtp;
534 assert(xprt != NULL);
536 cd = (struct cf_conn *)xprt->xp_p1;
542 i = _write(xprt->xp_fd, buf, (size_t)cnt);
570 svc_vc_stat(xprt)
571 SVCXPRT *xprt;
575 assert(xprt != NULL);
577 cd = (struct cf_conn *)(xprt->xp_p1);
587 svc_vc_recv(xprt, msg)
588 SVCXPRT *xprt;
594 assert(xprt != NULL);
597 cd = (struct cf_conn *)(xprt->xp_p1);
617 svc_vc_getargs(xprt, xdr_args, args_ptr)
618 SVCXPRT *xprt;
624 assert(xprt != NULL);
625 cd = (struct cf_conn *)(xprt->xp_p1);
626 return (SVCAUTH_UNWRAP(&SVC_AUTH(xprt),
631 svc_vc_freeargs(xprt, xdr_args, args_ptr)
632 SVCXPRT *xprt;
638 assert(xprt != NULL);
641 xdrs = &(((struct cf_conn *)(xprt->xp_p1))->xdrs);
648 svc_vc_reply(xprt, msg)
649 SVCXPRT *xprt;
659 assert(xprt != NULL);
662 cd = (struct cf_conn *)(xprt->xp_p1);
677 !SVCAUTH_WRAP(&SVC_AUTH(xprt), xdrs, xdr_proc, xdr_where)) {
692 svc_vc_ops(xprt)
693 SVCXPRT *xprt;
710 xprt->xp_ops = &ops;
711 xprt->xp_ops2 = &ops2;
716 svc_vc_rendezvous_ops(xprt)
717 SVCXPRT *xprt;
735 xprt->xp_ops = &ops;
736 xprt->xp_ops2 = &ops2;
771 SVCXPRT *xprt, *least_active;
781 xprt = __svc_xports[i];
782 if (xprt == NULL || xprt->xp_ops == NULL ||
783 xprt->xp_ops->xp_recv != svc_vc_recv)
785 cd = (struct cf_conn *)xprt->xp_p1;
792 least_active = xprt;
797 __xprt_unregister_unlocked(xprt);
798 __svc_vc_dodestroy(xprt);