[PHP4BETA] CVS update: php4/ext/standard
| From: | sas | 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