From: [EMAIL PROTECTED] Operating system: FreeBSD 4.0 PHP version: 4.0.4 PHP Bug Type: Sockets related Bug description: read() on udp-sockets fails <? $port=7; $ip="127.0.0.1"; $sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP); $retval=connect($sock,$ip,$port); write($sock,"blaat\n",6); $numread=read($sock,&$readdata,1); printf("%d %02x %s\n",$numread,ord($readdata),$readdata); close($sock); ?> When changing the 1 on read() to a different number, or when calling it multiple times, the read() function hangs due to an unknown reason (at least for me). This example tries to read from the echo-service, I encountered the problem when developing a radius-client in PHP. This is the stack of the process: #0 0x2825b794 in read () from /usr/lib/libc.so.4 #1 0x809dd78 in php_read (fd=4, buf=0x81e512c, maxlen=2) at sockets.c:640 #2 0x809df38 in php_if_read (ht=3, return_value=0x821768c, this_ptr=0x0, return_value_used=1) at sockets.c:692 #3 0x81121bc in execute (op_array=0x820948c) at ./zend_execute.c:1519 #4 0x80ea45b in zend_execute_scripts (type=8, file_count=3) at zend.c:729 #5 0x807c360 in php_execute_script (primary_file=0xbfbff408) at main.c:1221 #6 0x80f5eda in apache_php_module_main (r=0x821b034, display_source_mode=0) at sapi_apache.c:89 #7 0x8079cda in send_php () #8 0x8079d12 in send_parsed_php () #9 0x811c7f5 in ap_invoke_handler () #10 0x8130850 in process_request_internal () #11 0x81308ba in ap_process_request () #12 0x8127b2b in child_main () #13 0x8127db0 in make_child () #14 0x8128134 in perform_idle_server_maintenance () #15 0x8128659 in standalone_main () #16 0x8128c88 in main () #17 0x8062801 in _start () and info on the first two frames: (gdb) up #1 0x809dd78 in php_read (fd=4, buf=0x81e512c, maxlen=2) at sockets.c:640 640 m = read(fd, (void *) t, 1); (gdb) info locals t = 0x81e512d "laat" m = 1 n = 1 no_read = 1 nonblock = 0 (gdb) up #2 0x809df38 in php_if_read (ht=3, return_value=0x821768c, this_ptr=0x0, return_value_used=1) at sockets.c:692 (gdb) info locals ht = 136204588 return_value = (zval *) 0x821768c fd = (zval **) 0x8216c0c buf = (zval **) 0x8216c10 length = (zval **) 0x8216c14 binary = (zval **) 0x78b740 tmpbuf = 0x81e512c "blaat" ret = 134864068 read_function = (int (*)()) 0x809dcc4 <php_read> configure is ran with: Configure Command './configure' '--with-apache=../apache_1.3.12' '--enable-track-vars' '--with-ndbm' '--with-db' '--with-mysql' '--enable-sockets' If you need more information, feel free to ask me. Edwin -- Edit Bug report at: http://bugs.php.net/?id=8761&edit=1 -- 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]