xref: /freebsd/lib/libc/rpc/rpc_clnt_create.3 (revision 8360efbd6c932013ffdb2f83d2f2de4278febb5e)
18360efbdSAlfred Perlstein.\" @(#)rpc_clnt_create.3n 1.36 93/08/31 SMI; from SVr4
28360efbdSAlfred Perlstein.\" Copyright 1989 AT&T
38360efbdSAlfred Perlstein.\" @(#)rpc_clnt_create 1.5 89/07/24 SMI;
48360efbdSAlfred Perlstein.\" Copyright (c) 1988 Sun Microsystems, Inc. - All Rights Reserved.
58360efbdSAlfred Perlstein.\" $NetBSD: rpc_clnt_create.3,v 1.2 2000/06/20 00:53:08 fvdl Exp $
68360efbdSAlfred Perlstein.\" $FreeBSD$
78360efbdSAlfred Perlstein.Dd May 7, 1993
88360efbdSAlfred Perlstein.Dt RPC_CLNT_CREATE 3
98360efbdSAlfred Perlstein.Os
108360efbdSAlfred Perlstein.Sh NAME
118360efbdSAlfred Perlstein.Nm rpc_clnt_create ,
128360efbdSAlfred Perlstein.Nm clnt_control ,
138360efbdSAlfred Perlstein.Nm clnt_create ,
148360efbdSAlfred Perlstein.Nm clnt_create_vers ,
158360efbdSAlfred Perlstein.Nm clnt_destroy ,
168360efbdSAlfred Perlstein.Nm clnt_dg_create ,
178360efbdSAlfred Perlstein.Nm clnt_pcreateerror ,
188360efbdSAlfred Perlstein.Nm clnt_raw_create ,
198360efbdSAlfred Perlstein.Nm clnt_spcreateerror ,
208360efbdSAlfred Perlstein.Nm clnt_tli_create ,
218360efbdSAlfred Perlstein.Nm clnt_tp_create ,
228360efbdSAlfred Perlstein.Nm clnt_vc_create ,
238360efbdSAlfred Perlstein.Nm rpc_createerr
248360efbdSAlfred Perlstein.Nd "library routines for dealing with creation and manipulation of"
258360efbdSAlfred Perlstein.Vt CLIENT
268360efbdSAlfred Perlsteinhandles
278360efbdSAlfred Perlstein.Sh LIBRARY
288360efbdSAlfred Perlstein.Lb libc
298360efbdSAlfred Perlstein.Sh SYNOPSIS
308360efbdSAlfred Perlstein.Fd #include <rpc/rpc.h>
318360efbdSAlfred Perlstein.Ft bool_t
328360efbdSAlfred Perlstein.Fn clnt_control "CLIENT *clnt" "const u_int req" "char *info"
338360efbdSAlfred Perlstein.Ft "CLIENT *"
348360efbdSAlfred Perlstein.Fn clnt_create "const char * host" "const rpcprog_t prognum" "const rpcvers_t versnum" "const char *nettype"
358360efbdSAlfred Perlstein.Ft "CLIENT *"
368360efbdSAlfred Perlstein.Fn clnt_create_vers "const char * host" "const rpcprog_t prognum" "rpcvers_t *vers_outp" "const rpcvers_t vers_low" "const rpcvers_t vers_high" "char *nettype"
378360efbdSAlfred Perlstein.Ft void
388360efbdSAlfred Perlstein.Fn clnt_destroy "CLIENT *" "clnt"
398360efbdSAlfred Perlstein.Ft "CLIENT *"
408360efbdSAlfred Perlstein.Fn clnt_dg_create "const int fildes" "const struct netbuf *svcaddr" "const rpcprog_t prognum" "const rpcvers_t versnum" "const u_int sendsz" "const u_int recvsz"
418360efbdSAlfred Perlstein.Ft void
428360efbdSAlfred Perlstein.Fn clnt_pcreateerror "const char *s"
438360efbdSAlfred Perlstein.Ft "char *"
448360efbdSAlfred Perlstein.Fn clnt_spcreateerror "const char *s"
458360efbdSAlfred Perlstein.Ft "CLIENT *"
468360efbdSAlfred Perlstein.Fn clnt_raw_create "const rpcprog_t prognum" "const rpcvers_t versnum"
478360efbdSAlfred Perlstein.Ft "CLIENT *"
488360efbdSAlfred Perlstein.Fn clnt_tli_create "const int fildes" "const struct netconfig *netconf" "const struct netbuf *svcaddr" "const rpcprog_t prognum" "const rpcvers_t versnum" "const u_int sendsz" "const u_int recvsz"
498360efbdSAlfred Perlstein.Ft "CLIENT *"
508360efbdSAlfred Perlstein.Fn clnt_tp_create "const char * host" "const rpcprog_t prognum" "const rpcvers_t versnum" "const struct netconfig *netconf"
518360efbdSAlfred Perlstein.Ft "CLIENT *"
528360efbdSAlfred Perlstein.Fn clnt_vc_create "const int fildes" "const struct netbuf *svcaddr" "const rpcprog_t prognum" "const rpcvers_t versnum" "const u_int sendsz" "const u_int recvsz"
538360efbdSAlfred Perlstein.Sh DESCRIPTION
548360efbdSAlfred PerlsteinRPC library routines allow C language programs to make procedure
558360efbdSAlfred Perlsteincalls on other machines across the network.
568360efbdSAlfred PerlsteinFirst a
578360efbdSAlfred Perlstein.Vt CLIENT
588360efbdSAlfred Perlsteinhandle is created and then the client calls a procedure to send a
598360efbdSAlfred Perlsteinrequest to the server.
608360efbdSAlfred PerlsteinOn receipt of the request, the server calls a dispatch routine
618360efbdSAlfred Perlsteinto perform the requested service, and then sends a reply.
628360efbdSAlfred Perlstein.Sh Routines
638360efbdSAlfred Perlstein.Bl -tag -width YYYYYYY
648360efbdSAlfred Perlstein.It Fn clnt_control
658360efbdSAlfred PerlsteinA function macro to change or retrieve various information
668360efbdSAlfred Perlsteinabout a client object.
678360efbdSAlfred Perlstein.Fa req
688360efbdSAlfred Perlsteinindicates the type of operation, and
698360efbdSAlfred Perlstein.Fa info
708360efbdSAlfred Perlsteinis a pointer to the information.
718360efbdSAlfred PerlsteinFor both connectionless and connection-oriented transports,
728360efbdSAlfred Perlsteinthe supported values of
738360efbdSAlfred Perlstein.Fa req
748360efbdSAlfred Perlsteinand their argument types and what they do are:
758360efbdSAlfred Perlstein.Bl -column "CLSET_FD_NCLOSE" "struct timeval *" "set total timeout"
768360efbdSAlfred Perlstein.It Dv CLSET_TIMEOUT Ta "struct timeval *" Ta "set total timeout"
778360efbdSAlfred Perlstein.It Dv CLGET_TIMEOUT Ta "struct timeval *" Ta "get total timeout"
788360efbdSAlfred Perlstein.El
798360efbdSAlfred Perlstein.Pp
808360efbdSAlfred PerlsteinNote:
818360efbdSAlfred Perlsteinif you set the timeout using
828360efbdSAlfred Perlstein.Fn clnt_control ,
838360efbdSAlfred Perlsteinthe timeout argument passed by
848360efbdSAlfred Perlstein.Fn clnt_call
858360efbdSAlfred Perlsteinis ignored in all subsequent calls.
868360efbdSAlfred Perlstein.Pp
878360efbdSAlfred PerlsteinNote:
888360efbdSAlfred PerlsteinIf you set the timeout value to 0,
898360efbdSAlfred Perlstein.Fn clnt_control
908360efbdSAlfred Perlsteinimmediately returns an error
918360efbdSAlfred Perlstein.Pq Dv RPC_TIMEDOUT .
928360efbdSAlfred PerlsteinSet the timeout parameter to 0 for batching calls.
938360efbdSAlfred Perlstein.Bl -column CLSET_FD_NCLOSE "struct timeval *" "do not close fd on destroy"
948360efbdSAlfred Perlstein.It Dv CLGET_SVC_ADDR Ta "struct netbuf *" Ta "get servers address"
958360efbdSAlfred Perlstein.It Dv CLGET_FD Ta "int *" Ta "get fd from handle"
968360efbdSAlfred Perlstein.It Dv CLSET_FD_CLOSE Ta "void" Ta "close fd on destroy"
978360efbdSAlfred Perlstein.It Dv CLSET_FD_NCLOSE Ta void Ta "don't close fd on destroy"
988360efbdSAlfred Perlstein.It Dv CLGET_VERS Ta "unsigned long *" Ta "get RPC program version"
998360efbdSAlfred Perlstein.It Dv CLSET_VERS Ta "unsigned long *" Ta "set RPC program version"
1008360efbdSAlfred Perlstein.It Dv CLGET_XID Ta "unsigned long *" Ta "get XID of previous call"
1018360efbdSAlfred Perlstein.It Dv CLSET_XID Ta "unsigned long *" Ta "set XID of next call"
1028360efbdSAlfred Perlstein.El
1038360efbdSAlfred Perlstein.Pp
1048360efbdSAlfred PerlsteinThe following operations are valid for connectionless transports only:
1058360efbdSAlfred Perlstein.Bl -column CLSET_RETRY_TIMEOUT "struct timeval *" "set total timeout"
1068360efbdSAlfred Perlstein.It Dv CLSET_RETRY_TIMEOUT Ta "struct timeval *" Ta "set the retry timeout"
1078360efbdSAlfred Perlstein.It Dv CLGET_RETRY_TIMEOUT Ta "struct timeval *" Ta "get the retry timeout"
1088360efbdSAlfred Perlstein.El
1098360efbdSAlfred Perlstein.Pp
1108360efbdSAlfred PerlsteinThe retry timeout is the time that RPC
1118360efbdSAlfred Perlsteinwaits for the server to reply before retransmitting the request.
1128360efbdSAlfred Perlstein.Fn clnt_control
1138360efbdSAlfred Perlsteinreturns
1148360efbdSAlfred Perlstein.Dv TRUE
1158360efbdSAlfred Perlsteinon success and
1168360efbdSAlfred Perlstein.Dv FALSE
1178360efbdSAlfred Perlsteinon failure.
1188360efbdSAlfred Perlstein.It Fn clnt_create
1198360efbdSAlfred PerlsteinGeneric client creation routine for program
1208360efbdSAlfred Perlstein.Fa prognum
1218360efbdSAlfred Perlsteinand version
1228360efbdSAlfred Perlstein.Fa versnum .
1238360efbdSAlfred Perlstein.Fa host
1248360efbdSAlfred Perlsteinidentifies the name of the remote host where the server
1258360efbdSAlfred Perlsteinis located.
1268360efbdSAlfred Perlstein.Fa nettype
1278360efbdSAlfred Perlsteinindicates the class of transport protocol to use.
1288360efbdSAlfred PerlsteinThe transports are tried in left to right order in
1298360efbdSAlfred Perlstein.Ev NETPATH
1308360efbdSAlfred Perlsteinenvironment variable or in top to bottom order in
1318360efbdSAlfred Perlsteinthe netconfig database.
1328360efbdSAlfred Perlstein.Fn clnt_create
1338360efbdSAlfred Perlsteintries all the transports of the
1348360efbdSAlfred Perlstein.Fa nettype
1358360efbdSAlfred Perlsteinclass available from the
1368360efbdSAlfred Perlstein.Ev NETPATH
1378360efbdSAlfred Perlsteinenvironment variable and the netconfig database,
1388360efbdSAlfred Perlsteinand chooses the first successful one.
1398360efbdSAlfred PerlsteinA default timeout is set and can be modified using
1408360efbdSAlfred Perlstein.Fn clnt_control .
1418360efbdSAlfred PerlsteinThis routine returns
1428360efbdSAlfred Perlstein.Dv NULL
1438360efbdSAlfred Perlsteinif it fails.
1448360efbdSAlfred PerlsteinThe
1458360efbdSAlfred Perlstein.Fn clnt_pcreateerror
1468360efbdSAlfred Perlsteinroutine can be used to print the reason for failure.
1478360efbdSAlfred Perlstein.Pp
1488360efbdSAlfred PerlsteinNote:
1498360efbdSAlfred Perlstein.Fn clnt_create
1508360efbdSAlfred Perlsteinreturns a valid client handle even
1518360efbdSAlfred Perlsteinif the particular version number supplied to
1528360efbdSAlfred Perlstein.Fn clnt_create
1538360efbdSAlfred Perlsteinis not registered with the
1548360efbdSAlfred Perlstein.Xr rpcbind 8
1558360efbdSAlfred Perlsteinservice.
1568360efbdSAlfred PerlsteinThis mismatch will be discovered by a
1578360efbdSAlfred Perlstein.Fn clnt_call
1588360efbdSAlfred Perlsteinlater (see
1598360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) .
1608360efbdSAlfred Perlstein.It Fn clnt_create_vers
1618360efbdSAlfred PerlsteinGeneric client creation routine which is similar to
1628360efbdSAlfred Perlstein.Fn clnt_create
1638360efbdSAlfred Perlsteinbut which also checks for the
1648360efbdSAlfred Perlsteinversion availability.
1658360efbdSAlfred Perlstein.Fa host
1668360efbdSAlfred Perlsteinidentifies the name of the remote host where the server
1678360efbdSAlfred Perlsteinis located.
1688360efbdSAlfred Perlstein.Fa nettype
1698360efbdSAlfred Perlsteinindicates the class transport protocols to be used.
1708360efbdSAlfred PerlsteinIf the routine is successful it returns a client handle created for
1718360efbdSAlfred Perlsteinthe highest version between
1728360efbdSAlfred Perlstein.Fa vers_low
1738360efbdSAlfred Perlsteinand
1748360efbdSAlfred Perlstein.Fa vers_high
1758360efbdSAlfred Perlsteinthat is supported by the server.
1768360efbdSAlfred Perlstein.Fa vers_outp
1778360efbdSAlfred Perlsteinis set to this value.
1788360efbdSAlfred PerlsteinThat is, after a successful return
1798360efbdSAlfred Perlstein.Fa vers_low
1808360efbdSAlfred Perlstein<=
1818360efbdSAlfred Perlstein.Fa *vers_outp
1828360efbdSAlfred Perlstein<=
1838360efbdSAlfred Perlstein.Fa vers_high .
1848360efbdSAlfred PerlsteinIf no version between
1858360efbdSAlfred Perlstein.Fa vers_low
1868360efbdSAlfred Perlsteinand
1878360efbdSAlfred Perlstein.Fa vers_high
1888360efbdSAlfred Perlsteinis supported by the server then the routine fails and returns
1898360efbdSAlfred Perlstein.Dv NULL .
1908360efbdSAlfred PerlsteinA default timeout is set and can be modified using
1918360efbdSAlfred Perlstein.Fn clnt_control .
1928360efbdSAlfred PerlsteinThis routine returns
1938360efbdSAlfred Perlstein.Dv NULL
1948360efbdSAlfred Perlsteinif it fails.
1958360efbdSAlfred PerlsteinThe
1968360efbdSAlfred Perlstein.Fn clnt_pcreateerror
1978360efbdSAlfred Perlsteinroutine can be used to print the reason for failure.
1988360efbdSAlfred PerlsteinNote:
1998360efbdSAlfred Perlstein.Fn clnt_create
2008360efbdSAlfred Perlsteinreturns a valid client handle even
2018360efbdSAlfred Perlsteinif the particular version number supplied to
2028360efbdSAlfred Perlstein.Fn clnt_create
2038360efbdSAlfred Perlsteinis not registered with the
2048360efbdSAlfred Perlstein.Xr rpcbind 8
2058360efbdSAlfred Perlsteinservice.
2068360efbdSAlfred PerlsteinThis mismatch will be discovered by a
2078360efbdSAlfred Perlstein.Fn clnt_call
2088360efbdSAlfred Perlsteinlater (see
2098360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) .
2108360efbdSAlfred PerlsteinHowever,
2118360efbdSAlfred Perlstein.Fn clnt_create_vers
2128360efbdSAlfred Perlsteindoes this for you and returns a valid handle
2138360efbdSAlfred Perlsteinonly if a version within
2148360efbdSAlfred Perlsteinthe range supplied is supported by the server.
2158360efbdSAlfred Perlstein.It Fn clnt_destroy
2168360efbdSAlfred PerlsteinA function macro that destroys the client's RPC handle.
2178360efbdSAlfred PerlsteinDestruction usually involves deallocation
2188360efbdSAlfred Perlsteinof private data structures, including
2198360efbdSAlfred Perlstein.Fa clnt
2208360efbdSAlfred Perlsteinitself.
2218360efbdSAlfred PerlsteinUse of
2228360efbdSAlfred Perlstein.Fa clnt
2238360efbdSAlfred Perlsteinis undefined after calling
2248360efbdSAlfred Perlstein.Fn clnt_destroy .
2258360efbdSAlfred PerlsteinIf the RPC library opened the associated file descriptor, or
2268360efbdSAlfred Perlstein.Dv CLSET_FD_CLOSE
2278360efbdSAlfred Perlsteinwas set using
2288360efbdSAlfred Perlstein.Fn clnt_control ,
2298360efbdSAlfred Perlsteinthe file descriptor will be closed.
2308360efbdSAlfred PerlsteinThe caller should call
2318360efbdSAlfred Perlstein.Fn auth_destroy "clnt->cl_auth"
2328360efbdSAlfred Perlstein(before calling
2338360efbdSAlfred Perlstein.Fn clnt_destroy )
2348360efbdSAlfred Perlsteinto destroy the associated
2358360efbdSAlfred Perlstein.Vt AUTH
2368360efbdSAlfred Perlsteinstructure (see
2378360efbdSAlfred Perlstein.Xr rpc_clnt_auth 3 ) .
2388360efbdSAlfred Perlstein.It Fn clnt_dg_create
2398360efbdSAlfred PerlsteinThis routine creates an RPC client for the remote program
2408360efbdSAlfred Perlstein.Fa prognum
2418360efbdSAlfred Perlsteinand version
2428360efbdSAlfred Perlstein.Fa versnum ;
2438360efbdSAlfred Perlsteinthe client uses a connectionless transport.
2448360efbdSAlfred PerlsteinThe remote program is located at address
2458360efbdSAlfred Perlstein.Fa svcaddr .
2468360efbdSAlfred PerlsteinThe parameter
2478360efbdSAlfred Perlstein.Fa fildes
2488360efbdSAlfred Perlsteinis an open and bound file descriptor.
2498360efbdSAlfred PerlsteinThis routine will resend the call message in intervals of
2508360efbdSAlfred Perlstein15 seconds until a response is received or until the
2518360efbdSAlfred Perlsteincall times out.
2528360efbdSAlfred PerlsteinThe total time for the call to time out is specified by
2538360efbdSAlfred Perlstein.Fn clnt_call
2548360efbdSAlfred Perlstein(see
2558360efbdSAlfred Perlstein.Fn clnt_call
2568360efbdSAlfred Perlsteinin
2578360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) .
2588360efbdSAlfred PerlsteinThe retry time out and the total time out periods can
2598360efbdSAlfred Perlsteinbe changed using
2608360efbdSAlfred Perlstein.Fn clnt_control .
2618360efbdSAlfred PerlsteinThe user may set the size of the send and receive
2628360efbdSAlfred Perlsteinbuffers with the parameters
2638360efbdSAlfred Perlstein.Fa sendsz
2648360efbdSAlfred Perlsteinand
2658360efbdSAlfred Perlstein.Fa recvsz ;
2668360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults.
2678360efbdSAlfred PerlsteinThis routine returns
2688360efbdSAlfred Perlstein.Dv NULL
2698360efbdSAlfred Perlsteinif it fails.
2708360efbdSAlfred Perlstein.It Fn clnt_pcreateerror
2718360efbdSAlfred PerlsteinPrint a message to standard error indicating
2728360efbdSAlfred Perlsteinwhy a client RPC handle could not be created.
2738360efbdSAlfred PerlsteinThe message is prepended with the string
2748360efbdSAlfred Perlstein.Fa s
2758360efbdSAlfred Perlsteinand a colon, and appended with a newline.
2768360efbdSAlfred Perlstein.It Fn clnt_spcreateerror
2778360efbdSAlfred PerlsteinLike
2788360efbdSAlfred Perlstein.Fn clnt_pcreateerror ,
2798360efbdSAlfred Perlsteinexcept that it returns a string
2808360efbdSAlfred Perlsteininstead of printing to the standard error.
2818360efbdSAlfred PerlsteinA newline is not appended to the message in this case.
2828360efbdSAlfred PerlsteinWarning:
2838360efbdSAlfred Perlsteinreturns a pointer to a buffer that is overwritten
2848360efbdSAlfred Perlsteinon each call.
2858360efbdSAlfred Perlstein.It Fn clnt_raw_create
2868360efbdSAlfred PerlsteinThis routine creates an RPC
2878360efbdSAlfred Perlsteinclient handle for the remote program
2888360efbdSAlfred Perlstein.Fa prognum
2898360efbdSAlfred Perlsteinand version
2908360efbdSAlfred Perlstein.Fa versnum .
2918360efbdSAlfred PerlsteinThe transport used to pass messages to the service is
2928360efbdSAlfred Perlsteina buffer within the process's address space,
2938360efbdSAlfred Perlsteinso the corresponding RPC
2948360efbdSAlfred Perlsteinserver should live in the same address space;
2958360efbdSAlfred Perlstein(see
2968360efbdSAlfred Perlstein.Fn svc_raw_create
2978360efbdSAlfred Perlsteinin
2988360efbdSAlfred Perlstein.Xr rpc_svc_create 3 ) .
2998360efbdSAlfred PerlsteinThis allows simulation of RPC and measurement of
3008360efbdSAlfred PerlsteinRPC overheads, such as round trip times,
3018360efbdSAlfred Perlsteinwithout any kernel or networking interference.
3028360efbdSAlfred PerlsteinThis routine returns
3038360efbdSAlfred Perlstein.Dv NULL
3048360efbdSAlfred Perlsteinif it fails.
3058360efbdSAlfred Perlstein.Fn clnt_raw_create
3068360efbdSAlfred Perlsteinshould be called after
3078360efbdSAlfred Perlstein.Fn svc_raw_create .
3088360efbdSAlfred Perlstein.It Fn clnt_tli_create
3098360efbdSAlfred PerlsteinThis routine creates an RPC
3108360efbdSAlfred Perlsteinclient handle for the remote program
3118360efbdSAlfred Perlstein.Fa prognum
3128360efbdSAlfred Perlsteinand version
3138360efbdSAlfred Perlstein.Fa versnum .
3148360efbdSAlfred PerlsteinThe remote program is located at address
3158360efbdSAlfred Perlstein.Fa svcaddr .
3168360efbdSAlfred PerlsteinIf
3178360efbdSAlfred Perlstein.Fa svcaddr
3188360efbdSAlfred Perlsteinis
3198360efbdSAlfred Perlstein.Dv NULL
3208360efbdSAlfred Perlsteinand it is connection-oriented, it is assumed that the file descriptor
3218360efbdSAlfred Perlsteinis connected.
3228360efbdSAlfred PerlsteinFor connectionless transports, if
3238360efbdSAlfred Perlstein.Fa svcaddr
3248360efbdSAlfred Perlsteinis
3258360efbdSAlfred Perlstein.Dv NULL ,
3268360efbdSAlfred Perlstein.Dv RPC_UNKNOWNADDR
3278360efbdSAlfred Perlsteinerror is set.
3288360efbdSAlfred Perlstein.Fa fildes
3298360efbdSAlfred Perlsteinis a file descriptor which may be open, bound and connected.
3308360efbdSAlfred PerlsteinIf it is
3318360efbdSAlfred Perlstein.Dv RPC_ANYFD ,
3328360efbdSAlfred Perlsteinit opens a file descriptor on the transport specified by
3338360efbdSAlfred Perlstein.Fa netconf .
3348360efbdSAlfred PerlsteinIf
3358360efbdSAlfred Perlstein.Fa fildes
3368360efbdSAlfred Perlsteinis
3378360efbdSAlfred Perlstein.Dv RPC_ANYFD
3388360efbdSAlfred Perlsteinand
3398360efbdSAlfred Perlstein.Fa netconf
3408360efbdSAlfred Perlsteinis
3418360efbdSAlfred Perlstein.Dv NULL ,
3428360efbdSAlfred Perlsteina
3438360efbdSAlfred Perlstein.Dv RPC_UNKNOWNPROTO
3448360efbdSAlfred Perlsteinerror is set.
3458360efbdSAlfred PerlsteinIf
3468360efbdSAlfred Perlstein.Fa fildes
3478360efbdSAlfred Perlsteinis unbound, then it will attempt to bind the descriptor.
3488360efbdSAlfred PerlsteinThe user may specify the size of the buffers with the parameters
3498360efbdSAlfred Perlstein.Fa sendsz
3508360efbdSAlfred Perlsteinand
3518360efbdSAlfred Perlstein.Fa recvsz ;
3528360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults.
3538360efbdSAlfred PerlsteinDepending upon the type of the transport (connection-oriented
3548360efbdSAlfred Perlsteinor connectionless),
3558360efbdSAlfred Perlstein.Fn clnt_tli_create
3568360efbdSAlfred Perlsteincalls appropriate client creation routines.
3578360efbdSAlfred PerlsteinThis routine returns
3588360efbdSAlfred Perlstein.Dv NULL
3598360efbdSAlfred Perlsteinif it fails.
3608360efbdSAlfred PerlsteinThe
3618360efbdSAlfred Perlstein.Fn clnt_pcreateerror
3628360efbdSAlfred Perlsteinroutine can be used to print the reason for failure.
3638360efbdSAlfred PerlsteinThe remote rpcbind
3648360efbdSAlfred Perlsteinservice (see
3658360efbdSAlfred Perlstein.Xr rpcbind 8 )
3668360efbdSAlfred Perlsteinis not consulted for the address of the remote
3678360efbdSAlfred Perlsteinservice.
3688360efbdSAlfred Perlstein.It Fn clnt_tp_create
3698360efbdSAlfred PerlsteinLike
3708360efbdSAlfred Perlstein.Fn clnt_create
3718360efbdSAlfred Perlsteinexcept
3728360efbdSAlfred Perlstein.Fn clnt_tp_create
3738360efbdSAlfred Perlsteintries only one transport specified through
3748360efbdSAlfred Perlstein.Fa netconf .
3758360efbdSAlfred Perlstein.Fn clnt_tp_create
3768360efbdSAlfred Perlsteincreates a client handle for the program
3778360efbdSAlfred Perlstein.Fa prognum ,
3788360efbdSAlfred Perlsteinthe version
3798360efbdSAlfred Perlstein.Fa versnum ,
3808360efbdSAlfred Perlsteinand for the transport specified by
3818360efbdSAlfred Perlstein.Fa netconf .
3828360efbdSAlfred PerlsteinDefault options are set,
3838360efbdSAlfred Perlsteinwhich can be changed using
3848360efbdSAlfred Perlstein.Fn clnt_control
3858360efbdSAlfred Perlsteincalls.
3868360efbdSAlfred PerlsteinThe remote rpcbind service on the host
3878360efbdSAlfred Perlstein.Fa host
3888360efbdSAlfred Perlsteinis consulted for the address of the remote service.
3898360efbdSAlfred PerlsteinThis routine returns
3908360efbdSAlfred Perlstein.Dv NULL
3918360efbdSAlfred Perlsteinif it fails.
3928360efbdSAlfred PerlsteinThe
3938360efbdSAlfred Perlstein.Fn clnt_pcreateerror
3948360efbdSAlfred Perlsteinroutine can be used to print the reason for failure.
3958360efbdSAlfred Perlstein.It Fn clnt_vc_create
3968360efbdSAlfred PerlsteinThis routine creates an RPC
3978360efbdSAlfred Perlsteinclient for the remote program
3988360efbdSAlfred Perlstein.Fa prognum
3998360efbdSAlfred Perlsteinand version
4008360efbdSAlfred Perlstein.Fa versnum ;
4018360efbdSAlfred Perlsteinthe client uses a connection-oriented transport.
4028360efbdSAlfred PerlsteinThe remote program is located at address
4038360efbdSAlfred Perlstein.Fa svcaddr .
4048360efbdSAlfred PerlsteinThe parameter
4058360efbdSAlfred Perlstein.Fa fildes
4068360efbdSAlfred Perlsteinis an open and bound file descriptor.
4078360efbdSAlfred PerlsteinThe user may specify the size of the send and receive buffers
4088360efbdSAlfred Perlsteinwith the parameters
4098360efbdSAlfred Perlstein.Fa sendsz
4108360efbdSAlfred Perlsteinand
4118360efbdSAlfred Perlstein.Fa recvsz ;
4128360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults.
4138360efbdSAlfred PerlsteinThis routine returns
4148360efbdSAlfred Perlstein.Dv NULL
4158360efbdSAlfred Perlsteinif it fails.
4168360efbdSAlfred PerlsteinThe address
4178360efbdSAlfred Perlstein.Fa svcaddr
4188360efbdSAlfred Perlsteinshould not be
4198360efbdSAlfred Perlstein.Dv NULL
4208360efbdSAlfred Perlsteinand should point to the actual address of the remote program.
4218360efbdSAlfred Perlstein.Fn clnt_vc_create
4228360efbdSAlfred Perlsteindoes not consult the remote rpcbind service for this information.
4238360efbdSAlfred Perlstein.It Xo
4248360efbdSAlfred Perlstein.Vt "struct rpc_createerr" Va rpc_createerr ;
4258360efbdSAlfred Perlstein.Xc
4268360efbdSAlfred PerlsteinA global variable whose value is set by any RPC
4278360efbdSAlfred Perlsteinclient handle creation routine
4288360efbdSAlfred Perlsteinthat fails.
4298360efbdSAlfred PerlsteinIt is used by the routine
4308360efbdSAlfred Perlstein.Fn clnt_pcreateerror
4318360efbdSAlfred Perlsteinto print the reason for the failure.
4328360efbdSAlfred Perlstein.El
4338360efbdSAlfred Perlstein.Sh SEE ALSO
4348360efbdSAlfred Perlstein.Xr rpc 3 ,
4358360efbdSAlfred Perlstein.Xr rpc_clnt_auth 3 ,
4368360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ,
4378360efbdSAlfred Perlstein.Xr rpcbind 8
438