|
@@ -32,11 +32,12 @@ static int le_fcgi;
|
|
|
|
|
|
const zend_function_entry fcgi_functions[] = {
|
|
|
PHP_FE(confirm_fcgi_compiled, NULL) /* For testing, remove later. */
|
|
|
- PHP_FE(fcgi_init, NULL)
|
|
|
- PHP_FE(fcgi_fini, NULL)
|
|
|
+ PHP_FE(fcgi_init, NULL)
|
|
|
+ PHP_FE(fcgi_fini, NULL)
|
|
|
PHP_FE(fcgi_accept, NULL)
|
|
|
PHP_FE(fcgi_finish, NULL)
|
|
|
PHP_FE(fcgi_getparam, NULL)
|
|
|
+ PHP_FE(fcgi_echo, NULL)
|
|
|
PHP_FE_END /* Must be the last line in fcgi_functions[] */
|
|
|
};
|
|
|
|
|
@@ -109,27 +110,12 @@ PHP_FUNCTION(confirm_fcgi_compiled)
|
|
|
RETURN_STRINGL(strg, len, 0);
|
|
|
}
|
|
|
|
|
|
-extern void swap_init();
|
|
|
-extern void fcgi_log(const char* szBuf);
|
|
|
-extern void swap_fini();
|
|
|
-extern void start_accept();
|
|
|
-extern void fini_accept(void (* pFun)(char*) );
|
|
|
-
|
|
|
PHP_FUNCTION(fcgi_init)
|
|
|
{
|
|
|
- char *arg = NULL;
|
|
|
- int arg_len;
|
|
|
-
|
|
|
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- swap_init(arg);
|
|
|
}
|
|
|
|
|
|
PHP_FUNCTION(fcgi_fini)
|
|
|
{
|
|
|
- swap_fini();
|
|
|
}
|
|
|
|
|
|
static FCGX_Stream* stInstream;
|
|
@@ -139,11 +125,7 @@ static FCGX_ParamArray stParams;
|
|
|
|
|
|
PHP_FUNCTION(fcgi_accept)
|
|
|
{
|
|
|
- fcgi_log("\r\n\r\nstart fcgi_accept:\r\n");
|
|
|
- start_accept();
|
|
|
-
|
|
|
int ret = FCGX_Accept(&stInstream,&stOutstream,&stErrstream,&stParams);
|
|
|
- printf("Content-Type: text/html; charset=UTF-8\r\n\r\n");
|
|
|
|
|
|
if(stInstream == NULL) {
|
|
|
fcgi_log("Error: in stream = null \r\n");
|
|
@@ -178,17 +160,22 @@ PHP_FUNCTION(fcgi_getparam)
|
|
|
RETURN_STRINGL(result,strlen(result),0);
|
|
|
}
|
|
|
|
|
|
-void print_fun(char* szBuf)
|
|
|
+PHP_FUNCTION(fcgi_echo)
|
|
|
{
|
|
|
- if(stOutstream && szBuf) {
|
|
|
- FCGX_PutS(szBuf,stOutstream);
|
|
|
+ char *arg = NULL;
|
|
|
+ int arg_len;
|
|
|
+
|
|
|
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(arg != NULL) {
|
|
|
+ FCGX_PutS(arg,stOutstream);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
PHP_FUNCTION(fcgi_finish)
|
|
|
{
|
|
|
- fini_accept(print_fun);
|
|
|
FCGX_Finish();
|
|
|
- fcgi_log("fcgi_finish\r\n");
|
|
|
}
|
|
|
|