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