/**
* 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, errno=%s, errstr=%s",
- $messageData[0]->__toString(),
- $messageData[1],
- $messageData[2],
- $messageData[3]
- );
+ // Is it a resource?
+ if (is_resource($message[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, errno=%s, errstr=%s",
+ $messageData[0]->__toString(),
+ $messageData[1],
+ $messageData[2],
+ $messageData[3]
+ );
+ }
// Call parent exception constructor
parent::__construct($message, $code);