[PHP-CVS] cvs: php4 /ext/standard url.c
iliaa Sat Oct 12 12:09:01 2002 EDT Modified files: /php4/ext/standard url.c Log: Fixed a bug introduced by previous patch. Index: php4/ext/standard/url.c diff -u php4/ext/standard/url.c:1.54 php4/ext/standard/url.c:1.55 --- php4/ext/standard/url.c:1.54Sat Oct 12 04:16:20 2002 +++ php4/ext/standard/url.c Sat Oct 12 12:09:01 2002 @@ -15,7 +15,7 @@ | Author: Jim Winstead [EMAIL PROTECTED] | +--+ */ -/* $Id: url.c,v 1.54 2002/10/12 08:16:20 sesser Exp $ */ +/* $Id: url.c,v 1.55 2002/10/12 16:09:01 iliaa Exp $ */ #include stdlib.h #include string.h @@ -132,8 +132,8 @@ php_replace_controlchars(ret-user); } - if (p-pp 1) { - p++; + pp++; + if (p-pp 0) { ret-pass = estrndup(pp, (p-pp)); php_replace_controlchars(ret-pass); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /sapi/thttpd config.m4
sas Sun Oct 13 07:28:34 2002 EDT Modified files: /php4/sapi/thttpd config.m4 Log: Remove set .x Index: php4/sapi/thttpd/config.m4 diff -u php4/sapi/thttpd/config.m4:1.16 php4/sapi/thttpd/config.m4:1.17 --- php4/sapi/thttpd/config.m4:1.16 Sun Oct 13 07:28:06 2002 +++ php4/sapi/thttpd/config.m4 Sun Oct 13 07:28:34 2002 -1,17 +1,15 dnl -dnl $Id: config.m4,v 1.16 2002/10/13 11:28:06 sas Exp $ +dnl $Id: config.m4,v 1.17 2002/10/13 11:28:34 sas Exp $ dnl AC_ARG_WITH(thttpd, [ --with-thttpd=SRCDIRBuild PHP as thttpd module],[ -set -x if ! test -d $withval; then AC_MSG_RESULT(thttpd directory does not exist ($withval)) fi if ! egrep thttpd.2.21b $withval/version.h /dev/null; then AC_MSG_ERROR([This version only supports thttpd-2.21b]) fi -set +x PHP_EXPAND_PATH($withval, THTTPD) PHP_TARGET_RDYNAMIC INSTALL_IT=\ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/standard info.c
iliaa Fri Oct 11 23:11:29 2002 EDT Modified files: /php4/ext/standard info.c Log: Fixed memory leaks. Index: php4/ext/standard/info.c diff -u php4/ext/standard/info.c:1.216 php4/ext/standard/info.c:1.217 --- php4/ext/standard/info.c:1.216 Thu Oct 10 00:28:15 2002 +++ php4/ext/standard/info.cFri Oct 11 23:11:28 2002 -18,7 +18,7 +--+ */ -/* $Id: info.c,v 1.216 2002/10/10 04:28:15 sniper Exp $ */ +/* $Id: info.c,v 1.217 2002/10/12 03:11:28 iliaa Exp $ */ #include php.h #include php_ini.h -99,6 +99,7 char *string_key; uint string_len; ulong num_key; + char *elem_esc = NULL; if (zend_hash_find(EG(symbol_table), name, name_length+1, (void **) data)!=FAILURE (Z_TYPE_PP(data)==IS_ARRAY)) { -116,7 +117,9 switch (zend_hash_get_current_key_ex(Z_ARRVAL_PP(data), string_key, string_len, num_key, 0, NULL)) { case HASH_KEY_IS_STRING: if (PG(html_errors)) { - PUTS(php_info_html_esc(string_key TSRMLS_CC)); + elem_esc = +php_info_html_esc(string_key TSRMLS_CC); + PUTS(elem_esc); + efree(elem_esc); } else { PUTS(string_key); } -147,7 +150,9 if (Z_STRLEN(tmp2) == 0) { PUTS(ino value/i); } else { - PUTS(php_info_html_esc(Z_STRVAL(tmp2) TSRMLS_CC)); + elem_esc = +php_info_html_esc(Z_STRVAL(tmp2) TSRMLS_CC); + PUTS(elem_esc); + efree(elem_esc); } } else { PUTS(Z_STRVAL(tmp2)); -158,7 +163,9 if (Z_STRLEN_PP(tmp) == 0) { PUTS(ino value/i); } else { - PUTS(php_info_html_esc(Z_STRVAL_PP(tmp) TSRMLS_CC)); + elem_esc = +php_info_html_esc(Z_STRVAL_PP(tmp) TSRMLS_CC); + PUTS(elem_esc); + efree(elem_esc); } } else { PUTS(Z_STRVAL_PP(tmp)); -713,8 +720,8 int i; va_list row_elements; char *row_element; + char *elem_esc = NULL; /* - char *elem_esc; int elem_esc_len; */ -739,7 +746,9 } } else { if (PG(html_errors)) { - PUTS(php_info_html_esc(row_element TSRMLS_CC)); + elem_esc = php_info_html_esc(row_element TSRMLS_CC); + PUTS(elem_esc); + efree(elem_esc); } else { PUTS(row_element); if (i num_cols-1) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /sapi/cgi/libfcgi os_unix.c
shane Sun Oct 13 04:34:27 2002 EDT Modified files: /php4/sapi/cgi/libfcgi os_unix.c Log: fixes for unix, untested remove exit calls fix a couple function definitions Index: php4/sapi/cgi/libfcgi/os_unix.c diff -u php4/sapi/cgi/libfcgi/os_unix.c:1.1 php4/sapi/cgi/libfcgi/os_unix.c:1.2 --- php4/sapi/cgi/libfcgi/os_unix.c:1.1 Sun Mar 10 16:39:28 2002 +++ php4/sapi/cgi/libfcgi/os_unix.c Sun Oct 13 04:34:27 2002 -17,7 +17,7 */ #ifndef lint -static const char rcsid[] = $Id: os_unix.c,v 1.1 2002/03/10 21:39:28 shane Exp $; +static const char rcsid[] = $Id: os_unix.c,v 1.2 2002/10/13 08:34:27 shane Exp $; #endif /* not lint */ #include fcgi_config.h -272,6 +272,7 * on Unix for local process communication. It will create a * domain socket or a TCP/IP socket bound to localhost and return * a file descriptor to it to the caller. + * bCreateMutex is ignored for unix * * Results: * Listener socket created. This call returns either a valid -282,7 +283,7 * *-- */ -int OS_CreateLocalIpcFd(const char *bindPath, int backlog) +int OS_CreateLocalIpcFd(const char *bindPath, int backlog, int bCreateMutex) { int listenSock, servLen; union SockAddrUnion sa; -311,12 +312,12 hep = gethostbyname(host); if ((!hep) || (hep-h_addrtype != AF_INET || !hep-h_addr_list[0])) { fprintf(stderr, Cannot resolve host name %s -- exiting!\n, host); - exit(1); + return -1; } if (hep-h_addr_list[1]) { fprintf(stderr, Host %s has multiple addresses ---\n, host); fprintf(stderr, you must choose one explicitly!!!\n); - exit(1); + return -1; } tcp_ia = ((struct in_addr *) (hep-h_addr))-s_addr; } -330,7 +331,7 if(setsockopt(listenSock, SOL_SOCKET, SO_REUSEADDR, (char *) flag, sizeof(flag)) 0) { fprintf(stderr, Can't set SO_REUSEADDR.\n); - exit(1001); + return -1; } } } else { -353,13 +354,13 unlink(bindPath); if(OS_BuildSockAddrUn(bindPath, sa.unixVariant, servLen)) { fprintf(stderr, Listening socket's path name is too long.\n); - exit(1000); + return -1; } } if(bind(listenSock, (struct sockaddr *) sa.unixVariant, servLen) 0 || listen(listenSock, backlog) 0) { perror(bind/listen); -exit(errno); +return -1; } return listenSock; -408,7 +409,7 struct hostent *hp; if((hp = gethostbyname((*host ? host : localhost))) == NULL) { fprintf(stderr, Unknown host: %s\n, bindPath); - exit(1000); + return -1; } sa.inetVariant.sin_family = AF_INET; memcpy(sa.inetVariant.sin_addr, hp-h_addr, hp-h_length); -418,7 +419,7 } else { if(OS_BuildSockAddrUn(bindPath, sa.unixVariant, servLen)) { fprintf(stderr, Listening socket's path name is too long.\n); - exit(1000); + return -1; } resultSock = socket(AF_UNIX, SOCK_STREAM, 0); } -497,13 +498,13 * *-- */ -int OS_SpawnChild(char *appPath, int listenFd) +int OS_SpawnChild(char *appPath, int listenFd, PROCESS_INFORMATION *pInfo, char *env) { int forkResult; forkResult = fork(); if(forkResult 0) { -exit(errno); +return -1; } if(forkResult == 0) { -542,7 +543,7 * * perror(exec); */ - exit(errno); + return -1; } return 0; } -818,7 +819,9 selectStatus = select((maxFd+1), readFdSetCpy, writeFdSetCpy, NULL, tmo); if(selectStatus 0) { -exit(errno); +/*exit(errno);*/ + /* not sure what's best to do here */ + return -1; } for(fd = 0; fd = maxFd; fd++) { -1256,10 +1259,10 { int val; if((val = fcntl(fd, F_GETFL, 0)) 0) { -exit(errno); +return; } val |= flags; if(fcntl(fd, F_SETFL, val) 0) { -exit(errno); +return; } } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/pgsql pgsql.c php_pgsql.h
yohgaki Sat Oct 12 23:00:49 2002 EDT Modified files: /php4/ext/pgsql pgsql.c php_pgsql.h Log: Enable pg_escape_bytea(). Index: php4/ext/pgsql/pgsql.c diff -u php4/ext/pgsql/pgsql.c:1.231 php4/ext/pgsql/pgsql.c:1.232 --- php4/ext/pgsql/pgsql.c:1.231Wed Oct 2 22:32:09 2002 +++ php4/ext/pgsql/pgsql.c Sat Oct 12 23:00:47 2002 -19,7 +19,7 +--+ */ -/* $Id: pgsql.c,v 1.231 2002/10/03 02:32:09 yohgaki Exp $ */ +/* $Id: pgsql.c,v 1.232 2002/10/13 03:00:47 yohgaki Exp $ */ #include stdlib.h -142,6 +142,7 #if HAVE_PQESCAPE PHP_FE(pg_escape_string,NULL) PHP_FE(pg_escape_bytea, NULL) + PHP_FE(pg_unescape_bytea, NULL) #endif #if HAVE_PQCLIENTENCODING PHP_FE(pg_client_encoding, NULL) Index: php4/ext/pgsql/php_pgsql.h diff -u php4/ext/pgsql/php_pgsql.h:1.52 php4/ext/pgsql/php_pgsql.h:1.53 --- php4/ext/pgsql/php_pgsql.h:1.52 Wed Oct 2 22:32:09 2002 +++ php4/ext/pgsql/php_pgsql.h Sat Oct 12 23:00:48 2002 -17,7 +17,7 +--+ */ -/* $Id: php_pgsql.h,v 1.52 2002/10/03 02:32:09 yohgaki Exp $ */ +/* $Id: php_pgsql.h,v 1.53 2002/10/13 03:00:48 yohgaki Exp $ */ #ifndef PHP_PGSQL_H #define PHP_PGSQL_H -129,6 +129,7 #if HAVE_PQESCAPE PHP_FUNCTION(pg_escape_string); PHP_FUNCTION(pg_escape_bytea); +PHP_FUNCTION(pg_unescape_bytea); #endif /* misc functions */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/standard dl.c
derick Sun Oct 13 10:14:34 2002 EDT Modified files: /php4/ext/standard dl.c Log: - Fixed bug #19885, dl() no longer gives a fatal error when a module could not be loaded. (Derick) Index: php4/ext/standard/dl.c diff -u php4/ext/standard/dl.c:1.73 php4/ext/standard/dl.c:1.74 --- php4/ext/standard/dl.c:1.73 Thu Sep 5 17:12:55 2002 +++ php4/ext/standard/dl.c Sun Oct 13 10:14:34 2002 -18,7 +18,7 +--+ */ -/* $Id: dl.c,v 1.73 2002/09/05 21:12:55 sniper Exp $ */ +/* $Id: dl.c,v 1.74 2002/10/13 14:14:34 derick Exp $ */ #include php.h #include dl.h -66,7 +66,8 #ifdef ZTS if ((strcmp(sapi_module.name, cgi)!=0) (strcmp(sapi_module.name, cli)!=0)) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, Not supported in multithreaded Web servers - use extension statements in your php.ini); + php_error_docref(NULL TSRMLS_CC, E_WARNING, Not supported in +multithreaded Web servers - use extension statements in your php.ini); + RETURN_FALSE; } #endif -78,9 +79,9 convert_to_string_ex(file); if (!PG(enable_dl)) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, Dynamically loaded extentions aren't enabled); + php_error_docref(NULL TSRMLS_CC, E_WARNING, Dynamically loaded +extentions aren't enabled); } else if (PG(safe_mode)) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, Dynamically loaded extensions aren't allowed when running in Safe Mode); + php_error_docref(NULL TSRMLS_CC, E_WARNING, Dynamically loaded +extensions aren't allowed when running in Safe Mode); } else { php_dl(*file, MODULE_TEMPORARY, return_value TSRMLS_CC); EG(full_tables_cleanup) = 1; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /sapi/thttpd config.m4
sas Sun Oct 13 07:28:07 2002 EDT Modified files: /php4/sapi/thttpd config.m4 Log: Use if block rather than an or expression Index: php4/sapi/thttpd/config.m4 diff -u php4/sapi/thttpd/config.m4:1.15 php4/sapi/thttpd/config.m4:1.16 --- php4/sapi/thttpd/config.m4:1.15 Thu Mar 7 09:20:01 2002 +++ php4/sapi/thttpd/config.m4 Sun Oct 13 07:28:06 2002 -1,11 +1,17 dnl -dnl $Id: config.m4,v 1.15 2002/03/07 14:20:01 sas Exp $ +dnl $Id: config.m4,v 1.16 2002/10/13 11:28:06 sas Exp $ dnl AC_ARG_WITH(thttpd, [ --with-thttpd=SRCDIRBuild PHP as thttpd module],[ - test -d $withval || AC_MSG_RESULT(thttpd directory does not exist ($withval)) - egrep thttpd.2.21b $withval/version.h /dev/null || AC_MSG_RESULT([This version only supports thttpd-2.21b]) +set -x + if ! test -d $withval; then +AC_MSG_RESULT(thttpd directory does not exist ($withval)) + fi + if ! egrep thttpd.2.21b $withval/version.h /dev/null; then +AC_MSG_ERROR([This version only supports thttpd-2.21b]) + fi +set +x PHP_EXPAND_PATH($withval, THTTPD) PHP_TARGET_RDYNAMIC INSTALL_IT=\ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /main php_variables.c php_variables.h
shane Sun Oct 13 04:38:09 2002 EDT Modified files: /php4/main php_variables.c php_variables.h Log: make php_import_environment_variables overwritable so fastcgi can correctly set $_ENV. Index: php4/main/php_variables.c diff -u php4/main/php_variables.c:1.44 php4/main/php_variables.c:1.45 --- php4/main/php_variables.c:1.44 Sat Sep 7 20:27:05 2002 +++ php4/main/php_variables.c Sun Oct 13 04:38:09 2002 @@ -16,7 +16,7 @@ | Zeev Suraski [EMAIL PROTECTED]| +--+ */ -/* $Id: php_variables.c,v 1.44 2002/09/08 00:27:05 yohgaki Exp $ */ +/* $Id: php_variables.c,v 1.45 2002/10/13 08:38:09 shane Exp $ */ #include stdio.h #include php.h @@ -28,6 +28,9 @@ #include zend_globals.h +/* for systems that need to override reading of environment variables */ +void _php_import_environment_variables(zval *array_ptr TSRMLS_DC); +PHPAPI void (*php_import_environment_variables)(zval *array_ptr TSRMLS_DC) = +_php_import_environment_variables; PHPAPI void php_register_variable(char *var, char *strval, zval *track_vars_array TSRMLS_DC) { @@ -318,8 +321,7 @@ } } - -void php_import_environment_variables(zval *array_ptr TSRMLS_DC) +void _php_import_environment_variables(zval *array_ptr TSRMLS_DC) { char **env, *p, *t; Index: php4/main/php_variables.h diff -u php4/main/php_variables.h:1.13 php4/main/php_variables.h:1.14 --- php4/main/php_variables.h:1.13 Tue Dec 11 10:31:05 2001 +++ php4/main/php_variables.h Sun Oct 13 04:38:09 2002 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: php_variables.h,v 1.13 2001/12/11 15:31:05 sebastian Exp $ */ +/* $Id: php_variables.h,v 1.14 2002/10/13 08:38:09 shane Exp $ */ #ifndef PHP_VARIABLES_H #define PHP_VARIABLES_H @@ -31,7 +31,7 @@ #define PARSE_STRING 3 void php_treat_data(int arg, char *str, zval* destArray TSRMLS_DC); -PHPAPI void php_import_environment_variables(zval *array_ptr TSRMLS_DC); +extern PHPAPI void (*php_import_environment_variables)(zval *array_ptr TSRMLS_DC); PHPAPI void php_register_variable(char *var, char *val, pval *track_vars_array TSRMLS_DC); /* binary-safe version */ PHPAPI void php_register_variable_safe(char *var, char *val, int val_len, pval *track_vars_array TSRMLS_DC); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /sapi/cgi/libfcgi os_win32.c
shane Sun Oct 13 03:23:17 2002 EDT Modified files: /php4/sapi/cgi/libfcgi os_win32.c Log: fix shutdown issues Index: php4/sapi/cgi/libfcgi/os_win32.c diff -u php4/sapi/cgi/libfcgi/os_win32.c:1.5 php4/sapi/cgi/libfcgi/os_win32.c:1.6 --- php4/sapi/cgi/libfcgi/os_win32.c:1.5Sun Oct 13 01:55:03 2002 +++ php4/sapi/cgi/libfcgi/os_win32.cSun Oct 13 03:23:17 2002 -17,7 +17,7 * significantly more enjoyable.) */ #ifndef lint -static const char rcsid[] = $Id: os_win32.c,v 1.5 2002/10/13 05:55:03 shane Exp $; +static const char rcsid[] = $Id: os_win32.c,v 1.6 2002/10/13 07:23:17 shane Exp $; #endif /* not lint */ #define WIN32_LEAN_AND_MEAN -271,24 +271,14 static DWORD WINAPI ShutdownRequestThread(LPVOID arg) { HANDLE shutdownEvent = (HANDLE) arg; - -if (WaitForSingleObject(shutdownEvent, INFINITE) == WAIT_FAILED) -{ -// Assuming it will happen again, all we can do is exit the thread -return 1; -} -else -{ -// Simple reads and writes to properly-aligned 32-bit variables are atomic -shutdownPending = TRUE; - -// Before an accept() is entered the shutdownPending flag is checked. -// If set, OS_Accept() will return -1. If not, it waits -// on a connection request for one second, checks the flag, repeats. -// Only one process/thread is allowed to do this at time by -// wrapping the accept() with mutex. -return 0; -} +WaitForSingleObject(shutdownEvent, INFINITE); +shutdownPending = TRUE; +// Before an accept() is entered the shutdownPending flag is checked. +// If set, OS_Accept() will return -1. If not, it waits +// on a connection request for one second, checks the flag, repeats. +// Only one process/thread is allowed to do this at time by +// wrapping the accept() with mutex. +return 0; } int OS_SetImpersonate(void) -1923,8 +1913,12 if (acceptMutex != INVALID_HANDLE_VALUE) { -if (WaitForSingleObject(acceptMutex, INFINITE) == WAIT_FAILED) + DWORD ret; +while ((ret = WaitForSingleObject(acceptMutex, ACCEPT_TIMEOUT)) == +WAIT_TIMEOUT) { + if (shutdownPending) break; + } + if (ret == WAIT_FAILED) { printLastError(WaitForSingleObject() failed); return -1; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] Re: cvs: php4 /main php_variables.c php_variables.h
I get segfault with this patch during "make install"... # It seems failed to send previous mail... # Sorry, if you get 2 mails -- Yasuo Ohgaki Shane Caraveo wrote: shane Sun Oct 13 04:38:09 2002 EDT Modified files: /php4/mainphp_variables.c php_variables.h Log: make php_import_environment_variables overwritable so fastcgi can correctly set $_ENV. Index: php4/main/php_variables.c diff -u php4/main/php_variables.c:1.44 php4/main/php_variables.c:1.45 --- php4/main/php_variables.c:1.44Sat Sep 7 20:27:05 2002 +++ php4/main/php_variables.c Sun Oct 13 04:38:09 2002 @@ -16,7 +16,7 @@ | Zeev Suraski [EMAIL PROTECTED]| +--+ */ -/* $Id: php_variables.c,v 1.44 2002/09/08 00:27:05 yohgaki Exp $ */ +/* $Id: php_variables.c,v 1.45 2002/10/13 08:38:09 shane Exp $ */ #include stdio.h #include "php.h" @@ -28,6 +28,9 @@ #include "zend_globals.h" +/* for systems that need to override reading of environment variables */ +void _php_import_environment_variables(zval *array_ptr TSRMLS_DC); +PHPAPI void (*php_import_environment_variables)(zval *array_ptr TSRMLS_DC) = _php_import_environment_variables; PHPAPI void php_register_variable(char *var, char *strval, zval *track_vars_array TSRMLS_DC) { @@ -318,8 +321,7 @@ } } - -void php_import_environment_variables(zval *array_ptr TSRMLS_DC) +void _php_import_environment_variables(zval *array_ptr TSRMLS_DC) { char **env, *p, *t; Index: php4/main/php_variables.h diff -u php4/main/php_variables.h:1.13 php4/main/php_variables.h:1.14 --- php4/main/php_variables.h:1.13Tue Dec 11 10:31:05 2001 +++ php4/main/php_variables.h Sun Oct 13 04:38:09 2002 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: php_variables.h,v 1.13 2001/12/11 15:31:05 sebastian Exp $ */ +/* $Id: php_variables.h,v 1.14 2002/10/13 08:38:09 shane Exp $ */ #ifndef PHP_VARIABLES_H #define PHP_VARIABLES_H @@ -31,7 +31,7 @@ #define PARSE_STRING 3 void php_treat_data(int arg, char *str, zval* destArray TSRMLS_DC); -PHPAPI void php_import_environment_variables(zval *array_ptr TSRMLS_DC); +extern PHPAPI void (*php_import_environment_variables)(zval *array_ptr TSRMLS_DC); PHPAPI void php_register_variable(char *var, char *val, pval *track_vars_array TSRMLS_DC); /* binary-safe version */ PHPAPI void php_register_variable_safe(char *var, char *val, int val_len, pval *track_vars_array TSRMLS_DC); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /main streams.c
wez Fri Oct 11 22:31:43 2002 EDT Modified files: /php4/main streams.c Log: Write in blocks of the current chunk_size for a stream. Should resolve problems with network writes. Index: php4/main/streams.c diff -u php4/main/streams.c:1.99 php4/main/streams.c:1.100 --- php4/main/streams.c:1.99Sun Oct 6 23:12:06 2002 +++ php4/main/streams.c Fri Oct 11 22:31:42 2002 -20,7 +20,7 +--+ */ -/* $Id: streams.c,v 1.99 2002/10/07 03:12:06 sas Exp $ */ +/* $Id: streams.c,v 1.100 2002/10/12 02:31:42 wez Exp $ */ #define _GNU_SOURCE #include php.h -759,18 +759,31 PHPAPI size_t _php_stream_write(php_stream *stream, const char *buf, size_t count TSRMLS_DC) { - size_t didwrite; + size_t didwrite = 0, towrite, justwrote; assert(stream); if (buf == NULL || count == 0 || stream-ops-write == NULL) return 0; - if (stream-filterhead) { - didwrite = stream-filterhead-fops-write(stream, stream-filterhead, buf, count TSRMLS_CC); - } else { - didwrite = stream-ops-write(stream, buf, count TSRMLS_CC); + while (count 0) { + towrite = count; + if (towrite stream-chunk_size) + towrite = stream-chunk_size; + + if (stream-filterhead) { + justwrote = stream-filterhead-fops-write(stream, +stream-filterhead, buf, towrite TSRMLS_CC); + } else { + justwrote = stream-ops-write(stream, buf, towrite TSRMLS_CC); + } + if (justwrote 0) { + stream-position += justwrote; + buf += justwrote; + count -= justwrote; + didwrite += justwrote; + } else { + break; + } } - stream-position += didwrite; return didwrite; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/pgsql pgsql.c php_pgsql.h
yohgaki Sun Oct 13 05:37:27 2002 EDT Modified files: /php4/ext/pgsql pgsql.c php_pgsql.h Log: Introduce connect_type option to pg_connect(). pg_connect(conn_str, conn_type) is allowed. Added PGSQL_CONNECT_FORCE_NEW option to pg_connect() (Yasuo) # If you have better idea about constant name(s), let me know. Index: php4/ext/pgsql/pgsql.c diff -u php4/ext/pgsql/pgsql.c:1.232 php4/ext/pgsql/pgsql.c:1.233 --- php4/ext/pgsql/pgsql.c:1.232Sat Oct 12 23:00:47 2002 +++ php4/ext/pgsql/pgsql.c Sun Oct 13 05:37:27 2002 -19,7 +19,7 +--+ */ -/* $Id: pgsql.c,v 1.232 2002/10/13 03:00:47 yohgaki Exp $ */ +/* $Id: pgsql.c,v 1.233 2002/10/13 09:37:27 yohgaki Exp $ */ #include stdlib.h -381,6 +381,8 le_result = zend_register_list_destructors_ex(_free_result, NULL, pgsql result, module_number); le_lofp = zend_register_list_destructors_ex(_free_ptr, NULL, pgsql large object, module_number); le_string = zend_register_list_destructors_ex(_free_ptr, NULL, pgsql string, module_number); + /* For connection option */ + REGISTER_LONG_CONSTANT(PGSQL_CONNECT_FORCE_NEW, PGSQL_CONNECT_FORCE_NEW, +CONST_CS | CONST_PERSISTENT); /* For pg_fetch_array() */ REGISTER_LONG_CONSTANT(PGSQL_ASSOC, PGSQL_ASSOC, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT(PGSQL_NUM, PGSQL_NUM, CONST_CS | CONST_PERSISTENT); -489,9 +491,9 PGconn *pgsql; smart_str str = {0}; zval **args[5]; - int i; + int i, connect_type = 0; - if (ZEND_NUM_ARGS() 1 || ZEND_NUM_ARGS() == 2 || ZEND_NUM_ARGS() 5 + if (ZEND_NUM_ARGS() 1 || ZEND_NUM_ARGS() 5 || zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args) == FAILURE) { WRONG_PARAM_COUNT; } -508,6 +510,9 if (ZEND_NUM_ARGS() == 1) { /* new style, using connection string */ connstring = Z_STRVAL_PP(args[0]); + } else if (ZEND_NUM_ARGS() == 2 ) { /* Safe to add conntype_option, since 2 +args was illegal */ + convert_to_long_ex(args[1]); + connect_type = Z_LVAL_PP(args[1]); } else { host = Z_STRVAL_PP(args[0]); port = Z_STRVAL_PP(args[1]); -596,7 +601,7 pgsql = (PGconn *) le-ptr; } ZEND_REGISTER_RESOURCE(return_value, pgsql, le_plink); - } else { + } else { // Non persistent connection list_entry *index_ptr,new_index_ptr; /* first we check the hash for the hashed_details key. if it exists, -604,7 +609,8 * if it doesn't, open a new pgsql link, add it to the resource list, * and add a pointer to it with hashed_details as the key. */ - if (zend_hash_find(EG(regular_list),str.c,str.len+1,(void **) index_ptr)==SUCCESS) { + if (!(connect_type PGSQL_CONNECT_FORCE_NEW) +zend_hash_find(EG(regular_list),str.c,str.len+1,(void **) +index_ptr)==SUCCESS) { int type,link; void *ptr; -678,7 +684,7 /* }}} */ #endif -/* {{{ proto resource pg_connect([string connection_string] | [string host, string port [, string options [, string tty,]] string database) +/* {{{ proto resource pg_connect(string connection_string[, int connect_type] | +[string host, string port [, string options [, string tty,]]] string database) Open a PostgreSQL connection */ PHP_FUNCTION(pg_connect) { -686,7 +692,7 } /* }}} */ -/* {{{ proto resource pg_pconnect([string connection_string] | [string host, string port [, string options [, string tty,]] string database) +/* {{{ proto resource pg_pconnect(string connection_string | [string host, string +port [, string options [, string tty,]]] string database) Open a persistent PostgreSQL connection */ PHP_FUNCTION(pg_pconnect) { Index: php4/ext/pgsql/php_pgsql.h diff -u php4/ext/pgsql/php_pgsql.h:1.53 php4/ext/pgsql/php_pgsql.h:1.54 --- php4/ext/pgsql/php_pgsql.h:1.53 Sat Oct 12 23:00:48 2002 +++ php4/ext/pgsql/php_pgsql.h Sun Oct 13 05:37:27 2002 -17,7 +17,7 +--+ */ -/* $Id: php_pgsql.h,v 1.53 2002/10/13 03:00:48 yohgaki Exp $ */ +/* $Id: php_pgsql.h,v 1.54 2002/10/13 09:37:27 yohgaki Exp $ */ #ifndef PHP_PGSQL_H #define PHP_PGSQL_H -140,6 +140,8 PHP_FUNCTION(pg_delete); PHP_FUNCTION(pg_select); +/* connection options - ToDo: Add async connection option */ +#define PGSQL_CONNECT_FORCE_NEW (11) /* php_pgsql_convert options */ #define PGSQL_CONV_IGNORE_DEFAULT (11) /* Do not use DEAFULT value by removing field from returned array */ #define PGSQL_CONV_FORCE_NULL (12) /* Convert to NULL if string is
[PHP-CVS] cvs: php4 /sapi/thttpd thttpd_patch
sas Sun Oct 13 07:50:16 2002 EDT Modified files: /php4/sapi/thttpd thttpd_patch Log: PHP + thttpd (+IRCG) build using CYGWIN now Index: php4/sapi/thttpd/thttpd_patch diff -u php4/sapi/thttpd/thttpd_patch:1.19 php4/sapi/thttpd/thttpd_patch:1.20 --- php4/sapi/thttpd/thttpd_patch:1.19 Mon Sep 23 11:41:44 2002 +++ php4/sapi/thttpd/thttpd_patch Sun Oct 13 07:50:16 2002 -1,6 +1,6 diff -ur thttpd-2.21b/Makefile.in thttpd-2.21b-cool/Makefile.in thttpd-2.21b/Makefile.in Thu Mar 29 20:36:21 2001 -+++ thttpd-2.21b-cool/Makefile.in Mon Sep 23 17:37:36 2002 +--- thttpd-2.21b/Makefile.in 2001-03-29 20:36:22.0 +0200 thttpd-2.21b-cool/Makefile.in 2002-10-13 13:33:24.0 +0200 -46,13 +46,15 # You shouldn't need to edit anything below here. -28,19 +28,19 OBJ = $(SRC:.c=.o) LIBOBJS - -151,6 +153,9 - + -152,6 +154,9 tags: ctags -wtd *.c *.h -+ + +php_thttpd.o: php_thttpd.c + $(CC) $(PHP_CFLAGS) $(CFLAGS) -c php_thttpd.c - ++ tar: name=`sed -n -e '/SERVER_SOFTWARE/!d' -e 's,.*thttpd/,thttpd-,' -e 's, .*,,p' version.h` ; \ + rm -rf $$name ; \ diff -ur thttpd-2.21b/config.h thttpd-2.21b-cool/config.h thttpd-2.21b/config.h Mon Apr 9 23:57:36 2001 -+++ thttpd-2.21b-cool/config.h Sun Sep 22 22:44:56 2002 +--- thttpd-2.21b/config.h 2001-04-09 23:57:36.0 +0200 thttpd-2.21b-cool/config.h 2002-10-13 13:33:24.0 +0200 -82,6 +82,11 */ #define IDLE_READ_TIMELIMIT 60 -63,8 +63,8 /* CONFIGURE: If this is defined then thttpd will automatically generate ** index pages for directories that don't have an explicit index file. diff -ur thttpd-2.21b/fdwatch.c thttpd-2.21b-cool/fdwatch.c thttpd-2.21b/fdwatch.c Fri Apr 13 07:36:08 2001 -+++ thttpd-2.21b-cool/fdwatch.cMon Sep 23 17:38:03 2002 +--- thttpd-2.21b/fdwatch.c 2001-04-13 07:36:08.0 +0200 thttpd-2.21b-cool/fdwatch.c2002-10-13 13:47:42.0 +0200 -460,7 +460,7 ridx = 0; -86,18 +86,22 } } diff -ur thttpd-2.21b/libhttpd.c thttpd-2.21b-cool/libhttpd.c thttpd-2.21b/libhttpd.cTue Apr 24 00:42:40 2001 -+++ thttpd-2.21b-cool/libhttpd.c Mon Sep 23 17:29:24 2002 - -85,6 +85,8 +--- thttpd-2.21b/libhttpd.c2001-04-24 00:42:40.0 +0200 thttpd-2.21b-cool/libhttpd.c 2002-10-13 13:41:38.0 +0200 + -85,6 +85,12 #include match.h #include tdate_parse.h +#include php_thttpd.h + ++#ifdef __CYGWIN__ ++# define timezone _timezone ++#endif ++ #ifndef STDIN_FILENO #define STDIN_FILENO 0 #endif - -242,6 +244,8 + -242,6 +248,8 free( (void*) hs-cwd ); if ( hs-cgi_pattern != (char*) 0 ) free( (void*) hs-cgi_pattern ); -106,7 +110,7 if ( hs-charset != (char*) 0 ) free( (void*) hs-charset ); if ( hs-url_pattern != (char*) 0 ) - -249,6 +253,7 + -249,6 +257,7 if ( hs-local_pattern != (char*) 0 ) free( (void*) hs-local_pattern ); free( (void*) hs ); -114,7 +118,7 } - -312,6 +317,7 + -312,6 +321,7 } hs-port = port; -122,7 +126,7 if ( cgi_pattern == (char*) 0 ) hs-cgi_pattern = (char*) 0; else - -385,6 +391,8 + -385,6 +395,8 return (httpd_server*) 0; } -131,7 +135,7 /* Done initializing. */ if ( hs-binding_hostname == (char*) 0 ) syslog( LOG_INFO, %.80s starting on port %d, SERVER_SOFTWARE, hs-port ); - -582,6 +590,9 + -582,6 +594,9 /* And send it, if necessary. */ if ( hc-responselen 0 ) { -141,7 +145,7 (void) write( hc-conn_fd, hc-response, hc-responselen ); hc-responselen = 0; } - -657,9 +668,9 + -657,9 +672,9 (void) my_snprintf( fixed_type, sizeof(fixed_type), type, hc-hs-charset ); (void) my_snprintf( buf, sizeof(buf), -153,7 +157,7 add_response( hc, buf ); if ( encodings[0] != '\0' ) { - -681,6 +692,14 + -681,6 +696,14 Content-Length: %d\r\n, length ); add_response( hc, buf ); } -168,7 +172,7 if ( extraheads[0] != '\0' ) add_response( hc, extraheads ); add_response( hc, \r\n ); - -1603,6 +1622,61 + -1603,6 +1626,61 int -230,7 +234,7 httpd_get_conn( httpd_server* hs, int listen_fd, httpd_conn* hc ) { httpd_sockaddr sa; - -1657,53 +1731,12 + -1657,53 +1735,12 hc-hs = hs; memset( hc-client_addr, 0, sizeof(hc-client_addr) ); memcpy( hc-client_addr, sa, sockaddr_len( sa ) ); -290,7 +294,7 } - -1720,6 +1753,9 + -1720,6 +1757,9 { char c; -300,7 +304,7 for ( ; hc-checked_idx hc-read_idx; ++hc-checked_idx ) { c = hc-read_buf[hc-checked_idx]; - -1912,8 +1948,11 + -1912,8 +1952,11 eol = strpbrk( protocol, \t\n\r ); if (
[PHP-CVS] cvs: php4 /ext/standard http_fopen_wrapper.c
wez Sat Oct 12 21:03:44 2002 EDT Modified files: /php4/ext/standard http_fopen_wrapper.c Log: Make PHP follow 301 correctly. # There may be other cases that need handling properly; I'll have to spend # some time investigating why we even need special cases now; it's got # something to do with Ilia's patch to fix memory leaks. Index: php4/ext/standard/http_fopen_wrapper.c diff -u php4/ext/standard/http_fopen_wrapper.c:1.52 php4/ext/standard/http_fopen_wrapper.c:1.53 --- php4/ext/standard/http_fopen_wrapper.c:1.52 Sat Sep 28 18:14:21 2002 +++ php4/ext/standard/http_fopen_wrapper.c Sat Oct 12 21:03:43 2002 @@ -18,7 +18,7 @@ | Wez Furlong [EMAIL PROTECTED] | +--+ */ -/* $Id: http_fopen_wrapper.c,v 1.52 2002/09/28 22:14:21 wez Exp $ */ +/* $Id: http_fopen_wrapper.c,v 1.53 2002/10/13 01:03:43 wez Exp $ */ #include php.h #include php_globals.h @@ -249,6 +249,7 @@ switch(response_code) { case 200: case 302: + case 301: reqok = 1; break; case 403: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/standard/tests/file 003.inc 003.phpt
derick Sat Oct 12 12:53:13 2002 EDT Removed files: /php4/ext/standard/tests/file 003.inc Modified files: /php4/ext/standard/tests/file 003.phpt Log: - Make the test do what it says Index: php4/ext/standard/tests/file/003.phpt diff -u php4/ext/standard/tests/file/003.phpt:1.4 php4/ext/standard/tests/file/003.phpt:1.5 --- php4/ext/standard/tests/file/003.phpt:1.4 Wed May 15 21:07:21 2002 +++ php4/ext/standard/tests/file/003.phpt Sat Oct 12 12:53:13 2002 -3,15 +3,41 --POST-- --GET-- --FILE-- -?php require '003.inc' ? +?php + +$funcs = array( + 'is_writable', + 'is_readable', + 'is_executable', + 'is_file', + 'file_exists', +); + +$filename=; + +foreach ($funcs as $test) { + $bb = $test($filename); + echo gettype($bb).\n; + clearstatcache(); +} + +$filename=run-tests.php; + +foreach ($funcs as $test) { + $bb = $test($filename); + echo gettype($bb).\n; + clearstatcache(); +} + +? --EXPECT-- -bool(false) -bool(false) -bool(false) -bool(false) -bool(false) -bool(true) -bool(true) -bool(true) -bool(true) -bool(true) +boolean +boolean +boolean +boolean +boolean +boolean +boolean +boolean +boolean +boolean -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /sapi/cgi/libfcgi os_win32.c
shane Sun Oct 13 01:55:03 2002 EDT Modified files: /php4/sapi/cgi/libfcgi os_win32.c Log: fix invalid handle issue that shutdown php fastcgi prematurly fix checking os name for impersonation Index: php4/sapi/cgi/libfcgi/os_win32.c diff -u php4/sapi/cgi/libfcgi/os_win32.c:1.4 php4/sapi/cgi/libfcgi/os_win32.c:1.5 --- php4/sapi/cgi/libfcgi/os_win32.c:1.4Sun Mar 17 23:48:34 2002 +++ php4/sapi/cgi/libfcgi/os_win32.cSun Oct 13 01:55:03 2002 -17,7 +17,7 * significantly more enjoyable.) */ #ifndef lint -static const char rcsid[] = $Id: os_win32.c,v 1.4 2002/03/18 04:48:34 shane Exp $; +static const char rcsid[] = $Id: os_win32.c,v 1.5 2002/10/13 05:55:03 shane Exp $; #endif /* not lint */ #define WIN32_LEAN_AND_MEAN -295,7 +295,7 { char *os_name = NULL; os_name = getenv(OS); - if (stricmp(os_name, Windows_NT) == 0) { + if (os_name stricmp(os_name, Windows_NT) == 0) { bImpersonate = TRUE; return 1; } -524,7 +524,6 stdioHandles[STDOUT_FILENO] = GetStdHandle(STD_OUTPUT_HANDLE); if(!SetHandleInformation(stdioHandles[STDOUT_FILENO], HANDLE_FLAG_INHERIT, FALSE)) { -DebugBreak(); //exit(99); return -1; } -543,7 +542,6 stdioHandles[STDERR_FILENO] = GetStdHandle(STD_ERROR_HANDLE); if(!SetHandleInformation(stdioHandles[STDERR_FILENO], HANDLE_FLAG_INHERIT, FALSE)) { -DebugBreak(); //exit(99); return -1; } -788,11 +786,6 HANDLE mutex = INVALID_HANDLE_VALUE; char mutexEnvString[100]; -if (mutex == NULL) -{ -return -2; -} - if (bCreateMutex) { mutex = CreateMutex(NULL, FALSE, NULL); if (! SetHandleInformation(mutex, HANDLE_FLAG_INHERIT, TRUE)) -983,7 +976,7 if (p) { int len = p - bindPath + 1; -host = malloc(len); +host = (char *)malloc(len); if (!host) { fprintf(stderr, Unable to allocate memory\n); return -1; -1543,8 +1536,12 /* * CloseHandle returns: TRUE success, 0 failure */ +/* +XXX don't close here, fcgi apps fail if we do so +need to examine resource leaks if any might exist if (CloseHandle(fdTable[fd].fid.fileHandle) == FALSE) ret = -1; + */ break; case FD_SOCKET_SYNC: case FD_SOCKET_ASYNC: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/session/tests 015.phpt
derick Sat Oct 12 13:12:43 2002 EDT Modified files: /php4/ext/session/tests 015.phpt Log: - Hardcode setting which affects the test Index: php4/ext/session/tests/015.phpt diff -u php4/ext/session/tests/015.phpt:1.1 php4/ext/session/tests/015.phpt:1.2 --- php4/ext/session/tests/015.phpt:1.1 Thu Oct 3 12:43:44 2002 +++ php4/ext/session/tests/015.phpt Sat Oct 12 13:12:43 2002 -6,6 +6,7 session.use_trans_sid=1 session.use_cookies=0 session.cache_limiter= +arg_separator.output= --FILE-- ?php error_reporting(E_ALL); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/ftp ftp.c
iliaa Sat Oct 12 21:40:46 2002 EDT Modified files: /php4/ext/ftp ftp.c Log: Fixed ZTS build Fixed 2 ZTS related warnings Index: php4/ext/ftp/ftp.c diff -u php4/ext/ftp/ftp.c:1.67 php4/ext/ftp/ftp.c:1.68 --- php4/ext/ftp/ftp.c:1.67 Fri Oct 4 18:20:08 2002 +++ php4/ext/ftp/ftp.c Sat Oct 12 21:40:46 2002 -17,7 +17,7 +--+ */ -/* $Id: ftp.c,v 1.67 2002/10/04 22:20:08 sesser Exp $ */ +/* $Id: ftp.c,v 1.68 2002/10/13 01:40:46 iliaa Exp $ */ #include php.h -226,6 +226,8 { #if HAVE_OPENSSL_EXT SSL_CTX *ctx = NULL; + + TSRMLS_FETCH(); #endif if (ftp == NULL) return 0; -1346,11 +1348,13 databuf_t* data_accept(databuf_t *data, ftpbuf_t *ftp) { + php_sockaddr_storage addr; + int size; + #if HAVE_OPENSSL_EXT SSL_CTX *ctx; + TSRMLS_FETCH(); #endif - php_sockaddr_storage addr; - int size; if (data-fd != -1) goto data_accepted; -1549,7 +1553,6 { databuf_t *data = NULL; chararg[11]; - TSRMLS_FETCH(); if (ftp == NULL) goto bail; -1666,7 +1669,6 { databuf_t *data = NULL; chararg[11]; - TSRMLS_FETCH(); if (ftp == NULL) return 0; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/pgsql pgsql.c
yohgaki Sun Oct 13 05:41:36 2002 EDT Modified files: /php4/ext/pgsql pgsql.c Log: Need to init connstring when there are 2 args. Index: php4/ext/pgsql/pgsql.c diff -u php4/ext/pgsql/pgsql.c:1.233 php4/ext/pgsql/pgsql.c:1.234 --- php4/ext/pgsql/pgsql.c:1.233Sun Oct 13 05:37:27 2002 +++ php4/ext/pgsql/pgsql.c Sun Oct 13 05:41:35 2002 -19,7 +19,7 +--+ */ -/* $Id: pgsql.c,v 1.233 2002/10/13 09:37:27 yohgaki Exp $ */ +/* $Id: pgsql.c,v 1.234 2002/10/13 09:41:35 yohgaki Exp $ */ #include stdlib.h -511,6 +511,7 if (ZEND_NUM_ARGS() == 1) { /* new style, using connection string */ connstring = Z_STRVAL_PP(args[0]); } else if (ZEND_NUM_ARGS() == 2 ) { /* Safe to add conntype_option, since 2 args was illegal */ + connstring = Z_STRVAL_PP(args[0]); convert_to_long_ex(args[1]); connect_type = Z_LVAL_PP(args[1]); } else { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/standard/tests/file .cvsignore
sniper Sun Oct 13 04:08:07 2002 EDT Modified files: /php4/ext/standard/tests/file .cvsignore Log: These should be ignored. Index: php4/ext/standard/tests/file/.cvsignore diff -u php4/ext/standard/tests/file/.cvsignore:1.6 php4/ext/standard/tests/file/.cvsignore:1.7 --- php4/ext/standard/tests/file/.cvsignore:1.6 Mon Oct 7 23:01:07 2002 +++ php4/ext/standard/tests/file/.cvsignore Sun Oct 13 04:08:07 2002 -1,3 +1,5 +test.file +test.link phpt.* *.diff *.log -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/db/tests .cvsignore
sniper Sun Oct 13 04:08:53 2002 EDT Modified files: /php4/ext/db/tests .cvsignore Log: ignore test.dbm Index: php4/ext/db/tests/.cvsignore diff -u php4/ext/db/tests/.cvsignore:1.5 php4/ext/db/tests/.cvsignore:1.6 --- php4/ext/db/tests/.cvsignore:1.5Mon Oct 7 23:00:58 2002 +++ php4/ext/db/tests/.cvsignoreSun Oct 13 04:08:53 2002 -1,3 +1,4 +test.dbm phpt.* *.diff *.log -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 / NEWS
imajes Sat Oct 12 13:47:45 2002 EDT Modified files: /php4 NEWS Log: mention vpopmail. Index: php4/NEWS diff -u php4/NEWS:1.1200 php4/NEWS:1.1201 --- php4/NEWS:1.1200Sat Oct 12 10:59:40 2002 +++ php4/NEWS Sat Oct 12 13:47:45 2002 -9,6 +9,7 . ext/ccvs . ext/cybercash . ext/icap +- Moved ext/vpopmail to PECL. (James) - Added ICONV_IMPL and ICONV_VERSION constants to iconv extension to indicate which iconv implementation is used. (Moriyoshi) - Added experimental patch to address problem with floats on various locales. -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /sapi/embed config.m4
sniper Fri Oct 11 20:54:53 2002 EDT Modified files: /php4/sapi/embedconfig.m4 Log: Default to shared. Index: php4/sapi/embed/config.m4 diff -u php4/sapi/embed/config.m4:1.2 php4/sapi/embed/config.m4:1.3 --- php4/sapi/embed/config.m4:1.2 Fri Oct 11 19:28:01 2002 +++ php4/sapi/embed/config.m4 Fri Oct 11 20:54:53 2002 -1,5 +1,5 dnl -dnl $Id: config.m4,v 1.2 2002/10/11 23:28:01 sniper Exp $ +dnl $Id: config.m4,v 1.3 2002/10/12 00:54:53 sniper Exp $ dnl AC_MSG_CHECKING(for embedded SAPI library support) -9,11 +9,11 TYPE is either 'shared' or 'static'. Defaults to 'static' library.], [ case $enableval in -yes|static) - PHP_EMBED_TYPE=static - ;; -shared) +yes|shared) PHP_EMBED_TYPE=shared + ;; +static) + PHP_EMBED_TYPE=static ;; *) PHP_EMBED_TYPE=no -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /sapi/embed config.m4
sniper Fri Oct 11 19:28:01 2002 EDT Modified files: /php4/sapi/embedconfig.m4 Log: - Removed the unnecessary extra configure option --enable-shared-embed - Changed --enable-embed to accept parameters shared/static and default to static build. Index: php4/sapi/embed/config.m4 diff -u php4/sapi/embed/config.m4:1.1 php4/sapi/embed/config.m4:1.2 --- php4/sapi/embed/config.m4:1.1 Sun Sep 29 12:22:48 2002 +++ php4/sapi/embed/config.m4 Fri Oct 11 19:28:01 2002 -1,14 +1,30 -PHP_ARG_ENABLE(embed,whether to enable the embedded SAPI module, -[ --enable-embed]) +dnl +dnl $Id: config.m4,v 1.2 2002/10/11 23:28:01 sniper Exp $ +dnl -PHP_ARG_ENABLE(embed-shared,whether to build it as shared library, -[ --enable-embed-shared]) +AC_MSG_CHECKING(for embedded SAPI library support) -if test $PHP_EMBED = yes; then - if test $PHP_EMBED_SHARED = yes; then -ac_type=shared - else -ac_type=static - fi - PHP_SELECT_SAPI(embed, $ac_type, php_embed.c) +AC_ARG_ENABLE(embed, +[ --enable-embed[=TYPE] Enable building embedded SAPI library of PHP + TYPE is either 'shared' or 'static'. Defaults to 'static' +library.], +[ + case $enableval in +yes|static) + PHP_EMBED_TYPE=static + ;; +shared) + PHP_EMBED_TYPE=shared + ;; +*) + PHP_EMBED_TYPE=no + ;; + esac +],[ + PHP_EMBED=no +]) + +AC_MSG_RESULT($PHP_EMBED_TYPE) + +if test $PHP_EMBED_TYPE != no; then + PHP_SELECT_SAPI(embed, $PHP_EMBED_TYPE, php_embed.c) fi -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/domxml php_domxml.c
sander Sat Oct 12 12:16:37 2002 EDT Modified files: /php4/ext/domxmlphp_domxml.c Log: Typo Index: php4/ext/domxml/php_domxml.c diff -u php4/ext/domxml/php_domxml.c:1.212 php4/ext/domxml/php_domxml.c:1.213 --- php4/ext/domxml/php_domxml.c:1.212 Fri Oct 11 10:00:12 2002 +++ php4/ext/domxml/php_domxml.cSat Oct 12 12:16:36 2002 -16,7 +16,7 +--+ */ -/* $Id: php_domxml.c,v 1.212 2002/10/11 14:00:12 chregu Exp $ */ +/* $Id: php_domxml.c,v 1.213 2002/10/12 16:16:36 sander Exp $ */ /* TODO * - Support Notation Nodes -2580,7 +2580,7 DOMXML_PARAM_NONE(nodep, id, le_domxmlnodep); ret = node_attributes(attrs, nodep TSRMLS_CC); if ( ret == -1) { - return NULL; + RETURN_NULL(); } if ( ret -1) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/standard fsock.c /main network.c php_network.h
wez Sun Oct 13 18:01:40 2002 EDT Modified files: /php4/ext/standard fsock.c /php4/main network.c php_network.h Log: (php_socket_errno) win32 errno compatible macro. (php_socket_strerror) win32 compatible strerror replacement. Add an E_NOTICE when a socket write fails. Index: php4/ext/standard/fsock.c diff -u php4/ext/standard/fsock.c:1.104 php4/ext/standard/fsock.c:1.105 --- php4/ext/standard/fsock.c:1.104 Wed Sep 25 11:25:11 2002 +++ php4/ext/standard/fsock.c Sun Oct 13 18:01:39 2002 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: fsock.c,v 1.104 2002/09/25 15:25:11 wez Exp $ */ +/* $Id: fsock.c,v 1.105 2002/10/13 22:01:39 wez Exp $ */ /* converted to PHP Streams and moved much code to main/network.c [wez] */ @@ -113,6 +113,7 @@ /* * Converts a host name to an IP address. + * TODO: This looks like unused code suitable for nuking. */ PHPAPI int php_lookup_hostname(const char *addr, struct in_addr *in) { @@ -144,13 +145,11 @@ struct timeval tv; char *hashkey = NULL; php_stream *stream = NULL; -#ifdef PHP_WIN32 int err; -#endif RETVAL_FALSE; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, s|lzzd, host, host_len, port, zerrno, zerrstr, timeout) == FAILURE){ + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, s|lzzd, host, +host_len, port, zerrno, zerrstr, timeout) == FAILURE) { RETURN_FALSE; } @@ -204,8 +203,8 @@ int socktype = SOCK_STREAM; int i; - for (i = 0; sockmodes[i].proto != NULL; i++){ - if (strncmp(host, sockmodes[i].proto, sockmodes[i].protolen) == 0) { + for (i = 0; sockmodes[i].proto != NULL; i++) { + if (strncmp(host, sockmodes[i].proto, sockmodes[i].protolen) +== 0) { ssl_flags = sockmodes[i].ssl_flags; socktype = sockmodes[i].socktype; host += sockmodes[i].protolen; @@ -213,24 +212,22 @@ } } #if !HAVE_OPENSSL_EXT - if (ssl_flags != php_ssl_none) { + if (ssl_flags != php_ssl_none) { php_error_docref(NULL TSRMLS_CC, E_WARNING, no SSL support in this build); } else #endif stream = php_stream_sock_open_host(host, (unsigned short)port, socktype, tv, hashkey); -#ifdef PHP_WIN32 /* Preserve error */ - err = WSAGetLastError(); -#endif + err = php_socket_errno(); if (stream == NULL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, unable to connect to %s:%d, host, port); } #if HAVE_OPENSSL_EXT - if (stream ssl_flags != php_ssl_none){ + if (stream ssl_flags != php_ssl_none) { int ssl_ret = FAILURE; switch(ssl_flags) { case php_ssl_v23: @@ -248,8 +245,11 @@ } #endif - } else + } else { + /* FIXME: Win32 - this probably does not return sensible errno and +errstr */ stream = php_stream_sock_open_unix(host, host_len, hashkey, tv); + err = php_socket_errno(); + } if (hashkey) efree(hashkey); @@ -257,30 +257,14 @@ if (stream == NULL) { if (zerrno) { zval_dtor(zerrno); -#ifndef PHP_WIN32 - ZVAL_LONG(zerrno, errno); -#else ZVAL_LONG(zerrno, err); -#endif } -#ifndef PHP_WIN32 if (zerrstr) { - zval_dtor(zerrstr); - ZVAL_STRING(zerrstr, strerror(errno), 1); - } -#else - if (zerrstr) { - char *buf; + char *buf = php_socket_strerror(err, NULL, 0); - if (! FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, - Z_LVAL_P(zerrno), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)buf, 0, NULL)) { - RETURN_FALSE; - } - - ZVAL_STRING(zerrstr, buf, 1); - LocalFree(buf); + /* no need to dup; we would only need to efree buf anyway */ + ZVAL_STRING(zerrstr, buf, 0); } -#endif RETURN_FALSE; } Index: php4/main/network.c diff -u php4/main/network.c:1.74 php4/main/network.c:1.75 ---
[PHP-CVS] cvs: php4 /main streams.c
wez Sun Oct 13 18:52:33 2002 EDT Modified files: /php4/main streams.c Log: Fix a nasty nasty bug: When not enough data to satisfy a read was found in the buffer, fgets modifies the buf pointer to point to the position to store the next chunk. It then returned the modified buf pointer, instead of a pointer to the start of the buffer. Also added some infrastructure for making fgets grow the buffer on-demand to the correct line-size. Since streams uses reasonable chunk sizes, the performance of the realloc's should be pretty good; in the best case, the line is already found completely in the buffer, so the returned buffer will be allocated to precisely the correct size. In the worst case, where the buffer only contains part of the line, we get a realloc per buffer fill. The reallocs are either the size of the remainder of the line, or the chunk_size (if the buffer sill does not contain a complete line). Each realloc adds an extra byte for a NUL terminator. I think this will perform quite well using the default chunk size of 8K. Index: php4/main/streams.c diff -u php4/main/streams.c:1.101 php4/main/streams.c:1.102 --- php4/main/streams.c:1.101 Fri Oct 11 22:56:34 2002 +++ php4/main/streams.c Sun Oct 13 18:52:33 2002 -20,7 +20,7 +--+ */ -/* $Id: streams.c,v 1.101 2002/10/12 02:56:34 wez Exp $ */ +/* $Id: streams.c,v 1.102 2002/10/13 22:52:33 wez Exp $ */ #define _GNU_SOURCE #include php.h -668,12 +668,20 return eol; } +/* If buf == NULL, the buffer will be allocated automatically and will be of an + * appropriate length to hold the line, regardless of the line length, memory + * permitting */ PHPAPI char *_php_stream_gets(php_stream *stream, char *buf, size_t maxlen TSRMLS_DC) { size_t avail = 0; int did_copy = 0; - - if (maxlen == 0) + size_t current_buf_size = 0; + int grow_mode = 0; + char *bufstart = buf; + + if (buf == NULL) + grow_mode = 1; + else if (maxlen == 0) return NULL; /* -708,9 +716,21 cpysz = avail; } - if (cpysz = maxlen - 1) { - cpysz = maxlen - 1; - done = 1; + if (grow_mode) { + /* allow room for a NUL. If this realloc is really a +realloc +* (ie: second time around), we get an extra byte. In +most +* cases, with the default chunk size of 8K, we will +only +* incur that overhead once. When people have lines +longer +* than 8K, we waste 1 byte per additional 8K or so. +* That seems acceptable to me, to avoid making this +code +* hard to follow */ + bufstart = erealloc(bufstart, current_buf_size + cpysz ++ 1); + current_buf_size += cpysz + 1; + } else { + if (cpysz = maxlen - 1) { + cpysz = maxlen - 1; + done = 1; + } } memcpy(buf, readptr, cpysz); -728,9 +748,15 break; } else { /* XXX: Should be fine to always read chunk_size */ - size_t toread = maxlen - 1; - if (toread stream-chunk_size) + size_t toread; + + if (grow_mode) { toread = stream-chunk_size; + } else { + toread = maxlen - 1; + if (toread stream-chunk_size) + toread = stream-chunk_size; + } php_stream_fill_read_buffer(stream, toread TSRMLS_CC); -745,7 +771,7 buf[0] = '\0'; - return buf; + return bufstart; } PHPAPI int _php_stream_flush(php_stream *stream, int closing TSRMLS_DC) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /main network.c
wez Sun Oct 13 19:21:06 2002 EDT Modified files: /php4/main network.c Log: Probable fix for #16114 Index: php4/main/network.c diff -u php4/main/network.c:1.75 php4/main/network.c:1.76 --- php4/main/network.c:1.75Sun Oct 13 18:01:39 2002 +++ php4/main/network.c Sun Oct 13 19:21:05 2002 @@ -16,7 +16,7 @@ | Streams work by Wez Furlong [EMAIL PROTECTED] | +--+ */ -/* $Id: network.c,v 1.75 2002/10/13 22:01:39 wez Exp $ */ +/* $Id: network.c,v 1.76 2002/10/13 23:21:05 wez Exp $ */ /*#define DEBUG_MAIN_NETWORK 1*/ @@ -862,7 +862,7 @@ } #endif - shutdown(sock-socket, 0); + /* shutdown(sock-socket, 0); */ closesocket(sock-socket); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /main network.c php_network.h
wez Sun Oct 13 19:43:21 2002 EDT Modified files: /php4/main network.c php_network.h Log: A much better probable fix for #16114. Index: php4/main/network.c diff -u php4/main/network.c:1.76 php4/main/network.c:1.77 --- php4/main/network.c:1.76Sun Oct 13 19:21:05 2002 +++ php4/main/network.c Sun Oct 13 19:43:21 2002 @@ -16,7 +16,7 @@ | Streams work by Wez Furlong [EMAIL PROTECTED] | +--+ */ -/* $Id: network.c,v 1.76 2002/10/13 23:21:05 wez Exp $ */ +/* $Id: network.c,v 1.77 2002/10/13 23:43:21 wez Exp $ */ /*#define DEBUG_MAIN_NETWORK 1*/ @@ -849,6 +849,8 @@ static int php_sockop_close(php_stream *stream, int close_handle TSRMLS_DC) { php_netstream_data_t *sock = (php_netstream_data_t*)stream-abstract; + fd_set wrfds, efds; + int n; if (close_handle) { #if HAVE_OPENSSL_EXT @@ -862,7 +864,18 @@ } #endif - /* shutdown(sock-socket, 0); */ + /* prevent more data from coming in */ + shutdown(sock-socket, SHUT_RD); + + /* make sure that the OS sends all data before we close the connection +*/ + do { + FD_ZERO(wrfds); + FD_SET(sock-socket, wrfds); + efds = wrfds; + + n = select(sock-socket + 1, NULL, wrfds, efds, NULL); + } while (n == -1 php_socket_errno() == EINTR); + closesocket(sock-socket); } Index: php4/main/php_network.h diff -u php4/main/php_network.h:1.32 php4/main/php_network.h:1.33 --- php4/main/php_network.h:1.32Sun Oct 13 18:01:40 2002 +++ php4/main/php_network.h Sun Oct 13 19:43:21 2002 @@ -15,7 +15,7 @@ | Author: Stig Venaas [EMAIL PROTECTED] | +--+ */ -/* $Id: php_network.h,v 1.32 2002/10/13 22:01:40 wez Exp $ */ +/* $Id: php_network.h,v 1.33 2002/10/13 23:43:21 wez Exp $ */ #ifndef _PHP_NETWORK_H #define _PHP_NETWORK_H @@ -27,6 +27,9 @@ # undef FD_SETSIZE # include arpa/inet.h # define socklen_t unsigned int +# define SHUT_RD SD_RECEIVE +# define SHUT_WR SD_SEND +# define SHUT_RDWR SD_BOTH #else # undef closesocket # define closesocket close @@ -60,6 +63,14 @@ #ifdef HAVE_SYS_SOCKET_H #include sys/socket.h +#endif + +/* These are here, rather than with the win32 counterparts above, + * since sys/socket.h defines them. */ +#ifndef SHUT_RD +# define SHUT_RD 0 +# define SHUT_WR 1 +# define SHUT_RDWR 2 #endif #ifdef HAVE_SYS_TIME_H -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /main streams.c
wez Sun Oct 13 19:43:46 2002 EDT Modified files: /php4/main streams.c Log: Remove some old code. Index: php4/main/streams.c diff -u php4/main/streams.c:1.102 php4/main/streams.c:1.103 --- php4/main/streams.c:1.102 Sun Oct 13 18:52:33 2002 +++ php4/main/streams.c Sun Oct 13 19:43:46 2002 -20,7 +20,7 +--+ */ -/* $Id: streams.c,v 1.102 2002/10/13 22:52:33 wez Exp $ */ +/* $Id: streams.c,v 1.103 2002/10/13 23:43:46 wez Exp $ */ #define _GNU_SOURCE #include php.h -544,7 +544,7 if (toread size) toread = size; - if (toread) { + if (toread 0) { memcpy(buf, stream-readbuf + stream-readpos, toread); stream-readpos += toread; } -572,14 +572,6 return 0; return stream-eof; - - /* we define our stream reading function so that it - must return EOF when an EOF condition occurs, when - working in unbuffered mode and called with these args */ - if (stream-filterhead) - return stream-filterhead-fops-eof(stream, stream-filterhead TSRMLS_CC); - - return stream-ops-read(stream, NULL, 0 TSRMLS_CC) == EOF ? 1 : 0; } PHPAPI int _php_stream_putc(php_stream *stream, int c TSRMLS_DC) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /main user_streams.c
wez Sun Oct 13 20:16:02 2002 EDT Modified files: /php4/main user_streams.c Log: Fix stream_eof result interpretation (and thus the user-streams test). Index: php4/main/user_streams.c diff -u php4/main/user_streams.c:1.26 php4/main/user_streams.c:1.27 --- php4/main/user_streams.c:1.26 Sat Oct 5 06:35:13 2002 +++ php4/main/user_streams.cSun Oct 13 20:16:02 2002 -17,7 +17,7 +--+ */ -/* $Id: user_streams.c,v 1.26 2002/10/05 10:35:13 wez Exp $ */ +/* $Id: user_streams.c,v 1.27 2002/10/14 00:16:02 wez Exp $ */ #include php.h #include php_globals.h -477,11 +477,12 retval, 0, NULL, 0, NULL TSRMLS_CC); - if (!(call_result == SUCCESS retval != NULL zval_is_true(retval))) { - if (call_result == FAILURE) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, %s:: USERSTREAM_EOF is not implemented! Assuming EOF, - us-wrapper-classname); - } + if (call_result == SUCCESS retval != NULL zval_is_true(retval)) { + stream-eof = 1; + } else if (call_result == FAILURE) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, + %s:: USERSTREAM_EOF is not implemented! Assuming +EOF, + us-wrapper-classname); stream-eof = 1; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /main network.c
wez Sun Oct 13 21:27:43 2002 EDT Modified files: /php4/main network.c Log: Implement better SSL error handling. Index: php4/main/network.c diff -u php4/main/network.c:1.77 php4/main/network.c:1.78 --- php4/main/network.c:1.77Sun Oct 13 19:43:21 2002 +++ php4/main/network.c Sun Oct 13 21:27:43 2002 @@ -16,7 +16,7 @@ | Streams work by Wez Furlong [EMAIL PROTECTED] | +--+ */ -/* $Id: network.c,v 1.77 2002/10/13 23:43:21 wez Exp $ */ +/* $Id: network.c,v 1.78 2002/10/14 01:27:43 wez Exp $ */ /*#define DEBUG_MAIN_NETWORK 1*/ @@ -746,6 +746,84 @@ return ret; } +#if HAVE_OPENSSL_EXT +static int handle_ssl_error(php_stream *stream, int nr_bytes TSRMLS_DC) +{ + php_netstream_data_t *sock = (php_netstream_data_t*)stream-abstract; + int err = SSL_get_error(sock-ssl_handle, nr_bytes); + char esbuf[512]; + char *ebuf = NULL, *wptr = NULL; + size_t ebuf_size = 0; + unsigned long code; + int retry = 1; + + switch(err) { + case SSL_ERROR_ZERO_RETURN: + /* SSL terminated (but socket may still be active) */ + retry = 0; + break; + case SSL_ERROR_WANT_READ: + case SSL_ERROR_WANT_WRITE: + /* re-negotiation, or perhaps the SSL layer needs more +* packets: retry in next iteration */ + break; + case SSL_ERROR_SYSCALL: + if (ERR_peek_error() == 0) { + if (nr_bytes == 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, + SSL: fatal protocol error); + stream-eof = 1; + retry = 0; + } else { + char *estr = +php_socket_strerror(php_socket_errno(), NULL, 0); + + php_error_docref(NULL TSRMLS_CC, E_WARNING, + SSL: %s, estr); + + efree(estr); + retry = 0; + } + break; + } + /* fall through */ + default: + /* some other error */ + while ((code = ERR_get_error()) != 0) { + /* allow room for a NUL and an optional \n */ + if (ebuf) { + esbuf[0] = '\n'; + esbuf[1] = '\0'; + ERR_error_string_n(code, esbuf + 1, +sizeof(esbuf) - 2); + } else { + esbuf[0] = '\0'; + ERR_error_string_n(code, esbuf, sizeof(esbuf) +- 1); + } + code = strlen(esbuf); + esbuf[code] = '\0'; + + ebuf = erealloc(ebuf, ebuf_size + code + 1); + if (wptr = NULL) + wptr = ebuf; + + /* also copies the NUL */ + memcpy(wptr, esbuf, code + 1); + wptr += code; + } + + php_error_docref(NULL TSRMLS_CC, E_WARNING, + SSL operation failed with code %d.%s%s, + err, + ebuf ? OpenSSL Error messages:\n : , + ebuf ? ebuf : ); + + retry = 0; + } + return retry; +} +#endif + + + static size_t php_sockop_write(php_stream *stream, const char *buf, size_t count TSRMLS_DC) { php_netstream_data_t *sock = (php_netstream_data_t*)stream-abstract; @@ -753,7 +831,18 @@ #if HAVE_OPENSSL_EXT if (sock-ssl_active) { - didwrite = SSL_write(sock-ssl_handle, buf, count); + int retry = 1; + + do { + didwrite = SSL_write(sock-ssl_handle, buf, count); + + if (didwrite = 0) { + retry = handle_ssl_error(stream, didwrite TSRMLS_CC); + } else { + break; + } + } while(retry); + } else #endif { @@ -768,7 +857,8 @@ } } -
[PHP-CVS] cvs: php4 /ext/standard/tests/file userstreams.phpt
wez Sun Oct 13 22:25:52 2002 EDT Modified files: /php4/ext/standard/tests/file userstreams.phpt Log: Add a sanity check and more verbose output in the case of an error. Index: php4/ext/standard/tests/file/userstreams.phpt diff -u php4/ext/standard/tests/file/userstreams.phpt:1.4 php4/ext/standard/tests/file/userstreams.phpt:1.5 --- php4/ext/standard/tests/file/userstreams.phpt:1.4 Sat Oct 5 06:35:13 2002 +++ php4/ext/standard/tests/file/userstreams.phpt Sun Oct 13 22:25:51 2002 -269,15 +269,21 } $fail_count = 0; + fseek($fp, $DATALEN / 2, SEEK_SET); fseek($tf, $DATALEN / 2, SEEK_SET); +if (ftell($fp) != ftell($tf)) { + echo SEEK: positions do not match!\n; +} + +$n = 0; while(!feof($fp)) { $uline = fgets($fp, 1024); $rline = fgets($tf, 1024); if ($uline != $rline) { - echo FGETS: FAIL\nuser=$uline\nreal=$rline\n; + echo FGETS: FAIL\niter=$n user=$uline [pos= . ftell($fp) . +]\nreal=$rline [pos= . ftell($tf) . ]\n; $fail_count++; break; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/standard file.c /main streams.c
wez Sun Oct 13 22:28:36 2002 EDT Modified files: /php4/ext/standard file.c /php4/main streams.c Log: - fgets($fp) (with no length parameter) now uses a buffer as long as the the next line available from the $fp. Previously, there was a 1KB limit. (Wez) Index: php4/ext/standard/file.c diff -u php4/ext/standard/file.c:1.268 php4/ext/standard/file.c:1.269 --- php4/ext/standard/file.c:1.268 Sat Oct 5 06:59:35 2002 +++ php4/ext/standard/file.cSun Oct 13 22:28:35 2002 -21,7 +21,7 +--+ */ -/* $Id: file.c,v 1.268 2002/10/05 10:59:35 wez Exp $ */ +/* $Id: file.c,v 1.269 2002/10/14 02:28:35 wez Exp $ */ /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */ -1247,8 +1247,8 PHPAPI PHP_FUNCTION(fgets) { zval **arg1, **arg2; - int len = 1024; - char *buf; + int len; + char *buf = NULL; int argc = ZEND_NUM_ARGS(); php_stream *stream; -1258,30 +1258,33 php_stream_from_zval(stream, arg1); - if (argc1) { + if (argc == 1) { + /* ask streams to give us a buffer of an appropriate size */ + buf = php_stream_gets(stream, NULL, 0); + if (buf == NULL) + goto exit_failed; + } else if (argc 1) { convert_to_long_ex(arg2); len = Z_LVAL_PP(arg2); - } - - if (len 0) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Length parameter may not be negative); - RETURN_FALSE; - } - - buf = emalloc(sizeof(char) * (len + 1)); - /* needed because recv doesnt put a null at the end*/ - memset(buf, 0, len+1); - if (php_stream_gets(stream, buf, len) == NULL) - goto exit_failed; + if (len 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Length parameter +may not be negative); + RETURN_FALSE; + } + buf = ecalloc(len + 1, sizeof(char)); + if (php_stream_gets(stream, buf, len) == NULL) + goto exit_failed; + } + if (PG(magic_quotes_runtime)) { Z_STRVAL_P(return_value) = php_addslashes(buf, 0, Z_STRLEN_P(return_value), 1 TSRMLS_CC); Z_TYPE_P(return_value) = IS_STRING; } else { ZVAL_STRING(return_value, buf, 0); - /* resize buffer if it's much larger than the result */ - if (Z_STRLEN_P(return_value) len / 2) { + /* resize buffer if it's much larger than the result. +* Only needed if the user requested a buffer size. */ + if (argc 1 Z_STRLEN_P(return_value) len / 2) { Z_STRVAL_P(return_value) = erealloc(buf, Z_STRLEN_P(return_value) + 1); } } -1289,7 +1292,8 exit_failed: RETVAL_FALSE; - efree(buf); + if (buf) + efree(buf); } /* }}} */ Index: php4/main/streams.c diff -u php4/main/streams.c:1.103 php4/main/streams.c:1.104 --- php4/main/streams.c:1.103 Sun Oct 13 19:43:46 2002 +++ php4/main/streams.c Sun Oct 13 22:28:35 2002 -20,7 +20,7 +--+ */ -/* $Id: streams.c,v 1.103 2002/10/13 23:43:46 wez Exp $ */ +/* $Id: streams.c,v 1.104 2002/10/14 02:28:35 wez Exp $ */ #define _GNU_SOURCE #include php.h -666,8 +666,8 PHPAPI char *_php_stream_gets(php_stream *stream, char *buf, size_t maxlen TSRMLS_DC) { size_t avail = 0; - int did_copy = 0; size_t current_buf_size = 0; + size_t total_copied = 0; int grow_mode = 0; char *bufstart = buf; -718,6 +718,7 * hard to follow */ bufstart = erealloc(bufstart, current_buf_size + cpysz + 1); current_buf_size += cpysz + 1; + buf = bufstart + total_copied; } else { if (cpysz = maxlen - 1) { cpysz = maxlen - 1; -731,8 +732,8 stream-readpos += cpysz; buf += cpysz; maxlen -= cpysz; + total_copied += cpysz; - did_copy = 1; if (done) { break; } -758,8 +759,11 } } - if (!did_copy) + if (total_copied == 0) { + if (grow_mode) + assert(bufstart != NULL); return NULL; + } buf[0] = '\0'; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /ext/snmp snmp.c
sniper Sun Oct 13 22:46:52 2002 EDT Modified files: /php4/ext/snmp snmp.c Log: This is not zval.. Index: php4/ext/snmp/snmp.c diff -u php4/ext/snmp/snmp.c:1.60 php4/ext/snmp/snmp.c:1.61 --- php4/ext/snmp/snmp.c:1.60 Thu Sep 5 07:50:43 2002 +++ php4/ext/snmp/snmp.cSun Oct 13 22:46:52 2002 @@ -17,7 +17,7 @@ | Steven Lawrance [EMAIL PROTECTED]| +--+ */ -/* $Id: snmp.c,v 1.60 2002/09/05 11:50:43 hyanantha Exp $ */ +/* $Id: snmp.c,v 1.61 2002/10/14 02:46:52 sniper Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -341,8 +341,8 @@ add_assoc_string(return_value,buf2,buf,1); } if (st = 2 st != 11) { - if (Z_TYPE_P(vars) != SNMP_ENDOFMIBVIEW - Z_TYPE_P(vars) != SNMP_NOSUCHOBJECT Z_TYPE_P(vars) != SNMP_NOSUCHINSTANCE) { + if (vars-type != SNMP_ENDOFMIBVIEW + vars-type != +SNMP_NOSUCHOBJECT vars-type != SNMP_NOSUCHINSTANCE) { memmove((char *)name, (char *)vars-name,vars-name_length * sizeof(oid)); name_length = vars-name_length; keepwalking = 1; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /main streams.c
wez Mon Oct 14 01:38:50 2002 EDT Modified files: /php4/main streams.c Log: *cough* Fix inverted logic for the assert. Index: php4/main/streams.c diff -u php4/main/streams.c:1.104 php4/main/streams.c:1.105 --- php4/main/streams.c:1.104 Sun Oct 13 22:28:35 2002 +++ php4/main/streams.c Mon Oct 14 01:38:50 2002 -20,7 +20,7 +--+ */ -/* $Id: streams.c,v 1.104 2002/10/14 02:28:35 wez Exp $ */ +/* $Id: streams.c,v 1.105 2002/10/14 05:38:50 wez Exp $ */ #define _GNU_SOURCE #include php.h -760,8 +760,9 } if (total_copied == 0) { - if (grow_mode) - assert(bufstart != NULL); + if (grow_mode) { + assert(bufstart == NULL); + } return NULL; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /main php_network.h
sebastian Mon Oct 14 01:54:15 2002 EDT Modified files: /php4/main php_network.h Log: Fix Win32 build. Index: php4/main/php_network.h diff -u php4/main/php_network.h:1.33 php4/main/php_network.h:1.34 --- php4/main/php_network.h:1.33Sun Oct 13 19:43:21 2002 +++ php4/main/php_network.h Mon Oct 14 01:54:15 2002 @@ -15,7 +15,7 @@ | Author: Stig Venaas [EMAIL PROTECTED] | +--+ */ -/* $Id: php_network.h,v 1.33 2002/10/13 23:43:21 wez Exp $ */ +/* $Id: php_network.h,v 1.34 2002/10/14 05:54:15 sebastian Exp $ */ #ifndef _PHP_NETWORK_H #define _PHP_NETWORK_H @@ -27,9 +27,6 @@ # undef FD_SETSIZE # include arpa/inet.h # define socklen_t unsigned int -# define SHUT_RD SD_RECEIVE -# define SHUT_WR SD_SEND -# define SHUT_RDWR SD_BOTH #else # undef closesocket # define closesocket close -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php4 /main php_network.h
sebastian Mon Oct 14 01:56:03 2002 EDT Modified files: /php4/main php_network.h Log: Whitespace fixes. Index: php4/main/php_network.h diff -u php4/main/php_network.h:1.34 php4/main/php_network.h:1.35 --- php4/main/php_network.h:1.34Mon Oct 14 01:54:15 2002 +++ php4/main/php_network.h Mon Oct 14 01:56:03 2002 @@ -15,21 +15,21 @@ | Author: Stig Venaas [EMAIL PROTECTED] | +--+ */ -/* $Id: php_network.h,v 1.34 2002/10/14 05:54:15 sebastian Exp $ */ +/* $Id: php_network.h,v 1.35 2002/10/14 05:56:03 sebastian Exp $ */ #ifndef _PHP_NETWORK_H #define _PHP_NETWORK_H #ifdef PHP_WIN32 -# ifndef WINNT -# define WINNT 1 -# endif -# undef FD_SETSIZE -# include arpa/inet.h -# define socklen_t unsigned int +#ifndef WINNT +#define WINNT 1 +#endif +#undef FD_SETSIZE +#include arpa/inet.h +#define socklen_t unsigned int #else -# undef closesocket -# define closesocket close +#undef closesocket +#define closesocket close #endif #ifndef HAVE_SHUTDOWN @@ -55,7 +55,7 @@ PHPAPI char *php_socket_strerror(long err, char *buf, size_t bufsize); #ifdef HAVE_NETINET_IN_H -# include netinet/in.h +#include netinet/in.h #endif #ifdef HAVE_SYS_SOCKET_H @@ -65,9 +65,9 @@ /* These are here, rather than with the win32 counterparts above, * since sys/socket.h defines them. */ #ifndef SHUT_RD -# define SHUT_RD 0 -# define SHUT_WR 1 -# define SHUT_RDWR 2 +#define SHUT_RD 0 +#define SHUT_WR 1 +#define SHUT_RDWR 2 #endif #ifdef HAVE_SYS_TIME_H @@ -83,13 +83,13 @@ #endif #ifdef PHP_WIN32 -# define SOCK_ERR INVALID_SOCKET -# define SOCK_CONN_ERR SOCKET_ERROR -# define SOCK_RECV_ERR SOCKET_ERROR +#define SOCK_ERR INVALID_SOCKET +#define SOCK_CONN_ERR SOCKET_ERROR +#define SOCK_RECV_ERR SOCKET_ERROR #else -# define SOCK_ERR -1 -# define SOCK_CONN_ERR -1 -# define SOCK_RECV_ERR -1 +#define SOCK_ERR -1 +#define SOCK_CONN_ERR -1 +#define SOCK_RECV_ERR -1 #endif #define PHP_SOCK_CHUNK_SIZE8192 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php