RPC_GSS_SET_CALLBACK(3NSL) Networking Services Library Functions
NAME
rpc_gss_set_callback - specify callback for context
SYNOPSIS
#include <rpc/rpcsec_gss.h>
bool_t rpc_gss_set_callback(
struct rpc_gss_callback_t *cb);
DESCRIPTION
A server may want to specify a callback routine so that it knows when
a context gets first used. This user-defined callback may be
specified through the
rpc_gss_set_callback() routine. The callback
routine is invoked the first time a context is used for data
exchanges, after the context is established for the specified program
and version.
The user-defined callback routine should take the following form:
bool_t callback(struct svc_req
*req, gss_cred_id_t
deleg,
gss_ctx_id_t
gss_context, rpc_gss_lock_t
*lock, void
**cookie);
PARAMETERS
rpc_gss_set_callback() takes one argument: a pointer to a
rpc_gss_callback_t structure. This structure contains the RPC
program and version number as well as a pointer to a user-defined
callback() routine. (For a description of
rpc_gss_callback_t and
other
RPCSEC_GSS data types, see the
rpcsec_gss(3NSL) man page.)
The user-defined
callback() routine itself takes the following
arguments:
req Pointer to the received service request.
svc_req is
an RPC structure containing information on the
context of an RPC invocation, such as program,
version, and transport information.
deleg Delegated credentials, if any. (See
NOTES, below.)
gss_context GSS context (allows server to do GSS operations on
the context to test for acceptance criteria). See
NOTES, below.
lock This parameter is used to enforce a particular QOP
and service for a session. This parameter points to
a
RPCSEC_GSS rpc_gss_lock_t structure. When the
callback is invoked, the
rpc_gss_lock_t.locked field
is set to TRUE, thus locking the context. A locked
context will reject all requests having different
values for QOP or service than those specified by the
raw_cred field of the
rpc_gss_lock_t structure.
cookie A four-byte quantity that an application may use in
any manner it wants to -- RPC does not interpret it.
(For example, the cookie could be a pointer or index
to a structure that represents a context initiator.)
The cookie is returned, along with the caller's
credentials, with each invocation of
rpc_gss_getcred().
RETURN VALUES
rpc_gss_set_callback() returns TRUE if the use of the context is
accepted; false otherwise.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+---------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+-----------------+
|MT-Level | MT-Safe |
+---------------+-----------------+
SEE ALSO
rpc(3NSL),
rpc_gss_getcred(3NSL),
rpcsec_gss(3NSL),
attributes(7) ONC+ Developer's Guide Linn, J.
RFC 2078, Generic Security Service Application Program Interface, Version 2. Network Working Group. January 1997.
NOTES
If a server does not specify a callback, all incoming contexts will
be accepted.
February 5, 2002 RPC_GSS_SET_CALLBACK(3NSL)