NAME
rpc_gss_max_data_length(), rpc_gss_svc_max_data_length() — get maximum data length for transmission
SYNOPSIS
#include <rpc/rpcsec_gss.h>
int rpc_gss_max_data_length(
AUTH *handle,
int max_tp_unit_len);
int rpc_gss_svc_max_data_length(
struct svc_req *req,
int max_tp_unit_len);
DESCRIPTION
Performing a security transformation on a piece of data generally produces
data with a different (usually greater) length.
For some transports, such as UDP, there is a maximum length of data
which can be sent out in one data unit.
Applications need to know the maximum size a piece of data can be
before it's transformed, so that the resulting data will still "fit"
on the transport.
You can use the following two functions to determine the maximum data length
for transmission.
rpc_gss_max_data_length()
is the client-side version, and
rpc_gss_svc_max_data_length()
is the server-side version.
PARAMETERS
The following parameters can be used with these functions:
- handle
An RPC context handle of type
AUTH,
returned when a context is created (for example, by
rpc_gss_seccreate()).
Security service and QOP are bound to this handle, eliminating
any need to specify them.
- max_tp_unit_len
The maximum size of a piece of data allowed by the transport.
- req
A pointer to an RPC
svc_req
structure, containing information on the context (for example,
program number and credentials).
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
Both functions return the maximum size of untransformed data
allowed, as an
int.