diff --git a/src/SshProcessConnector.php b/src/SshProcessConnector.php index 0e9661b..bf10b0f 100644 --- a/src/SshProcessConnector.php +++ b/src/SshProcessConnector.php @@ -34,7 +34,7 @@ public function __construct($uri, LoopInterface $loop) // URI must use optional ssh:// scheme, must contain host and neither pass nor target must start with dash $parts = \parse_url((\strpos($uri, '://') === false ? 'ssh://' : '') . $uri); $pass = isset($parts['pass']) ? \rawurldecode($parts['pass']) : null; - $target = (isset($parts['user']) ? \rawurldecode($parts['user']) . '@' : '') . $parts['host']; + $target = (isset($parts['user']) ? \rawurldecode($parts['user']) . '@' : '') . (isset($parts['host']) ? $parts['host'] : ''); if (!isset($parts['scheme'], $parts['host']) || $parts['scheme'] !== 'ssh' || (isset($pass[0]) && $pass[0] === '-') || $target[0] === '-') { throw new \InvalidArgumentException('Invalid SSH server URI'); } diff --git a/src/SshSocksConnector.php b/src/SshSocksConnector.php index 064b673..278c096 100644 --- a/src/SshSocksConnector.php +++ b/src/SshSocksConnector.php @@ -45,7 +45,7 @@ public function __construct($uri, LoopInterface $loop) // URI must use optional ssh:// scheme, must contain host and neither pass nor target must start with dash $parts = \parse_url((\strpos($uri, '://') === false ? 'ssh://' : '') . $uri); $pass = isset($parts['pass']) ? \rawurldecode($parts['pass']) : null; - $target = (isset($parts['user']) ? \rawurldecode($parts['user']) . '@' : '') . $parts['host']; + $target = (isset($parts['user']) ? \rawurldecode($parts['user']) . '@' : '') . (isset($parts['host']) ? $parts['host'] : ''); if (!isset($parts['scheme'], $parts['host']) || $parts['scheme'] !== 'ssh' || (isset($pass[0]) && $pass[0] === '-') || $target[0] === '-') { throw new \InvalidArgumentException('Invalid SSH server URI'); }