mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Updated to HttpSocket, HttpResponse and CakeSocket use SocketException.
This commit is contained in:
parent
c0e2f63f7d
commit
754c9b2c3d
6 changed files with 29 additions and 21 deletions
|
@ -100,7 +100,7 @@ class CakeSocket {
|
|||
* Connect the socket to the given host and port.
|
||||
*
|
||||
* @return boolean Success
|
||||
* @throws Exception
|
||||
* @throws SocketException
|
||||
*/
|
||||
public function connect() {
|
||||
if ($this->connection != null) {
|
||||
|
@ -120,7 +120,7 @@ class CakeSocket {
|
|||
|
||||
if (!empty($errNum) || !empty($errStr)) {
|
||||
$this->setLastError($errStr, $errNum);
|
||||
throw new Exception($errStr, $errNum);
|
||||
throw new SocketException($errStr, $errNum);
|
||||
}
|
||||
|
||||
$this->connected = is_resource($this->connection);
|
||||
|
|
|
@ -430,6 +430,14 @@ class CakeSessionException extends CakeException { }
|
|||
*/
|
||||
class ConfigureException extends CakeException { }
|
||||
|
||||
/**
|
||||
* Exception class for Socket. This exception will be thrown from CakeSocket, HttpSocket and HttpResponse when it
|
||||
* encounters an error.
|
||||
*
|
||||
* @package cake.libs
|
||||
*/
|
||||
class SocketException extends CakeException { }
|
||||
|
||||
/**
|
||||
* Exception class for Xml. This exception will be thrown from Xml when it
|
||||
* encounters an error.
|
||||
|
|
|
@ -123,15 +123,15 @@ class HttpResponse implements ArrayAccess {
|
|||
*
|
||||
* @param string $message Message to parse
|
||||
* @return void
|
||||
* @throw Exception
|
||||
* @throw SocketException
|
||||
*/
|
||||
public function parseResponse($message) {
|
||||
if (!is_string($message)) {
|
||||
throw new Exception(__('Invalid response.'));
|
||||
throw new SocketException(__('Invalid response.'));
|
||||
}
|
||||
|
||||
if (!preg_match("/^(.+\r\n)(.*)(?<=\r\n)\r\n/Us", $message, $match)) {
|
||||
throw new Exception(__('Invalid HTTP response.'));
|
||||
throw new SocketException(__('Invalid HTTP response.'));
|
||||
}
|
||||
|
||||
list(, $statusLine, $header) = $match;
|
||||
|
@ -187,7 +187,7 @@ class HttpResponse implements ArrayAccess {
|
|||
*
|
||||
* @param string $body A string continaing the chunked body to decode.
|
||||
* @return mixed Array of response headers and body or false.
|
||||
* @throws Exception
|
||||
* @throws SocketException
|
||||
*/
|
||||
protected function _decodeChunkedBody($body) {
|
||||
if (!is_string($body)) {
|
||||
|
@ -199,7 +199,7 @@ class HttpResponse implements ArrayAccess {
|
|||
|
||||
while ($chunkLength !== 0) {
|
||||
if (!preg_match("/^([0-9a-f]+) *(?:;(.+)=(.+))?\r\n/iU", $body, $match)) {
|
||||
throw new Exception(__('HttpSocket::_decodeChunkedBody - Could not parse malformed chunk.'));
|
||||
throw new SocketException(__('HttpSocket::_decodeChunkedBody - Could not parse malformed chunk.'));
|
||||
}
|
||||
|
||||
$chunkSize = 0;
|
||||
|
|
|
@ -205,7 +205,7 @@ class HttpSocket extends CakeSocket {
|
|||
*
|
||||
* @param mixed $resource Resource or false to disable the resource use
|
||||
* @return void
|
||||
* @throw Exception
|
||||
* @throw SocketException
|
||||
*/
|
||||
public function setContentResource($resource) {
|
||||
if ($resource === false) {
|
||||
|
@ -213,7 +213,7 @@ class HttpSocket extends CakeSocket {
|
|||
return;
|
||||
}
|
||||
if (!is_resource($resource)) {
|
||||
throw new Exception(__('Invalid resource.'));
|
||||
throw new SocketException(__('Invalid resource.'));
|
||||
}
|
||||
$this->_contentResource = $resource;
|
||||
}
|
||||
|
@ -366,7 +366,7 @@ class HttpSocket extends CakeSocket {
|
|||
}
|
||||
|
||||
if (!App::import('Lib', $this->responseClass)) {
|
||||
throw new Exception(__('Class %s not found.', $this->responseClass));
|
||||
throw new SocketException(__('Class %s not found.', $this->responseClass));
|
||||
}
|
||||
$responseClass = $this->responseClass;
|
||||
$this->response = new $responseClass($response);
|
||||
|
@ -525,7 +525,7 @@ class HttpSocket extends CakeSocket {
|
|||
* Set authentication in request
|
||||
*
|
||||
* @return void
|
||||
* @throws Exception
|
||||
* @throws SocketException
|
||||
*/
|
||||
protected function _setAuth() {
|
||||
if (empty($this->_auth)) {
|
||||
|
@ -534,10 +534,10 @@ class HttpSocket extends CakeSocket {
|
|||
$method = key($this->_auth);
|
||||
$authClass = Inflector::camelize($method) . 'Authentication';
|
||||
if (!App::import('Lib', 'http/' . $authClass)) {
|
||||
throw new Exception(__('Unknown authentication method.'));
|
||||
throw new SocketException(__('Unknown authentication method.'));
|
||||
}
|
||||
if (!method_exists($authClass, 'authentication')) {
|
||||
throw new Exception(sprintf(__('The %s do not support authentication.'), $authClass));
|
||||
throw new SocketException(sprintf(__('The %s do not support authentication.'), $authClass));
|
||||
}
|
||||
call_user_func("$authClass::authentication", $this, &$this->_auth[$method]);
|
||||
}
|
||||
|
@ -546,7 +546,7 @@ class HttpSocket extends CakeSocket {
|
|||
* Set the proxy configuration and authentication
|
||||
*
|
||||
* @return void
|
||||
* @throws Exception
|
||||
* @throws SocketException
|
||||
*/
|
||||
protected function _setProxy() {
|
||||
if (empty($this->_proxy) || !isset($this->_proxy['host'], $this->_proxy['port'])) {
|
||||
|
@ -560,10 +560,10 @@ class HttpSocket extends CakeSocket {
|
|||
}
|
||||
$authClass = Inflector::camelize($this->_proxy['method']) . 'Authentication';
|
||||
if (!App::import('Lib', 'http/' . $authClass)) {
|
||||
throw new Exception(__('Unknown authentication method for proxy.'));
|
||||
throw new SocketException(__('Unknown authentication method for proxy.'));
|
||||
}
|
||||
if (!method_exists($authClass, 'proxyAuthentication')) {
|
||||
throw new Exception(sprintf(__('The %s do not support proxy authentication.'), $authClass));
|
||||
throw new SocketException(sprintf(__('The %s do not support proxy authentication.'), $authClass));
|
||||
}
|
||||
call_user_func("$authClass::proxyAuthentication", $this, &$this->_proxy);
|
||||
}
|
||||
|
@ -773,7 +773,7 @@ class HttpSocket extends CakeSocket {
|
|||
* @param array $request Needs to contain a 'uri' key. Should also contain a 'method' key, otherwise defaults to GET.
|
||||
* @param string $versionToken The version token to use, defaults to HTTP/1.1
|
||||
* @return string Request line
|
||||
* @throws Exception
|
||||
* @throws SocketException
|
||||
*/
|
||||
protected function _buildRequestLine($request = array(), $versionToken = 'HTTP/1.1') {
|
||||
$asteriskMethods = array('OPTIONS');
|
||||
|
@ -781,7 +781,7 @@ class HttpSocket extends CakeSocket {
|
|||
if (is_string($request)) {
|
||||
$isValid = preg_match("/(.+) (.+) (.+)\r\n/U", $request, $match);
|
||||
if (!$this->quirksMode && (!$isValid || ($match[2] == '*' && !in_array($match[3], $asteriskMethods)))) {
|
||||
throw new Exception(__('HttpSocket::_buildRequestLine - Passed an invalid request line string. Activate quirks mode to do this.'));
|
||||
throw new SocketException(__('HttpSocket::_buildRequestLine - Passed an invalid request line string. Activate quirks mode to do this.'));
|
||||
}
|
||||
return $request;
|
||||
} elseif (!is_array($request)) {
|
||||
|
@ -799,7 +799,7 @@ class HttpSocket extends CakeSocket {
|
|||
}
|
||||
|
||||
if (!$this->quirksMode && $request['uri'] === '*' && !in_array($request['method'], $asteriskMethods)) {
|
||||
throw new Exception(__('HttpSocket::_buildRequestLine - The "*" asterisk character is only allowed for the following methods: %s. Activate quirks mode to work outside of HTTP/1.1 specs.', implode(',', $asteriskMethods)));
|
||||
throw new SocketException(__('HttpSocket::_buildRequestLine - The "*" asterisk character is only allowed for the following methods: %s. Activate quirks mode to work outside of HTTP/1.1 specs.', implode(',', $asteriskMethods)));
|
||||
}
|
||||
return $request['method'] . ' ' . $request['uri'] . ' ' . $versionToken . "\r\n";
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ class CakeSocketTest extends CakeTestCase {
|
|||
* testInvalidConnection method
|
||||
*
|
||||
* @dataProvider invalidConnections
|
||||
* @expectedException Exception
|
||||
* @expectedException SocketException
|
||||
* return void
|
||||
*/
|
||||
public function testInvalidConnection($data) {
|
||||
|
|
|
@ -295,7 +295,7 @@ class HttpResponseTest extends CakeTestCase {
|
|||
* testInvalidParseResponseData
|
||||
*
|
||||
* @dataProvider invalidParseResponseDataProvider
|
||||
* @expectedException Exception
|
||||
* @expectedException SocketException
|
||||
* return void
|
||||
*/
|
||||
public function testInvalidParseResponseData($value) {
|
||||
|
|
Loading…
Reference in a new issue