Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Net LDAP

by perlknight (Pilgrim)
on Jan 30, 2007 at 22:20 UTC ( [id://597452]=perlquestion: print w/replies, xml ) Need Help??

perlknight has asked for the wisdom of the Perl Monks concerning the following question:

Searching from a top tree, how can I tell if the entry under the top tree is a non-leaf node(node which contain other entry udner it)? Thanks.

Replies are listed 'Best First'.
Re: Net LDAP
by shmem (Chancellor) on Jan 31, 2007 at 01:14 UTC
    You take that entry's dn as search base and search from there with filter '(objectClass=*)', restricting your search scope to one-level (see ldapsearch of openldap; dunno right now how's that in Net::LDAP). If you get results, it's a non-leaf-node.

    <update>

    After RTFMing a bit, here's an example: searching 'dc=example,dc=com'

    my $mesg = $ldap->search( base => "dc=example,dc=com", filter => '(objectClass=*)', scope => 'one', ); foreach my $entry($mesg->all_entries) { my $res = 0; my $indent = 0; while($res = is_leaf($ldap,$entry)) { print " " x $indent, 'non-leaf: ', $entry->dn, "\n"; $indent++; $entry = $res; } print " " x $indent, 'leaf: ', $entry->dn, "\n" unless $res; # $r +es should always be 0; } sub is_leaf { my ($ldap, $entry) = @_; my $res = $ldap->search( base => $entry->dn, filter => '(objectClass=*)', sizelimit => 1, scope => 'one', ); if(my @l = $res->all_entries) { return $l[0]; } else { return 0; } }
    this will print out all entries and their "leafness" under the base dn. Non-leaf entries are followed, searching the first child, until a leaf node is found.

    </update>

    But I might be parling heck.
    --shmem

    _($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                                  /\_¯/(q    /
    ----------------------------  \__(m.====·.(_("always off the crowd"))."·
    ");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://597452]
Approved by ikegami
Front-paged by andyford
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (3)
As of 2024-04-25 05:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found