On 28/4/04 7:30 pm, [EMAIL PROTECTED] <[EMAIL PROTECTED]>
wrote:

>>> Will start spitting out "Found <dn>" lines immediately. In fact, it
>>> doesn't - there is a rather long sleep period between "Here", and the
>>> first "Found" line.
>>> Is it because of the "foreach" loop?
> 
>> No, it is because calling entries() will block until all the entries have
>> been returned :-)
> 
> I see. :-)
> 
>> Also the async option is only valid in the constructor as it is a per
>> connection option. You can also call $ldap->async to turn on/off the
>> connection's async flag. It isn't correct to pass async=>1 in a normal
>> operation.
> 
> Well, I wasn't sure where to put it, so I've actually put it "everywhere"
> (connect/bind/search) in the hope that it wan't do any harm if not needed.
> :-) 

It'll be ignored everywhere.

> It's only in constructor now...
> 
>> You might want to look at the Net::LDAP::Search man page, in particular
> the
>> pop_entry() and shift_entry() methods.
> 
> Ah, thx.
> 
>> Depending on what you're trying to achieve you might also consider
> passing a
>> callback to the search method, which will get called as every search
> result
>> is returned. See the CALLBACKS section of the Net::LDAP man page for some
>> details of (oddly enough) callbacks.
> 
> Well, I'm browsing trough manpages all the time, and so I tried the
> callback method in the meantime (looks nice, would in fact like to use
> it), but that doesn't work the way I expected it will.
> 
> my $KMUsers = $KMLdap->search(filter=>'(uid=*)', scope=>'sub',
> base=>$base,
>                             attrs=>'1.1', sizelimit=>10,
> callback=>\&myCallback);
> print "END\n";
> 
> sub myCallback 
> {
>   my $mesg = shift;
>   my $entry = shift;
>   my $count = $mesg->count;
>   print "HERE\n";
>   printf "%5d Found (%s)\n", $count, $entry->dn;
> }
> 
> I expected to see a lot of "HERE", followed by one "END", and possibly
> even some DNs. Reality was different:
> 
> END
> HERE
> 
> Hm. So the function exits first, and calls the callback afterwards? Don't
> understand. :-(

Nor me, but I'm not sure what calling count is going to do for you in the
callback. I know calling it on the result object will (again) block until
all the search results are returned. What happens if you change your
callback so it just prints the DN?

Cheers,

Chris

Reply via email to