* 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 * scheme/ldap.scm (ldap-init): Set initial value for ldap-session-messages
This commit is contained in:
parent
2c206b2023
commit
e27edaaed3
|
@ -28,6 +28,7 @@
|
||||||
(add-finalizer! session ldap-session-finalizer)
|
(add-finalizer! session ldap-session-finalizer)
|
||||||
(set-ldap-session-bound?! session #f)
|
(set-ldap-session-bound?! session #f)
|
||||||
(set-ldap-session-options! session options)
|
(set-ldap-session-options! session options)
|
||||||
|
(set-ldap-session-messages! session '())
|
||||||
session))))
|
session))))
|
||||||
|
|
||||||
;;; SIMPLE_BIND_S
|
;;; SIMPLE_BIND_S
|
||||||
|
@ -105,9 +106,9 @@
|
||||||
(apply values
|
(apply values
|
||||||
(if (not timeout-seconds)
|
(if (not timeout-seconds)
|
||||||
(ldap-search-internal
|
(ldap-search-internal
|
||||||
session base scope filter attr-list attributes-only?)
|
session base scope-id filter attr-list attributes-only?)
|
||||||
(ldap-search-with-timeout-internal
|
(ldap-search-with-timeout-internal
|
||||||
session base scope filter attr-list attributes-only?
|
session base scope-id filter attr-list attributes-only?
|
||||||
timeout-seconds (or timeout-microseconds 0)))))
|
timeout-seconds (or timeout-microseconds 0)))))
|
||||||
(lambda (ret-code message)
|
(lambda (ret-code message)
|
||||||
(let ((ret-obj
|
(let ((ret-obj
|
||||||
|
@ -116,7 +117,7 @@
|
||||||
(begin
|
(begin
|
||||||
(ldap-session-messages-adjoin! session message)
|
(ldap-session-messages-adjoin! session message)
|
||||||
(add-finalizer! message ldap-message-finalizer)
|
(add-finalizer! message ldap-message-finalizer)
|
||||||
message)
|
(make-ldap-entry message))
|
||||||
(raise-ldap-condition ret-obj session))))))))
|
(raise-ldap-condition ret-obj session))))))))
|
||||||
|
|
||||||
;;; GET/SET session options
|
;;; GET/SET session options
|
||||||
|
@ -156,8 +157,9 @@
|
||||||
"scsh_ldap_error_string")
|
"scsh_ldap_error_string")
|
||||||
|
|
||||||
(define (ldap-get-error-return-object session)
|
(define (ldap-get-error-return-object session)
|
||||||
(ldap-session-option session
|
(convert-ldap-return-code
|
||||||
(ldap-session-option-value error-number)))
|
(ldap-session-option
|
||||||
|
session (ldap-session-option-value error-number))))
|
||||||
|
|
||||||
;;; FIRST/NEXT_MESSAGE, COUNT_MESSAGES
|
;;; FIRST/NEXT_MESSAGE, COUNT_MESSAGES
|
||||||
|
|
||||||
|
@ -232,7 +234,7 @@
|
||||||
(call-with-values
|
(call-with-values
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(apply values
|
(apply values
|
||||||
(ldap-first-attribute-internal session entry)))
|
(ldap-first-attribute-internal session (ldap-entry-message entry))))
|
||||||
(lambda (attribute-name ber-element)
|
(lambda (attribute-name ber-element)
|
||||||
(if attribute-name
|
(if attribute-name
|
||||||
(begin
|
(begin
|
||||||
|
@ -241,7 +243,7 @@
|
||||||
(raise-ldap-condition (ldap-get-error-return-object session) session)))))
|
(raise-ldap-condition (ldap-get-error-return-object session) session)))))
|
||||||
|
|
||||||
(define (ldap-next-attribute session entry ber-element)
|
(define (ldap-next-attribute session entry ber-element)
|
||||||
(or (ldap-next-attribute-internal session entry ber-element)
|
(or (ldap-next-attribute-internal session (ldap-entry-message entry) ber-element)
|
||||||
(let ((ret-obj (ldap-get-error-return-object session)))
|
(let ((ret-obj (ldap-get-error-return-object session)))
|
||||||
(if (ldap-success? ret-obj)
|
(if (ldap-success? ret-obj)
|
||||||
#f
|
#f
|
||||||
|
|
Loading…
Reference in New Issue