Ya, 
I was hoping on redoing this because it greatly abuses the kernels
network buffering.

-Jason


On Sun, 2002-10-27 at 21:05, Sterling Hughes wrote:
> sterling              Sun Oct 27 22:05:05 2002 EDT
> 
>   Modified files:              
>     /php4/ext/sockets sockets.c 
>   Log:
>   make one-line read work on win32... 
>   
>   # The implementation of this function is brain-dead, but at least 
>   # now its brain-dead on win32 too... ;-)
>   
>   
>   
> Index: php4/ext/sockets/sockets.c
> diff -u php4/ext/sockets/sockets.c:1.124 php4/ext/sockets/sockets.c:1.125
> --- php4/ext/sockets/sockets.c:1.124  Fri Oct  4 14:01:52 2002
> +++ php4/ext/sockets/sockets.c        Sun Oct 27 22:05:04 2002
> @@ -19,7 +19,7 @@
>     +----------------------------------------------------------------------+
>   */
>  
> -/* $Id: sockets.c,v 1.124 2002/10/04 18:01:52 rasmus Exp $ */
> +/* $Id: sockets.c,v 1.125 2002/10/28 03:05:04 sterling Exp $ */
>  
>  #ifdef HAVE_CONFIG_H
>  #include "config.h"
> @@ -272,7 +272,7 @@
>  }
>  
>  /* {{{ php_read -- wrapper around read() so that it only reads to a \r or \n. */
> -int php_read(int bsd_socket, void *buf, int maxlen)
> +int php_read(int bsd_socket, void *buf, size_t maxlen, int flags)
>  {
>       int m = 0, n = 0;
>       int no_read = 0;
> @@ -309,7 +309,7 @@
>               }
>                
>               if (n < maxlen) {
> -                     m = read(bsd_socket, (void *) t, 1);
> +                     m = recv(bsd_socket, (void *) t, 1, flags);
>               }
>                
>               if (errno != 0 && errno != ESPIPE && errno != EAGAIN) {
> @@ -766,7 +766,7 @@
>  }
>  /* }}} */
>  
> -typedef int (*read_func)(int, void *, int);
> +typedef int (*read_func)(int, void *, size_t, int);
>  
>  /* {{{ proto string socket_read(resource socket, int length [, int type])
>     Reads a maximum of length bytes from socket */
> @@ -774,7 +774,7 @@
>  {
>       zval            *arg1;
>       php_socket      *php_sock;
> -     read_func       read_function = (read_func) read;
> +     read_func       read_function = (read_func) recv;
>       char            *tmpbuf;
>       int                     retval, length, type = PHP_BINARY_READ;
>  
> @@ -789,12 +789,7 @@
>  
>       tmpbuf = emalloc(length + 1);
>  
> -#ifndef PHP_WIN32
> -     retval = (*read_function)(php_sock->bsd_socket, tmpbuf, length);
> -#else
> -     retval = recv(php_sock->bsd_socket, tmpbuf, length, 0);
> -#endif
> -
> +     retval = (*read_function)(php_sock->bsd_socket, tmpbuf, length, 0);
>       if (retval == -1) {
>               PHP_SOCKET_ERROR(php_sock, "unable to read from socket", errno);
>               efree(tmpbuf);
> 
> 
> 
> -- 
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
--
Jason Greene <[EMAIL PROTECTED]
             <[EMAIL PROTECTED]>

People seem to think that the blanket phrase, "I only work here," absolves
them utterly from any moral obligation in terms of the public -- but this
was precisely Eichmann's excuse for his job in the concentration camps.


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to