HPlogo HP-UX Reference > R

rpc_control(3N)

HP-UX 11i Version 2: December 2007 Update
» 

Technical documentation

 » Table of Contents

 » Index

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 RPC_SVC_MT_AUTO Automatic MT mode

Unless the application sets the Automatic or 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 rpc_svc_create(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 VALUE

This routine returns TRUE if the operation was successful, and FALSE otherwise.