diff options
| author | Jani Taskinen <jani@php.net> | 2010-03-12 10:28:59 +0000 | 
|---|---|---|
| committer | Jani Taskinen <jani@php.net> | 2010-03-12 10:28:59 +0000 | 
| commit | af49e58f5155383a440041c77cc1ecbaf507fde7 (patch) | |
| tree | 01ffe64d6f78450fb828f73d0e1e59f3cc7c8c76 /sapi/apache_hooks/sapi_apache.c | |
| parent | ea539c8b88c9278363b6de0b39446e4e8e043391 (diff) | |
| download | php-git-af49e58f5155383a440041c77cc1ecbaf507fde7.tar.gz | |
- Reverted r296062 and r296065
Diffstat (limited to 'sapi/apache_hooks/sapi_apache.c')
| -rw-r--r-- | sapi/apache_hooks/sapi_apache.c | 97 | 
1 files changed, 49 insertions, 48 deletions
diff --git a/sapi/apache_hooks/sapi_apache.c b/sapi/apache_hooks/sapi_apache.c index 82440e4a1b..5c9fbb7816 100644 --- a/sapi/apache_hooks/sapi_apache.c +++ b/sapi/apache_hooks/sapi_apache.c @@ -34,7 +34,7 @@ int apache_php_module_main(request_rec *r, int display_source_mode TSRMLS_DC)  	}  	/* sending a file handle to another dll is not working  	   so let zend open it. */ - +	  	if (display_source_mode) {  		zend_syntax_highlighter_ini syntax_highlighter_ini; @@ -53,7 +53,7 @@ int apache_php_module_main(request_rec *r, int display_source_mode TSRMLS_DC)  		(void) php_execute_script(&file_handle TSRMLS_CC);  	}  	AP(in_request) = 0; - +	  	return (OK);  }  /* }}} */ @@ -64,58 +64,59 @@ int apache_php_module_hook(request_rec *r, php_handler *handler, zval **ret TSRM  {  	zend_file_handle file_handle;  	zval *req; -	char *tmp; +    char *tmp;  #if PHP_SIGCHILD  	signal(SIGCHLD, sigchld_handler);  #endif -	if (AP(current_hook) == AP_RESPONSE) { -		if (php_request_startup_for_hook(TSRMLS_C) == FAILURE) { -			return FAILURE; -		} -	} else { -		if (php_request_startup_for_hook(TSRMLS_C) == FAILURE) { -			return FAILURE; -		} -	} +    if(AP(current_hook) == AP_RESPONSE) { +        if (php_request_startup_for_hook(TSRMLS_C) == FAILURE) +            return FAILURE; +    } +    else { +        if (php_request_startup_for_hook(TSRMLS_C) == FAILURE) +            return FAILURE; +    }  	req = php_apache_request_new(r); -	if (PG(register_globals)) { -		php_register_variable_ex("request", req, NULL TSRMLS_CC); -	} else { -		php_register_variable_ex("request", req, PG(http_globals)[TRACK_VARS_SERVER] TSRMLS_CC); -	} -	switch(handler->type) { -		case AP_HANDLER_TYPE_FILE: -			php_register_variable("PHP_SELF_HOOK", handler->name, PG(http_globals)[TRACK_VARS_SERVER] TSRMLS_CC); -			memset(&file_handle, 0, sizeof(file_handle)); -			file_handle.type = ZEND_HANDLE_FILENAME; -			file_handle.filename = handler->name; -			(void) php_execute_simple_script(&file_handle, ret TSRMLS_CC); -			break; -		case AP_HANDLER_TYPE_METHOD: -			if ( (tmp = strstr(handler->name, "::")) != NULL &&  *(tmp+2) != '\0' ) { -				zval *class; -				zval *method; -				*tmp = '\0'; -				ALLOC_ZVAL(class); -				ZVAL_STRING(class, handler->name, 1); -				ALLOC_ZVAL(method); -				ZVAL_STRING(method, tmp +2, 1); -				*tmp = ':'; -				call_user_function_ex(EG(function_table), &class, method, ret, 0, NULL, 0, NULL TSRMLS_CC); -				zval_dtor(class); -				zval_dtor(method); -			} else { -				php_error(E_ERROR, "Unable to call %s - not a Class::Method\n", handler->name); -				/* not a class::method */ -			} -			break; -		default: -			/* not a valid type */ -			assert(0); -			break; -	} +    if(PG(register_globals)) { +        php_register_variable_ex("request", req, NULL TSRMLS_CC); +    } +    else { +        php_register_variable_ex("request", req, PG(http_globals)[TRACK_VARS_SERVER] TSRMLS_CC); +    } +    switch(handler->type) { +        case AP_HANDLER_TYPE_FILE: +            php_register_variable("PHP_SELF_HOOK", handler->name, PG(http_globals)[TRACK_VARS_SERVER] TSRMLS_CC); +	        memset(&file_handle, 0, sizeof(file_handle)); +	        file_handle.type = ZEND_HANDLE_FILENAME; +	        file_handle.filename = handler->name; +	        (void) php_execute_simple_script(&file_handle, ret TSRMLS_CC); +            break; +        case AP_HANDLER_TYPE_METHOD: +            if( (tmp = strstr(handler->name, "::")) != NULL &&  *(tmp+2) != '\0' ) { +                zval *class; +                zval *method; +                *tmp = '\0'; +                ALLOC_ZVAL(class); +                ZVAL_STRING(class, handler->name, 1); +                ALLOC_ZVAL(method); +                ZVAL_STRING(method, tmp +2, 1); +                *tmp = ':'; +                call_user_function_ex(EG(function_table), &class, method, ret, 0, NULL, 0, NULL TSRMLS_CC); +                zval_dtor(class); +                zval_dtor(method); +            } +            else { +                php_error(E_ERROR, "Unable to call %s - not a Class::Method\n", handler->name); +                /* not a class::method */ +            } +            break; +        default: +            /* not a valid type */ +            assert(0); +            break; +    }  	zval_dtor(req);  	AP(in_request) = 0;  | 
