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 38224e22e6SMike Heffner.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" 10832de72d2SIan Dowse.It Dv CLSET_CONNECT Ta Vt "int *" Ta use Xr connect 2 1098360efbdSAlfred Perlstein.El 1108360efbdSAlfred Perlstein.Pp 1118360efbdSAlfred PerlsteinThe retry timeout is the time that RPC 1128360efbdSAlfred Perlsteinwaits for the server to reply before retransmitting the request. 1138360efbdSAlfred Perlstein.Fn clnt_control 1148360efbdSAlfred Perlsteinreturns 1158360efbdSAlfred Perlstein.Dv TRUE 1168360efbdSAlfred Perlsteinon success and 1178360efbdSAlfred Perlstein.Dv FALSE 1188360efbdSAlfred Perlsteinon failure. 1198360efbdSAlfred Perlstein.It Fn clnt_create 1208360efbdSAlfred PerlsteinGeneric client creation routine for program 1218360efbdSAlfred Perlstein.Fa prognum 1228360efbdSAlfred Perlsteinand version 1238360efbdSAlfred Perlstein.Fa versnum . 1248360efbdSAlfred Perlstein.Fa host 1258360efbdSAlfred Perlsteinidentifies the name of the remote host where the server 1268360efbdSAlfred Perlsteinis located. 1278360efbdSAlfred Perlstein.Fa nettype 1288360efbdSAlfred Perlsteinindicates the class of transport protocol to use. 1298360efbdSAlfred PerlsteinThe transports are tried in left to right order in 1308360efbdSAlfred Perlstein.Ev NETPATH 1318360efbdSAlfred Perlsteinenvironment variable or in top to bottom order in 1328360efbdSAlfred Perlsteinthe netconfig database. 1338360efbdSAlfred Perlstein.Fn clnt_create 1348360efbdSAlfred Perlsteintries all the transports of the 1358360efbdSAlfred Perlstein.Fa nettype 1368360efbdSAlfred Perlsteinclass available from the 1378360efbdSAlfred Perlstein.Ev NETPATH 1388360efbdSAlfred Perlsteinenvironment variable and the netconfig database, 1398360efbdSAlfred Perlsteinand chooses the first successful one. 1408360efbdSAlfred PerlsteinA default timeout is set and can be modified using 1418360efbdSAlfred Perlstein.Fn clnt_control . 1428360efbdSAlfred PerlsteinThis routine returns 1438360efbdSAlfred Perlstein.Dv NULL 1448360efbdSAlfred Perlsteinif it fails. 1458360efbdSAlfred PerlsteinThe 1468360efbdSAlfred Perlstein.Fn clnt_pcreateerror 1478360efbdSAlfred Perlsteinroutine can be used to print the reason for failure. 1488360efbdSAlfred Perlstein.Pp 1498360efbdSAlfred PerlsteinNote: 1508360efbdSAlfred Perlstein.Fn clnt_create 1518360efbdSAlfred Perlsteinreturns a valid client handle even 1528360efbdSAlfred Perlsteinif the particular version number supplied to 1538360efbdSAlfred Perlstein.Fn clnt_create 1548360efbdSAlfred Perlsteinis not registered with the 1558360efbdSAlfred Perlstein.Xr rpcbind 8 1568360efbdSAlfred Perlsteinservice. 1578360efbdSAlfred PerlsteinThis mismatch will be discovered by a 1588360efbdSAlfred Perlstein.Fn clnt_call 1598360efbdSAlfred Perlsteinlater (see 1608360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) . 1618360efbdSAlfred Perlstein.It Fn clnt_create_vers 1628360efbdSAlfred PerlsteinGeneric client creation routine which is similar to 1638360efbdSAlfred Perlstein.Fn clnt_create 1648360efbdSAlfred Perlsteinbut which also checks for the 1658360efbdSAlfred Perlsteinversion availability. 1668360efbdSAlfred Perlstein.Fa host 1678360efbdSAlfred Perlsteinidentifies the name of the remote host where the server 1688360efbdSAlfred Perlsteinis located. 1698360efbdSAlfred Perlstein.Fa nettype 1708360efbdSAlfred Perlsteinindicates the class transport protocols to be used. 1718360efbdSAlfred PerlsteinIf the routine is successful it returns a client handle created for 1728360efbdSAlfred Perlsteinthe highest version between 1738360efbdSAlfred Perlstein.Fa vers_low 1748360efbdSAlfred Perlsteinand 1758360efbdSAlfred Perlstein.Fa vers_high 1768360efbdSAlfred Perlsteinthat is supported by the server. 1778360efbdSAlfred Perlstein.Fa vers_outp 1788360efbdSAlfred Perlsteinis set to this value. 1798360efbdSAlfred PerlsteinThat is, after a successful return 1808360efbdSAlfred Perlstein.Fa vers_low 1818360efbdSAlfred Perlstein<= 1828360efbdSAlfred Perlstein.Fa *vers_outp 1838360efbdSAlfred Perlstein<= 1848360efbdSAlfred Perlstein.Fa vers_high . 1858360efbdSAlfred PerlsteinIf no version between 1868360efbdSAlfred Perlstein.Fa vers_low 1878360efbdSAlfred Perlsteinand 1888360efbdSAlfred Perlstein.Fa vers_high 1898360efbdSAlfred Perlsteinis supported by the server then the routine fails and returns 1908360efbdSAlfred Perlstein.Dv NULL . 1918360efbdSAlfred PerlsteinA default timeout is set and can be modified using 1928360efbdSAlfred Perlstein.Fn clnt_control . 1938360efbdSAlfred PerlsteinThis routine returns 1948360efbdSAlfred Perlstein.Dv NULL 1958360efbdSAlfred Perlsteinif it fails. 1968360efbdSAlfred PerlsteinThe 1978360efbdSAlfred Perlstein.Fn clnt_pcreateerror 1988360efbdSAlfred Perlsteinroutine can be used to print the reason for failure. 1998360efbdSAlfred PerlsteinNote: 2008360efbdSAlfred Perlstein.Fn clnt_create 2018360efbdSAlfred Perlsteinreturns a valid client handle even 2028360efbdSAlfred Perlsteinif the particular version number supplied to 2038360efbdSAlfred Perlstein.Fn clnt_create 2048360efbdSAlfred Perlsteinis not registered with the 2058360efbdSAlfred Perlstein.Xr rpcbind 8 2068360efbdSAlfred Perlsteinservice. 2078360efbdSAlfred PerlsteinThis mismatch will be discovered by a 2088360efbdSAlfred Perlstein.Fn clnt_call 2098360efbdSAlfred Perlsteinlater (see 2108360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) . 2118360efbdSAlfred PerlsteinHowever, 2128360efbdSAlfred Perlstein.Fn clnt_create_vers 2138360efbdSAlfred Perlsteindoes this for you and returns a valid handle 2148360efbdSAlfred Perlsteinonly if a version within 2158360efbdSAlfred Perlsteinthe range supplied is supported by the server. 2168360efbdSAlfred Perlstein.It Fn clnt_destroy 2178360efbdSAlfred PerlsteinA function macro that destroys the client's RPC handle. 2188360efbdSAlfred PerlsteinDestruction usually involves deallocation 2198360efbdSAlfred Perlsteinof private data structures, including 2208360efbdSAlfred Perlstein.Fa clnt 2218360efbdSAlfred Perlsteinitself. 2228360efbdSAlfred PerlsteinUse of 2238360efbdSAlfred Perlstein.Fa clnt 2248360efbdSAlfred Perlsteinis undefined after calling 2258360efbdSAlfred Perlstein.Fn clnt_destroy . 2268360efbdSAlfred PerlsteinIf the RPC library opened the associated file descriptor, or 2278360efbdSAlfred Perlstein.Dv CLSET_FD_CLOSE 2288360efbdSAlfred Perlsteinwas set using 2298360efbdSAlfred Perlstein.Fn clnt_control , 2308360efbdSAlfred Perlsteinthe file descriptor will be closed. 2318360efbdSAlfred PerlsteinThe caller should call 2328360efbdSAlfred Perlstein.Fn auth_destroy "clnt->cl_auth" 2338360efbdSAlfred Perlstein(before calling 2348360efbdSAlfred Perlstein.Fn clnt_destroy ) 2358360efbdSAlfred Perlsteinto destroy the associated 2368360efbdSAlfred Perlstein.Vt AUTH 2378360efbdSAlfred Perlsteinstructure (see 2388360efbdSAlfred Perlstein.Xr rpc_clnt_auth 3 ) . 2398360efbdSAlfred Perlstein.It Fn clnt_dg_create 2408360efbdSAlfred PerlsteinThis routine creates an RPC client for the remote program 2418360efbdSAlfred Perlstein.Fa prognum 2428360efbdSAlfred Perlsteinand version 2438360efbdSAlfred Perlstein.Fa versnum ; 2448360efbdSAlfred Perlsteinthe client uses a connectionless transport. 2458360efbdSAlfred PerlsteinThe remote program is located at address 2468360efbdSAlfred Perlstein.Fa svcaddr . 2478360efbdSAlfred PerlsteinThe parameter 2488360efbdSAlfred Perlstein.Fa fildes 2498360efbdSAlfred Perlsteinis an open and bound file descriptor. 2508360efbdSAlfred PerlsteinThis routine will resend the call message in intervals of 2518360efbdSAlfred Perlstein15 seconds until a response is received or until the 2528360efbdSAlfred Perlsteincall times out. 2538360efbdSAlfred PerlsteinThe total time for the call to time out is specified by 2548360efbdSAlfred Perlstein.Fn clnt_call 2558360efbdSAlfred Perlstein(see 2568360efbdSAlfred Perlstein.Fn clnt_call 2578360efbdSAlfred Perlsteinin 2588360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) . 2598360efbdSAlfred PerlsteinThe retry time out and the total time out periods can 2608360efbdSAlfred Perlsteinbe changed using 2618360efbdSAlfred Perlstein.Fn clnt_control . 2628360efbdSAlfred PerlsteinThe user may set the size of the send and receive 2638360efbdSAlfred Perlsteinbuffers with the parameters 2648360efbdSAlfred Perlstein.Fa sendsz 2658360efbdSAlfred Perlsteinand 2668360efbdSAlfred Perlstein.Fa recvsz ; 2678360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults. 2688360efbdSAlfred PerlsteinThis routine returns 2698360efbdSAlfred Perlstein.Dv NULL 2708360efbdSAlfred Perlsteinif it fails. 2718360efbdSAlfred Perlstein.It Fn clnt_pcreateerror 2728360efbdSAlfred PerlsteinPrint a message to standard error indicating 2738360efbdSAlfred Perlsteinwhy a client RPC handle could not be created. 2748360efbdSAlfred PerlsteinThe message is prepended with the string 2758360efbdSAlfred Perlstein.Fa s 2768360efbdSAlfred Perlsteinand a colon, and appended with a newline. 2778360efbdSAlfred Perlstein.It Fn clnt_spcreateerror 2788360efbdSAlfred PerlsteinLike 2798360efbdSAlfred Perlstein.Fn clnt_pcreateerror , 2808360efbdSAlfred Perlsteinexcept that it returns a string 2818360efbdSAlfred Perlsteininstead of printing to the standard error. 2828360efbdSAlfred PerlsteinA newline is not appended to the message in this case. 2838360efbdSAlfred PerlsteinWarning: 2848360efbdSAlfred Perlsteinreturns a pointer to a buffer that is overwritten 2858360efbdSAlfred Perlsteinon each call. 2868360efbdSAlfred Perlstein.It Fn clnt_raw_create 2878360efbdSAlfred PerlsteinThis routine creates an RPC 2888360efbdSAlfred Perlsteinclient handle for the remote program 2898360efbdSAlfred Perlstein.Fa prognum 2908360efbdSAlfred Perlsteinand version 2918360efbdSAlfred Perlstein.Fa versnum . 2928360efbdSAlfred PerlsteinThe transport used to pass messages to the service is 2938360efbdSAlfred Perlsteina buffer within the process's address space, 2948360efbdSAlfred Perlsteinso the corresponding RPC 2958360efbdSAlfred Perlsteinserver should live in the same address space; 2968360efbdSAlfred Perlstein(see 2978360efbdSAlfred Perlstein.Fn svc_raw_create 2988360efbdSAlfred Perlsteinin 2998360efbdSAlfred Perlstein.Xr rpc_svc_create 3 ) . 3008360efbdSAlfred PerlsteinThis allows simulation of RPC and measurement of 3018360efbdSAlfred PerlsteinRPC overheads, such as round trip times, 3028360efbdSAlfred Perlsteinwithout any kernel or networking interference. 3038360efbdSAlfred PerlsteinThis routine returns 3048360efbdSAlfred Perlstein.Dv NULL 3058360efbdSAlfred Perlsteinif it fails. 3068360efbdSAlfred Perlstein.Fn clnt_raw_create 3078360efbdSAlfred Perlsteinshould be called after 3088360efbdSAlfred Perlstein.Fn svc_raw_create . 3098360efbdSAlfred Perlstein.It Fn clnt_tli_create 3108360efbdSAlfred PerlsteinThis routine creates an RPC 3118360efbdSAlfred Perlsteinclient handle for the remote program 3128360efbdSAlfred Perlstein.Fa prognum 3138360efbdSAlfred Perlsteinand version 3148360efbdSAlfred Perlstein.Fa versnum . 3158360efbdSAlfred PerlsteinThe remote program is located at address 3168360efbdSAlfred Perlstein.Fa svcaddr . 3178360efbdSAlfred PerlsteinIf 3188360efbdSAlfred Perlstein.Fa svcaddr 3198360efbdSAlfred Perlsteinis 3208360efbdSAlfred Perlstein.Dv NULL 3218360efbdSAlfred Perlsteinand it is connection-oriented, it is assumed that the file descriptor 3228360efbdSAlfred Perlsteinis connected. 3238360efbdSAlfred PerlsteinFor connectionless transports, if 3248360efbdSAlfred Perlstein.Fa svcaddr 3258360efbdSAlfred Perlsteinis 3268360efbdSAlfred Perlstein.Dv NULL , 3278360efbdSAlfred Perlstein.Dv RPC_UNKNOWNADDR 3288360efbdSAlfred Perlsteinerror is set. 3298360efbdSAlfred Perlstein.Fa fildes 3308360efbdSAlfred Perlsteinis a file descriptor which may be open, bound and connected. 3318360efbdSAlfred PerlsteinIf it is 3328360efbdSAlfred Perlstein.Dv RPC_ANYFD , 3338360efbdSAlfred Perlsteinit opens a file descriptor on the transport specified by 3348360efbdSAlfred Perlstein.Fa netconf . 3358360efbdSAlfred PerlsteinIf 3368360efbdSAlfred Perlstein.Fa fildes 3378360efbdSAlfred Perlsteinis 3388360efbdSAlfred Perlstein.Dv RPC_ANYFD 3398360efbdSAlfred Perlsteinand 3408360efbdSAlfred Perlstein.Fa netconf 3418360efbdSAlfred Perlsteinis 3428360efbdSAlfred Perlstein.Dv NULL , 3438360efbdSAlfred Perlsteina 3448360efbdSAlfred Perlstein.Dv RPC_UNKNOWNPROTO 3458360efbdSAlfred Perlsteinerror is set. 3468360efbdSAlfred PerlsteinIf 3478360efbdSAlfred Perlstein.Fa fildes 3488360efbdSAlfred Perlsteinis unbound, then it will attempt to bind the descriptor. 3498360efbdSAlfred PerlsteinThe user may specify the size of the buffers with the parameters 3508360efbdSAlfred Perlstein.Fa sendsz 3518360efbdSAlfred Perlsteinand 3528360efbdSAlfred Perlstein.Fa recvsz ; 3538360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults. 3548360efbdSAlfred PerlsteinDepending upon the type of the transport (connection-oriented 3558360efbdSAlfred Perlsteinor connectionless), 3568360efbdSAlfred Perlstein.Fn clnt_tli_create 3578360efbdSAlfred Perlsteincalls appropriate client creation routines. 3588360efbdSAlfred PerlsteinThis routine returns 3598360efbdSAlfred Perlstein.Dv NULL 3608360efbdSAlfred Perlsteinif it fails. 3618360efbdSAlfred PerlsteinThe 3628360efbdSAlfred Perlstein.Fn clnt_pcreateerror 3638360efbdSAlfred Perlsteinroutine can be used to print the reason for failure. 3648360efbdSAlfred PerlsteinThe remote rpcbind 3658360efbdSAlfred Perlsteinservice (see 3668360efbdSAlfred Perlstein.Xr rpcbind 8 ) 3678360efbdSAlfred Perlsteinis not consulted for the address of the remote 3688360efbdSAlfred Perlsteinservice. 3698360efbdSAlfred Perlstein.It Fn clnt_tp_create 3708360efbdSAlfred PerlsteinLike 3718360efbdSAlfred Perlstein.Fn clnt_create 3728360efbdSAlfred Perlsteinexcept 3738360efbdSAlfred Perlstein.Fn clnt_tp_create 3748360efbdSAlfred Perlsteintries only one transport specified through 3758360efbdSAlfred Perlstein.Fa netconf . 3768360efbdSAlfred Perlstein.Fn clnt_tp_create 3778360efbdSAlfred Perlsteincreates a client handle for the program 3788360efbdSAlfred Perlstein.Fa prognum , 3798360efbdSAlfred Perlsteinthe version 3808360efbdSAlfred Perlstein.Fa versnum , 3818360efbdSAlfred Perlsteinand for the transport specified by 3828360efbdSAlfred Perlstein.Fa netconf . 3838360efbdSAlfred PerlsteinDefault options are set, 3848360efbdSAlfred Perlsteinwhich can be changed using 3858360efbdSAlfred Perlstein.Fn clnt_control 3868360efbdSAlfred Perlsteincalls. 3878360efbdSAlfred PerlsteinThe remote rpcbind service on the host 3888360efbdSAlfred Perlstein.Fa host 3898360efbdSAlfred Perlsteinis consulted for the address of the remote service. 3908360efbdSAlfred PerlsteinThis routine returns 3918360efbdSAlfred Perlstein.Dv NULL 3928360efbdSAlfred Perlsteinif it fails. 3938360efbdSAlfred PerlsteinThe 3948360efbdSAlfred Perlstein.Fn clnt_pcreateerror 3958360efbdSAlfred Perlsteinroutine can be used to print the reason for failure. 3968360efbdSAlfred Perlstein.It Fn clnt_vc_create 3978360efbdSAlfred PerlsteinThis routine creates an RPC 3988360efbdSAlfred Perlsteinclient for the remote program 3998360efbdSAlfred Perlstein.Fa prognum 4008360efbdSAlfred Perlsteinand version 4018360efbdSAlfred Perlstein.Fa versnum ; 4028360efbdSAlfred Perlsteinthe client uses a connection-oriented transport. 4038360efbdSAlfred PerlsteinThe remote program is located at address 4048360efbdSAlfred Perlstein.Fa svcaddr . 4058360efbdSAlfred PerlsteinThe parameter 4068360efbdSAlfred Perlstein.Fa fildes 4078360efbdSAlfred Perlsteinis an open and bound file descriptor. 4088360efbdSAlfred PerlsteinThe user may specify the size of the send and receive buffers 4098360efbdSAlfred Perlsteinwith the parameters 4108360efbdSAlfred Perlstein.Fa sendsz 4118360efbdSAlfred Perlsteinand 4128360efbdSAlfred Perlstein.Fa recvsz ; 4138360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults. 4148360efbdSAlfred PerlsteinThis routine returns 4158360efbdSAlfred Perlstein.Dv NULL 4168360efbdSAlfred Perlsteinif it fails. 4178360efbdSAlfred PerlsteinThe address 4188360efbdSAlfred Perlstein.Fa svcaddr 4198360efbdSAlfred Perlsteinshould not be 4208360efbdSAlfred Perlstein.Dv NULL 4218360efbdSAlfred Perlsteinand should point to the actual address of the remote program. 4228360efbdSAlfred Perlstein.Fn clnt_vc_create 4238360efbdSAlfred Perlsteindoes not consult the remote rpcbind service for this information. 4248360efbdSAlfred Perlstein.It Xo 4258360efbdSAlfred Perlstein.Vt "struct rpc_createerr" Va rpc_createerr ; 4268360efbdSAlfred Perlstein.Xc 4278360efbdSAlfred PerlsteinA global variable whose value is set by any RPC 4288360efbdSAlfred Perlsteinclient handle creation routine 4298360efbdSAlfred Perlsteinthat fails. 4308360efbdSAlfred PerlsteinIt is used by the routine 4318360efbdSAlfred Perlstein.Fn clnt_pcreateerror 4328360efbdSAlfred Perlsteinto print the reason for the failure. 4338360efbdSAlfred Perlstein.El 4348360efbdSAlfred Perlstein.Sh SEE ALSO 4358360efbdSAlfred Perlstein.Xr rpc 3 , 4368360efbdSAlfred Perlstein.Xr rpc_clnt_auth 3 , 4378360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 , 4388360efbdSAlfred Perlstein.Xr rpcbind 8 439