From:             donald at designknights dot com
Operating system: SUSE linux 10.1
PHP version:      5.2.4
PHP Bug Type:     Network related
Bug description:  php hangs when using fgets with a socket 

Description:
------------
this is a script to connect to a pop3 server and parse emails.

$connection = fsockopen($popServer, $port, $error ,$string ,$timeout);
        $response = fgets($connection, $buffer);
        $newLine = "\r\n";
        $localhost = "www.designknights.com";
        if(empty($connection))  {
           echo "Failed to connect: $response";
           exit;
        }
        else {
           $logArray['connection'] = "Connected to: $response";
        }
        echo "sending username<br>";
        ob_flush();
        flush();
        fputs($connection, "USER $username". $newLine);
        $response = fgets($connection, $buffer);
        $logArray['userresponse'] = "$response";
        fputs($connection, "PASS $password". $newLine);
        $response = fgets($connection, $buffer);
        $logArray['passresponse'] = "$response";
        if (substr($response,0,3)!="+OK"){
                echo "Mail server said: ".$response;
                exit;
        }
        fputs($connection,"LIST".$newLine);
        $msg_array = array();
        $response = fgets($connection,$buffer);
        $logArray['listresponse'] = "$response";
        $messages = explode(" ",$response);
        $nummessages = $messages['1'];
        echo "number of messages =".$nummessages;
        stream_set_blocking($connection,1);
        for ($i=1;$i<=$nummessages;$i++){
                fputs($connection,"retr ".$i.$newLine,$buffer);
                $message = '';
                $line = '';

//This loop is where it hangs
          
               while (!feof($connection){
                        $line = fgets($connection,$buffer);
                        echo "<br> line = $line";
                        ob_flush();
                        flush();
                        
                }
                $message_blown = explode(":",$message);
                echo "<br> message $i = <br>";
                print_r($message_blown);
        }               
        echo "return = ".print_r($messages)."<br>";
        print_r($logArray);
        fclose($connection);

Reproduce code:
---------------
See above

Expected result:
----------------
It should to my understanding put the lines into the var names $message
then explode that message into $message_blown using : as a separator. 

Actual result:
--------------
it hangs and the max execution time kills php5 while running the script.

-- 
Edit bug report at http://bugs.php.net/?id=42497&edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=42497&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=42497&r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=42497&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=42497&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=42497&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=42497&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=42497&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=42497&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=42497&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=42497&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=42497&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=42497&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=42497&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=42497&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=42497&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=42497&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=42497&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=42497&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=42497&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=42497&r=mysqlcfg

Reply via email to