In a subsequent section of the same search, I'm trying to do an
anonymous search. Anonymous binding works (or more accurately, doesn't
produce an error code). Hoever, when I do search using the same LDAP
handle, I get an error. I know anonymous searching is allowed, and I can
verify this using ldapsearch.

My code for the bind/search is below. Am I doing something wrong? This
code is almost identical to the first example code on
http://search.cpan.org/~gbarr/perl-ldap-0.40/lib/Net/LDAP.pod

This code works just fine when I run this code with my Kerberos/GSSAPI
credentials, but not after I do a 'kdestroy'

# Anonymous bind (no args = anonymous)
$mesg = $ldap->bind;
$code = $mesg->code;
if ($code == 0) {
 if ($verbose) {
        print "Successfully bound to $hostname\n";
    }
} else {
    $error = $mesg->error;
    print "Error doing an anonymous bind\n";
    print "$error\n";
    $exit_val = '2';
}

# Step 3:
# Perform a search
# If we fail here, exit status = 1
$mesg = $ldap->search(base => $base,
                      filter => "$attr"
                      );
$code = $mesg->code;
if ($code == 0) {
    # Successful doesn't mean we got the results we wanted, though.
    # Search that returns 0 results is still successful in this case
    # We really need to check if any entries were returned for this
    @entries = $mesg->entries;
    $size = @entries;
    if ($size != 0) {
        if ($verbose) {
            print "LDAP search for $attr successful\n";
        }
    } else {
        print "LDAP search for $attr failed\n";
        $exit_val = '1';
    }
} else {
    $error = $mesg->error;
    print "LDAP search operation failed\n";
    print "$error\n";
    $exit_val = '1';
}

-- 
Prentice

Reply via email to