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)