openldap/doc/man/man3/ldap_url.3
1999-12-17 05:53:51 +00:00

144 lines
4.0 KiB
Groff

.TH LDAP_URL 3 "22 September 1998" "OpenLDAP LDVERSION"
.\" $OpenLDAP$
.\" Copyright 1998-1999 The OpenLDAP Foundation All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.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
int ldap_is_ldap_url( url )
.ft
char *url;
.LP
.ft B
int ldap_url_parse( url, ludpp )
.ft
char *url;
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 */
} LDAPURLDesc;
.LP
.ft B
ldap_free_urldesc( ludp )
.ft
LDAPURLDesc *ludp;
.LP
.ft B
int ldap_url_search( ld, url, attrsonly )
.ft
LDAP *ld;
char *url;
int attrsonly;
.LP
.ft B
int ldap_url_search_s( ld, url, attrsonly, res )
.ft
LDAP *ld;
char *url;
int attrsonly;
LDAPMessage **res;
.LP
.ft B
int ldap_url_search_st( ld, url, attrsonly, timeout, res )
.ft
LDAP *ld;
char *url;
int attrsonly;
struct timeval *timeout;
LDAPMessage **res;
.SH DESCRIPTION
These routines support the use of LDAP URLs (Uniform Resource Locators).
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]]]
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)
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.
.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
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
.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
.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
.SH ACKNOWLEDGEMENTS
.B OpenLDAP
is developed and maintained by The OpenLDAP Project (http://www.openldap.org/).
.B OpenLDAP
is derived from University of Michigan LDAP 3.3 Release.