--- a/web/lib/Zend/Uri/Http.php Thu Mar 21 17:31:31 2013 +0100
+++ b/web/lib/Zend/Uri/Http.php Thu Mar 21 19:50:53 2013 +0100
@@ -14,9 +14,9 @@
*
* @category Zend
* @package Zend_Uri
- * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
- * @version $Id: Http.php 23409 2010-11-19 19:55:25Z bittarman $
+ * @version $Id: Http.php 24593 2012-01-05 20:35:02Z matthew $
*/
/**
@@ -35,7 +35,7 @@
* @category Zend
* @package Zend_Uri
* @uses Zend_Uri
- * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Zend_Uri_Http extends Zend_Uri
@@ -217,24 +217,20 @@
// Additional decomposition to get username, password, host, and port
$combo = isset($matches[3]) === true ? $matches[3] : '';
- $pattern = '~^(([^:@]*)(:([^@]*))?@)?([^:]+)(:(.*))?$~';
+ $pattern = '~^(([^:@]*)(:([^@]*))?@)?((?(?=[[])[[][^]]+[]]|[^:]+))(:(.*))?$~';
$status = @preg_match($pattern, $combo, $matches);
if ($status === false) {
require_once 'Zend/Uri/Exception.php';
throw new Zend_Uri_Exception('Internal error: authority decomposition failed');
}
-
- // Failed decomposition; no further processing needed
- if ($status === false) {
- return;
- }
-
+
// Save remaining URI components
$this->_username = isset($matches[2]) === true ? $matches[2] : '';
$this->_password = isset($matches[4]) === true ? $matches[4] : '';
- $this->_host = isset($matches[5]) === true ? $matches[5] : '';
+ $this->_host = isset($matches[5]) === true
+ ? preg_replace('~^\[([^]]+)\]$~', '\1', $matches[5]) // Strip wrapper [] from IPv6 literal
+ : '';
$this->_port = isset($matches[7]) === true ? $matches[7] : '';
-
}
/**