Timeout set the maximum time in milliseconds that each server request may take.

close(Handle) -> ok

Handle = handle()

Shutdown the connection.

start_tls(Handle, Options) -> ok | {error,Error}

Same as start_tls(Handle, Options, infinity)

start_tls(Handle, Options, Timeout) -> ok | {error,Error}

Handle = handle()

Options = ssl:ssl_options()

Timeout = inifinity | positive_integer()

Upgrade the connection associated with Handle to a tls connection if possible.

The upgrade is done in two phases: first the server is asked for permission to upgrade. Second, if the request is acknowledged, the upgrade is performed.

Error responese from phase one will not affect the current encryption state of the connection. Those responses are:

tls_already_started

The connection is already encrypted. The connection is not affected.

{response,ResponseFromServer}

The upgrade was refused by the LDAP server. The ResponseFromServer is an atom delivered byt the LDAP server explained in section 2.3 of rfc 2830. The connection is not affected, so it is still un-encrypted.

Modify the DN of an entry. DeleteOldRDN indicates
whether the current RDN should be removed after operation.
NewSupDN should be "" if the RDN should not be moved or the new parent which
the RDN will be moved to.

Search the directory with the supplied the SearchOptions.
The base and filter options must be supplied.
Default values: scope is wholeSubtree(), deref is derefAlways(),
types_only is false and timeout is 0 (meaning infinity).