Edit report at https://bugs.php.net/bug.php?id=54511&edit=1

 ID:                 54511
 Comment by:         alexwichti at googlemail dot com
 Reported by:        dbpalan at hotmail dot com
 Summary:            Failure in socket open to some SSL server
 Status:             Open
 Type:               Bug
 Package:            OpenSSL related
 Operating System:   Debian Squeeze
 PHP Version:        5.3.6
 Block user comment: N
 Private report:     N

 New Comment:

Bug still exists in 5.4.3.
Workaround by dbpalan works though, thanks!


Previous Comments:
------------------------------------------------------------------------
[2011-04-12 10:04:01] dbpalan at hotmail dot com

1. The function call is located in ext/openssl/xp_ssl.c

2. A workaround is replace the line fsockopen() with:

    $context = stream_context_create(array(
        'ssl' => array('SNI_server_name' => 'smtpb.scig.gov.hk'),
    ));
    $fp = stream_socket_client("tcp://smtpb.scig.gov.hk:465", $errno, $errstr, 
30, STREAM_CLIENT_CONNECT, $context);

------------------------------------------------------------------------
[2011-04-12 09:51:12] dbpalan at hotmail dot com

Description:
------------
fsockopen() connect to a server always failed.  After some tests it is 
confirmed due to a bug in a SSL function call which only occur in new version:

5.2.6  - passed
5.2.17 - passed
5.3.0  - passed
5.3.1  - passed
5.3.2  - failed
5.3.3  - failed
5.3.6  - failed

The bug was introduced from svn revision #291493 "merge from trunk: openssl sni 
support" from the function call to 
SSL_set_tlsext_host_name(sslsock->ssl_handle, sslsock->sni).

If I remark this function, everything works fine.

I have no further idea what is this function do, and what side effect without 
this function.  Please advice and hope a fix would be available.  Thank you.


Test script:
---------------
<?
$fp = fsockopen("ssl://smtpb.scig.gov.hk", 465, $errno, $errstr, 30);
if (!$fp) {
    echo "fail: $errstr ($errno)\n";
} else {
    echo "success";
}
?>


Expected result:
----------------
$fp is a non-zero handle, the screen will show "success"

Actual result:
--------------
$fp is EMPTY, the screen will show:

Warning: fsockopen() [function.fsockopen]: SSL operation failed with code 1. 
OpenSSL Error messages: error:14094417:SSL routines:func(148):reason(1047) in 
/www/test.php on line 2

Warning: fsockopen() [function.fsockopen]: Failed to enable crypto in 
/www/test.php on line 2

Warning: fsockopen() [function.fsockopen]: unable to connect to 
ssl://smtpb.scig.gov.hk:465 (Unknown error) in /www/test.php on line 2

fail: 0


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=54511&edit=1

Reply via email to