My first thing was to compare the files to the version 4.2.1 files. I noticed what you pointed out, and wondered if the change from:
'Canceled_Reversal' ? $vbulletin->GPC
to:
'Canceled_Reversal' ? $
this->registry->GPC
was the cause, or a contributing cause.
But in the 4.2.3 Beta 3 version of includes/paymentapi/class_paypal.php, the following lines were 'added':
80: curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
92: $this->error_code = 'curl_failure';
197: curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));
Line 92 above replaced this block of code:
Code:
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Host: www.paypal.com\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($query) . "\r\n\r\n";
if ($fp = fsockopen('www.paypal.com', 80, $errno, $errstr, 15))
{
socket_set_timeout($fp, 15);
fwrite($fp, $header . $query);
while (!feof($fp))
{
$result = fgets($fp, 1024);
if (strcmp($result, 'VERIFIED') == 0)
{
break;
}
}
fclose($fp);
}
And this block of code was removed completely (lines 219 through 240 in the 4.2.1 version):
Code:
if (!$communication)
{
$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Host: www.paypal.com\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($query) . "\r\n\r\n";
if ($fp = fsockopen('www.paypal.com', 80, $errno, $errstr, 15))
{
socket_set_timeout($fp, 15);
fwrite($fp, $header . $query);
while (!feof($fp))
{
$result = fgets($fp, 1024);
if (strcmp($result, 'INVALID') == 0)
{
$communication = true;
break;
}
}
fclose($fp);
}
}