2004-02-13 Eric Knauel * c/ldap.c (scsh_ldap_first_attribute): (scsh_ldap_next_attribute): free memory for return values * scheme/ldap.scm: The big "ldap-session as fluid"-surgery * etc/sample.scm: Use ldap-session as fluid * scheme/interfaces.scm (ldap-handle-types-interface): export new equal? functions * scheme/types.scm (ldap-session=?): new function (ldap-message=?): ditto (ldap-entry=?): ditto 2004-02-12 Eric Knauel * etc/sample.scm: added sample and test code * scheme/interfaces.scm (ldap-low-interface): renamed ldap-message-dn to ldap-entry-dn * scheme/ldap.scm (ldap-get-values): unpack ldap-entry (ldap-count-entries): ditto (ldap-first-entry): ditto (ldap-next-entry): ditto (ldap-get-values): if ldap_get_values() returns NULL, that's not necessarily an error (ldap-entry-dn): renamed ldap-message-dn to ldap-entry-dn * scheme/types.scm (ldap-entry): new type * scheme/ldap.scm (ldap-search): unpack finite type before calling C code (ldap-search): make return value of type ldap-entry (ldap-get-error-return-object): convert code to finite type (ldap-first-attribute): unwrap ldap-entry (ldap-next-attribute session): unwrap ldap-entry * c/ldap.c (scsh_ldap_next_attribute): don't confuse test for NULL (scsh_ldap_search_s): fixed pointer type (scsh_ldap_search_st): ditto (scsh_ldap_next_attribute): fixed test for NULL (scsh_ldap_get_set_option): dispatch by value type, added string types * scheme/interfaces.scm (ldap-handle-types-interface): export set-ldap-session-messages! * scheme/ldap.scm (ldap-init): Set initial value for ldap-session-messages * c/ldap.c (scsh_ldap_search_st): arguments base and filter may be NULL, fixed bug in pointer handling * ffi-tools/ffi-tools.c (ffit_extract_list_of_strings): added missing S48_GC_UNPROTECT() * pkg-def.scm ("ldap"): don't build static libs * ffi-tools/ffi-tools.c (ffit_extract_list_of_strings): fixed wrong pointer handling * c/ldap.c (scsh_ldap_unbind_s): got rid of superfluos type check (scsh_ldap_abandon): ditto (scsh_ldap_add): ditto (scsh_ldap_compare_s): ditto (scsh_ldap_count_entries): ditto (scsh_ldap_count_messages): ditto (scsh_ldap_count_references): ditto (scsh_ldap_delete): ditto (scsh_ldap_first_entry): ditto (scsh_ldap_first_message): ditto (scsh_ldap_first_reference): ditto (scsh_ldap_get_dn): ditto (scsh_ldap_get_values): ditto (scsh_ldap_memfree): ditto (scsh_ldap_modify): ditto (scsh_ldap_msgfree): ditto (scsh_ldap_msgid): ditto (scsh_ldap_msgtype): ditto (scsh_ldap_next_entry): ditto (scsh_ldap_next_message): ditto (scsh_ldap_next_reference): ditto (scsh_ldap_search_s): ditto, and filter may be NULL (scsh_ldap_search_st): ditto 2004-02-11 Eric Knauel * (scsh_ldap_get_set_option): allocate buffer for outvalues * c/ldap.c (scsh_ldap_simple_bind_s): if user/password is false connect as "nobody" * ffi-tools/ffi-tools.c (call_scheme_boolean_p): use S48_SHARED_BINDING_REF (call_scheme_integer_p): ditto (length_scheme_list): ditto * ffi-tools/ffi-tools-rts.scm (ffi-tools-rts): added missing define-exported-bindings * scheme/ldap.scm (ldap-init): make port optional argument, accept list of hosts as argument. (ldap-simple-bind-as-nobody): new function * scheme/interfaces.scm (ldap-low-interface): added ldap-simple-bind-as-nobody to exports