NAME
rpc_gss_getcred() — get credentials of client
SYNOPSIS
#include <rpc/rpcsec_gss.h>
bool_t rpc_gss_getcred(
struct svc_req *req,
rpc_gss_rawcred_t **rcred,
rpc_gss_ucred **ucred,
void **cookie);
DESCRIPTION
rpc_gss_getcred()
is used by a server to fetch the credentials of a client.
These credentials may either be network credentials (in the form of a
rpc_gss_rawcred_t
structure) or UNIX credentials.
For more information on
RPCSEC_GSS
data types, see the
rpcsec_gss(3N)
manpage.
PARAMETERS
Essentially,
rpc_gss_getcred()
passes a pointer to a request
(svc_req)
as well as pointers to two credential structures and a user-defined
cookie.
If
rpc_gss_getcred()
is successful, at least one credential structure is "filled
out" with values, as is, optionally, the cookie.
- 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.
- rcred
A pointer to an
rpc_gss_rawcred_t
structure pointer.
This structure contains the version number of the
RPCSEC_GSS
protocol being used; the security mechanism and QOPs for this session
(as strings); principal names for the client (as a
rpc_gss_principal_t
structure) and server (as a string); and the security service
(integrity, privacy, etc., as an
enum).
If an application is not interested in these values, it may pass NULL
for this parameter.
- ucred
The caller's UNIX credentials, in the form of a pointer to
a pointer to a
rpc_gss_ucred_t
structure, which includes the client's uid and gids.
If an application is not interested in these values, it may pass NULL
for this parameter.
- cookie
A four-byte quantity that an application may use in any manner
it wants to, because RPC does not interpret it.
(For example, a cookie may be a pointer or index to a structure that
represents a context initiator.)
See the
rpc_gss_set_callback(3N)
manpage.
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
rpc_gss_getcred()
returns
TRUE
if it is successful; otherwise, use
rpc_gss_get_error()
to get the error associated with the failure.