scsh-ldap/c/scsh-ldap.h

127 lines
4.6 KiB
C

#include "config.h"
#include <stdlib.h>
/* time.h */
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#include "errno.h"
#include "scheme48.h"
#include "ffi-tools.h"
#include <ldap.h>
#include <lber.h>
static s48_value scsh_ldap_record_type = S48_FALSE;
static s48_value scsh_ldapmessage_record_type = S48_FALSE;
static s48_value scsh_ldapmod_record_type = S48_FALSE;
static s48_value scsh_ldapapiinfo_record_type = S48_FALSE;
static s48_value scsh_berelement_record_type = S48_FALSE;
static s48_value scsh_ldapcontrol_record_type = S48_FALSE;
FFIT_MAKE_ENTER_RECORD_PROTOTYPE(scsh_enter_ldap, LDAP*);
#define scsh_extract_ldap(x) \
((LDAP *) \
s48_extract_integer(S48_RECORD_REF(x, 0)))
FFIT_MAKE_ENTER_RECORD_PROTOTYPE(scsh_enter_ldapmessage, LDAPMessage*);
#define scsh_extract_ldapmessage(x) \
((LDAPMessage *) \
s48_extract_integer(S48_RECORD_REF(x, 0)))
FFIT_MAKE_ENTER_RECORD_PROTOTYPE(scsh_enter_ldapmod, LDAPMod*);
#define scsh_extract_ldapmod(x) \
((LDAPMod *) \
s48_extract_integer(S48_RECORD_REF(x, 0)))
#define SCSH_LDAP_MOD_RECFIELD_OP 0
#define SCSH_LDAP_MOD_RECFIELD_TYPE 1
#define SCSH_LDAP_MOD_RECFIELD_MODS 2
FFIT_MAKE_ENTER_RECORD_PROTOTYPE(scsh_enter_ldapapiinfo, LDAPAPIInfo*);
#define scsh_extract_ldapapiinfo(x) \
((LDAPAPIInfo *) \
s48_extract_integer(S48_RECORD_REF(x, 0)))
FFIT_MAKE_ENTER_RECORD_PROTOTYPE(scsh_enter_berelement, BerElement*);
#define scsh_extract_berelement(x) \
((BerElement *) \
s48_extract_integer(S48_RECORD_REF(x, 0)))
FFIT_MAKE_ENTER_RECORD_PROTOTYPE(scsh_enter_ldapcontrol_record_type, LDAPControl*);
#define scsh_extract_ldapcontrol(x) \
((LDAPControl *) \
s48_extract_integer(S48_RECORD_REF(x, 0)))
/* conditions */
static s48_value condition_ldap_memory_alloc_error = S48_FALSE;
static s48_value condition_ldap_feature_not_supported = S48_FALSE;
static s48_value condition_ldap_read_only_option = S48_FALSE;
#define RAISE_MEMORY_ALLOC_ERROR(FUNNAME) \
s48_call_scheme(S48_SHARED_BINDING_REF(raise_ldap_memory_alloc_error), \
1, s48_enter_string(FUNNAME));
/* prototypes */
/* function body generated by ffi-tools */
void scsh_ldap_enter_ldap_constants(void);
/* function body generated by ffi-tools */
void scsh_ldap_gc_protect_globals(void);
LDAPMod** scsh_extract_ldapmod_vector(s48_value);
void raise_ldap_memory_alloc_error(void);
void raise_ldap_feature_not_supported(void);
void raise_ldap_read_only_option(void);
s48_value scsh_ldap_init(s48_value, s48_value);
s48_value scsh_ldap_simple_bind_s(s48_value, s48_value, s48_value);
s48_value scsh_ldap_sasl_bind_s(s48_value, s48_value, s48_value, s48_value,
s48_value, s48_value, s48_value);
s48_value scsh_ldap_unbind_s(s48_value);
s48_value scsh_ldap_error_string(s48_value);
s48_value scsh_ldap_result_error(s48_value, s48_value);
s48_value scsh_ldap_memfree(s48_value);
s48_value scsh_ldap_msgfree(s48_value);
s48_value scsh_ldap_search_s(s48_value, s48_value, s48_value, s48_value,
s48_value, s48_value);
s48_value scsh_ldap_search_st(s48_value, s48_value, s48_value, s48_value,
s48_value, s48_value, s48_value, s48_value);
s48_value scsh_ldap_compare_s(s48_value, s48_value, s48_value, s48_value);
s48_value scsh_ldap_count_entries(s48_value, s48_value);
s48_value scsh_ldap_first_entry(s48_value, s48_value);
s48_value scsh_ldap_next_entry(s48_value, s48_value);
s48_value scsh_ldap_first_message(s48_value, s48_value);
s48_value scsh_ldap_next_message(s48_value, s48_value);
s48_value scsh_ldap_count_messages(s48_value, s48_value);
s48_value scsh_ldap_first_reference(s48_value, s48_value);
s48_value scsh_ldap_next_reference(s48_value, s48_value);
s48_value scsh_ldap_count_references(s48_value, s48_value);
s48_value scsh_ldap_msgtype(s48_value);
s48_value scsh_ldap_msgid(s48_value);
s48_value scsh_ldap_get_dn(s48_value, s48_value);
s48_value scsh_ldap_explode_dn(s48_value, s48_value);
s48_value scsh_ldap_explode_rdn(s48_value, s48_value);
s48_value scsh_ldap_dn2ufn(s48_value);
s48_value scsh_ldap_get_values(s48_value, s48_value, s48_value);
s48_value scsh_ldap_modify(s48_value, s48_value, s48_value);
s48_value scsh_ldap_add(s48_value, s48_value, s48_value);
s48_value scsh_ldap_delete(s48_value, s48_value);
s48_value scsh_ldap_abandon(s48_value, s48_value);
s48_value scsh_ldap_get_set_option(s48_value, s48_value, s48_value, s48_value);
LDAPMod* scsh_create_ldapmod(s48_value ldapmod);
LDAPMod** scsh_extract_ldapmod_list(s48_value);
void scsh_free_ldapmod_array(LDAPMod **);
s48_value scsh_enter_BerValue_as_bytevector(BerValue* bv);
BerValue* scsh_extract_bytevector_as_BerValue(s48_value bytevector);
void scsh_init_ldap_bindings(void);