X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fexceptions%2Fsocket%2Fclass_InvalidSocketException.php;h=572394cbf38015d4c7323e4bec19791aa81cf937;hp=e94636188e5f025da275a8545d15cfcbb60f0199;hb=d26e71af1e28dc1429823bdec244df6303f9b2fb;hpb=84e2207412d3c6ea9f940a83b2cdd4503509808a diff --git a/inc/classes/exceptions/socket/class_InvalidSocketException.php b/inc/classes/exceptions/socket/class_InvalidSocketException.php index e9463618..572394cb 100644 --- a/inc/classes/exceptions/socket/class_InvalidSocketException.php +++ b/inc/classes/exceptions/socket/class_InvalidSocketException.php @@ -3,11 +3,11 @@ * This exception is thrown when the socket resource is invalid or an error * occurs while socket initialization phase. * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2015 Core Developer Team * @license GNU GPL 3.0 or any newer version - * @link http://www.ship-simu.org + * @link http://www.shipsimu.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,22 +22,37 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -class InvalidSocketException extends FrameworkException { +class InvalidSocketException extends AbstractSocketException { /** * A Constructor for this exception * - * @param $messageArray Error message array - * @param $code Error code + * @param $messageArray Error message array + * @param $code Error code * @return void */ - public function __construct(array $messageData, $code) { - // Construct the message - $message = sprintf("[%s:] Invalid socket (type %s != resource). errno=%s, errstr=%s", - $messageData[0]->__toString(), - $messageData[1], - $messageData[2], - $messageData[3] - ); + public function __construct (array $messageData, $code) { + // Is it a resource? + if (is_resource($messageData[1])) { + // Get last error + $lastError = socket_last_error($messageData[1]); + + // Construct the message + $message = sprintf('[%s:] Invalid socket, type=%s, errno=%s, errstr=%s', + $messageData[0]->__toString(), + gettype($messageData[1]), + $lastError, + socket_strerror($lastError) + ); + } else { + // Construct the message + $message = sprintf('[%s:] Invalid socket, type=%s(%s), errno=%s, errstr=%s', + $messageData[0]->__toString(), + $messageData[1], + gettype($messageData[1]), + $messageData[2], + $messageData[3] + ); + } // Call parent exception constructor parent::__construct($message, $code);