PreviousNext

rpc_server_use_protseq(3rpc)

Tells the RPC runtime to use the specified protocol sequence for receiving remote procedure calls

Used by server applications.

Synopsis

#include <dce/rpc.h>

void rpc_server_use_protseq(

unsigned_char_t *protseq,

unsigned32 max_call_requests,

unsigned32 *status);

Parameters

Input

protseq
Specifies a string identifier for the protocol sequence to register with the RPC runtime. (For a list of string identifiers, see the table of valid protocol sequences in rpc_intro(3rpc).)

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, rpc_server_listen( ) 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_protseq( ) routine registers a single protocol sequence with the RPC runtime. A server must register at least one protocol sequence with the RPC runtime to receive remote procedure call requests. A server can call this routine multiple times to register additional protocol sequences.

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.

A server calls rpc_server_use_all_protseqs( ) to register all protocol sequences.

The explanation of the rpc_server_use_all_protseqs( ) routine contains a list of the routines a server typically calls after calling this routine. 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_invalid_rpc_protseq
Invalid protocol sequence.

rpc_s_max_descs_exceeded
Exceeded maximum number of network descriptors.

rpc_s_protseq_not_supported
Protocol sequence not supported on this host.

Related Information
Functions: rpc_binding_vector_free(3rpc)

rpc_ep_register(3rpc)

rpc_ep_register_no_replace(3rpc)

rpc_network_is_protseq_valid(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(3rpc)

rpc_server_use_all_protseqs_if(3rpc)

rpc_server_use_protseq_ep(3rpc)

rpc_server_use_protseq_if(3rpc)