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