[PHP4BETA] CVS update: php4/ext/standard

From: Date: Thu, 20 May 1999 13:56:20 +0000
Subject: [PHP4BETA] CVS update: php4/ext/standard
Groups: php.version4 
Request: Send a blank email to php-version4+get-901@lists.php.net to get a copy of this message
Date: Thursday May 20, 1999 @ 9:56 Author: sas Update of /repository/php4/ext/standard In directory php:/tmp/cvs-serv1323 Modified Files: file.c fsock.c fsock.h Log Message: Apply the fix for feof() Index: php4/ext/standard/file.c diff -u php4/ext/standard/file.c:1.12 php4/ext/standard/file.c:1.13 --- php4/ext/standard/file.c:1.12 Sun May 16 07:19:25 1999 +++ php4/ext/standard/file.c Thu May 20 09:56:19 1999 @@ -26,7 +26,7 @@ | Authors: Rasmus Lerdorf <rasmus@lerdorf.on.ca> | +----------------------------------------------------------------------+ */ -/* $Id: file.c,v 1.12 1999/05/16 11:19:25 sas Exp $ */ +/* $Id: file.c,v 1.13 1999/05/20 13:56:19 sas Exp $ */ #include "php.h" #include "php_globals.h" #include "ext/standard/flock_compat.h" @@ -703,7 +703,6 @@ int id, type; int issock=0; int socketd=0, *sock; - unsigned int temp; if (ARG_COUNT(ht) != 1 || getParameters(ht, 1, &arg1) == FAILURE) { WRONG_PARAM_COUNT; @@ -721,7 +720,7 @@ /* we're at the eof if the file doesn't exist */ RETURN_TRUE; } - if ((issock?!(recv(socketd,(char *)&temp,1,MSG_PEEK)):feof(fp))) { + if ((issock?(_php3_sock_eof(socketd)):feof(fp))) { RETURN_TRUE; } else { RETURN_FALSE; Index: php4/ext/standard/fsock.c diff -u php4/ext/standard/fsock.c:1.5 php4/ext/standard/fsock.c:1.6 --- php4/ext/standard/fsock.c:1.5 Fri Apr 23 20:11:56 1999 +++ php4/ext/standard/fsock.c Thu May 20 09:56:19 1999 @@ -27,7 +27,7 @@ | Jim Winstead (jimw@php.net) | +----------------------------------------------------------------------+ */ -/* $Id: fsock.c,v 1.5 1999/04/24 00:11:56 zeev Exp $ */ +/* $Id: fsock.c,v 1.6 1999/05/20 13:56:19 sas Exp $ */ #include "php.h" #include <stdlib.h> @@ -93,6 +93,8 @@ static struct php3i_sockbuf *phpsockbuf; +typedef struct php3i_sockbuf php3i_sockbuf; + static int php3_minit_fsock(INIT_FUNC_ARGS); static int php3_mshutdown_fsock(SHUTDOWN_FUNC_ARGS); static int php3_rshutdown_fsock(SHUTDOWN_FUNC_ARGS); @@ -290,23 +292,43 @@ * (buffered data is not persistent) * - php3_fopen_url_wrapper() is still doing single-byte lookahead/read */ -/* {{{ _php3_sock_fgets() */ -int _php3_sock_fgets(char *buf, int maxlen, int socket) +static php3i_sockbuf *_php3_sock_findsock(int socket) { - struct php3i_sockbuf *sockbuf = NULL, *tmpsockbuf; - int bytesread, toread, len, buflen, count = 0; - char *nl; + /* FIXME: O(n) could be improved */ - tmpsockbuf = phpsockbuf; - while (tmpsockbuf) { - if (tmpsockbuf->socket == socket) { - sockbuf = tmpsockbuf; + php3i_sockbuf *buf = NULL, *tmp; + + for(tmp = phpsockbuf; tmp; tmp = tmp->next) + if(tmp->socket == socket) { + buf = tmp; break; } - tmpsockbuf = tmpsockbuf->next; + + return buf; +} + +int _php3_sock_eof(int socket) +{ + php3i_sockbuf *sockbuf; + int ret = 0; + + sockbuf = _php3_sock_findsock(socket); + if(sockbuf) { + ret = (sockbuf->writepos - sockbuf->readpos) == 0 ? 1 : 0; } + return ret; +} +/* {{{ _php3_sock_fgets() */ +int _php3_sock_fgets(char *buf, int maxlen, int socket) +{ + struct php3i_sockbuf *sockbuf; + int bytesread, toread, len, buflen, count = 0; + char *nl; + + sockbuf = _php3_sock_findsock(socket); + if (sockbuf) { toread = sockbuf->writepos - sockbuf->readpos; if (toread > maxlen) { Index: php4/ext/standard/fsock.h diff -u php4/ext/standard/fsock.h:1.4 php4/ext/standard/fsock.h:1.5 --- php4/ext/standard/fsock.h:1.4 Sun May 16 07:19:26 1999 +++ php4/ext/standard/fsock.h Thu May 20 09:56:19 1999 @@ -27,7 +27,7 @@ | Jim Winstead (jimw@php.net) | +----------------------------------------------------------------------+ */ -/* $Id: fsock.h,v 1.4 1999/05/16 11:19:26 sas Exp $ */ +/* $Id: fsock.h,v 1.5 1999/05/20 13:56:19 sas Exp $ */ #ifndef _FSOCK_H #define _FSOCK_H @@ -53,6 +53,7 @@ extern int _php3_sock_fgets(char *buf, int maxlen, int socket); extern int _php3_sock_fread(char *buf, int maxlen, int socket); extern int _php3_is_persistent_sock(int); +int _php3_sock_eof(int socket); #define phpext_fsock_ptr fsock_module_ptr -- PHP 4 Beta

« previous php.version4 (#901) next »