-.TH LDAP_URL 3 "22 September 1998" "OpenLDAP LDVERSION"
+.TH LDAP_URL 3 "17 October 2000" "OpenLDAP LDVERSION"
.\" $OpenLDAP$
.\" Copyright 1998-2000 The OpenLDAP Foundation All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
LDAPURLDesc **ludpp;
.LP
typedef struct ldap_url_desc {
- char *lud_host; /* LDAP host to contact */
- int lud_port; /* port on host */
- char *lud_dn; /* base for search */
- char **lud_attrs; /* NULL-terminate list of attributes */
- int lud_scope; /* a valid LDAP_SCOPE_... value */
- char *lud_filter; /* LDAP search filter */
- char *lud_string; /* for internal use only */
+ char * lud_scheme; /* URI scheme */
+ char lud_host; /* LDAP host to contact */
+ int lud_port; /* port on host */
+ char * lud_dn; /* base for search */
+ char ** lud_attrs; /* list of attributes */
+ int lud_scope; /* a LDAP_SCOPE_... value */
+ char * lud_filter; /* LDAP search filter */
+ char ** lud_exts; /* LDAP extensions */
+ /* may contain additional fields for internal use */
} LDAPURLDesc;
.LP
.ft B
struct timeval *timeout;
LDAPMessage **res;
.SH DESCRIPTION
-These routines support the use of LDAP URLs (Uniform Resource Locators).
-LDAP URLs look like this:
+These routines support the use of LDAP URLs (Uniform Resource Locators)
+as detailed in RFC 2255. LDAP URLs look like this:
.nf
- \fBldap://\fP\fIhostport\fP\fB/\fP\fIdn\fP[\fB?\fP\fIattributes\fP[\fB?\fP\fIscope\fP[\fB?\fP\fIfilter\fP]]]
+ \fBldap://\fP\fIhostport\fP\fB/\fP\fIdn\fP[\fB?\fP\fIattrs\fP[\fB?\fP\fIscope\fP[\fB?\fP\fIfilter\fP[\fB?\fP\fIexts\fP]]]]
where:
\fIhostport\fP is a host name with an optional ":portnumber"
- \fIdn\fP is the base DN to be used for an LDAP search operation
- \fIattributes\fP is a comma separated list of attributes to be retrieved
- \fIscope\fP is one of these three strings: base one sub (default=base)
- \fIfilter\fP is LDAP search filter as used in a call to ldap_search(3)
+ \fIdn\fP is the search base
+ \fIattrs\fP is a comma separated list of attributes to request
+ \fIscope\fP is one of these three strings:
+ base one sub (default=base)
+ \fIfilter\fP is filter
+ \fIexts\fP are recognized set of LDAP and/or API extensions.
+
+Example:
+ ldap://ldap.example.net/dc=example,dc=net?cn,sn?sub?(cn=*)
-e.g., ldap://ldap.itd.umich.edu/c=US?o,description?one?o=umich
.fi
.LP
URLs that are wrapped in angle-brackets and/or preceded by "URL:" are also
-tolerated.
+tolerated. Alternative schemes such as ldaps:// and ldapi:// may be
+parsed using the below routines as well.
.LP
.B ldap_is_ldap_url()
returns a non-zero value if \fIurl\fP looks like an LDAP URL (as
breaks down an LDAP URL passed in \fIurl\fP into its component pieces.
If successful, zero is returned, an LDAP URL description is
allocated, filled in, and \fIludpp\fP is set to point to it. If an
-error occurs, one of these values is returned:
-.nf
-
- LDAP_URL_ERR_NOTLDAP - URL doesn't begin with "ldap://"
- LDAP_URL_ERR_NODN - URL has no DN (required)
- LDAP_URL_ERR_BADSCOPE - URL scope string is invalid
- LDAP_URL_ERR_MEM - can't allocate memory space
-.fi
+error occurs, a non-zero URL error code is returned.
.LP
.B ldap_free_urldesc()
should be called to free an LDAP URL description that was obtained from
.BR ldap (3),
.BR ldap_search (3)
.LP
-.B An LDAP URL Format,
-Tim Howes and Mark Smith, December 1995. Internet Draft (work in progress).
-Currently available at this URL:
-.nf
-ftp://ds.internic.net/internet-drafts/draft-ietf-asid-ldap-format-03.txt
-.fi
+.B The LDAP URL Format, RFC 2255,
+Tim Howes and Mark Smith, December 1997.
.SH ACKNOWLEDGEMENTS
.B OpenLDAP
is developed and maintained by The OpenLDAP Project (http://www.openldap.org/).