26 #include <freeradius-devel/io/master.h>
27 #include <freeradius-devel/ldap/base.h>
28 #include <freeradius-devel/ldap/sync.h>
Public structure describing an I/O path for a protocol.
Describes a new application (protocol)
A section grouping multiple CONF_PAIR.
Tracks the state of a libldap connection handle.
static const conf_parser_t config[]
bool changes_only
Do we only want changes, or do we want a full directory load.
char const * filter
Filter to retrieve only user objects.
CONF_SECTION * server_cs
server CS for this listener.
sync_config_t ** sync_config
DNs and filters to monitor.
int(* sync_msg_t)(sync_state_t *sync, LDAPMessage *msg, LDAPControl **ctrls)
Received an LDAP message related to a sync.
sync_init_t init
Called to initialise a new search.
uint32_t max_packet_size
for message ring buffer
int ldap_sync_conf_attr_add(sync_config_t *config, char const *attr)
Check if an attribute is in the config list and add if not present.
CONF_SECTION * app_io_conf
Easy access to the app_io's configuration.
fr_dict_t * dict
root dictionary
char const * scope_str
Scope (sub, one, base).
char const * root_dn
The root DN for the directory.
sync_op_t
Operations to perform on entries.
@ SYNC_OP_ADD
Entry should be added to our copy.
@ SYNC_OP_MODIFY
Entry should be updated in our copy.
@ SYNC_OP_INVALID
Invalid sync operation.
@ SYNC_OP_DELETE
Entry should be deleted from our copy.
@ SYNC_OP_PRESENT
Entry is present and unchanged on the server.
fr_event_timer_t const * ev
Event for retrying cookie load.
char const * base_dn
DN to search for users under.
sync_msg_t entry
Called when we receive a searchEntry message.
CONF_SECTION * cs
my configuration.
sync_msg_t refresh
Called when we receive a eSyncRefreshRequired code.
int scope
Scope as its libldap value.
CONF_SECTION * cs
Config section where this sync was defined.
char const ** attrs
Zero terminated attribute array.
sync_msg_t intermediate
Called when we receive a syncIntermediate message.
map_list_t entry_map
How to convert attributes in entries to FreeRADIUS attributes.
int(* sync_init_t)(fr_ldap_connection_t *conn, size_t sync_no, proto_ldap_sync_t const *inst, uint8_t const *cookie)
Allocate and initialise a sync query.
sync_msg_t reference
Called when we receive a searchReference message.
uint32_t num_messages
for message ring buffer
void * app_io_instance
Easy access to the app_io_instance.
fr_pair_list_t sync_pairs
Pairs representing the sync config sent to the worker with each request.
module_instance_t * io_submodule
As provided by the transport_parse callback.
uint32_t priority
for packet processing.
fr_time_delta_t cookie_interval
Interval between storing cookies.
fr_listen_t * listen
The listener structure which describes the I/O path.
uint32_t cookie_changes
Number of LDAP changes to process between each cookie store operation.
fr_time_delta_t retry_interval
Interval between retrying failed change packets.
void * user_ctx
User ctx to pass to the callbacks.
fr_app_io_t const * app_io
Easy access to the app_io handle.
An instance of a proto_ldap_sync listen section.
Areas of the directory to receive notifications for.
uint8_t * cookie
Opaque cookie, used to resume synchronisation.
size_t sync_no
Array position of config for this sync.
fr_ldap_connection_t * conn
Connection the sync is running on.
State of an individual sync.
eap_aka_sim_process_conf_t * inst
A time delta, a difference in time measured in nanoseconds.