- 論壇徽章:
- 0
|
-------------代碼一----------------------------
$mesg = $ldap_master->start_tls(
verify => "$config{verify}",
clientcert => "$config{clientcert}",
clientkey => "$config{clientkey}",
cafile => "$config{cafile}"
);
# 以上為start_tls調(diào)用的參數(shù)
-------------代碼二,被代碼一調(diào)用----------------------------
sub start_tls {
my $ldap = shift;
my $arg = &_options;
my $sock = $ldap->socket; #問題一:$ldap 怎么就成一個(gè)“類”了?還能調(diào)用函數(shù)的?
require IO::Socket::SSL;
require Net::LDAP::Extension;
my $mesg = $ldap->message('Net::LDAP::Extension' => $arg); #問題二:message調(diào)用的是一個(gè)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,
}
);
-------------代碼三,被代碼二調(diào)用----------------------------
sub message { #問題三:這個(gè)函數(shù)在是什么作用?求具體的解釋,特別是shift這里沒看懂
my $ldap = shift;
shift->new($ldap, @_);
}
以上三段代碼來自/usr/share/perl5/Net/LDAP.pm |
|