xprt_unregister Subroutine

Important: The subroutine is exported from both the libc and the libnsl libraries.

xprt_unregister Subroutine Exported from the libc Library

Purpose

Removes a Remote Procedure Call (RPC) service transport handle.

Library

C Library (libc.a)

Syntax

void xprt_unregister ( xprt)
SVCXPRT *xprt;

Description

The xprt_unregister subroutine removes an RPC service transport handle from the RPC service program before the transport handle can be destroyed. This subroutine modifies the svc_fds global variable.

Note: Service implementors do not usually need this subroutine.

Parameters

Item Description
xprt Points to the RPC service transport handle to be destroyed.

xprt_unregister Subroutine Exported from the libnsl Library

Purpose

Removes a Remote Procedure Call (RPC) service transport handle.

Library

Network Services Library (libnsl.a)

Syntax

#include <rpc/rpc.h>
void xprt_unregister ( xprt)
const SVCXPRT *xprt;

Description

The xprt_unregister subroutine removes an RPC service transport handle from the RPC service program before the transport handle can be destroyed. This subroutine modifies the svc_fds global variable. The svc_fdset global variable indicates read file descriptor bit mask of the RPC server, which is generally required if you do not call the svc_run subroutine.

Note: Service implementors do not usually need this subroutine.

Parameters

Item Description
xprt Points to the RPC service transport handle to be destroyed.

Examples

#include <stdlib.h>
#include <rpc/rpc.h>
#include <netconfig.h>

#define PROG 0x3fffffffL
#define VERS 0x1L

main()
{
  
    SVCXPRT *svc_handle;   /* server handle */
    struct netconfig *nconf;
    int fd;

    /* Get proper file descriptor */       

    /* Get transport type */    
    
    /* Get RPC service handle */
   
    /* sendsize and recvsize are 0, thus default size will be chosen */
     
    if((svc_handle=svc_tli_create(fd, nconf, 0, 0, 0))==(SVCXPRT *)NULL)
    {
         fprintf(stdout,"Error in svc_tli_create!");
         exit(EXIT_FAILURE);
    }
 
    /* register it */
    xprt_register(svc_handle);
           
    /* unregister it */
    xprt_unregister(svc_handle);

    /* destroy the RPC service handle */
    svc_destroy(svc_handle); 
      
    /* check if svc_fdset is modified */  
     
      return 0;
}