sub _sslproxy_done {
my($self, $response, $callback) = @_;
# We expect here "200 Connection established"
unless($response->is_success) {
$logger->log(WARN, "Proxy request failed: ",
$response->status_line);
return;
}
$logger->log(DEBUG, "Proxy CONNECTed: sock=",
$self->{proxy_requestor}->sock,
" fileno=",
fileno($self->{proxy_requestor}->sock));
$self->{sslsock} = $self->{proxy_requestor}->sock;
unless(IO::Socket::SSL->start_SSL($self->{sslsock},
SSL_startHandshake => 0)) {
$logger->log(DEBUG, "start_SSL returns false");
return;
}
for(;;) { # Later do asynchronously!
$logger->log(DEBUG, "connect_SSL...");
$self->{sslsock}->connect_SSL && last;
$logger->log(DEBUG, "connect_SSL: $SSL_ERROR");
}
$logger->log(DEBUG, "_sslproxy_done() sslsock=",
$self->{sslsock},
" opened=",
$self->{sslsock} && $self->{sslsock}->opened);
goto &$callback if($self->{sslsock});
$logger->log(WARN, "start_SSL error: ",
IO::Socket::SSL::errstr() || "Unknown");
}
####
1337867878.449198 [Mumble::Backend::query]: Proxy CONNECTed: sock=bless( \*Symbol::GEN2, 'IO::Socket::INET' ) fileno=7 at Mumble::Backend::query line 582
####
DEBUG: .../IO/Socket/SSL.pm:991: socket = IO::Socket::INET=GLOB(0x18e1dc0) fileno=
####
DEBUG: .../IO/Socket/SSL.pm:1546: new ctx 26143712
DEBUG: .../IO/Socket/SSL.pm:1017: dont start handshake: IO::Socket::SSL=GLOB(0x18e1dc0)
DEBUG: .../IO/Socket/SSL.pm:349: ssl handshake not started
1337867878.451761 [Mumble::Backend::query]: connect_SSL... at Mumble::Backend::query line 589
DEBUG: .../IO/Socket/SSL.pm:1277: Socket has no filenoerror:00000000:lib(0):func(0):reason(0)