X-Git-Url: https://git.cweiske.de/shpub.git/blobdiff_plain/af315313a912ec99a2539bc79df68f502fdd8000..97a82467ccfaef7c809b366dbc84ad42afd6f495:/src/shpub/Command/Connect.php diff --git a/src/shpub/Command/Connect.php b/src/shpub/Command/Connect.php index bd1606e..b59de5c 100644 --- a/src/shpub/Command/Connect.php +++ b/src/shpub/Command/Connect.php @@ -65,12 +65,18 @@ class Command_Connect } $this->cfg->hosts[$hostKey] = $host; $this->cfg->save(); + echo "Server configuration $hostKey saved successfully.\n"; } protected function fetchAccessToken( $host, $userUrl, $code, $redirect_uri, $state ) { $req = new \HTTP_Request2($host->endpoints->token, 'POST'); + if (version_compare(PHP_VERSION, '5.6.0', '<')) { + //correct ssl validation on php 5.5 is a pain, so disable + $req->setConfig('ssl_verify_host', false); + $req->setConfig('ssl_verify_peer', false); + } $req->setHeader('Content-Type: application/x-www-form-urlencoded'); $req->setBody( http_build_query( @@ -125,9 +131,20 @@ class Command_Connect protected function getHttpServerData() { - //FIXME: get IP from SSH_CONNECTION $ip = '127.0.0.1'; $port = 12345; + + if (isset($_SERVER['SSH_CONNECTION'])) { + $parts = explode(' ', $_SERVER['SSH_CONNECTION']); + if (count($parts) >= 3) { + $ip = $parts[2]; + } + } + if (strpos($ip, ':') !== false) { + //ipv6 + $ip = '[' . $ip . ']'; + } + $redirect_uri = 'http://' . $ip . ':' . $port . '/callback'; $socketStr = 'tcp://' . $ip . ':' . $port; return [$redirect_uri, $socketStr]; @@ -136,6 +153,11 @@ class Command_Connect protected function verifyAuthCode($host, $code, $state, $redirect_uri, $me) { $req = new \HTTP_Request2($host->endpoints->authorization, 'POST'); + if (version_compare(PHP_VERSION, '5.6.0', '<')) { + //correct ssl validation on php 5.5 is a pain, so disable + $req->setConfig('ssl_verify_host', false); + $req->setConfig('ssl_verify_peer', false); + } $req->setHeader('Content-Type: application/x-www-form-urlencoded'); $req->setBody( http_build_query(