Read/write LDIF, LDAP search strings and related data formats. (RFCs 2849, 4514, 2254)


Irregex, ports, uri-common, base64.


[procedure] (ldif-dn LDIF) -> *

Returns the distinguished name (as S-expression) from LDIF object.

[procedure] (ldif-attributes LDIF) -> *

Returns the attributes (as list of S-expression) from LDIF object.

[procedure] (make-ldif DN ATTRIBUTES) -> LDIF

Create an ldif record from DN and ATTRIBUTES.

[procedure] (read [PORT])

Reads a LDIF record from PORT (default: current-input-port). Returns the ldif record or an eof-object.

[procedure] (write LDIF [PORT])

Writes the LDIF object to PORT (default: current-output-port).

[procedure] (rfc4514-read STRING) -> SEXPR

Parse STRING as RDN.

[procedure] (rfc4514-write SEXPR [PORT])

Write SEXPR as RDN.

[procedure] (write-ldap-filter OBJ [PORT])

Write OBJ as LDAP filter (RFC 2254) to PORT (default current-output-port).

[procedure] (ldap-filter-string OBJ) -> STRING

Returns a string with the output of write-ldap-filter applied to OBJ.


(use (prefix ldif-sexpr ldif:))

(assert (equal? (ldif:ldif-attributes (with-input-from-string "dn: CN=foobar\nfoo: bar" ldif:read))
	 '(("foo" "bar"))))

(assert (equal? (ldif:ldap-filter-string
		 '(and (exists name) (= foo "bar")))

About this egg


Jörg F. Wittenberger

Source Code

The ldif-sexpr egg repository is maintained on github.

Version History

0.3.1: Ported to CHICKEN 5

0.1: Initial release.