- 论坛徽章:
- 0
|
-------------代码一----------------------------
$mesg = $ldap_master->start_tls(
verify => "$config{verify}",
clientcert => "$config{clientcert}",
clientkey => "$config{clientkey}",
cafile => "$config{cafile}"
);
# 以上为start_tls调用的参数
-------------代码二,被代码一调用----------------------------
sub start_tls {
my $ldap = shift;
my $arg = &_options;
my $sock = $ldap->socket; #问题一:$ldap 怎么就成一个“类”了?还能调用函数的?
require IO::Socket::SSL;
require Net::LDAP::Extension;
my $mesg = $ldap->message('Net::LDAP::Extension' => $arg); #问题二:message调用的是一个hash表么?
return _error($ldap, $mesg, LDAP_OPERATIONS_ERROR, "TLS already started")
if $sock->isa('IO::Socket::SSL');
return _error($ldap, $mesg, LDAP_PARAM_ERROR, "StartTLS requires LDAPv3")
if $ldap->version < 3;
$mesg->encode(
extendedReq => {
requestName => LDAP_EXTENSION_START_TLS,
}
);
-------------代码三,被代码二调用----------------------------
sub message { #问题三:这个函数在是什么作用?求具体的解释,特别是shift这里没看懂
my $ldap = shift;
shift->new($ldap, @_);
}
以上三段代码来自/usr/share/perl5/Net/LDAP.pm |
|