ID: 9695 User Update by: [EMAIL PROTECTED] Status: Closed Bug Type: Sockets related Description: memory leak when using fsockopen & fclose Here is my php script.... <? header("content-type: text/html; charset=big5"); ?> <html> <style type="text/css"> <!-- pre {font-family:'courier'; font-size:12pt; letter-spacing:1}; th {background-color: gold; text-align: center;}; td {background-color: #ffffe0; text-align: center;}; --> </style> <body background="/icon/ivory.jpg"> <center><h1><? if (isset($grp)) echo($grp) ?></h1></center> <hr> <? if (isset($grp)) $group = $grp; else { $group = "ntust.office.library"; } // news server $fd = fsockopen("news.ntust.edu.tw", 119, &$errno, &$errstr, 30); if ( $fd ) { $s = 0; $c = 0; $out = ""; set_socket_blocking ( $fd, false ); do { $out = fgets ( $fd, 2500 ); if ( ereg ( "^200", $out ) ) { $s = 0; $out = ""; $c++; } else if ( ( $c > 0 ) && ( $out == "" ) ) { break; } else { $s++; } if ( $s == 9999 ) { break; } } while ( $out == "" ); set_socket_blocking ( $fd, true ); if (!isset($grp)) { listgroup($fd); } elseif (isset($mid)) { ReadBody($fd, $group ,$mid); } else { ReadSubject($fd, $group); } fputs ( $fd, "QUIT\n" ); fclose( $fd ); $fd = null; } else { echo "$errstr ($errno)<br>\n"; } ?> <hr> </body> </html> <? exit; function listgroup($fp) { fputs ( $fp, "LIST ACTIVE ntust.*\n" ); // fputs ( $fp, "LIST\n" ); $output = fgets ( $fp, 2000 ); if (! ereg( "^215", $output )) return; echo("<table border=1 width=400 align=center>\n"); echo("<tr><th>¸s²Õ</th><th>Post ¼Æ¥Ø</th></tr>\n"); for($c=0 ; $c <=1000 ;$c++) { $output = fgets ( $fp, 200 ); if ( ereg ( "^\.", $output ) ) break; list( $newsgrp, $num) = split(" |\t", $output, 2); $num = (int) ($num); if ($num ==0 ) continue; if ( ereg ( "\.library", $newsgrp ) ) $item="<font color=red><b>$newsgrp</b></font>" ; else if ( ereg ( "ntust", $newsgrp ) ) $item=$newsgrp; else continue; if ($c%2 == 0) $COLOR='bisque'; else $COLOR='mintcream'; echo ("<tr bgcolor=$COLOR><td>$item</td><td>"); echo ("<a href=\"libnews.php?grp=$newsgrp\">$num</a></td></tr>\n"); // echo ("<a href=\"libnews.php?grp=$newsgrp\">$num</a></td></tr>\n"); } echo("</table>\n"); } function ReadSubject($fp,$grp) { echo ("<pre>\n"); fputs ( $fp, "GROUP $grp\n" ); $output = fgets ( $fp, 2000 ); list( $stat, $num, $start, $end) = split(' ', $output, 5); if ($stat != '211') return; $i = (int) $start; $j = (int) $end; for (; $i <= $j; $j--) { fputs ( $fp, "HEAD $j\n" ); for($c=0 ; $c <50 ;$c++) { $output = fgets ( $fp, 200 ); if ( ereg ( "^\.|^423", $output ) ) break; if ( ereg ( "(^From):.*(\(.*\))\r", $output, $reg ) ) $from=$reg[2]; if ( ereg ( "(^Subject): (.+)\r", $output, $reg ) ) $sbj=$reg[2]; if ( ereg ( "(^Date):(.+ .+ .+ ).* GMT.*\n", $output, $reg ) ) $date=$reg[2]; } if (ereg ( "^\.", $output )) { if(isset($grp)) $glink = "&grp=" . $grp; else $glink = ""; echo("<tt>$date</tt><a href=\"libnews.php?mid=". $j . $glink . "\">$sbj</a>$from\n"); } } echo ("</pre>\n"); } function ReadBody($fp,$grp,$mesgid) { echo ("<pre>\n"); fputs ( $fp, "group $grp\n" ); $output = fgets ( $fp, 2000 ); if (! ereg("^211", $output )) return; fputs ( $fp, "head $mesgid\n" ); for($c=0 ; $c <=100 ;$c++) { $output = fgets ( $fp, 200 ); if ( ereg ( "^\.|^423", $output ) ) break; if ( ereg ( "^From|^Subject|^Date", $output) ) echo "$output"; } fputs ( $fp, "body $mesgid\n" ); $op = true; for($c=0 ; $c <=200 ;$c++) { $output = fgets ( $fp, 200 ); if ( ereg ( "^222", $output ) ) continue; if ( ereg ( "^\.|^423", $output ) ) break; // if ( ereg ( "^--\r", $output ) ) $op = false; if ($op) echo ereg_replace("\[(;*[0-9]*)*m" , "", $output); } echo ("</pre>\n"); } //header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 //header("Pragma: no-cache"); // HTTP/1.0 ?> Previous Comments: --------------------------------------------------------------------------- [2001-03-17 09:26:46] [EMAIL PROTECTED] Not reproducible. The latest PHP CVS with AOLserver 3.3.1 on FreeBSD 4.3-BETA does not exhibit this behaviour. --------------------------------------------------------------------------- [2001-03-12 02:26:49] [EMAIL PROTECTED] When I using PHP4 in AOLSerevr3.2 at FreeBSD, It seems to get memory leak when I using fsockopen() & fclose(), and the memory usage is gettiing bigger & bigger.... configure option --with libgcc. --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=9695 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]