- abandon MSGID SCTRLS CCTRLS
-
This cancels an asynchronous LDAP operation that has not completed. It
returns an LDAP STATUS code upon completion.
Example:
$status = ldap_abandon($ld, $msgid); # XXX fix this
- add DN ATTR SCTRLS CCTRLS
-
Begins an an asynchronous LDAP Add operation. It returns a MSGID or undef
upon completion.
Example:
%attributes = (
"cn", ["Clayton Donley","Clay Donley"] #Add Multivalue cn
"sn", "Donley", #Add sn
"telephoneNumber", "+86-10-65551234", #Add telephoneNumber
"objectClass", ["person","organizationalPerson"],
# Add Multivalue objectClass
"jpegphoto", {"b",[$jpegphoto]}, # Add Binary jpegphoto
);
$entrydn = "cn=Clayton Donley, o=Motorola, c=US";
$msgid = $ld->add($entrydn, \%attributes);
Note that in most cases, you will need to be bound to the LDAP server
as an administrator in order to add users.
- add_s DN ATTR SCTRLS CCTRLS
-
Synchronous version of the 'add' method. Arguments are identical
to the 'add' method, but this operation returns an LDAP STATUS,
not a MSGID.
Example:
$ld->add_s($entrydn, \%attributes);
See the section on creating the modify structure for more information
on populating the ATTRIBUTES field for Add and Modify operations.
- bind DN PASSWORD TYPE SCTRLS CCTRLS
-
Asynchronous method for binding to the LDAP server. It returns a
MSGID.
Examples:
$msgid = $ld->bind;
$msgid = $ld->bind("cn=Clayton Donley, o=Motorola, c=US", "abc123");
- bind_s DN PASSWORD TYPE SCTRLS CCTRLS
-
Synchronous method for binding to the LDAP server. It returns
an LDAP STATUS.
Examples:
$status = $ld->bind_s;
$status = $ld->bind_s("cn=Clayton Donley, o=Motorola, c=US", "abc123");
- compare DN ATTR VALUE SCTRLS CCTRLS
-
Asynchronous method for comparing a value with the value contained
within DN. Returns a MSGID or undef.
Example:
$msgid = $ld->compare("cn=Clayton Donley, o=Motorola, c=US", \
$type, $value);
- compare_s DN ATTR VALUE SCTRLS CCTRLS
-
Synchronous method for comparing a value with the value contained
within DN. Returns an LDAP_COMPARE_TRUE, LDAP_COMPARE_FALSE or an error code.
Example:
$status = $ld->compare_s("cn=Clayton Donley, o=Motorola, c=US", \
$type, $value);
- count_entries
-
Returns the number of entries in an LDAP result chain.
Example:
$number = $ld->count_entries;
- count_references MSG
-
Return number of references in a given/current message.
Example:
$number = $ld->count_references
- delete DN
-
Asynchronous method to delete DN. Returns a MSGID or -1 if error.
Example:
$msgid = $ld->delete("cn=Clayton Donley, o=Motorola, c=US");
- delete_s DN
-
Synchronous method to delete DN. Returns an LDAP STATUS.
Example:
$status = $ld->delete_s("cn=Clayton Donley, o=Motorola, c=US");
- dn2ufn DN
-
Converts a Distinguished Name (DN) to a User Friendly Name (UFN).
Returns a string with the UFN.
Since this operation doesn't require an LDAP object to work, you
could technically access the function directly as 'ldap_dn2ufn' rather
that the object oriented form.
Example:
$ufn = $ld->dn2ufn("cn=Clayton Donley, o=Motorola, c=US");
- explode_dn DN NOTYPES
-
Splits the DN into an array comtaining the separate components of
the DN. Returns an Array. NOTYPES is a 1 to remove attribute
types and 0 to retain attribute types.
Can also be accessed directly as 'ldap_explode_dn' if no session is
initialized and you don't want the object oriented form.
In OpenLDAP this call is depricated.
Example:
@components = $ld->explode_dn($dn, 0);
- explode_rdn RDN NOTYPES
-
Same as explode_dn, except that the first argument is a
Relative Distinguished Name. NOTYPES is a 1 to remove attribute
types and 0 to retain attribute types. Returns an array with
each component.
Can also be accessed directly as 'ldap_explode_rdn' if no session is
initialized and you don't want the object oriented form.
In OpenLDAP this call is depricated.
Example:
@components = $ld->explode_rdn($rdn, 0);
- extended_operation OID BERVAL SCTRLS CCTRLS
-
Asynchronous method for invoking an extended operation.
Returns a non-negative MSGID upon success.
Examples:
$msgid = $ld->extended_operation("1.3.6.1.4.1.4203.1.11.3");
- extended_operation_s OID BERVAL SCTRLS CCTRLS RESULT
-
Synchronous method for invoking an extended operation.
Returns LDAP_SUCCESS upon success.
Examples:
$status = $ld->extended_operation_s(-oid => "1.3.6.1.4.1.4203.1.11.3", \
-result => \%result);
- first_attribute
-
Returns pointer to first attribute name found in the current entry.
Note that this only returning attribute names (ex: cn, mail, etc...).
Returns a string with the attribute name.
Returns an empty string when no attributes are available.
Example:
$attr = $ld->first_attribute;
- first_entry
-
Sets internal pointer to the first entry in a chain of results. Returns
an empty string when no entries are available.
Example:
$entry = $ld->first_entry;
- first_message
-
Return the first message in a chain of result returned by the search
operation. LDAP search operations return LDAPMessage, which is a head
in chain of messages accessable to the user. Not all all of them are
entries though. Type of the message can be obtained by calling
msgtype(...) function.
- get_all_entries RESULT
-
Returns result of the search operation in the following format
(HASH)
dn -> (HASH)
key -> (ARRAY)
Example:
my $all_entries_ref = $ld->get_all_entries;
my %all_entries = %$all_entries_ref;
foreach (keys %all_entries) {
print "<$_> -> <".$all_entries{$_}.">\n";
$entry = $all_entries{$_};
local %entry_h = %$entry;
foreach $k (keys %entry_h) {
$values = $entry_h{$k};
print " <$k> ->\n";
foreach $val (@$values) {
print " <$val>\n";
}
}
}
- get_dn MSG
-
Returns a string containing the DN for the specified message or an
empty string if an error occurs. If no message is specified then
then default entry is used.
Example:
$dn = $ld->get_dn;
- get_entry_controls MSG
-
Returns an array of controls returned with the given entry. If not MSG
is given as a paramater then current message/entry is used.
Example:
my @sctrls = $ld->get_entry_controls($msg);
foreach $ctrl (@sctrls) {
print "control oid is ".$self->get_control_oid($ctrl)."\n";
}
- get_values ATTR
-
Obtain a list of all values associated with a given attribute.
Returns an empty list if none are available.
Example:
@values = $ld->get_values("cn");
This would put all the 'cn' values for $entry into the array @values.
- get_values_len ATTR
-
Retrieves a set of binary values for the specified attribute.
Example:
@values = $ld->get_values_len("jpegphoto");
This would put all the 'jpegphoto' values for $entry into the array @values.
These could then be written to a file, or further processed.
- is_ldap_url URL
-
Checks to see if a specified URL is a valid LDAP Url. Returns 0 on false
and 1 on true.
Example:
$isurl = $ld->is_ldap_url("ldap://x500.my.org/o=Org,c=US");
- listen_for_changes BASEDN SCOPE FILTER ATTRS ATTRSONLY TIMEOUT SIZELIMIT
COOKIE
-
Experimental function which implements syncrepl API in
refreshAndPersist mode. All but one arguments are the same as in search
function. Argument 'cookie' is the special one here. It must be specified
and is a file name in which cookie is to be stored. On a subsequent
restart of the seach only the newer results will be returned than those
indicated by the stored cookie. To refresh all entries, one would have to
remove that file.
This function is to be used in conjunction with next_changed_entries(...),
there you will also find example of its usage.
- msgfree
-
Frees the current LDAP result. Returns the type of message freed.
Example:
$type = $ld->msgfree;
- msgtype MSG
-
Returns the numeric id of a given message. If no MSG is given as a parameter
then current message is used. Following types are recognized: LDAP_RES_BIND,
LDAP_RES_SEARCH_ENTRY, LDAP_RES_SEARCH_REFERENCE, LDAP_RES_SEARCH_RESULT,
LDAP_RES_MODIFY, LDAP_RES_ADD, LDAP_RES_DELETE, LDAP_RES_MODDN,
LDAP_RES_COMPARE, LDAP_RES_EXTENDED, LDAP_RES_INTERMEDIATE, LDAP_RES_ANY,
LDAP_RES_UNSOLICITED.
Example:
$type = $ld->msgtype
- msgtype2str TYPE
-
Returns string representation of a given numeric message type.
Example:
print "type = ".$ld->msgtype2str($ld->msgtype)."\n";
- modify DN MOD
-
Asynchronous method to modify an LDAP entry. DN is the DN to
modify and MOD contains a hash-table of attributes and values. If
multiple values need to be passed for a specific attribute, a
reference to an array must be passed.
Returns the MSGID of the modify operation.
Example:
%mods = (
"telephoneNumber", "", #remove telephoneNumber
"sn", "Test", #set SN to TEST
"mail", ["me\@abc123.com","me\@second-home.com"], #set multivalue 'mail'
"pager", {"a",["1234567"]}, #Add a Pager Value
"jpegphoto", {"rb",[$jpegphoto]}, # Replace Binary jpegphoto
);
$msgid = $ld->modify($entrydn,\%mods);
The above would remove the telephoneNumber attribute from the entry
and replace the "sn" attribute with "Test". The value in the "mail"
attribute for this entry would be replaced with both addresses
specified in @mail. The "jpegphoto" attribute would be replaced with
the binary data in $jpegphoto.
- modify_s DN MOD
-
Synchronous version of modify method. Returns an LDAP STATUS. See the
modify method for notes and examples of populating the MOD
parameter.
Example:
$status = $ld->modify_s($entrydn,\%mods);
- modrdn2 DN NEWRDN DELETE
-
No longer available. Use function 'rename'.
- modrdn2_s DN NEWRDN DELETE
-
No longer available. Use function 'rename_s'.
- next_attribute
-
Similar to first_attribute, but obtains next attribute.
Returns a string comtaining the attribute name. An empty string
is returned when no further attributes exist.
Example:
$attr = $ld->next_attribute;
- next_changed_entries MSGID ALL TIMEOUT
-
This function is too be used together with listen_for_changes(...) (see above).
It returns an array of Entries, which has just changed. Each element in this
array is a hash reference with two key value pairs, 'entry' which contains usual
entry and 'state' which contain one of the following strings 'present', 'add',
'modify' or 'delete'.
Example:
my $msgid = $ld->listen_for_changes('', LDAP_SCOPE_SUBTREE, "(cn=Dm*)", NULL, NULL,
NULL, NULL, $cookie);
while(1) {
while( @entries = $ld->next_changed_entries($msgid, 0, -1) ) {
foreach $entry (@entries) {
print "entry dn is <".$ld->get_dn($entry->{'entry'})."> ".
$entry->{'state'}."\n";
}
}
}
- next_entry
-
Moves internal pointer to the next entry in a chain of search results.
Example:
$entry = $ld->next_entry;
- next_message
-
Moves internal pointer to the next message in a chain of search results.
Example:
$msg = $ld->next_message;
- parse_result MSG FREEMSG
-
This function is used to retrieve auxiliary data associated with the
message. The return value is a hashtable containing following kevalue
pairs.
'errcode' -> numeric
'matcheddn' -> string
'errmsg' -> string
'referrals' -> array reference
'serverctrls' -> array reference
The FREEMSG parameter determines whether the parsed message is freed
or not after the extraction. Any non-zero value will make it free the
message. The msgfree() routine can also be used to free the message
later.
- perror MSG
-
If an error occurs while performing an LDAP function, this procedure
will display it. You can also use the err and errstring methods to
manipulate the error number and error string in other ways.
Note that this function does NOT terminate your program. You would
need to do any cleanup work on your own.
Example:
$ld->perror("add_s");
- rename DN NEWRDN NEWSUPER DELETE SCTRLS CCTRLS
-
Asynchronous method to change the name of an entry. NEWSUPER is a new
parent (superior entry). If set to NULL then only the RDN is changed.
Set DELETE to non-zero if you wish to remove the attribute values from the
old name. Returns a MSGID.
Example:
$msgid = $ld->rename("cn=Clayton Donley, o=Motorola, c=US", \
"cn=Clay Donley", NULL, 0);
- rename_s DN NEWRDN NEWSUPER DELETE SCTRLS CCTRLS
-
Synchronous method to change the name of an entry. NEWSUPER is a new
parent (superior entry). If set to NULL then only the RDN is changed.
Set DELETE to non-zero if you wish to remove the attribute values from the
old name. Returns a LDAP STATUS.
Example:
$status = $ld->rename("cn=Clayton Donley, o=Motorola, c=US", \
"cn=Clay Donley", NULL, 0);
- result MSGID ALL TIMEOUT
-
Retrieves the result of an operation initiated using an asynchronous LDAP
call. It calls internally ldap_result function. Returns LDAP message or
undef if error. Return value of ldap_result call stored in $ld->{"status"}
and is set -1 if something wrong happened, 0 if specified timeout was
exceeded or type of the returned message.
MSGID is the MSGID returned by the Asynchronous LDAP call. Set ALL to
0 to receive entries as they arrive, or non-zero to receive all entries
before returning. Set TIMEOUT to the number of seconds to wait for the
result, or -1 for no timeout.
Example:
$entry = $ld->result($msgid, 0, 1);
print "msgtype = ".$ld->msgtype2str($ld->{"status"})."\n";
- result_entry
-
This function is a shortcut for moving pointer along the chain of entries
in the result. It is used instead of first_entry and next_entry functions.
Example
while( $entry = $ld->result_entry ) {
print "dn = ".$ld->get_dn($entry)."\n";
}
- result_message
-
This function is a shortcut for moving pointer along the chain of messages
in the result. It is used instead of first_message and next_message functions.
Example
while( $msg = $ld->result_message ) {
$msgtype = $self->msgtype($msg);
}
- search BASE SCOPE FILTER ATTRS ATTRSONLY
-
Begins an asynchronous LDAP search. Returns a MSGID or -1 if an
error occurs. BASE is the base object for the search operation.
FILTER is a string containing an LDAP search filter. ATTRS is a
reference to an array containing the attributes to return. An
empty array would return all attributes. ATTRSONLY set to non-zero
will only obtain the attribute types without values.
SCOPE is one of the following:
LDAP_SCOPE_BASE
LDAP_SCOPE_ONELEVEL
LDAP_SCOPE_SUBTREE
Example:
@attrs = ("cn","sn"); # Return specific attributes
@attrs = (); # Return all Attributes
$msgid = $ld->search("o=Motorola, c=US", LDAP_SCOPE_SUBTREE, \
"(sn=Donley), \@attrs, 0);
- search_s BASE SCOPE FILTER ATTRS ATTRSONLY (rewrite XXX)
-
Performs a synchronous LDAP search. Returns an LDAP STATUS. BASE
is the base object for the search operation. FILTER is a string
containing an LDAP search filter. ATTRS is a reference to an array
containing the attributes to return. An empty array would return all
attributes. ATTRSONLY set to non-zero will only obtain the attribute
types without values.
SCOPE is one of the following:
LDAP_SCOPE_BASE
LDAP_SCOPE_ONELEVEL
LDAP_SCOPE_SUBTREE
Example:
@attrs = ("cn","sn"); # Return specific attributes
@attrs = (); # Return all attributes
$status = $ld->search_s("o=Motorola, c=US",LDAP_SCOPE_SUBTREE, \
"(sn=Donley)",\@attrs,0);
- search_st BASE SCOPE FILTER ATTRS ATTRSONLY TIMEOUT (rewrite/remove
XXX)
-
Performs a synchronous LDAP search with a TIMEOUT. See search_s
for a description of parameters. Returns an LDAP STATUS. Results are
put into RESULTS. TIMEOUT is a number of seconds to wait before giving
up, or -1 for no timeout.
Example:
$status = $ld->search_st("o=Motorola, c=US",LDAP_SCOPE_SUBTREE, \
"(sn=Donley),[],0,3);
- unbind SCTRLS CCTRLS
-
Unbind LDAP connection with specified SESSION handler.
Example:
$ld->unbind;
- url_parse URL
-
Parses an LDAP URL into separate components. Returns a HASH reference
with the following keys, if they exist in the URL:
host - LDAP Host
port - LDAP Port
dn - LDAP Base DN
attr - LDAP Attributes to Return (ARRAY Reference)
filter - LDAP Search Filter
scope - LDAP Search Scope
options - Mozilla key specifying LDAP over SSL
Example:
$urlref = $ld->url_parse("ldap://ldap.my.org/o=My,c=US");
- url_search URL ATTRSONLY
-
Perform an asynchronous search using an LDAP URL. URL is the LDAP
URL to search on. ATTRSONLY determines whether we are returning
the values for each attribute (0) or only returning the attribute
names (1). Results are retrieved and parsed identically to a call
to the search method.
Returns a non-negative MSGID upon success.
Example:
$msgid = $ld->url_search($my_ldap_url, 0);
- url_search_s URL ATTRSONLY
-
Synchronous version of the url_search method. Results are retrieved
and parsed identically to a call to the search_s method.
Returns LDAP_SUCCESS upon success.
Example:
$status = $ld->url_search_s($my_ldap_url, 0);
- url_search_st URL ATTRSONLY TIMEOUT
-
Similar to the url_search_s method, except that it allows a timeout
to be specified. The timeout is specified as seconds. A timeout of
0 specifies an unlimited timeout. Results are retrieved and parsed
identically to a call to the search_st method.
Returns LDAP_SUCCESS upon success.
Example:
$status = $ld->url_search_s($my_ldap_url,0,2);
- whoami SCTRLS CCTRLS
-
Asynchronous method for invoking an LDAP whoami extended operation.
Returns a non-negative MSGID upon success.
Examples:
$msgid = $ld->whoami();
- whoami_s AUTHZID SCTRLS CCTRLS
-
Synchronous method for invoking an LDAP whoami extended operation.
Returns LDAP_SUCCESS upon success.
Examples:
$status = $ld->whoami_s(\$authzid);