xref: /freebsd/lib/libc/rpc/rpc_clnt_create.3 (revision 1fae73b137bfc5a237d7258e3c667ba87a36b7ff)
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 ,
144e37855eSAlfred Perlstein.Nm clnt_create_timed ,
158360efbdSAlfred Perlstein.Nm clnt_create_vers ,
164e37855eSAlfred Perlstein.Nm clnt_create_vers_timed ,
178360efbdSAlfred Perlstein.Nm clnt_destroy ,
188360efbdSAlfred Perlstein.Nm clnt_dg_create ,
198360efbdSAlfred Perlstein.Nm clnt_pcreateerror ,
208360efbdSAlfred Perlstein.Nm clnt_raw_create ,
218360efbdSAlfred Perlstein.Nm clnt_spcreateerror ,
228360efbdSAlfred Perlstein.Nm clnt_tli_create ,
238360efbdSAlfred Perlstein.Nm clnt_tp_create ,
244e37855eSAlfred Perlstein.Nm clnt_tp_create_timed ,
258360efbdSAlfred Perlstein.Nm clnt_vc_create ,
268360efbdSAlfred Perlstein.Nm rpc_createerr
278360efbdSAlfred Perlstein.Nd "library routines for dealing with creation and manipulation of"
288360efbdSAlfred Perlstein.Vt CLIENT
298360efbdSAlfred Perlsteinhandles
308360efbdSAlfred Perlstein.Sh LIBRARY
318360efbdSAlfred Perlstein.Lb libc
328360efbdSAlfred Perlstein.Sh SYNOPSIS
3332eef9aeSRuslan Ermilov.In rpc/rpc.h
348360efbdSAlfred Perlstein.Ft bool_t
358360efbdSAlfred Perlstein.Fn clnt_control "CLIENT *clnt" "const u_int req" "char *info"
368360efbdSAlfred Perlstein.Ft "CLIENT *"
378360efbdSAlfred Perlstein.Fn clnt_create "const char * host" "const rpcprog_t prognum" "const rpcvers_t versnum" "const char *nettype"
388360efbdSAlfred Perlstein.Ft "CLIENT *"
394e37855eSAlfred Perlstein.Fn clnt_create_timed "const char * host" "const rpcprog_t prognum" "const rpcvers_t versnum" "const char *nettype" "const struct timeval *timeout"
404e37855eSAlfred Perlstein.Ft "CLIENT *"
41db7534cfSBruce Evans.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" "const char *nettype"
424e37855eSAlfred Perlstein.Ft "CLIENT *"
434e37855eSAlfred Perlstein.Fn clnt_create_vers_timed "const char * host" "const rpcprog_t prognum" "rpcvers_t *vers_outp" "const rpcvers_t vers_low" "const rpcvers_t vers_high" "char *nettype" "const struct timeval *timeout"
448360efbdSAlfred Perlstein.Ft void
45224e22e6SMike Heffner.Fn clnt_destroy "CLIENT *clnt"
468360efbdSAlfred Perlstein.Ft "CLIENT *"
478360efbdSAlfred 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"
488360efbdSAlfred Perlstein.Ft void
498360efbdSAlfred Perlstein.Fn clnt_pcreateerror "const char *s"
508360efbdSAlfred Perlstein.Ft "char *"
518360efbdSAlfred Perlstein.Fn clnt_spcreateerror "const char *s"
528360efbdSAlfred Perlstein.Ft "CLIENT *"
538360efbdSAlfred Perlstein.Fn clnt_raw_create "const rpcprog_t prognum" "const rpcvers_t versnum"
548360efbdSAlfred Perlstein.Ft "CLIENT *"
558360efbdSAlfred 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"
568360efbdSAlfred Perlstein.Ft "CLIENT *"
578360efbdSAlfred Perlstein.Fn clnt_tp_create "const char * host" "const rpcprog_t prognum" "const rpcvers_t versnum" "const struct netconfig *netconf"
588360efbdSAlfred Perlstein.Ft "CLIENT *"
594e37855eSAlfred Perlstein.Fn clnt_tp_create_timed "const char * host" "const rpcprog_t prognum" "const rpcvers_t versnum" "const struct netconfig *netconf" "const struct timeval *timeout"
604e37855eSAlfred Perlstein.Ft "CLIENT *"
61886ee6f6SAlfred Perlstein.Fn clnt_vc_create "const int fildes" "const struct netbuf *svcaddr" "const rpcprog_t prognum" "const rpcvers_t versnum" "u_int sendsz" "u_int recvsz"
628360efbdSAlfred Perlstein.Sh DESCRIPTION
638360efbdSAlfred PerlsteinRPC library routines allow C language programs to make procedure
648360efbdSAlfred Perlsteincalls on other machines across the network.
658360efbdSAlfred PerlsteinFirst a
668360efbdSAlfred Perlstein.Vt CLIENT
678360efbdSAlfred Perlsteinhandle is created and then the client calls a procedure to send a
688360efbdSAlfred Perlsteinrequest to the server.
698360efbdSAlfred PerlsteinOn receipt of the request, the server calls a dispatch routine
708360efbdSAlfred Perlsteinto perform the requested service, and then sends a reply.
718360efbdSAlfred Perlstein.Sh Routines
728360efbdSAlfred Perlstein.Bl -tag -width YYYYYYY
738360efbdSAlfred Perlstein.It Fn clnt_control
748360efbdSAlfred PerlsteinA function macro to change or retrieve various information
758360efbdSAlfred Perlsteinabout a client object.
768360efbdSAlfred Perlstein.Fa req
778360efbdSAlfred Perlsteinindicates the type of operation, and
788360efbdSAlfred Perlstein.Fa info
798360efbdSAlfred Perlsteinis a pointer to the information.
808360efbdSAlfred PerlsteinFor both connectionless and connection-oriented transports,
818360efbdSAlfred Perlsteinthe supported values of
828360efbdSAlfred Perlstein.Fa req
838360efbdSAlfred Perlsteinand their argument types and what they do are:
848360efbdSAlfred Perlstein.Bl -column "CLSET_FD_NCLOSE" "struct timeval *" "set total timeout"
858360efbdSAlfred Perlstein.It Dv CLSET_TIMEOUT Ta "struct timeval *" Ta "set total timeout"
868360efbdSAlfred Perlstein.It Dv CLGET_TIMEOUT Ta "struct timeval *" Ta "get total timeout"
878360efbdSAlfred Perlstein.El
888360efbdSAlfred Perlstein.Pp
898360efbdSAlfred PerlsteinNote:
908360efbdSAlfred Perlsteinif you set the timeout using
918360efbdSAlfred Perlstein.Fn clnt_control ,
928360efbdSAlfred Perlsteinthe timeout argument passed by
938360efbdSAlfred Perlstein.Fn clnt_call
948360efbdSAlfred Perlsteinis ignored in all subsequent calls.
958360efbdSAlfred Perlstein.Pp
968360efbdSAlfred PerlsteinNote:
978360efbdSAlfred PerlsteinIf you set the timeout value to 0,
988360efbdSAlfred Perlstein.Fn clnt_control
998360efbdSAlfred Perlsteinimmediately returns an error
1008360efbdSAlfred Perlstein.Pq Dv RPC_TIMEDOUT .
1018360efbdSAlfred PerlsteinSet the timeout parameter to 0 for batching calls.
1028360efbdSAlfred Perlstein.Bl -column CLSET_FD_NCLOSE "struct timeval *" "do not close fd on destroy"
1038360efbdSAlfred Perlstein.It Dv CLGET_SVC_ADDR Ta "struct netbuf *" Ta "get servers address"
1048360efbdSAlfred Perlstein.It Dv CLGET_FD Ta "int *" Ta "get fd from handle"
1058360efbdSAlfred Perlstein.It Dv CLSET_FD_CLOSE Ta "void" Ta "close fd on destroy"
1068360efbdSAlfred Perlstein.It Dv CLSET_FD_NCLOSE Ta void Ta "don't close fd on destroy"
107e5b04ceeSBill Fenner.It Dv CLGET_VERS Ta "u_int32_t *" Ta "get RPC program version"
108e5b04ceeSBill Fenner.It Dv CLSET_VERS Ta "u_int32_t *" Ta "set RPC program version"
109e5b04ceeSBill Fenner.It Dv CLGET_XID Ta "u_int32_t *" Ta "get XID of previous call"
110e5b04ceeSBill Fenner.It Dv CLSET_XID Ta "u_int32_t *" Ta "set XID of next call"
1118360efbdSAlfred Perlstein.El
1128360efbdSAlfred Perlstein.Pp
1138360efbdSAlfred PerlsteinThe following operations are valid for connectionless transports only:
1148360efbdSAlfred Perlstein.Bl -column CLSET_RETRY_TIMEOUT "struct timeval *" "set total timeout"
1158360efbdSAlfred Perlstein.It Dv CLSET_RETRY_TIMEOUT Ta "struct timeval *" Ta "set the retry timeout"
1168360efbdSAlfred Perlstein.It Dv CLGET_RETRY_TIMEOUT Ta "struct timeval *" Ta "get the retry timeout"
11732de72d2SIan Dowse.It Dv CLSET_CONNECT Ta Vt "int *" Ta use Xr connect 2
1188360efbdSAlfred Perlstein.El
1198360efbdSAlfred Perlstein.Pp
1208360efbdSAlfred PerlsteinThe retry timeout is the time that RPC
1218360efbdSAlfred Perlsteinwaits for the server to reply before retransmitting the request.
1221fae73b1SRuslan ErmilovThe
1238360efbdSAlfred Perlstein.Fn clnt_control
1241fae73b1SRuslan Ermilovfunction
1258360efbdSAlfred Perlsteinreturns
1268360efbdSAlfred Perlstein.Dv TRUE
1278360efbdSAlfred Perlsteinon success and
1288360efbdSAlfred Perlstein.Dv FALSE
1298360efbdSAlfred Perlsteinon failure.
1308360efbdSAlfred Perlstein.It Fn clnt_create
1318360efbdSAlfred PerlsteinGeneric client creation routine for program
1328360efbdSAlfred Perlstein.Fa prognum
1338360efbdSAlfred Perlsteinand version
1348360efbdSAlfred Perlstein.Fa versnum .
1358360efbdSAlfred Perlstein.Fa host
1368360efbdSAlfred Perlsteinidentifies the name of the remote host where the server
1378360efbdSAlfred Perlsteinis located.
1388360efbdSAlfred Perlstein.Fa nettype
1398360efbdSAlfred Perlsteinindicates the class of transport protocol to use.
1408360efbdSAlfred PerlsteinThe transports are tried in left to right order in
1418360efbdSAlfred Perlstein.Ev NETPATH
1428360efbdSAlfred Perlsteinenvironment variable or in top to bottom order in
1438360efbdSAlfred Perlsteinthe netconfig database.
1441fae73b1SRuslan ErmilovThe
1458360efbdSAlfred Perlstein.Fn clnt_create
1461fae73b1SRuslan Ermilovfunction
1478360efbdSAlfred Perlsteintries all the transports of the
1488360efbdSAlfred Perlstein.Fa nettype
1498360efbdSAlfred Perlsteinclass available from the
1508360efbdSAlfred Perlstein.Ev NETPATH
1518360efbdSAlfred Perlsteinenvironment variable and the netconfig database,
1528360efbdSAlfred Perlsteinand chooses the first successful one.
1538360efbdSAlfred PerlsteinA default timeout is set and can be modified using
1548360efbdSAlfred Perlstein.Fn clnt_control .
1558360efbdSAlfred PerlsteinThis routine returns
1568360efbdSAlfred Perlstein.Dv NULL
1578360efbdSAlfred Perlsteinif it fails.
1588360efbdSAlfred PerlsteinThe
1598360efbdSAlfred Perlstein.Fn clnt_pcreateerror
1608360efbdSAlfred Perlsteinroutine can be used to print the reason for failure.
1618360efbdSAlfred Perlstein.Pp
1628360efbdSAlfred PerlsteinNote:
1638360efbdSAlfred Perlstein.Fn clnt_create
1648360efbdSAlfred Perlsteinreturns a valid client handle even
1658360efbdSAlfred Perlsteinif the particular version number supplied to
1668360efbdSAlfred Perlstein.Fn clnt_create
1678360efbdSAlfred Perlsteinis not registered with the
1688360efbdSAlfred Perlstein.Xr rpcbind 8
1698360efbdSAlfred Perlsteinservice.
1708360efbdSAlfred PerlsteinThis mismatch will be discovered by a
1718360efbdSAlfred Perlstein.Fn clnt_call
1728360efbdSAlfred Perlsteinlater (see
1738360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) .
1744e37855eSAlfred Perlstein.It Fn clnt_create_timed
1754e37855eSAlfred PerlsteinGeneric client creation routine which is similar to
1764e37855eSAlfred Perlstein.Fn clnt_create
1774e37855eSAlfred Perlsteinbut which also has the additional parameter
1784e37855eSAlfred Perlstein.Fa timeout
1794e37855eSAlfred Perlsteinthat specifies the maximum amount of time allowed for
180bebfe08fSRuslan Ermiloveach transport class tried.
181bebfe08fSRuslan ErmilovIn all other respects, the
1824e37855eSAlfred Perlstein.Fn clnt_create_timed
1834e37855eSAlfred Perlsteincall behaves exactly like the
1844e37855eSAlfred Perlstein.Fn clnt_create
1854e37855eSAlfred Perlsteincall.
1868360efbdSAlfred Perlstein.It Fn clnt_create_vers
1878360efbdSAlfred PerlsteinGeneric client creation routine which is similar to
1888360efbdSAlfred Perlstein.Fn clnt_create
1898360efbdSAlfred Perlsteinbut which also checks for the
1908360efbdSAlfred Perlsteinversion availability.
1918360efbdSAlfred Perlstein.Fa host
1928360efbdSAlfred Perlsteinidentifies the name of the remote host where the server
1938360efbdSAlfred Perlsteinis located.
1948360efbdSAlfred Perlstein.Fa nettype
1958360efbdSAlfred Perlsteinindicates the class transport protocols to be used.
1968360efbdSAlfred PerlsteinIf the routine is successful it returns a client handle created for
1978360efbdSAlfred Perlsteinthe highest version between
1988360efbdSAlfred Perlstein.Fa vers_low
1998360efbdSAlfred Perlsteinand
2008360efbdSAlfred Perlstein.Fa vers_high
2018360efbdSAlfred Perlsteinthat is supported by the server.
2028360efbdSAlfred Perlstein.Fa vers_outp
2038360efbdSAlfred Perlsteinis set to this value.
2048360efbdSAlfred PerlsteinThat is, after a successful return
2058360efbdSAlfred Perlstein.Fa vers_low
2068360efbdSAlfred Perlstein<=
2078360efbdSAlfred Perlstein.Fa *vers_outp
2088360efbdSAlfred Perlstein<=
2098360efbdSAlfred Perlstein.Fa vers_high .
2108360efbdSAlfred PerlsteinIf no version between
2118360efbdSAlfred Perlstein.Fa vers_low
2128360efbdSAlfred Perlsteinand
2138360efbdSAlfred Perlstein.Fa vers_high
2148360efbdSAlfred Perlsteinis supported by the server then the routine fails and returns
2158360efbdSAlfred Perlstein.Dv NULL .
2168360efbdSAlfred PerlsteinA default timeout is set and can be modified using
2178360efbdSAlfred Perlstein.Fn clnt_control .
2188360efbdSAlfred PerlsteinThis routine returns
2198360efbdSAlfred Perlstein.Dv NULL
2208360efbdSAlfred Perlsteinif it fails.
2218360efbdSAlfred PerlsteinThe
2228360efbdSAlfred Perlstein.Fn clnt_pcreateerror
2238360efbdSAlfred Perlsteinroutine can be used to print the reason for failure.
2248360efbdSAlfred PerlsteinNote:
2258360efbdSAlfred Perlstein.Fn clnt_create
2268360efbdSAlfred Perlsteinreturns a valid client handle even
2278360efbdSAlfred Perlsteinif the particular version number supplied to
2288360efbdSAlfred Perlstein.Fn clnt_create
2298360efbdSAlfred Perlsteinis not registered with the
2308360efbdSAlfred Perlstein.Xr rpcbind 8
2318360efbdSAlfred Perlsteinservice.
2328360efbdSAlfred PerlsteinThis mismatch will be discovered by a
2338360efbdSAlfred Perlstein.Fn clnt_call
2348360efbdSAlfred Perlsteinlater (see
2358360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) .
2368360efbdSAlfred PerlsteinHowever,
2378360efbdSAlfred Perlstein.Fn clnt_create_vers
2388360efbdSAlfred Perlsteindoes this for you and returns a valid handle
2398360efbdSAlfred Perlsteinonly if a version within
2408360efbdSAlfred Perlsteinthe range supplied is supported by the server.
2414e37855eSAlfred Perlstein.It Fn clnt_create_vers_timed
2424e37855eSAlfred PerlsteinGeneric client creation routine which is similar to
2434e37855eSAlfred Perlstein.Fn clnt_create_vers
2444e37855eSAlfred Perlsteinbut which also has the additional parameter
2454e37855eSAlfred Perlstein.Fa timeout
2464e37855eSAlfred Perlsteinthat specifies the maximum amount of time allowed for
247bebfe08fSRuslan Ermiloveach transport class tried.
248bebfe08fSRuslan ErmilovIn all other respects, the
2494e37855eSAlfred Perlstein.Fn clnt_create_vers_timed
2504e37855eSAlfred Perlsteincall behaves exactly like the
2514e37855eSAlfred Perlstein.Fn clnt_create_vers
2524e37855eSAlfred Perlsteincall.
2538360efbdSAlfred Perlstein.It Fn clnt_destroy
2548360efbdSAlfred PerlsteinA function macro that destroys the client's RPC handle.
2558360efbdSAlfred PerlsteinDestruction usually involves deallocation
2568360efbdSAlfred Perlsteinof private data structures, including
2578360efbdSAlfred Perlstein.Fa clnt
2588360efbdSAlfred Perlsteinitself.
2598360efbdSAlfred PerlsteinUse of
2608360efbdSAlfred Perlstein.Fa clnt
2618360efbdSAlfred Perlsteinis undefined after calling
2628360efbdSAlfred Perlstein.Fn clnt_destroy .
2638360efbdSAlfred PerlsteinIf the RPC library opened the associated file descriptor, or
2648360efbdSAlfred Perlstein.Dv CLSET_FD_CLOSE
2658360efbdSAlfred Perlsteinwas set using
2668360efbdSAlfred Perlstein.Fn clnt_control ,
2678360efbdSAlfred Perlsteinthe file descriptor will be closed.
2688360efbdSAlfred PerlsteinThe caller should call
2698360efbdSAlfred Perlstein.Fn auth_destroy "clnt->cl_auth"
2708360efbdSAlfred Perlstein(before calling
2718360efbdSAlfred Perlstein.Fn clnt_destroy )
2728360efbdSAlfred Perlsteinto destroy the associated
2738360efbdSAlfred Perlstein.Vt AUTH
2748360efbdSAlfred Perlsteinstructure (see
2758360efbdSAlfred Perlstein.Xr rpc_clnt_auth 3 ) .
2768360efbdSAlfred Perlstein.It Fn clnt_dg_create
2778360efbdSAlfred PerlsteinThis routine creates an RPC client for the remote program
2788360efbdSAlfred Perlstein.Fa prognum
2798360efbdSAlfred Perlsteinand version
2808360efbdSAlfred Perlstein.Fa versnum ;
2818360efbdSAlfred Perlsteinthe client uses a connectionless transport.
2828360efbdSAlfred PerlsteinThe remote program is located at address
2838360efbdSAlfred Perlstein.Fa svcaddr .
2848360efbdSAlfred PerlsteinThe parameter
2858360efbdSAlfred Perlstein.Fa fildes
2868360efbdSAlfred Perlsteinis an open and bound file descriptor.
2878360efbdSAlfred PerlsteinThis routine will resend the call message in intervals of
2888360efbdSAlfred Perlstein15 seconds until a response is received or until the
2898360efbdSAlfred Perlsteincall times out.
2908360efbdSAlfred PerlsteinThe total time for the call to time out is specified by
2918360efbdSAlfred Perlstein.Fn clnt_call
2928360efbdSAlfred Perlstein(see
2938360efbdSAlfred Perlstein.Fn clnt_call
2948360efbdSAlfred Perlsteinin
2958360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) .
2968360efbdSAlfred PerlsteinThe retry time out and the total time out periods can
2978360efbdSAlfred Perlsteinbe changed using
2988360efbdSAlfred Perlstein.Fn clnt_control .
2998360efbdSAlfred PerlsteinThe user may set the size of the send and receive
3008360efbdSAlfred Perlsteinbuffers with the parameters
3018360efbdSAlfred Perlstein.Fa sendsz
3028360efbdSAlfred Perlsteinand
3038360efbdSAlfred Perlstein.Fa recvsz ;
3048360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults.
3058360efbdSAlfred PerlsteinThis routine returns
3068360efbdSAlfred Perlstein.Dv NULL
3078360efbdSAlfred Perlsteinif it fails.
3088360efbdSAlfred Perlstein.It Fn clnt_pcreateerror
3098360efbdSAlfred PerlsteinPrint a message to standard error indicating
3108360efbdSAlfred Perlsteinwhy a client RPC handle could not be created.
3118360efbdSAlfred PerlsteinThe message is prepended with the string
3128360efbdSAlfred Perlstein.Fa s
3138360efbdSAlfred Perlsteinand a colon, and appended with a newline.
3148360efbdSAlfred Perlstein.It Fn clnt_spcreateerror
3158360efbdSAlfred PerlsteinLike
3168360efbdSAlfred Perlstein.Fn clnt_pcreateerror ,
3178360efbdSAlfred Perlsteinexcept that it returns a string
3188360efbdSAlfred Perlsteininstead of printing to the standard error.
3198360efbdSAlfred PerlsteinA newline is not appended to the message in this case.
3208360efbdSAlfred PerlsteinWarning:
3218360efbdSAlfred Perlsteinreturns a pointer to a buffer that is overwritten
3228360efbdSAlfred Perlsteinon each call.
3238360efbdSAlfred Perlstein.It Fn clnt_raw_create
3248360efbdSAlfred PerlsteinThis routine creates an RPC
3258360efbdSAlfred Perlsteinclient handle for the remote program
3268360efbdSAlfred Perlstein.Fa prognum
3278360efbdSAlfred Perlsteinand version
3288360efbdSAlfred Perlstein.Fa versnum .
3298360efbdSAlfred PerlsteinThe transport used to pass messages to the service is
3308360efbdSAlfred Perlsteina buffer within the process's address space,
3318360efbdSAlfred Perlsteinso the corresponding RPC
3328360efbdSAlfred Perlsteinserver should live in the same address space;
3338360efbdSAlfred Perlstein(see
3348360efbdSAlfred Perlstein.Fn svc_raw_create
3358360efbdSAlfred Perlsteinin
3368360efbdSAlfred Perlstein.Xr rpc_svc_create 3 ) .
3378360efbdSAlfred PerlsteinThis allows simulation of RPC and measurement of
3388360efbdSAlfred PerlsteinRPC overheads, such as round trip times,
3398360efbdSAlfred Perlsteinwithout any kernel or networking interference.
3408360efbdSAlfred PerlsteinThis routine returns
3418360efbdSAlfred Perlstein.Dv NULL
3428360efbdSAlfred Perlsteinif it fails.
3431fae73b1SRuslan ErmilovThe
3448360efbdSAlfred Perlstein.Fn clnt_raw_create
3451fae73b1SRuslan Ermilovfunction
3468360efbdSAlfred Perlsteinshould be called after
3478360efbdSAlfred Perlstein.Fn svc_raw_create .
3488360efbdSAlfred Perlstein.It Fn clnt_tli_create
3498360efbdSAlfred PerlsteinThis routine creates an RPC
3508360efbdSAlfred Perlsteinclient handle for the remote program
3518360efbdSAlfred Perlstein.Fa prognum
3528360efbdSAlfred Perlsteinand version
3538360efbdSAlfred Perlstein.Fa versnum .
3548360efbdSAlfred PerlsteinThe remote program is located at address
3558360efbdSAlfred Perlstein.Fa svcaddr .
3568360efbdSAlfred PerlsteinIf
3578360efbdSAlfred Perlstein.Fa svcaddr
3588360efbdSAlfred Perlsteinis
3598360efbdSAlfred Perlstein.Dv NULL
3608360efbdSAlfred Perlsteinand it is connection-oriented, it is assumed that the file descriptor
3618360efbdSAlfred Perlsteinis connected.
3628360efbdSAlfred PerlsteinFor connectionless transports, if
3638360efbdSAlfred Perlstein.Fa svcaddr
3648360efbdSAlfred Perlsteinis
3658360efbdSAlfred Perlstein.Dv NULL ,
3668360efbdSAlfred Perlstein.Dv RPC_UNKNOWNADDR
3678360efbdSAlfred Perlsteinerror is set.
3688360efbdSAlfred Perlstein.Fa fildes
3698360efbdSAlfred Perlsteinis a file descriptor which may be open, bound and connected.
3708360efbdSAlfred PerlsteinIf it is
3718360efbdSAlfred Perlstein.Dv RPC_ANYFD ,
3728360efbdSAlfred Perlsteinit opens a file descriptor on the transport specified by
3738360efbdSAlfred Perlstein.Fa netconf .
3748360efbdSAlfred PerlsteinIf
3758360efbdSAlfred Perlstein.Fa fildes
3768360efbdSAlfred Perlsteinis
3778360efbdSAlfred Perlstein.Dv RPC_ANYFD
3788360efbdSAlfred Perlsteinand
3798360efbdSAlfred Perlstein.Fa netconf
3808360efbdSAlfred Perlsteinis
3818360efbdSAlfred Perlstein.Dv NULL ,
3828360efbdSAlfred Perlsteina
3838360efbdSAlfred Perlstein.Dv RPC_UNKNOWNPROTO
3848360efbdSAlfred Perlsteinerror is set.
3858360efbdSAlfred PerlsteinIf
3868360efbdSAlfred Perlstein.Fa fildes
3878360efbdSAlfred Perlsteinis unbound, then it will attempt to bind the descriptor.
3888360efbdSAlfred PerlsteinThe user may specify the size of the buffers with the parameters
3898360efbdSAlfred Perlstein.Fa sendsz
3908360efbdSAlfred Perlsteinand
3918360efbdSAlfred Perlstein.Fa recvsz ;
3928360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults.
3938360efbdSAlfred PerlsteinDepending upon the type of the transport (connection-oriented
3948360efbdSAlfred Perlsteinor connectionless),
3958360efbdSAlfred Perlstein.Fn clnt_tli_create
3968360efbdSAlfred Perlsteincalls appropriate client creation routines.
3978360efbdSAlfred PerlsteinThis routine returns
3988360efbdSAlfred Perlstein.Dv NULL
3998360efbdSAlfred Perlsteinif it fails.
4008360efbdSAlfred PerlsteinThe
4018360efbdSAlfred Perlstein.Fn clnt_pcreateerror
4028360efbdSAlfred Perlsteinroutine can be used to print the reason for failure.
4038360efbdSAlfred PerlsteinThe remote rpcbind
4048360efbdSAlfred Perlsteinservice (see
4058360efbdSAlfred Perlstein.Xr rpcbind 8 )
4068360efbdSAlfred Perlsteinis not consulted for the address of the remote
4078360efbdSAlfred Perlsteinservice.
4088360efbdSAlfred Perlstein.It Fn clnt_tp_create
4098360efbdSAlfred PerlsteinLike
4108360efbdSAlfred Perlstein.Fn clnt_create
4118360efbdSAlfred Perlsteinexcept
4128360efbdSAlfred Perlstein.Fn clnt_tp_create
4138360efbdSAlfred Perlsteintries only one transport specified through
4148360efbdSAlfred Perlstein.Fa netconf .
4151fae73b1SRuslan ErmilovThe
4168360efbdSAlfred Perlstein.Fn clnt_tp_create
4171fae73b1SRuslan Ermilovfunction
4188360efbdSAlfred Perlsteincreates a client handle for the program
4198360efbdSAlfred Perlstein.Fa prognum ,
4208360efbdSAlfred Perlsteinthe version
4218360efbdSAlfred Perlstein.Fa versnum ,
4228360efbdSAlfred Perlsteinand for the transport specified by
4238360efbdSAlfred Perlstein.Fa netconf .
4248360efbdSAlfred PerlsteinDefault options are set,
4258360efbdSAlfred Perlsteinwhich can be changed using
4268360efbdSAlfred Perlstein.Fn clnt_control
4278360efbdSAlfred Perlsteincalls.
4288360efbdSAlfred PerlsteinThe remote rpcbind service on the host
4298360efbdSAlfred Perlstein.Fa host
4308360efbdSAlfred Perlsteinis consulted for the address of the remote service.
4318360efbdSAlfred PerlsteinThis routine returns
4328360efbdSAlfred Perlstein.Dv NULL
4338360efbdSAlfred Perlsteinif it fails.
4348360efbdSAlfred PerlsteinThe
4358360efbdSAlfred Perlstein.Fn clnt_pcreateerror
4368360efbdSAlfred Perlsteinroutine can be used to print the reason for failure.
4374e37855eSAlfred Perlstein.It Fn clnt_tp_create_timed
4384e37855eSAlfred PerlsteinLike
4394e37855eSAlfred Perlstein.Fn clnt_tp_create
4404e37855eSAlfred Perlsteinexcept
4414e37855eSAlfred Perlstein.Fn clnt_tp_create_timed
4424e37855eSAlfred Perlsteinhas the extra parameter
4434e37855eSAlfred Perlstein.Fa timeout
4444e37855eSAlfred Perlsteinwhich specifies the maximum time allowed for
4454e37855eSAlfred Perlsteinfor the creation attempt to succeed.
4464e37855eSAlfred PerlsteinIn all other respects, the
4474e37855eSAlfred Perlstein.Fn clnt_tp_create_timed
4484e37855eSAlfred Perlsteincall behaves exactly like the
4494e37855eSAlfred Perlstein.Fn clnt_tp_create
4504e37855eSAlfred Perlsteincall.
4518360efbdSAlfred Perlstein.It Fn clnt_vc_create
4528360efbdSAlfred PerlsteinThis routine creates an RPC
4538360efbdSAlfred Perlsteinclient for the remote program
4548360efbdSAlfred Perlstein.Fa prognum
4558360efbdSAlfred Perlsteinand version
4568360efbdSAlfred Perlstein.Fa versnum ;
4578360efbdSAlfred Perlsteinthe client uses a connection-oriented transport.
4588360efbdSAlfred PerlsteinThe remote program is located at address
4598360efbdSAlfred Perlstein.Fa svcaddr .
4608360efbdSAlfred PerlsteinThe parameter
4618360efbdSAlfred Perlstein.Fa fildes
4628360efbdSAlfred Perlsteinis an open and bound file descriptor.
4638360efbdSAlfred PerlsteinThe user may specify the size of the send and receive buffers
4648360efbdSAlfred Perlsteinwith the parameters
4658360efbdSAlfred Perlstein.Fa sendsz
4668360efbdSAlfred Perlsteinand
4678360efbdSAlfred Perlstein.Fa recvsz ;
4688360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults.
4698360efbdSAlfred PerlsteinThis routine returns
4708360efbdSAlfred Perlstein.Dv NULL
4718360efbdSAlfred Perlsteinif it fails.
4728360efbdSAlfred PerlsteinThe address
4738360efbdSAlfred Perlstein.Fa svcaddr
4748360efbdSAlfred Perlsteinshould not be
4758360efbdSAlfred Perlstein.Dv NULL
4768360efbdSAlfred Perlsteinand should point to the actual address of the remote program.
4771fae73b1SRuslan ErmilovThe
4788360efbdSAlfred Perlstein.Fn clnt_vc_create
4791fae73b1SRuslan Ermilovfunction
4808360efbdSAlfred Perlsteindoes not consult the remote rpcbind service for this information.
4818360efbdSAlfred Perlstein.It Xo
4828360efbdSAlfred Perlstein.Vt "struct rpc_createerr" Va rpc_createerr ;
4838360efbdSAlfred Perlstein.Xc
4848360efbdSAlfred PerlsteinA global variable whose value is set by any RPC
4858360efbdSAlfred Perlsteinclient handle creation routine
4868360efbdSAlfred Perlsteinthat fails.
4878360efbdSAlfred PerlsteinIt is used by the routine
4888360efbdSAlfred Perlstein.Fn clnt_pcreateerror
4898360efbdSAlfred Perlsteinto print the reason for the failure.
4908360efbdSAlfred Perlstein.El
4918360efbdSAlfred Perlstein.Sh SEE ALSO
4928360efbdSAlfred Perlstein.Xr rpc 3 ,
4938360efbdSAlfred Perlstein.Xr rpc_clnt_auth 3 ,
4948360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ,
4958360efbdSAlfred Perlstein.Xr rpcbind 8
496