static void Svcudp_destroy(register SVCXPRT * xprt) { register struct Svcudp_data *su = Su_data(xprt); Xprt_unregister(xprt); (void)close(xprt->XP_SOCK); XDR_DESTROY(&(su->su_xdrs)); Mem_Free(rpc_buffer(xprt)); Mem_Free((caddr_t) su); Mem_Free((caddr_t) xprt); }
static void Svcudp_destroy(register SVCXPRT * xprt) { register struct Svcudp_data *su = Su_data(xprt); Xprt_unregister(xprt); #ifdef _FREEBSD (void)close(xprt->xp_fd); #else (void)close(xprt->xp_sock); #endif XDR_DESTROY(&(su->su_xdrs)); Mem_Free(rpc_buffer(xprt)); Mem_Free((caddr_t) su); Mem_Free((caddr_t) xprt); }
static void Svctcp_destroy(register SVCXPRT * xprt) { register struct tcp_conn *cd = (struct tcp_conn *)xprt->xp_p1; Xprt_unregister(xprt); (void)close(xprt->XP_SOCK); if(xprt->xp_port != 0) { /* a rendezvouser socket */ xprt->xp_port = 0; } else { /* an actual connection socket */ XDR_DESTROY(&(cd->xdrs)); } Mem_Free((caddr_t) cd); Mem_Free((caddr_t) xprt); }