Hi, This patch implements Intermediate Message and RFC 4533. Notes: - The only intrusive change is in lib/Net/LDAP/Search.pm - Net::LDAP::Intermediate::SyncInfo is not enabled by default (see lib/Net/LDAP/Intermediate.pm line 18) as there are decoding errors within ASN (see my previous mail). Waiting for feedback before (I hope) inclusion. Regards Mathieu Parent
In bind(), if the SASL client_start call fails, the exact error message is swallowed, and the user gets a generic "Local error" message back. The error handling looks like this: my $initial = $sasl_conn->client_start; return _error($ldap, $mesg, LDAP_LOCAL_ERROR, "$@") unless defined($initial); This looks like a copy & paste from a few lines above, where errors creating $sasl_conn are caught by an eval. In this case, there is no eval, and "$@" will always be empty. To return the exact SASL error message to the caller, I think the last parameter here should be $sasl_conn->error().
…r(s) using SASL/GSSAPI authentication to use the provided hostname not the canonical name (Patch from Dominic Hargreaves)
In the DIGEST-MD5 case, the final server SASL response is transported in the final bindResponse indicating LDAP_SUCCESS. Patch from Paul Kranenburg
"synchronize", instead of attempting to use an undefined value as a HASH reference. Original change from Mike Dorman <firstname.lastname@example.org>
Essentially this is a valueless control that's passed in to various operations (bind, modify, set_password make sense) and the server is then able to return richer error and warning information in a returned control. I've done some preliminary testing against Isode M-Vault, and it seems to work OK.
Patch by Alex Bramley
to build the argument list for Net::LDAP->moddn() correctly. Having the attributes undef in this case, allows using the logic of Net::LDAP->update() for error handling or setting defaults.