ldap_init, ldap_open — Initialize the LDAP library and open a connection to an LDAP server
#include <ldap.h>
LDAP
*ldap_open( |
char * | host, |
int | port) ; |
LDAP
*ldap_init( |
char * | host, |
int | port) ; |
ldap_open()
opens a connection to an LDAP server and allocates an LDAP
structure which is used to identify the connection and to
maintain per-connection information. ldap_init()
allocates an LDAP
structure but does not open an initial connection. One of
these two routines must be called before any operations are
attempted.
ldap_open()
takes host
, the
hostname on which the LDAP server is running, and port
, the port number to which
to connect. If the default IANA-assigned port of 389 is
desired, LDAP_PORT should be specified for port
. The host
parameter may contain a
blank-separated list of hosts to try to connect to, and each
host may optionally by of the form host:port
. If present, the
:port
overrides the
port
parameter to
ldap_open()
. Upon
successfully making a connection to an LDAP server,
ldap_open()
returns
a pointer to an LDAP structure (defined below), which should
be passed to subsequent calls to ldap_bind()
, ldap_search()
, etc. Certain
fields in the LDAP structure can be set to indicate size
limit, time limit, and how aliases are handled during
operations. See <ldap.h> for more details.
typedef struct ldap { /* ... other stuff you should not mess with ... */ char ld_lberoptions; int ld_deref; #define LDAP_DEREF_NEVER 0 #define LDAP_DEREF_SEARCHING 1 #define LDAP_DEREF_FINDING 2 #define LDAP_DEREF_ALWAYS 3 int ld_timelimit; int ld_sizelimit; #define LDAP_NO_LIMIT 0 int ld_errno; char *ld_error; char *ld_matched; int ld_refhoplimit; unsigned long ld_options; #define LDAP_OPT_REFERRALS 0x00000002 /* set by default */ #define LDAP_OPT_RESTART 0x00000004 /* ... other stuff you should not mess with ... */ } LDAP;
ldap_init() acts just like ldap_open()
, but does not
open a connection to the LDAP server. The actual connection
open will occur when the first operation is attempted. At
this time, ldap_init()
is preferred.
ldap_open() will be depreciated in
a later release.
Options that affect a particular LDAP instance may be set
by modifying the ld_options
field in the LDAP
structure. This field is set to LDAP_OPT_REFERRALS
in ldap_open() and ldap_init(),
which causes the
library to automatically follow referrals to other servers
that may be returned in response to an LDAP operation.
The other supported option is LDAP_OPT_RESTART
, which if set will cause
the LDAP library to restart the select(2) system call when
it is interrupted by the system (i.e., errno is set to
EINTR). This option is not supported on the Macintosh and
under MS-DOS.
An option can be turned off by clearing the appropriate
bit in the ld_options
field.