示例#1
0
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);

}
示例#2
0
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);

}
示例#3
0
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);
}