summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSascha Schumann <sas@php.net>2001-07-25 21:06:01 +0000
committerSascha Schumann <sas@php.net>2001-07-25 21:06:01 +0000
commitd256fbf2b808054e687cf8ec14d4c4a327f543cf (patch)
tree3e2c07a7e0adf2b82fde9944f042967ab84e3663
parent00596b414e7944e83be38c194c7b36a848f5e09a (diff)
downloadphp-git-d256fbf2b808054e687cf8ec14d4c4a327f543cf.tar.gz
Get rid of memchr in SEARCHCR().
-rw-r--r--ext/standard/fsock.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/standard/fsock.c b/ext/standard/fsock.c
index a4f5148b5a..0cf92a2ad6 100644
--- a/ext/standard/fsock.c
+++ b/ext/standard/fsock.c
@@ -89,8 +89,10 @@ extern int le_fp;
efree(key); \
}
-#define SEARCHCR() \
- p = memchr(READPTR(sock), '\n', MIN(TOREAD(sock), maxlen));
+#define SEARCHCR() do { \
+ for (p = READPTR(sock), pe = p + MIN(TOREAD(sock), maxlen); \
+ *p != '\n'; ) if (++p >= pe) { p = NULL; break; } \
+} while (0)
#ifdef PHP_WIN32
#define EWOULDBLOCK WSAEWOULDBLOCK
@@ -540,7 +542,7 @@ PHPAPI void php_sockset_timeout(int socket, struct timeval *timeout)
*/
static char * php_sock_fgets_internal(char * buf, size_t maxlen, php_sockbuf * sock)
{
- char *p = NULL;
+ char *p = NULL, *pe;
char *ret = NULL;
size_t amount = 0;