HP-UX Reference (11i v1 05/09) - 3 Library Functions N-Z (vol 7)

r
rpc_control(3N) rpc_control(3N)
NAME
rpc_control() - library routine for manipulating global RPC attributes for client and server applications
SYNOPSIS
bool_t rpc_control(int
op, void *info);
DESCRIPTION
This RPC library routine allows applications to set and modify global RPC attributes that apply to clients as
well as servers. At present, it supports only server side operations. op indicates the type of operation, and
info is a pointer to the operation specific information. The supported values of op and their argument
types, and what they do are:
RPC_SVC_MTMODE_SET int * set multithread mode
RPC_SVC_MTMODE_GET int * get multithread mode
RPC_SVC_CONNMAXREC_SET int * set non-blocking max rec size
RPC_SVC_CONNMAXREC_GET int * get non-blocking max rec size
There are three multithread (MT) modes. These are:
RPC_SVC_MT_NONE Single threaded mode (default)
RPC_SVC_MT_USER User MT mode
Unless the application sets the User MT modes, it will stay in the default (single threaded) mode. Once a
mode is set, it cannot be changed.
Connection oriented RPC transports read RPC requests in blocking mode by default. Thus, they may be
adversely affected by network delays and broken clients.
RPC_SVC_CONNMAXREC_SET
enables non-
blocking mode and establishes the maximum record size (in bytes) for RPC requests; RPC responses are not
affected. Buffer space is allocated as required, up to the specified maximum. If the specified maximum is
greater than
RPC_MAXDATASIZE
, then buffer space is initially allocated for RPC_MAXDATASIZE and
can grow up to the specified maximum. info is a pointer to an argument of type
int. If the value pointed
to by info is -1, then the maximum record size is set to
RPC_MAXDATASIZE
.
The value established by
RPC_SVC_CONNMAXREC_SET
is used when a connection is created, and it
remains in effect for that connection until it is closed. To change the value for existing connections on a
per-connection basis, see svc_control(3N).
RPC_SVC_CONNMAXREC_GET
retrieves the current maximum record size. A zero value means that no
maximum is in effect and that the connections are in blocking mode. info is a pointer to an argument of
type
int.
Connectionless RPC transports ignore
RPC_SVC_CONNMAXREC_SET and
RPC_SVC_CONNMAXREC_GET
.
MULTITHREAD USAGE
Thread Safe: Yes
Cancel Safe: Yes
Fork Safe: No
Async-cancel Safe: No
Async-signal Safe: No
These functions can be called safely in a multithreaded environment. They may be cancellation points in
that they call functions that are cancel points.
In a multithreaded environment, these functions are not safe to be called by a child process after
fork()
and before exec(). These functions should not be called by a multithreaded application that supports
asynchronous cancellation or asynchronous signals.
RETURN VALUES
This routine returns TRUE if the operation was successful, and FALSE otherwise.
SEE ALSO
rpcbind(1M), rpc(3N), rpc_svc_calls(3N).
HP-UX 11i Version 1: September 2005 1 Hewlett-Packard Company Section 3829