PreviousNext

rpc_server_use_all_protseqs(3rpc)

Tells the RPC runtime to use all supported protocol sequences for receiving remote procedure calls

Used by server applications.

Synopsis

#include <dce/rpc.h>

void rpc_server_use_all_protseqs(

unsigned32 max_call_requests,

unsigned32 *status);

Parameters

Input

max_call_requests
Specifies the maximum number of concurrent remote procedure call requests that the server can accept.

The RPC runtime guarantees that the server can accept at least this number of concurrent call requests. The actual number of these requests can be greater than the value of max_call_requests and can vary for each protocol sequence.

Use the value rpc_c_protseq_max_reqs_default to specify the default parameter value.

Note that in this version of DCE RPC, any number you specify is replaced by the default value.

Also, the rpc_server_listen( ) routine limits (according to its max_calls_exec parameter) the amount of concurrent remote procedure call execution. See rpc_server_listen(3rpc) for more information.

Output

status
Returns the status code from this routine. This status code indicates whether the routine completed successfully or, if not, why not.

Description
The rpc_server_use_all_protseqs( ) routine registers all supported protocol sequences with the RPC runtime. A server must register at least one protocol sequence with the RPC runtime to receive remote procedure call requests.

For each protocol sequence registered by a server, the RPC runtime creates one or more binding handles. Each binding handle contains a dynamic endpoint that the RPC runtime and operating system generated.

The max_call_requests parameter allows you to specify the maximum number of concurrent remote procedure call requests the server handles.

After registering protocol sequences, a server typically calls the following routines:

rpc_server_inq_bindings( ) Obtains a vector containing all of the server's binding handles.
rpc_ep_register( ) Registers the binding handles with the local endpoint map.
rpc_ep_register_no_replace( ) Registers the binding handles with the local endpoint map.
rpc_ns_binding_export( ) Places the binding handles in the name service database for access by any client.
rpc_binding_vector_free( ) Frees the vector of server binding handles.
rpc_server_register_if( ) Registers with the RPC runtime those interfaces that the server offers.
rpc_server_listen( ) Enables the reception of remote procedure calls.
To register protocol sequences selectively, a server calls one of the following routines:

rpc_server_use_protseq( ) rpc_server_use_all_protseqs_if( )
rpc_server_use_protseq_if( ) rpc_server_use_protseq_ep( )

For an explanation of how a server can establish a client/server relationship without using the local endpoint map or the name service database, see the information on string bindings in rpc_intro(3rpc).

Return Values
No value is returned.

Errors

The following describes a partial list of errors that might be returned. Refer to the OSF DCE Problem Determination Guide for complete descriptions of all error messages.

rpc_s_ok
Success.

rpc_s_cant_create_socket
Cannot create socket.

rpc_s_max_descs_exceeded
Exceeded maximum number of network descriptors.

rpc_s_no_protseqs
No supported protocol sequences.

Related Information
Functions: rpc_binding_from_string_binding(3rpc)

rpc_binding_to_string_binding(3rpc)

rpc_binding_vector_free(3rpc)

rpc_ep_register(3rpc)

rpc_ep_register_no_replace(3rpc)

rpc_ns_binding_export(3rpc)

rpc_server_inq_bindings(3rpc)

rpc_server_listen(3rpc)

rpc_server_register_if(3rpc)

rpc_server_use_all_protseqs_if(3rpc)

rpc_server_use_protseq(3rpc)

rpc_server_use_protseq_ep(3rpc)

rpc_server_use_protseq_if(3rpc)