The FreeRADIUS server
$Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
|
Start TLS asynchronously. More...
#include <freeradius-devel/ldap/base.h>
#include <freeradius-devel/util/debug.h>
Go to the source code of this file.
Data Structures | |
struct | fr_ldap_start_tls_ctx_t |
Holds arguments for the start_tls operation. More... | |
Functions | |
static void | _ldap_start_tls_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_start_tls_io_read (UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED int flags, void *uctx) |
Event handler for the response to the StartTLS extended operation. More... | |
static void | _ldap_start_tls_io_write (fr_event_list_t *el, int fd, UNUSED int flags, void *uctx) |
Send an extended operation to the LDAP server, requesting a transition to TLS. More... | |
int | fr_ldap_start_tls_async (fr_ldap_connection_t *c, LDAPControl **serverctrls, LDAPControl **clientctrls) |
Install I/O handlers for Start TLS negotiation. More... | |
Start TLS asynchronously.
Definition in file start_tls.c.
struct fr_ldap_start_tls_ctx_t |
Holds arguments for the start_tls operation.
Definition at line 34 of file start_tls.c.
Data Fields | ||
---|---|---|
fr_ldap_connection_t * | c | The current connection. |
LDAPControl ** | clientctrls | Controls to pass to the client (library). |
int | msgid | |
LDAPControl ** | serverctrls | Controls to pass to the server. |
|
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 50 of file start_tls.c.
|
static |
Event handler for the response to the StartTLS extended operation.
Call flow is:
So unfortunately ldap_install_tls is blocking... We need to send patches to OpenLDAP in order to fix that.
[in] | el | the event occurred in. |
[in] | fd | the event occurred on. |
[in] | flags | from kevent. |
[in] | uctx | Connection config and handle. |
Definition at line 96 of file start_tls.c.
|
static |
Send an extended operation to the LDAP server, requesting a transition to TLS.
Behind the scenes ldap_start_tls calls:
ldap_extended_operation(ld, LDAP_EXOP_START_TLS, NULL, serverctrls, clientctrls, msgidp);
[in] | el | the event occurred in. |
[in] | fd | the event occurred on. |
[in] | flags | from kevent. |
[in] | uctx | Connection config and handle. |
Definition at line 149 of file start_tls.c.
int fr_ldap_start_tls_async | ( | fr_ldap_connection_t * | c, |
LDAPControl ** | serverctrls, | ||
LDAPControl ** | clientctrls | ||
) |
Install I/O handlers for Start TLS negotiation.
[in] | c | connection to StartTLS on. |
[in] | serverctrls | Extra controls to pass to the server. |
[in] | clientctrls | Extra controls to pass to libldap. |
Definition at line 222 of file start_tls.c.