Catch a case where the LDAP object is defined, but in a state that
schema/root_dse are not obtainable. Add the connected server to 'id/whoami' output. FossilOrigin-Name: c10f105d78e9063d679b2b052d2037b9fc1fca6c80004aacf00054c6af7a14a3
This commit is contained in:
parent
6b7777f51c
commit
7402148c97
1 changed files with 13 additions and 7 deletions
20
shelldap
20
shelldap
|
|
@ -471,7 +471,8 @@ sub init
|
|||
};
|
||||
|
||||
# gather metadata from the LDAP server
|
||||
$self->{'root_dse'} = $self->ldap->root_dse();
|
||||
$self->{'root_dse'} = $self->ldap->root_dse() or
|
||||
die "Unable to retrieve LDAP server information. (Doublecheck connection arguments.)\n";
|
||||
$self->{'schema'} = $self->ldap->schema();
|
||||
|
||||
# get an initial list of all objectClasses
|
||||
|
|
@ -574,15 +575,20 @@ You may try connecting insecurely, or install the module and try again.\n} if $@
|
|||
}
|
||||
|
||||
my $err = $rv->error();
|
||||
$self->debug(
|
||||
"Bind as " .
|
||||
( $conf->{'binddn'} ? $conf->{'binddn'} : 'anonymous' ) .
|
||||
" to " . $conf->{'server'} . ": $err\n"
|
||||
);
|
||||
|
||||
if ( $rv->code() ) {
|
||||
$err .= " (try the --tls flag?)" if $err =~ /confidentiality required/i;
|
||||
die "LDAP bind error: $err\n";
|
||||
}
|
||||
|
||||
# offer to cache authentication info
|
||||
# if we enter this conditional, we have successfully
|
||||
# authed with the server (non anonymous), and
|
||||
# we haven't cached anything in the past.
|
||||
# Offer to cache authentication info.
|
||||
# If we enter this conditional, we have successfully authed with the server
|
||||
# (non anonymous), and we haven't cached anything in the past.
|
||||
#
|
||||
if ( $conf->{'binddn'} && ! -e $conf->{'configfile'} ) {
|
||||
print "Would you like to cache your connection information? [Yn]: ";
|
||||
|
|
@ -2038,8 +2044,8 @@ sub run_pwd
|
|||
sub run_whoami
|
||||
{
|
||||
my $self = shift;
|
||||
print $conf->{'binddn'} || 'anonymous bind';
|
||||
print "\n";
|
||||
my $msg = ( $conf->{'binddn'} || 'anonymous bind' ) . ' (' . $conf->{'server'} . ')';
|
||||
print "$msg\n";
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue