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" 1078360efbdSAlfred Perlstein.It Dv CLGET_VERS Ta "unsigned long *" Ta "get RPC program version" 1088360efbdSAlfred Perlstein.It Dv CLSET_VERS Ta "unsigned long *" Ta "set RPC program version" 1098360efbdSAlfred Perlstein.It Dv CLGET_XID Ta "unsigned long *" Ta "get XID of previous call" 1108360efbdSAlfred Perlstein.It Dv CLSET_XID Ta "unsigned long *" 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. 1228360efbdSAlfred Perlstein.Fn clnt_control 1238360efbdSAlfred Perlsteinreturns 1248360efbdSAlfred Perlstein.Dv TRUE 1258360efbdSAlfred Perlsteinon success and 1268360efbdSAlfred Perlstein.Dv FALSE 1278360efbdSAlfred Perlsteinon failure. 1288360efbdSAlfred Perlstein.It Fn clnt_create 1298360efbdSAlfred PerlsteinGeneric client creation routine for program 1308360efbdSAlfred Perlstein.Fa prognum 1318360efbdSAlfred Perlsteinand version 1328360efbdSAlfred Perlstein.Fa versnum . 1338360efbdSAlfred Perlstein.Fa host 1348360efbdSAlfred Perlsteinidentifies the name of the remote host where the server 1358360efbdSAlfred Perlsteinis located. 1368360efbdSAlfred Perlstein.Fa nettype 1378360efbdSAlfred Perlsteinindicates the class of transport protocol to use. 1388360efbdSAlfred PerlsteinThe transports are tried in left to right order in 1398360efbdSAlfred Perlstein.Ev NETPATH 1408360efbdSAlfred Perlsteinenvironment variable or in top to bottom order in 1418360efbdSAlfred Perlsteinthe netconfig database. 1428360efbdSAlfred Perlstein.Fn clnt_create 1438360efbdSAlfred Perlsteintries all the transports of the 1448360efbdSAlfred Perlstein.Fa nettype 1458360efbdSAlfred Perlsteinclass available from the 1468360efbdSAlfred Perlstein.Ev NETPATH 1478360efbdSAlfred Perlsteinenvironment variable and the netconfig database, 1488360efbdSAlfred Perlsteinand chooses the first successful one. 1498360efbdSAlfred PerlsteinA default timeout is set and can be modified using 1508360efbdSAlfred Perlstein.Fn clnt_control . 1518360efbdSAlfred PerlsteinThis routine returns 1528360efbdSAlfred Perlstein.Dv NULL 1538360efbdSAlfred Perlsteinif it fails. 1548360efbdSAlfred PerlsteinThe 1558360efbdSAlfred Perlstein.Fn clnt_pcreateerror 1568360efbdSAlfred Perlsteinroutine can be used to print the reason for failure. 1578360efbdSAlfred Perlstein.Pp 1588360efbdSAlfred PerlsteinNote: 1598360efbdSAlfred Perlstein.Fn clnt_create 1608360efbdSAlfred Perlsteinreturns a valid client handle even 1618360efbdSAlfred Perlsteinif the particular version number supplied to 1628360efbdSAlfred Perlstein.Fn clnt_create 1638360efbdSAlfred Perlsteinis not registered with the 1648360efbdSAlfred Perlstein.Xr rpcbind 8 1658360efbdSAlfred Perlsteinservice. 1668360efbdSAlfred PerlsteinThis mismatch will be discovered by a 1678360efbdSAlfred Perlstein.Fn clnt_call 1688360efbdSAlfred Perlsteinlater (see 1698360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) . 1704e37855eSAlfred Perlstein.It Fn clnt_create_timed 1714e37855eSAlfred PerlsteinGeneric client creation routine which is similar to 1724e37855eSAlfred Perlstein.Fn clnt_create 1734e37855eSAlfred Perlsteinbut which also has the additional parameter 1744e37855eSAlfred Perlstein.Fa timeout 1754e37855eSAlfred Perlsteinthat specifies the maximum amount of time allowed for 176bebfe08fSRuslan Ermiloveach transport class tried. 177bebfe08fSRuslan ErmilovIn all other respects, the 1784e37855eSAlfred Perlstein.Fn clnt_create_timed 1794e37855eSAlfred Perlsteincall behaves exactly like the 1804e37855eSAlfred Perlstein.Fn clnt_create 1814e37855eSAlfred Perlsteincall. 1828360efbdSAlfred Perlstein.It Fn clnt_create_vers 1838360efbdSAlfred PerlsteinGeneric client creation routine which is similar to 1848360efbdSAlfred Perlstein.Fn clnt_create 1858360efbdSAlfred Perlsteinbut which also checks for the 1868360efbdSAlfred Perlsteinversion availability. 1878360efbdSAlfred Perlstein.Fa host 1888360efbdSAlfred Perlsteinidentifies the name of the remote host where the server 1898360efbdSAlfred Perlsteinis located. 1908360efbdSAlfred Perlstein.Fa nettype 1918360efbdSAlfred Perlsteinindicates the class transport protocols to be used. 1928360efbdSAlfred PerlsteinIf the routine is successful it returns a client handle created for 1938360efbdSAlfred Perlsteinthe highest version between 1948360efbdSAlfred Perlstein.Fa vers_low 1958360efbdSAlfred Perlsteinand 1968360efbdSAlfred Perlstein.Fa vers_high 1978360efbdSAlfred Perlsteinthat is supported by the server. 1988360efbdSAlfred Perlstein.Fa vers_outp 1998360efbdSAlfred Perlsteinis set to this value. 2008360efbdSAlfred PerlsteinThat is, after a successful return 2018360efbdSAlfred Perlstein.Fa vers_low 2028360efbdSAlfred Perlstein<= 2038360efbdSAlfred Perlstein.Fa *vers_outp 2048360efbdSAlfred Perlstein<= 2058360efbdSAlfred Perlstein.Fa vers_high . 2068360efbdSAlfred PerlsteinIf no version between 2078360efbdSAlfred Perlstein.Fa vers_low 2088360efbdSAlfred Perlsteinand 2098360efbdSAlfred Perlstein.Fa vers_high 2108360efbdSAlfred Perlsteinis supported by the server then the routine fails and returns 2118360efbdSAlfred Perlstein.Dv NULL . 2128360efbdSAlfred PerlsteinA default timeout is set and can be modified using 2138360efbdSAlfred Perlstein.Fn clnt_control . 2148360efbdSAlfred PerlsteinThis routine returns 2158360efbdSAlfred Perlstein.Dv NULL 2168360efbdSAlfred Perlsteinif it fails. 2178360efbdSAlfred PerlsteinThe 2188360efbdSAlfred Perlstein.Fn clnt_pcreateerror 2198360efbdSAlfred Perlsteinroutine can be used to print the reason for failure. 2208360efbdSAlfred PerlsteinNote: 2218360efbdSAlfred Perlstein.Fn clnt_create 2228360efbdSAlfred Perlsteinreturns a valid client handle even 2238360efbdSAlfred Perlsteinif the particular version number supplied to 2248360efbdSAlfred Perlstein.Fn clnt_create 2258360efbdSAlfred Perlsteinis not registered with the 2268360efbdSAlfred Perlstein.Xr rpcbind 8 2278360efbdSAlfred Perlsteinservice. 2288360efbdSAlfred PerlsteinThis mismatch will be discovered by a 2298360efbdSAlfred Perlstein.Fn clnt_call 2308360efbdSAlfred Perlsteinlater (see 2318360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) . 2328360efbdSAlfred PerlsteinHowever, 2338360efbdSAlfred Perlstein.Fn clnt_create_vers 2348360efbdSAlfred Perlsteindoes this for you and returns a valid handle 2358360efbdSAlfred Perlsteinonly if a version within 2368360efbdSAlfred Perlsteinthe range supplied is supported by the server. 2374e37855eSAlfred Perlstein.It Fn clnt_create_vers_timed 2384e37855eSAlfred PerlsteinGeneric client creation routine which is similar to 2394e37855eSAlfred Perlstein.Fn clnt_create_vers 2404e37855eSAlfred Perlsteinbut which also has the additional parameter 2414e37855eSAlfred Perlstein.Fa timeout 2424e37855eSAlfred Perlsteinthat specifies the maximum amount of time allowed for 243bebfe08fSRuslan Ermiloveach transport class tried. 244bebfe08fSRuslan ErmilovIn all other respects, the 2454e37855eSAlfred Perlstein.Fn clnt_create_vers_timed 2464e37855eSAlfred Perlsteincall behaves exactly like the 2474e37855eSAlfred Perlstein.Fn clnt_create_vers 2484e37855eSAlfred Perlsteincall. 2498360efbdSAlfred Perlstein.It Fn clnt_destroy 2508360efbdSAlfred PerlsteinA function macro that destroys the client's RPC handle. 2518360efbdSAlfred PerlsteinDestruction usually involves deallocation 2528360efbdSAlfred Perlsteinof private data structures, including 2538360efbdSAlfred Perlstein.Fa clnt 2548360efbdSAlfred Perlsteinitself. 2558360efbdSAlfred PerlsteinUse of 2568360efbdSAlfred Perlstein.Fa clnt 2578360efbdSAlfred Perlsteinis undefined after calling 2588360efbdSAlfred Perlstein.Fn clnt_destroy . 2598360efbdSAlfred PerlsteinIf the RPC library opened the associated file descriptor, or 2608360efbdSAlfred Perlstein.Dv CLSET_FD_CLOSE 2618360efbdSAlfred Perlsteinwas set using 2628360efbdSAlfred Perlstein.Fn clnt_control , 2638360efbdSAlfred Perlsteinthe file descriptor will be closed. 2648360efbdSAlfred PerlsteinThe caller should call 2658360efbdSAlfred Perlstein.Fn auth_destroy "clnt->cl_auth" 2668360efbdSAlfred Perlstein(before calling 2678360efbdSAlfred Perlstein.Fn clnt_destroy ) 2688360efbdSAlfred Perlsteinto destroy the associated 2698360efbdSAlfred Perlstein.Vt AUTH 2708360efbdSAlfred Perlsteinstructure (see 2718360efbdSAlfred Perlstein.Xr rpc_clnt_auth 3 ) . 2728360efbdSAlfred Perlstein.It Fn clnt_dg_create 2738360efbdSAlfred PerlsteinThis routine creates an RPC client for the remote program 2748360efbdSAlfred Perlstein.Fa prognum 2758360efbdSAlfred Perlsteinand version 2768360efbdSAlfred Perlstein.Fa versnum ; 2778360efbdSAlfred Perlsteinthe client uses a connectionless transport. 2788360efbdSAlfred PerlsteinThe remote program is located at address 2798360efbdSAlfred Perlstein.Fa svcaddr . 2808360efbdSAlfred PerlsteinThe parameter 2818360efbdSAlfred Perlstein.Fa fildes 2828360efbdSAlfred Perlsteinis an open and bound file descriptor. 2838360efbdSAlfred PerlsteinThis routine will resend the call message in intervals of 2848360efbdSAlfred Perlstein15 seconds until a response is received or until the 2858360efbdSAlfred Perlsteincall times out. 2868360efbdSAlfred PerlsteinThe total time for the call to time out is specified by 2878360efbdSAlfred Perlstein.Fn clnt_call 2888360efbdSAlfred Perlstein(see 2898360efbdSAlfred Perlstein.Fn clnt_call 2908360efbdSAlfred Perlsteinin 2918360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 ) . 2928360efbdSAlfred PerlsteinThe retry time out and the total time out periods can 2938360efbdSAlfred Perlsteinbe changed using 2948360efbdSAlfred Perlstein.Fn clnt_control . 2958360efbdSAlfred PerlsteinThe user may set the size of the send and receive 2968360efbdSAlfred Perlsteinbuffers with the parameters 2978360efbdSAlfred Perlstein.Fa sendsz 2988360efbdSAlfred Perlsteinand 2998360efbdSAlfred Perlstein.Fa recvsz ; 3008360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults. 3018360efbdSAlfred PerlsteinThis routine returns 3028360efbdSAlfred Perlstein.Dv NULL 3038360efbdSAlfred Perlsteinif it fails. 3048360efbdSAlfred Perlstein.It Fn clnt_pcreateerror 3058360efbdSAlfred PerlsteinPrint a message to standard error indicating 3068360efbdSAlfred Perlsteinwhy a client RPC handle could not be created. 3078360efbdSAlfred PerlsteinThe message is prepended with the string 3088360efbdSAlfred Perlstein.Fa s 3098360efbdSAlfred Perlsteinand a colon, and appended with a newline. 3108360efbdSAlfred Perlstein.It Fn clnt_spcreateerror 3118360efbdSAlfred PerlsteinLike 3128360efbdSAlfred Perlstein.Fn clnt_pcreateerror , 3138360efbdSAlfred Perlsteinexcept that it returns a string 3148360efbdSAlfred Perlsteininstead of printing to the standard error. 3158360efbdSAlfred PerlsteinA newline is not appended to the message in this case. 3168360efbdSAlfred PerlsteinWarning: 3178360efbdSAlfred Perlsteinreturns a pointer to a buffer that is overwritten 3188360efbdSAlfred Perlsteinon each call. 3198360efbdSAlfred Perlstein.It Fn clnt_raw_create 3208360efbdSAlfred PerlsteinThis routine creates an RPC 3218360efbdSAlfred Perlsteinclient handle for the remote program 3228360efbdSAlfred Perlstein.Fa prognum 3238360efbdSAlfred Perlsteinand version 3248360efbdSAlfred Perlstein.Fa versnum . 3258360efbdSAlfred PerlsteinThe transport used to pass messages to the service is 3268360efbdSAlfred Perlsteina buffer within the process's address space, 3278360efbdSAlfred Perlsteinso the corresponding RPC 3288360efbdSAlfred Perlsteinserver should live in the same address space; 3298360efbdSAlfred Perlstein(see 3308360efbdSAlfred Perlstein.Fn svc_raw_create 3318360efbdSAlfred Perlsteinin 3328360efbdSAlfred Perlstein.Xr rpc_svc_create 3 ) . 3338360efbdSAlfred PerlsteinThis allows simulation of RPC and measurement of 3348360efbdSAlfred PerlsteinRPC overheads, such as round trip times, 3358360efbdSAlfred Perlsteinwithout any kernel or networking interference. 3368360efbdSAlfred PerlsteinThis routine returns 3378360efbdSAlfred Perlstein.Dv NULL 3388360efbdSAlfred Perlsteinif it fails. 3398360efbdSAlfred Perlstein.Fn clnt_raw_create 3408360efbdSAlfred Perlsteinshould be called after 3418360efbdSAlfred Perlstein.Fn svc_raw_create . 3428360efbdSAlfred Perlstein.It Fn clnt_tli_create 3438360efbdSAlfred PerlsteinThis routine creates an RPC 3448360efbdSAlfred Perlsteinclient handle for the remote program 3458360efbdSAlfred Perlstein.Fa prognum 3468360efbdSAlfred Perlsteinand version 3478360efbdSAlfred Perlstein.Fa versnum . 3488360efbdSAlfred PerlsteinThe remote program is located at address 3498360efbdSAlfred Perlstein.Fa svcaddr . 3508360efbdSAlfred PerlsteinIf 3518360efbdSAlfred Perlstein.Fa svcaddr 3528360efbdSAlfred Perlsteinis 3538360efbdSAlfred Perlstein.Dv NULL 3548360efbdSAlfred Perlsteinand it is connection-oriented, it is assumed that the file descriptor 3558360efbdSAlfred Perlsteinis connected. 3568360efbdSAlfred PerlsteinFor connectionless transports, if 3578360efbdSAlfred Perlstein.Fa svcaddr 3588360efbdSAlfred Perlsteinis 3598360efbdSAlfred Perlstein.Dv NULL , 3608360efbdSAlfred Perlstein.Dv RPC_UNKNOWNADDR 3618360efbdSAlfred Perlsteinerror is set. 3628360efbdSAlfred Perlstein.Fa fildes 3638360efbdSAlfred Perlsteinis a file descriptor which may be open, bound and connected. 3648360efbdSAlfred PerlsteinIf it is 3658360efbdSAlfred Perlstein.Dv RPC_ANYFD , 3668360efbdSAlfred Perlsteinit opens a file descriptor on the transport specified by 3678360efbdSAlfred Perlstein.Fa netconf . 3688360efbdSAlfred PerlsteinIf 3698360efbdSAlfred Perlstein.Fa fildes 3708360efbdSAlfred Perlsteinis 3718360efbdSAlfred Perlstein.Dv RPC_ANYFD 3728360efbdSAlfred Perlsteinand 3738360efbdSAlfred Perlstein.Fa netconf 3748360efbdSAlfred Perlsteinis 3758360efbdSAlfred Perlstein.Dv NULL , 3768360efbdSAlfred Perlsteina 3778360efbdSAlfred Perlstein.Dv RPC_UNKNOWNPROTO 3788360efbdSAlfred Perlsteinerror is set. 3798360efbdSAlfred PerlsteinIf 3808360efbdSAlfred Perlstein.Fa fildes 3818360efbdSAlfred Perlsteinis unbound, then it will attempt to bind the descriptor. 3828360efbdSAlfred PerlsteinThe user may specify the size of the buffers with the parameters 3838360efbdSAlfred Perlstein.Fa sendsz 3848360efbdSAlfred Perlsteinand 3858360efbdSAlfred Perlstein.Fa recvsz ; 3868360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults. 3878360efbdSAlfred PerlsteinDepending upon the type of the transport (connection-oriented 3888360efbdSAlfred Perlsteinor connectionless), 3898360efbdSAlfred Perlstein.Fn clnt_tli_create 3908360efbdSAlfred Perlsteincalls appropriate client creation routines. 3918360efbdSAlfred PerlsteinThis routine returns 3928360efbdSAlfred Perlstein.Dv NULL 3938360efbdSAlfred Perlsteinif it fails. 3948360efbdSAlfred PerlsteinThe 3958360efbdSAlfred Perlstein.Fn clnt_pcreateerror 3968360efbdSAlfred Perlsteinroutine can be used to print the reason for failure. 3978360efbdSAlfred PerlsteinThe remote rpcbind 3988360efbdSAlfred Perlsteinservice (see 3998360efbdSAlfred Perlstein.Xr rpcbind 8 ) 4008360efbdSAlfred Perlsteinis not consulted for the address of the remote 4018360efbdSAlfred Perlsteinservice. 4028360efbdSAlfred Perlstein.It Fn clnt_tp_create 4038360efbdSAlfred PerlsteinLike 4048360efbdSAlfred Perlstein.Fn clnt_create 4058360efbdSAlfred Perlsteinexcept 4068360efbdSAlfred Perlstein.Fn clnt_tp_create 4078360efbdSAlfred Perlsteintries only one transport specified through 4088360efbdSAlfred Perlstein.Fa netconf . 4098360efbdSAlfred Perlstein.Fn clnt_tp_create 4108360efbdSAlfred Perlsteincreates a client handle for the program 4118360efbdSAlfred Perlstein.Fa prognum , 4128360efbdSAlfred Perlsteinthe version 4138360efbdSAlfred Perlstein.Fa versnum , 4148360efbdSAlfred Perlsteinand for the transport specified by 4158360efbdSAlfred Perlstein.Fa netconf . 4168360efbdSAlfred PerlsteinDefault options are set, 4178360efbdSAlfred Perlsteinwhich can be changed using 4188360efbdSAlfred Perlstein.Fn clnt_control 4198360efbdSAlfred Perlsteincalls. 4208360efbdSAlfred PerlsteinThe remote rpcbind service on the host 4218360efbdSAlfred Perlstein.Fa host 4228360efbdSAlfred Perlsteinis consulted for the address of the remote service. 4238360efbdSAlfred PerlsteinThis routine returns 4248360efbdSAlfred Perlstein.Dv NULL 4258360efbdSAlfred Perlsteinif it fails. 4268360efbdSAlfred PerlsteinThe 4278360efbdSAlfred Perlstein.Fn clnt_pcreateerror 4288360efbdSAlfred Perlsteinroutine can be used to print the reason for failure. 4294e37855eSAlfred Perlstein.It Fn clnt_tp_create_timed 4304e37855eSAlfred PerlsteinLike 4314e37855eSAlfred Perlstein.Fn clnt_tp_create 4324e37855eSAlfred Perlsteinexcept 4334e37855eSAlfred Perlstein.Fn clnt_tp_create_timed 4344e37855eSAlfred Perlsteinhas the extra parameter 4354e37855eSAlfred Perlstein.Fa timeout 4364e37855eSAlfred Perlsteinwhich specifies the maximum time allowed for 4374e37855eSAlfred Perlsteinfor the creation attempt to succeed. 4384e37855eSAlfred PerlsteinIn all other respects, the 4394e37855eSAlfred Perlstein.Fn clnt_tp_create_timed 4404e37855eSAlfred Perlsteincall behaves exactly like the 4414e37855eSAlfred Perlstein.Fn clnt_tp_create 4424e37855eSAlfred Perlsteincall. 4438360efbdSAlfred Perlstein.It Fn clnt_vc_create 4448360efbdSAlfred PerlsteinThis routine creates an RPC 4458360efbdSAlfred Perlsteinclient for the remote program 4468360efbdSAlfred Perlstein.Fa prognum 4478360efbdSAlfred Perlsteinand version 4488360efbdSAlfred Perlstein.Fa versnum ; 4498360efbdSAlfred Perlsteinthe client uses a connection-oriented transport. 4508360efbdSAlfred PerlsteinThe remote program is located at address 4518360efbdSAlfred Perlstein.Fa svcaddr . 4528360efbdSAlfred PerlsteinThe parameter 4538360efbdSAlfred Perlstein.Fa fildes 4548360efbdSAlfred Perlsteinis an open and bound file descriptor. 4558360efbdSAlfred PerlsteinThe user may specify the size of the send and receive buffers 4568360efbdSAlfred Perlsteinwith the parameters 4578360efbdSAlfred Perlstein.Fa sendsz 4588360efbdSAlfred Perlsteinand 4598360efbdSAlfred Perlstein.Fa recvsz ; 4608360efbdSAlfred Perlsteinvalues of 0 choose suitable defaults. 4618360efbdSAlfred PerlsteinThis routine returns 4628360efbdSAlfred Perlstein.Dv NULL 4638360efbdSAlfred Perlsteinif it fails. 4648360efbdSAlfred PerlsteinThe address 4658360efbdSAlfred Perlstein.Fa svcaddr 4668360efbdSAlfred Perlsteinshould not be 4678360efbdSAlfred Perlstein.Dv NULL 4688360efbdSAlfred Perlsteinand should point to the actual address of the remote program. 4698360efbdSAlfred Perlstein.Fn clnt_vc_create 4708360efbdSAlfred Perlsteindoes not consult the remote rpcbind service for this information. 4718360efbdSAlfred Perlstein.It Xo 4728360efbdSAlfred Perlstein.Vt "struct rpc_createerr" Va rpc_createerr ; 4738360efbdSAlfred Perlstein.Xc 4748360efbdSAlfred PerlsteinA global variable whose value is set by any RPC 4758360efbdSAlfred Perlsteinclient handle creation routine 4768360efbdSAlfred Perlsteinthat fails. 4778360efbdSAlfred PerlsteinIt is used by the routine 4788360efbdSAlfred Perlstein.Fn clnt_pcreateerror 4798360efbdSAlfred Perlsteinto print the reason for the failure. 4808360efbdSAlfred Perlstein.El 4818360efbdSAlfred Perlstein.Sh SEE ALSO 4828360efbdSAlfred Perlstein.Xr rpc 3 , 4838360efbdSAlfred Perlstein.Xr rpc_clnt_auth 3 , 4848360efbdSAlfred Perlstein.Xr rpc_clnt_calls 3 , 4858360efbdSAlfred Perlstein.Xr rpcbind 8 486