diff options
Diffstat (limited to 'sapi/activescript/php5activescript.c')
| -rw-r--r-- | sapi/activescript/php5activescript.c | 152 | 
1 files changed, 152 insertions, 0 deletions
diff --git a/sapi/activescript/php5activescript.c b/sapi/activescript/php5activescript.c new file mode 100644 index 0000000000..6aa4b41495 --- /dev/null +++ b/sapi/activescript/php5activescript.c @@ -0,0 +1,152 @@ +/* +   +----------------------------------------------------------------------+ +   | PHP Version 5                                                        | +   +----------------------------------------------------------------------+ +   | Copyright (c) 1997-2004 The PHP Group                                | +   +----------------------------------------------------------------------+ +   | This source file is subject to version 3.0 of the PHP license,       | +   | that is bundled with this package in the file LICENSE, and is        | +   | available through the world-wide-web at the following url:           | +   | http://www.php.net/license/3_0.txt.                                  | +   | If you did not receive a copy of the PHP license and are unable to   | +   | obtain it through the world-wide-web, please send a note to          | +   | license@php.net so we can mail you a copy immediately.               | +   +----------------------------------------------------------------------+ +   | Authors: Wez Furlong <wez@thebrainroom.com>                          | +   +----------------------------------------------------------------------+ + */ +/* $Id$ */ + +#include "php.h" +#include "php_main.h" +#include "SAPI.h" +#include "php_globals.h" +#include "ext/standard/info.h" +#include "php_variables.h" +#include "php_ini.h" +#include "php5activescript.h" + +/* SAPI definitions and DllMain */ + +static int php_activescript_startup(sapi_module_struct *sapi_module) +{ +	if (php_module_startup(sapi_module, &php_activescript_module, 1) == FAILURE) { +		return FAILURE; +	} else { +		return SUCCESS; +	} +} + +static int sapi_activescript_ub_write(const char *str, uint str_length TSRMLS_DC) +{ +	/* In theory, this is a blackhole.  In practice, I want to see the output +	 * in the debugger! */ + +	char buf[1024]; +	uint l, a = str_length; + +	while(a) { +		l = a; +		if (l > sizeof(buf) - 1) +			l = sizeof(buf) - 1; +		memcpy(buf, str, l); +		buf[l] = 0; +		OutputDebugString(buf); +		a -= l; +	} + +	return str_length; +} + +static void sapi_activescript_register_server_variables(zval *track_vars_array TSRMLS_DC) +{ +} + +static char *sapi_activescript_read_cookies(TSRMLS_D) +{ +	return NULL; +} + +static int sapi_activescript_header_handler(sapi_header_struct *sapi_header, sapi_headers_struct *sapi_headers TSRMLS_DC) +{ +	return SAPI_HEADER_ADD; +} + +static int sapi_activescript_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC) +{ +	return SAPI_HEADER_SENT_SUCCESSFULLY; +} + +zend_module_entry php_activescript_module = { +    STANDARD_MODULE_HEADER, +	"ActiveScript", +	NULL, +	NULL, +	NULL, +	NULL, +	NULL, +	NULL, +    NULL, +	STANDARD_MODULE_PROPERTIES +}; + + +sapi_module_struct activescript_sapi_module = { +	"activescript",						/* name */ +	"Active Script",					/* pretty name */ +									 +	php_activescript_startup,				/* startup */ +	php_module_shutdown_wrapper,	/* shutdown */ + +	NULL,							/* activate */ +	NULL,							/* deactivate */ + +	sapi_activescript_ub_write,			/* unbuffered write */ +	NULL,							/* flush */ +	NULL,							/* get uid */ +	NULL,							/* getenv */ + +	zend_error,						/* error handler */ + +	sapi_activescript_header_handler,		/* header handler */ +	sapi_activescript_send_headers,		/* send headers handler */ +	NULL,							/* send header handler */ + +	NULL,			/* read POST data */ +	sapi_activescript_read_cookies,		/* read Cookies */ + +	sapi_activescript_register_server_variables,	/* register server variables */ +	NULL,									/* Log message */ + +	STANDARD_SAPI_MODULE_PROPERTIES +}; + +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +{ +	switch (fdwReason) { +		case DLL_PROCESS_ATTACH: +			module_handle = hinstDLL; + +			tsrm_startup(128, 1, TSRM_ERROR_LEVEL_CORE, "C:\\TSRM.log"); + +			sapi_startup(&activescript_sapi_module); +			if (activescript_sapi_module.startup) { +				activescript_sapi_module.startup(&sapi_module); +			} +			break; +		case DLL_THREAD_ATTACH: +			break; +		case DLL_THREAD_DETACH: +			ts_free_thread(); +			break; +		case DLL_PROCESS_DETACH: +			if (activescript_sapi_module.shutdown) { +				activescript_sapi_module.shutdown(&sapi_module); +			} +			tsrm_shutdown(); +			break; +	} +	return TRUE; +} + +  | 
