[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
URL dn part [revised]
[rewritten for clarity, please ignore previous version]
As previously discussed,
ldap://host
ldap://host/
should be viewed as equivalent. While the section 4 statement
If no dn is given, the default is the zero-length DN, ""
is clear that the DN is optional, the ANBF:
ldapurl = scheme "://" [hostport] ["/"
[dn ["?" [attributes] ["?" [scope]
["?" [filter] ["?" extensions]]]]]]
is somewhat ambiguous. The URL:
ldap://host/
can be parsed as dn absent OR dn present but empty. The fact
that the grammar also allows
ldap://host
implies that this distinction is somehow important.
This ambiguity could be removed with:
ldapurl = scheme "://" [hostport] ["/" dn
["?" [attributes] ["?" [scope]
["?" [filter] ["?" extensions]]]]]]
That is, ldap::/// can only be parsed as having a present
but empty dn part. I prefer this ABNF production as
it appears to handle optional features more consistently.
To provide additional clarity, I also suggest adding an
additional example:
The following URLs are equivalent:
ldap://ldap.example.net
ldap://ldap.example.net/
ldap://ldap.example.net/?
Each refers to the Root DSE on the ldap.example.net server.