Date: 12/04/98
- Next message: ssb: "[PHP-DEV] CVS update: php3"
- Previous message: arneodo <email protected>: "[PHP-DEV] Bug #972: *Document contains no data* received after a lot of loops"
- Next in thread: ssb: "[PHP-DEV] CVS update: php3/functions"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Friday December 4, 1998 @ 15:19
Author: ssb
Update of /repository/php3/functions
In directory asf:/u/temp/cvs-serv3880/functions
Modified Files:
dav.c
Log Message:
a few DAV bugfixes
Index: php3/functions/dav.c
diff -c php3/functions/dav.c:1.1 php3/functions/dav.c:1.2
*** php3/functions/dav.c:1.1 Fri Dec 4 11:38:04 1998
--- php3/functions/dav.c Fri Dec 4 15:19:16 1998
***************
*** 27,33 ****
+----------------------------------------------------------------------+
*/
! /* $Id: dav.c,v 1.1 1998/12/04 16:38:04 ssb Exp $ */
#define IS_EXT_MODULE
#if COMPILE_DL
--- 27,33 ----
+----------------------------------------------------------------------+
*/
! /* $Id: dav.c,v 1.2 1998/12/04 20:19:16 ssb Exp $ */
#define IS_EXT_MODULE
#if COMPILE_DL
***************
*** 48,53 ****
--- 48,54 ----
#if HAVE_MOD_DAV
# include "mod_dav.h"
+ # include "phpdav.h"
# include "variables.h"
/* {{{ thread safety stuff */
***************
*** 72,77 ****
--- 73,83 ----
# endif /* defined(THREAD_SAFE) */
+ # define DAV_HANDLER(a) DAV_GLOBAL(php3_dav_module).a##_handler
+ # define DAV_SET_HANDLER(a,b) \
+ dav_set_handler(&DAV_GLOBAL(php3_dav_module).a##_handler,(b))
+
+
/* }}} */
/* {{{ dynamically loadable module stuff */
***************
*** 120,135 ****
PHP3_MUTEX_LOCK(phpdav_mutex);
numthreads++;
if (numthreads==1){
! if (!PHP3_TLS_PROC_STARTUP(PHPDAVTls)){
! PHP3_MUTEX_UNLOCK(phpdav_mutex);
! PHP3_MUTEX_FREE(phpdav_mutex);
! return FAILURE;
! }
}
PHP3_MUTEX_UNLOCK(phdpav_mutex);
if(!PHP3_TLS_THREAD_INIT(PHPDAVTls,phpdav_globals,phpdav_global_struct)){
! PHP3_MUTEX_FREE(phpdav_mutex);
! return FAILURE;
}
#endif
return SUCCESS;
--- 126,141 ----
PHP3_MUTEX_LOCK(phpdav_mutex);
numthreads++;
if (numthreads==1){
! if (!PHP3_TLS_PROC_STARTUP(PHPDAVTls)){
! PHP3_MUTEX_UNLOCK(phpdav_mutex);
! PHP3_MUTEX_FREE(phpdav_mutex);
! return FAILURE;
! }
}
PHP3_MUTEX_UNLOCK(phdpav_mutex);
if(!PHP3_TLS_THREAD_INIT(PHPDAVTls,phpdav_globals,phpdav_global_struct)){
! PHP3_MUTEX_FREE(phpdav_mutex);
! return FAILURE;
}
#endif
return SUCCESS;
***************
*** 154,163 ****
PHP3_MUTEX_LOCK(phpdav_mutex);
numthreads--;
if (numthreads < 1) {
! PHP3_TLS_PROC_SHUTDOWN(PHPDAVTls);
! PHP3_MUTEX_UNLOCK(phpdav_mutex);
! PHP3_MUTEX_FREE(phpdav_mutex);
! return SUCCESS;
}
PHP3_MUTEX_UNLOCK(phpdav_mutex);
#endif
--- 160,169 ----
PHP3_MUTEX_LOCK(phpdav_mutex);
numthreads--;
if (numthreads < 1) {
! PHP3_TLS_PROC_SHUTDOWN(PHPDAVTls);
! PHP3_MUTEX_UNLOCK(phpdav_mutex);
! PHP3_MUTEX_FREE(phpdav_mutex);
! return SUCCESS;
}
PHP3_MUTEX_UNLOCK(phpdav_mutex);
#endif
***************
*** 170,179 ****
int php3_rshutdown_phpdav()
{
if (DAV_HANDLER(mkcol_test)) {
! efree(DAV_HANDLER(mkcol_test));
}
if (DAV_HANDLER(mkcol_create)) {
! efree(DAV_HANDLER(mkcol_create));
}
return SUCCESS;
}
--- 176,185 ----
int php3_rshutdown_phpdav()
{
if (DAV_HANDLER(mkcol_test)) {
! efree(DAV_HANDLER(mkcol_test));
}
if (DAV_HANDLER(mkcol_create)) {
! efree(DAV_HANDLER(mkcol_create));
}
return SUCCESS;
}
***************
*** 192,263 ****
/* {{{ dav_set_handler() */
- # define DAV_HANDLER(a) DAV_GLOBAL(php3_dav_module).a##_handler
- # define DAV_SET_HANDLER(a,b) \
- dav_set_handler(&DAV_GLOBAL(php3_dav_module).a##_handler,(b))
-
static void
dav_set_handler(char **nameBufp, pval *data)
{
if (data->value.str.len > 0) {
! if (*nameBufp != NULL) {
! efree(*nameBufp);
! }
! *nameBufp = php3i_pval_strdup(data);
} else {
! if (*nameBufp != NULL) {
! efree(*nameBufp);
! }
! *nameBufp = NULL;
}
}
/* }}} */
/* {{{ dav_call_handler() */
! static pval *
dav_call_handler(char *funcName, int argc, pval **argv)
{
if (funcName) {
! pval *retval, *func;
! int i;
! HashTable *function_table;
!
! func = php3i_string_pval(funcName);
! retval = emalloc(sizeof(pval));
! function_table = php3i_get_function_table();
! if (call_user_function(function_table, NULL, func, retval, argc, argv) == FAILURE) {
! php3tls_pval_destructor(retval);
! efree(retval);
! return NULL;
! }
! php3tls_pval_destructor(func);
! efree(func);
! for (i = 0; i < argc; i++) {
! php3tls_pval_destructor(argv[i]);
! efree(argv[i]);
! }
! return retval;
}
! return NULL;
}
/* }}} */
int phpdav_mkcol_test_handler(request_rec *r)
{
! pval *retval, *arg;
if (DAV_HANDLER(mkcol_test) == NULL) {
! return DECLINED;
}
arg = php3i_string_pval(r->filename);
! if ((retval = dav_call_handler(DAV_HANDLER(mkcol_test), 1, &arg))) {
! php3tls_pval_destructor(retval);
! efree(retval);
}
! convert_to_long(retval);
! return retval->value.lval;
}
/* }}} */
--- 198,272 ----
/* {{{ dav_set_handler() */
static void
dav_set_handler(char **nameBufp, pval *data)
{
if (data->value.str.len > 0) {
! if (*nameBufp != NULL) {
! efree(*nameBufp);
! }
! *nameBufp = php3i_pval_strdup(data);
} else {
! if (*nameBufp != NULL) {
! efree(*nameBufp);
! }
! *nameBufp = NULL;
}
}
/* }}} */
/* {{{ dav_call_handler() */
! static int
dav_call_handler(char *funcName, int argc, pval **argv)
{
if (funcName) {
! pval *retval, *func;
! int i;
! HashTable *function_table;
!
! func = php3i_string_pval(funcName);
! retval = emalloc(sizeof(pval));
! function_table = php3i_get_function_table();
! if (call_user_function(function_table, NULL, func, retval, argc, argv) == FAILURE) {
! php3tls_pval_destructor(retval);
! efree(retval);
! return HTTP_INTERNAL_SERVER_ERROR;
! }
! php3tls_pval_destructor(func);
! efree(func);
! for (i = 0; i < argc; i++) {
! php3tls_pval_destructor(argv[i]);
! efree(argv[i]);
! }
! convert_to_long(retval);
! return retval->value.lval;
}
! return DECLINED;
}
/* }}} */
int phpdav_mkcol_test_handler(request_rec *r)
{
! pval *arg;
if (DAV_HANDLER(mkcol_test) == NULL) {
! return DECLINED;
}
arg = php3i_string_pval(r->filename);
! return dav_call_handler(DAV_HANDLER(mkcol_test), 1, &arg);
! }
!
! int phpdav_mkcol_create_handler(request_rec *r)
! {
! pval *arg;
!
! if (DAV_HANDLER(mkcol_create) == NULL) {
! return DECLINED;
}
! arg = php3i_string_pval(r->filename);
! return dav_call_handler(DAV_HANDLER(mkcol_create), 1, &arg);
}
/* }}} */
***************
*** 272,278 ****
DAV_TLS_VARS;
if (ARG_COUNT(ht) != 2 || getParameters(ht, 2, &test, &create) == FAILURE) {
! WRONG_PARAM_COUNT;
}
DAV_SET_HANDLER(mkcol_test, test);
DAV_SET_HANDLER(mkcol_create, create);
--- 281,287 ----
DAV_TLS_VARS;
if (ARG_COUNT(ht) != 2 || getParameters(ht, 2, &test, &create) == FAILURE) {
! WRONG_PARAM_COUNT;
}
DAV_SET_HANDLER(mkcol_test, test);
DAV_SET_HANDLER(mkcol_create, create);
-- PHP Development Mailing List http://www.php.net/ To unsubscribe send an empty message to php-dev-unsubscribe <email protected> For help: php-dev-help <email protected>
- Next message: ssb: "[PHP-DEV] CVS update: php3"
- Previous message: arneodo <email protected>: "[PHP-DEV] Bug #972: *Document contains no data* received after a lot of loops"
- Next in thread: ssb: "[PHP-DEV] CVS update: php3/functions"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

