Browse Source

Simplified proxy port determination and passed tests

Maxim Chernyshev 13 years ago
parent
commit
8918551f29

+ 8 - 6
src/Composer/Util/StreamContextFactory.php

@@ -43,17 +43,19 @@ final class StreamContextFactory
             
             if (isset($proxyPort)) {
             	$proxyURL .= ":" . $proxyPort;
+            } else {
+            	if ('http://' == substr($proxyURL, 0, 7)) {
+            		$proxyURL .= ":80";
+            	} else if ('https://' == substr($proxyURL, 0, 8)) {
+            		$proxyURL .= ":443";
+            	}
             }
             
             // http(s):// is not supported in proxy
-            if ('http://' == substr($proxy, 0, 7)) {
-                $proxy = 'tcp://' . rtrim(substr($proxy, 7), '/') . (parse_url($proxy, PHP_URL_PORT) ? '' : ':80');
-            } else if ('https://' == substr($proxy, 0, 8)) {
-                $proxy = 'ssl://' . rtrim(substr($proxy, 8), '/') . (parse_url($proxy, PHP_URL_PORT) ? '' : ':443');
-            }
+            $proxyURL = str_replace(array('http://', 'https://'), array('tcp://', 'ssl://'), $proxyURL);
 
             if (0 === strpos($proxyURL, 'ssl:') && !extension_loaded('openssl')) {
-                throw new \RuntimeException('You must enable the openssl extension to use a proxy over https');
+            	throw new \RuntimeException('You must enable the openssl extension to use a proxy over https');
             }
 
             $options['http'] = array(

+ 1 - 1
tests/Composer/Test/Util/StreamContextFactoryTest.php

@@ -97,7 +97,7 @@ class StreamContextFactoryTest extends \PHPUnit_Framework_TestCase
             $context = StreamContextFactory::getContext();
             $options = stream_context_get_options($context);
 
-						$this->assertEquals(array('http' => array(
+			$this->assertEquals(array('http' => array(
                 'proxy' => $expected,
                 'request_fulluri' => true,
             )), $options);