2001-07-24 14:26:32 +08:00
|
|
|
.TH LDAP_URL 3 "23 July 2001" "OpenLDAP LDVERSION"
|
1999-09-12 12:41:47 +08:00
|
|
|
.\" $OpenLDAP$
|
2000-05-13 10:47:56 +08:00
|
|
|
.\" Copyright 1998-2000 The OpenLDAP Foundation All Rights Reserved.
|
1999-09-12 12:41:47 +08:00
|
|
|
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH NAME
|
|
|
|
ldap_is_ldap_url,
|
|
|
|
ldap_url_parse,
|
|
|
|
ldap_free_urldesc,
|
|
|
|
ldap_url_search,
|
|
|
|
ldap_url_search_s,
|
|
|
|
ldap_url_search_st \- LDAP Uniform Resource Locator routines
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.nf
|
|
|
|
.ft B
|
|
|
|
#include <ldap.h>
|
|
|
|
.ft
|
|
|
|
.LP
|
|
|
|
.ft B
|
2001-07-24 14:26:32 +08:00
|
|
|
int ldap_is_ldap_url( const char *url )
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.ft B
|
2001-07-24 14:26:32 +08:00
|
|
|
int ldap_url_parse( const char *url, LDAPURLDesc **ludpp )
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
typedef struct ldap_url_desc {
|
2001-07-24 14:26:32 +08:00
|
|
|
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 */
|
|
|
|
int lud_crit_exts; /* true if any extension is critical */
|
2000-10-18 03:07:56 +08:00
|
|
|
/* may contain additional fields for internal use */
|
1998-08-09 08:43:13 +08:00
|
|
|
} LDAPURLDesc;
|
|
|
|
.LP
|
|
|
|
.ft B
|
2001-07-24 14:26:32 +08:00
|
|
|
ldap_free_urldesc( LDAPURLDesc *ludp )
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.ft B
|
|
|
|
int ldap_url_search( ld, url, attrsonly )
|
|
|
|
.ft
|
2001-07-24 14:26:32 +08:00
|
|
|
LDAP *ld;
|
|
|
|
char *url;
|
|
|
|
int attrsonly;
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.ft B
|
|
|
|
int ldap_url_search_s( ld, url, attrsonly, res )
|
|
|
|
.ft
|
2001-07-24 14:26:32 +08:00
|
|
|
LDAP *ld;
|
|
|
|
char *url;
|
|
|
|
int attrsonly;
|
|
|
|
LDAPMessage **res;
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.ft B
|
|
|
|
int ldap_url_search_st( ld, url, attrsonly, timeout, res )
|
|
|
|
.ft
|
2001-07-24 14:26:32 +08:00
|
|
|
LDAP *ld;
|
|
|
|
char *url;
|
|
|
|
int attrsonly;
|
|
|
|
struct timeval *timeout;
|
|
|
|
LDAPMessage **res;
|
1998-08-09 08:43:13 +08:00
|
|
|
.SH DESCRIPTION
|
2000-10-18 03:07:56 +08:00
|
|
|
These routines support the use of LDAP URLs (Uniform Resource Locators)
|
|
|
|
as detailed in RFC 2255. LDAP URLs look like this:
|
1998-08-09 08:43:13 +08:00
|
|
|
.nf
|
|
|
|
|
2000-10-18 03:07:56 +08:00
|
|
|
\fBldap://\fP\fIhostport\fP\fB/\fP\fIdn\fP[\fB?\fP\fIattrs\fP[\fB?\fP\fIscope\fP[\fB?\fP\fIfilter\fP[\fB?\fP\fIexts\fP]]]]
|
1998-08-09 08:43:13 +08:00
|
|
|
|
|
|
|
where:
|
|
|
|
\fIhostport\fP is a host name with an optional ":portnumber"
|
2000-10-18 03:07:56 +08:00
|
|
|
\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=*)
|
1998-08-09 08:43:13 +08:00
|
|
|
|
|
|
|
.fi
|
|
|
|
.LP
|
|
|
|
URLs that are wrapped in angle-brackets and/or preceded by "URL:" are also
|
2000-10-18 03:07:56 +08:00
|
|
|
tolerated. Alternative schemes such as ldaps:// and ldapi:// may be
|
|
|
|
parsed using the below routines as well.
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.B ldap_is_ldap_url()
|
|
|
|
returns a non-zero value if \fIurl\fP looks like an LDAP URL (as
|
|
|
|
opposed to some other kind of URL). It can be used as a quick check
|
|
|
|
for an LDAP URL; the
|
|
|
|
.B ldap_url_parse()
|
|
|
|
routine should be used if a more thorough check is needed.
|
|
|
|
.LP
|
|
|
|
.B ldap_url_parse()
|
|
|
|
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
|
2000-10-18 03:07:56 +08:00
|
|
|
error occurs, a non-zero URL error code is returned.
|
1998-08-09 08:43:13 +08:00
|
|
|
.LP
|
|
|
|
.B ldap_free_urldesc()
|
|
|
|
should be called to free an LDAP URL description that was obtained from
|
|
|
|
a call to
|
|
|
|
.B ldap_url_parse().
|
|
|
|
.LP
|
|
|
|
.B ldap_url_search()
|
|
|
|
initiates an asynchronous LDAP search based on the contents of the
|
|
|
|
\fIurl\fP string. This routine acts just like
|
|
|
|
.BR ldap_search (3)
|
|
|
|
except that many search parameters are pulled out of the URL.
|
|
|
|
.LP
|
|
|
|
.B ldap_url_search_s()
|
|
|
|
performs a synchronous LDAP search based on the contents of the
|
|
|
|
\fIurl\fP string. This routine acts just like
|
|
|
|
.BR ldap_search_s (3)
|
|
|
|
except that many search parameters are pulled out of the URL.
|
|
|
|
.LP
|
|
|
|
.B ldap_url_search_st()
|
|
|
|
performs a synchronous LDAP URL search with a specified \fItimeout\fP.
|
|
|
|
This routine acts just like
|
|
|
|
.BR ldap_search_st (3)
|
|
|
|
except that many search parameters are pulled out of the URL.
|
|
|
|
.SH SEE ALSO
|
|
|
|
.BR ldap (3),
|
|
|
|
.BR ldap_search (3)
|
|
|
|
.LP
|
2000-10-18 03:07:56 +08:00
|
|
|
.B The LDAP URL Format, RFC 2255,
|
|
|
|
Tim Howes and Mark Smith, December 1997.
|
1998-10-25 09:41:42 +08:00
|
|
|
.SH ACKNOWLEDGEMENTS
|
2001-07-24 14:26:32 +08:00
|
|
|
.B OpenLDAP
|
1998-10-25 09:41:42 +08:00
|
|
|
is developed and maintained by The OpenLDAP Project (http://www.openldap.org/).
|
2001-07-24 14:26:32 +08:00
|
|
|
.B OpenLDAP
|
1998-10-25 09:41:42 +08:00
|
|
|
is derived from University of Michigan LDAP 3.3 Release.
|