ID:               32979
 Comment by:       roberto at spadim dot com dot br
 Reported By:      mjpph at stardust dot fi
 Status:           Assigned
 Bug Type:         Streams related
 Operating System: Linux (Fedora Core 3)
 PHP Version:      5CVS-2006-01-18 (dev)
 Assigned To:      wez
 New Comment:

without openssl everythink work ok now, socket and stream
where could i send .php files to develop team check it?


Previous Comments:
------------------------------------------------------------------------

[2007-10-08 05:37:14] roberto at spadim dot com dot br

the problem occur with php 5.2.4

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

[2007-10-08 05:32:50] roberto at spadim dot com dot br

i'm having the same problem with xeon quad core (prolian HP) on linux
socket_select work ok
but stream_select don't work
i will recompile php without openssl and check what happen

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

[2006-08-25 19:19:54] stotty at tvnet dot hu

Bug is still present in 5.1.4

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

[2006-01-31 23:08:00] stotty at tvnet dot hu

I have compared the original socket operations code, and the one in the
xp_ssl.x file, and it seems that even in the non-ssl path the code is
not identical. 

I have fixed four differences, two of which caused some functions to be
called twice, and two of which are casting to *(int*)

I do not claim to know the real cause for the bug, and how these
changes fix the problem, but they do, and they make the code more
consistent, and faster, so I think they should be committed.

Here is the patch that solves this problem form me (against 5.1.2)

------------------------cut here-----------------------
*** php-5.1.2/ext/openssl/xp_ssl.c      2006-01-01 13:50:10.000000000 +0100
--- php-5.1.2ssl/ext/openssl/xp_ssl.c   2006-01-31 23:00:58.000000000
+0100
***************
*** 188,194 ****
                } while(retry);
                
        } else {
!               didwrite = php_stream_socket_ops.write(stream, buf, count
TSRMLS_CC);
        }
        
        if (didwrite > 0) {
--- 188,195 ----
                } while(retry);
                
        } else {
!               didwrite = php_stream_socket_ops.write(stream, buf, count
TSRMLS_CC);     
!               return didwrite;
        }
        
        if (didwrite > 0) {
***************
*** 226,231 ****
--- 227,233 ----
        else
        {
                nr_bytes = php_stream_socket_ops.read(stream, buf, count
TSRMLS_CC);
+               return nr_bytes;
        }
  
        if (nr_bytes > 0) {
***************
*** 636,642 ****
  
                case PHP_STREAM_AS_FD_FOR_SELECT:
                        if (ret) {
!                               *ret = (void*)sslsock->s.socket;
                        }
                        return SUCCESS;
  
--- 638,644 ----
  
                case PHP_STREAM_AS_FD_FOR_SELECT:
                        if (ret) {
!                               *(int*)ret = (void*)sslsock->s.socket;
                        }
                        return SUCCESS;
  
***************
*** 646,652 ****
                                return FAILURE;
                        }
                        if (ret) {
!                               *ret = (void*)sslsock->s.socket;
                        }
                        return SUCCESS;
                default:
--- 648,654 ----
                                return FAILURE;
                        }
                        if (ret) {
!                               *(int*)ret = (void*)sslsock->s.socket;
                        }
                        return SUCCESS;
                default:

------------------------cut here-----------------------

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

[2006-01-30 09:41:28] stotty at tvnet dot hu

I've done some testing, and this bug is definitely triggered by 64 bit+
SSL support.

Bug triggers:
FC4 64 bit + PHP5.1.2 (configure --with-openssl)
FC4 64 bit + PHP 5.1Jan 29 snapshot (configure --with-openssl)

Bug does not trigger:
FC4 64 bit + PHP 5.1.2 (configure)
FC4 64 bit + PHP 5.1Jan29 snapshot (configure)
FC4 32 bit + PHP 5.1.2 (configure --with-openssl)
FC4 32 bit + PHP 5.0.4-10.5 (stock FC RPM)

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/32979

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

Reply via email to