The FreeRADIUS server
$Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
#include <freeradius-devel/ldap/base.h>
#include <freeradius-devel/util/debug.h>
#include <sasl/sasl.h>
Go to the source code of this file.
Functions | |
static void | _ldap_sasl_bind_io_error (UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED int flags, UNUSED int fd_errno, void *uctx) |
Error reading from or writing to the file descriptor. More... | |
static void | _ldap_sasl_bind_io_read (fr_event_list_t *el, int fd, UNUSED int flags, void *uctx) |
Parse a sasl bind response from a server. More... | |
static USES_APPLE_DEPRECATED_API void | _ldap_sasl_bind_io_write (fr_event_list_t *el, int fd, UNUSED int flags, void *uctx) |
Progress an interactive SASL bind. More... | |
static int | _sasl_ctx_free (fr_ldap_sasl_ctx_t *sasl_ctx) |
Ensure any outstanding messages are freed. More... | |
static int | _sasl_interact (UNUSED LDAP *handle, UNUSED unsigned flags, void *uctx, void *sasl_callbacks) |
Callback for fr_ldap_sasl_interactive_bind. More... | |
int | fr_ldap_sasl_bind_async (fr_ldap_connection_t *c, char const *mechs, char const *identity, char const *password, char const *proxy, char const *realm, LDAPControl **serverctrls, LDAPControl **clientctrls) |
Install I/O handlers for the bind operation. More... | |
unlang_action_t | fr_ldap_sasl_bind_auth_async (request_t *request, fr_ldap_thread_t *thread, char const *mechs, char const *identity, char const *password, char const *proxy, char const *realm) |
Initiate an async SASL LDAP bind for authentication. More... | |
int | fr_ldap_sasl_bind_auth_send (fr_ldap_sasl_ctx_t *sasl_ctx, int *msgid, fr_ldap_connection_t *ldap_conn) |
Send a SASL LDAP auth bind. More... | |
static void | ldap_async_sasl_bind_auth_cancel (request_t *request, UNUSED fr_signal_t action, void *uctx) |
Signal an outstanding SASL LDAP bind to cancel. More... | |
static unlang_action_t | ldap_async_sasl_bind_auth_results (rlm_rcode_t *p_result, UNUSED int *priority, request_t *request, void *uctx) |
Handle the return code from parsed LDAP results to set the module rcode. More... | |
static unlang_action_t | ldap_async_sasl_bind_auth_start (UNUSED rlm_rcode_t *p_result, UNUSED int *priority, UNUSED request_t *request, UNUSED void *uctx) |
Yield interpreter after enqueueing sasl auth bind. More... | |
|
static |
Error reading from or writing to the file descriptor.
[in] | el | the event occurred in. |
[in] | fd | the event occurred on. |
[in] | flags | from kevent. |
[in] | fd_errno | The error that occurred. |
[in] | uctx | Connection config and handle. |
Definition at line 42 of file sasl.c.
|
static |
Parse a sasl bind response from a server.
[in] | el | the event occurred in. |
[in] | fd | the event occurred on. |
[in] | flags | from kevent. |
[in] | uctx | bind_ctx containing credentials, and connection config/handle. |
Definition at line 122 of file sasl.c.
|
static |
|
static |
|
static |
Callback for fr_ldap_sasl_interactive_bind.
[in] | handle | used for the SASL bind. |
[in] | flags | data as provided to fr_ldap_sasl_interactive_bind. |
[in] | uctx | Our context data, containing the identity, password, realm and various other things. |
[in] | sasl_callbacks | Array of challenges to provide responses for. |
Definition at line 60 of file sasl.c.
int fr_ldap_sasl_bind_async | ( | fr_ldap_connection_t * | c, |
char const * | mechs, | ||
char const * | identity, | ||
char const * | password, | ||
char const * | proxy, | ||
char const * | realm, | ||
LDAPControl ** | serverctrls, | ||
LDAPControl ** | clientctrls | ||
) |
Install I/O handlers for the bind operation.
[in] | c | connection to StartTLS on. |
[in] | mechs | Space delimited list of sasl mechs to try. |
[in] | identity | SASL identity to bind with. |
[in] | password | Password credential to pass to SASL. |
[in] | proxy | identity. May be NULL. |
[in] | realm | SASL realm. |
[in] | serverctrls | Extra controls to pass to the server. |
[in] | clientctrls | Extra controls to pass to libldap. |
Definition at line 308 of file sasl.c.
unlang_action_t fr_ldap_sasl_bind_auth_async | ( | request_t * | request, |
fr_ldap_thread_t * | thread, | ||
char const * | mechs, | ||
char const * | identity, | ||
char const * | password, | ||
char const * | proxy, | ||
char const * | realm | ||
) |
Initiate an async SASL LDAP bind for authentication.
[in] | request | this bind relates to. |
[in] | thread | whose connection the bind should be performed on. |
[in] | mechs | SASL mechanisms to use. |
[in] | identity | Identity to bind with. |
[in] | password | Password to bind with. |
[in] | proxy | Identity to proxy. |
[in] | realm | SASL realm if applicable. |
Definition at line 504 of file sasl.c.
int fr_ldap_sasl_bind_auth_send | ( | fr_ldap_sasl_ctx_t * | sasl_ctx, |
int * | msgid, | ||
fr_ldap_connection_t * | ldap_conn | ||
) |
Send a SASL LDAP auth bind.
Shares the same callback as SASL admin binds
[in] | sasl_ctx | containing SASL parameters / state for the bind. |
[out] | msgid | where to write the LDAP message ID. |
[in] | ldap_conn | on which the message should be sent. |
Definition at line 367 of file sasl.c.
|
static |
|
static |
Handle the return code from parsed LDAP results to set the module rcode.
[out] | p_result | Where to write return code. |
[in] | priority | Unused. |
[in] | request | being processed. |
[in] | uctx | bind auth ctx. |
Definition at line 408 of file sasl.c.
|
static |