scl_rpc(3scl)scl_rpc(3scl)NAMEscl_rpc - Solaris Compatibility Libraries Remote Procedure Calls (SCL
RPC) component
SYNOPSIS
cc -I/usr/opt/solcomplib/include [ flag ... ] file ... -c-o
object_file
cc [ flag ... ] object_file /usr/opt/solcomplib/shlib/librpc.so -lxti
#include <rpc/rpc.h>
#include <netconfig.h>
LIBRARY
SCL RPC library (librpc.so)
DESCRIPTION
The routines provided in the SCL RPC library allow C programs to make
procedure calls on other machines across the network.
The following table lists each of the routines provided by the Solaris
implentation of TI-RPC v2.3, along with information on whether that
routine is available under SCL RPC:
Routine SCL availability -------
----------------
auth_destroy yes; see rpc_clnt_auth(3scl)
authdes_create not implemented. See Note 1, 2, 3
authdes_getucred not implemented. See Note 2
authdes_seccreate not implemented. See Note 2
authkerb_getucred not implemented. See Note 2
authkerb_seccreate not implemented. See Note 2
authnone_create yes; see rpc_clnt_auth(3scl)
authsys_create yes; see rpc_clnt_auth(3scl)
authsys_create_default yes; see rpc_clnt_auth(3scl)
authunix_create yes; but see Note 5
authunix_create_default yes; but see Note 5
callrpc yes; but see Note 5
clnt_broadcast yes; but see Note 5
clnt_call yes, see rpc_clnt_calls(3scl)
clnt_control yes, see rpc_clnt_create(3scl)
clnt_create yes, see rpc_clnt_create(3scl)
clnt_destroy yes, see rpc_clnt_create(3scl)
clnt_dg_create yes, see rpc_clnt_create(3scl)
clnt_freeres yes, see rpc_clnt_calls(3scl)
clnt_geterr yes, see rpc_clnt_calls(3scl)
clnt_pcreateerror yes, see rpc_clnt_create(3scl)
clnt_perrno yes, see rpc_clnt_calls(3scl)
clnt_perror yes, see rpc_clnt_calls(3scl)
clnt_raw_create yes, see rpc_clnt_create(3scl)
clnt_spcreateerror yes, see rpc_clnt_create(3scl)
clnt_sperrno yes, see rpc_clnt_calls(3scl)
clnt_sperror yes, see rpc_clnt_calls(3scl)
clnt_tli_create yes, see rpc_clnt_create(3scl)
clnt_tp_create yes, see rpc_clnt_create(3scl)
clntudp_create yes; but see Note 5
clnt_vc_create yes, see rpc_clnt_create(3scl)
clntraw_create yes; but see Note 5
clnttcp_create yes; but see Note 5
clntudp_bufcreate yes; but see Note 5
get_myaddress yes; but see Note 5
getnetname not implemented; see Note 2
host2netname not implemented; see Note 2
key_decryptsession not implemented; see Note 2
key_encryptsession not implemented; see Note 2
key_gendes not implemented; see Note 2
key_setsecret not implemented; see Note 2
netname2host not implemented; see Note 2
netname2user not implemented; see Note 2
pmap_getmaps yes; but see Note 5
pmap_getport yes; but see Note 5
pmap_rmtcall yes; but see Note 5
pmap_set yes; but see Note 5
pmap_unset yes; but see Note 5
rac_drop Not implemented; see Note 4
rac_poll Not implemented; see Note 4
rac_recv Not implemented; see Note 4
rac_send Not implemented; see Note 4
registerrpc yes; but see Note 5
rpc_broadcast yes; see rpc_clnt_calls(3scl)
rpc_broadcast_exp yes; see rpc_clnt_calls(3scl)
rpc_call yes; see rpc_clnt_calls(3scl)
rpc_reg yes; see rpc_svc_reg(3scl)
svc_create yes; see rpc_svc_create(3scl)
svc_destroy yes; see rpc_svc_create(3scl)
svc_dg_create yes; see rpc_svc_create(3scl)
svc_dg_enablecache yes; see rpc_svc_calls(3scl)
svc_fd_create yes; see rpc_svc_create(3scl)
svc_freeargs yes; see rpc_svc_calls(3scl)
svc_getargs yes; see rpc_svc_calls(3scl)
svc_getcaller not implemented. See Note 1
svc_getreq yes; but see Note 5
svc_getreqset yes; see rpc_svc_calls(3scl)
svc_getrpccaller yes; see rpc_svc_calls(3scl)
svc_kerb_reg not implemented. See Note 2
svc_raw_create yes; see rpc_svc_create(3scl)
svc_reg yes; see rpc_svc_reg(3scl)
svc_register yes; but see Note 5
svc_run yes; see rpc_svc_calls(3scl)
svc_sendreply yes; see rpc_svc_calls(3scl)
svc_tli_create yes; see rpc_svc_create(3scl)
svc_tp_create yes; see rpc_svc_create(3scl)
svc_unreg yes; see rpc_svc_reg(3scl)
svc_unregister yes; but see Note 5
svc_vc_create yes; see rpc_svc_create(3scl)
svcerr_auth yes; see rpc_svc_err(3scl)
svcerr_decode yes; see rpc_svc_err(3scl)
svcerr_noproc yes; see rpc_svc_err(3scl)
svcerr_noprog yes; see rpc_svc_err(3scl)
svcerr_progvers yes; see rpc_svc_err(3scl)
svcerr_systemerr yes; see rpc_svc_err(3scl)
svcerr_weakauth yes; see rpc_svc_err(3scl)
svcfd_create yes; but see Note 5
svcraw_create yes; but see Note 5
svctcp_create yes; but see Note 5
svcudp_bufcreate yes; but see Note 5
svcudp_create yes; but see Note 5
user2netname not implemented; see Note 2
xdr_accepted_reply yes; see rpc_xdr(3scl)
xdr_authsys_parms yes; see rpc_xdr(3scl)
xdr_authunix_parms yes; but see Note 5
xdr_callhdr yes; see rpc_xdr(3scl)
xdr_callmsg yes; see rpc_xdr(3scl)
xdr_opaque_auth yes; see rpc_xdr(3scl)
xdr_rejected_reply yes; see rpc_xdr(3scl)
xdr_replymsg yes; see rpc_xdr(3scl)
xprt_register yes; see rpc_svc_reg(3scl)
xprt_unregister yes; see rpc_svc_reg(3scl)NOTES
This routine is deprecated on Solaris and has not been ported as part
of SCL RPC. SCL RPC does not implement the Secure RPC API. A stub
version of this routine is provided in the SCL RPC library; if an
application calls this routine a "not implemented" message will be
logged to the SCL log file. SCL RPC does not implement the Remote
Asyncnronous Calls (RAC) API Those routines documented in the Solaris
documentation under rpc_soc(3scl) are deprecated and have been super‐
seded by newer functions. These routines are included in the SCL
library, but their use in new applications is discouraged. See
rpc_soc(3scl) for information on replacement routines.
SCL IMPLEMENTATION NOTES
The functions inside the SCL RPC library have been ported from the TI-
RPC v2.3 Solaris code placed in the public domain by Sun. This distri‐
bution is available at ftp://playground.sun.com/pub/rpc/.
The header files containing function prototypes for these routines are
located by default beneath the /usr/opt/solcomplib/include directory.
The library librpc.so is located in the /usr/opt/solcomplib/shlib
directory by default. Refer to scl_intro(3scl) for information on how
to use a different directory.
The SCL RPC library uses transport-independent network APIs, and appli‐
cations using it must therefore link against the system library libxti,
using the option -lxti on the linker command line.
For this release of SCL RPC, only TCP and UDP transports are supported.
The TI-RPC v2.3 source code forces the use of port 111 for TCP and UDP
RPC traffic. For this release of SCL RPC, the port number used by
these transports is specified by entries for the service scl_rpcbind in
the file /etc/services. Using port number 111 for SCL RPC has not been
extensively tested and is not recommended at this time.
Certain functions and data structures in the TI-RPC library as distrib‐
uted by Sun make use of 32 bit data types which are defined as long or
some derivation of long. For the SCL RPC port on to Tru64 UNIX, these
types have been changed to int. For programs which try to use long
data types in these cases, the cc(1) compiler on Tru64 UNIX will issue
warning messages about type mismatches.
RELATED INFORMATION
Overviews: scl_intro(3scl), rpc(3), xti(7), rpc_xdr(3scl)
Files: scl_error_log(4scl), scl_netconfig(4scl), services(4)
Functions: getnetconfig(3scl), rpc_clnt_auth(3scl),
rpc_clnt_calls(3scl), rpc_clnt_create(3scl), rpc_soc(3scl),
rpc_svc_create(3scl), rpc_svc_err(3scl), rpc_svc_reg(3scl)
Utilities: cc(1), rpcbind(8scl), rpcgen(1scl), rpcinfo(8scl)
Solaris man pages: rpc(3N), getnetconfig(3N), getnetpath(3N), ker‐
beros_rpc(3N), rpc_clnt_auth(3N), rpc_clnt_calls(3N), rpc_clnt_cre‐
ate(3N), rpc_svc_calls(3N), rpc_svc_create(3N), rpc_svc_err(3N),
rpc_svc_reg(3N), rpc_xdr(3N), rpcbind(3N), secure_rpc(3N), xdr(3N),
netconfig(4), environ(5)
Manual: Solaris Compatibility Library User's Guide
scl_rpc(3scl)