[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

Communications Programming Concepts


List of RPC Programming References

The list includes:

Subroutines and Macros

The list of subroutines and macros is arranged by function:

Authenticating Remote Procedure Calls

RPC provides these subroutines and macros for creating and destroying authentication information:

authnone_create Creates null authentication information.
authunix_create Creates an authentication handle with operating system permissions.
authunix_create_default Sets the authentication to the default.
authdes_create Enables the use of DES from the client side.
authdes_getucred Maps a DES credential into a UNIX credential.
auth_destroy Destroys authentication information.

Managing the Client

RPC provides subroutines and macros for the following client management tasks:

Creating an RPC Client for a Remote Program


clntraw_create Creates a sample RPC client handle for simulation.
clnttcp_create Creates a Transmission Control Protocol/Internet Protocol (TCP/IP) client transport handle.
clntudp_create Creates a User Datagram Protocol/Internet Protocol (UDP/IP) client transport handle.
clnt_create Creates a generic client transport handle.

Changing or Retrieving Client Information


clnt_control Changes or retrieves information about a client object.

Destroying a Client RPC Handle


clnt_destroy Destroys a client's RPC handle.

Broadcasting a Remote Procedure Call


clnt_broadcast Broadcasts a remote procedure call to all network hosts.

Calling a Remote Procedure


callrpc Calls the remote procedure on the machine associated with the host parameter.
clnt_call Calls the remote procedure associated with the clnt parameter.

Freeing Memory Allocated by RPC and XDR


clnt_freeres Frees memory allocated by RPC and XDR.

Handling Client Errors


clnt_pcreateerror Identifies why a client RPC handle was not created.
clnt_perrno Specifies the condition of the stat parameter.
clnt_perror Determines why a remote procedure call failed.
clnt_geterr Copies error information from a client transport handle.
clnt_spcreateerror Identifies why a client RPC handle was not created.
clnt_sperrno Specifies the condition of the stat parameter.
clnt_sperror Indicates why a remote procedure call failed.

Managing the Server

RPC provides subroutines and macros for the following server management tasks:

Creating an RPC Service Transport Handle


svcraw_create Creates a sample RPC service handle for simulation.
svctcp_create Creates a TCP/IP service transport handle.
svcudp_create Creates a UDP/IP service transport handle.
svcfd_create Creates a service on any open file descriptor.

Destroying an RPC Service Transport Handle


svc_destroy Destroys a service transport handle.

Registering and Unregistering RPC Procedures and Handles


registerrpc Registers a procedure with the RPC service.
xprt_register Registers an RPC service transport handle.
xprt_unregister Removes an RPC service transport handle.
svc_register Maps a remote procedure.
svc_unregister Removes mappings between procedures and objects.

Handling an RPC Request


svc_run Signals a wait for the arrival of RPC requests.
svc_getreqset Services an RPC request.
svc_getargs Decodes the arguments of an RPC request.
svc_sendreply Sends back the results of a remote procedure call.
svc_freeargs Frees data allocated by the RPC and XDR system.
svc_getcaller Gets the network address of the caller of a procedure.

Handling Server Errors


svcerr_auth Indicates that the remote procedure call cannot be completed due to an authentication error.
svcerr_decode Indicates that the parameters of a request cannot be decoded.
svcerr_noproc Indicates that the remote procedure call cannot be completed because the program cannot support the requested procedure.
svcerr_noprog Indicates that the remote procedure call cannot be completed because the program is not registered.
svcerr_progvers Indicates that the remote procedure call cannot be completed because the program version is not registered.
svcerr_systemerr Indicates that the remote procedure call cannot be completed due to an error not covered by any protocol.
svcerr_weakauth Indicates that the remote procedure call cannot be completed due to insufficient authentication security parameters.

Using RPC Utilities


host2netname Converts a host name to a network name.
netname2host Converts a network name to a host name.
netname2user Converts a network name to a user ID.
user2netname Converts a user ID to a network name.
getnetname Installs the network name of the caller in the array.
get_myaddress Gets the user's IP address.
getrpcent, getrpcbyname, getrpcbynumber, setrpcent, or endrpcent Accesses the /etc/rpc file.
rtime
Returns the remote time in the timeval structure.

Using DES Interface to the keyserv Daemon


key_decryptsession Decrypts a server network name and a DES key.
key_encryptsession Encrypts a server network name and a DES key.
key_gendes Requests a secure conversation key from the keyserv daemon.
key_setsecret Sets the key for the user ID of the calling process.

Interfacing to the portmap Daemon


pmap_getmaps Returns a list of the current RPC port mappings.
pmap_getport Requests the port number on which a service waits.
pmap_rmtcall Instructs the portmap daemon to make an RPC.
pmap_set Maps an RPC to a port.
pmap_unset Destroys the mapping between the RPC and the port.
xdr_pmap Describes parameters for portmap procedures.
xdr_pmaplist Describes a list of port mappings externally.

Describing and Encoding Remote Procedure Calls

RPC provides subroutines for describing and encoding RPC call and reply messages, authentication, and port mappings:

xdr_accepted_reply Encodes RPC reply messages.
xdr_authunix_parms Describes UNIX-style credentials.
xdr_callhdr Describes RPC call header messages.
xdr_callmsg Describes RPC call messages.
xdr_opaque_auth Describes RPC authentication messages.
xdr_rejected_reply Describes RPC message rejection replies.
xdr_replymsg Describes RPC message replies.

Examples

Using UNIX Authentication Example.

DES Authentication Example.

Using the Highest Layer of RPC Example.

Using the Intermediate Layer of RPC Example.

Using the Lowest Layer of RPC Example.

Showing How RPC Passes Arbitrary Data Types Example.

Using Multiple Program Versions Example.

Broadcasting a Remote Procedure Call Example.

Using the select Subroutine Example.

rcp Process on TCP Example.

RPC Callback Procedures Example.

RPC Language ping Program Example.

Converting Local Procedures into Remote Procedures Example.

Generating XDR Routines Example.


[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]