summaryrefslogtreecommitdiff
path: root/sapi/litespeed
diff options
context:
space:
mode:
authorMáté Kocsis <kocsismate@woohoolabs.com>2020-05-14 13:31:52 +0200
committerMáté Kocsis <kocsismate@woohoolabs.com>2020-05-14 13:35:12 +0200
commit68527a7834eec98dc33af2fe053c31ce64e745c6 (patch)
tree5694ae624bddc1515889f85b4db2375de92139b4 /sapi/litespeed
parent161ee110bf6a0abb673cdf7429868be62236207d (diff)
downloadphp-git-68527a7834eec98dc33af2fe053c31ce64e745c6.tar.gz
Add stubs for some SAPIs
For apache2handler, fpm, litespeed, phpdbg, specifically. Partially implements GH-5295
Diffstat (limited to 'sapi/litespeed')
-rw-r--r--sapi/litespeed/lsapi_main.c49
-rw-r--r--sapi/litespeed/lsapi_main.stub.php20
-rw-r--r--sapi/litespeed/lsapi_main_arginfo.h36
3 files changed, 73 insertions, 32 deletions
diff --git a/sapi/litespeed/lsapi_main.c b/sapi/litespeed/lsapi_main.c
index 186558a325..1a6527a68b 100644
--- a/sapi/litespeed/lsapi_main.c
+++ b/sapi/litespeed/lsapi_main.c
@@ -24,6 +24,7 @@
#include "ext/standard/basic_functions.h"
#include "ext/standard/info.h"
#include "lsapilib.h"
+#include "lsapi_main_arginfo.h"
#include <stdio.h>
#include <stdlib.h>
@@ -1615,11 +1616,6 @@ int main( int argc, char * argv[] )
/* LiteSpeed PHP module starts here */
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO(arginfo_litespeed__void, 0)
-ZEND_END_ARG_INFO()
-/* }}} */
-
PHP_FUNCTION(litespeed_request_headers);
PHP_FUNCTION(litespeed_response_headers);
PHP_FUNCTION(apache_get_modules);
@@ -1627,17 +1623,6 @@ PHP_FUNCTION(litespeed_finish_request);
PHP_MINFO_FUNCTION(litespeed);
-static const zend_function_entry litespeed_functions[] = {
- PHP_FE(litespeed_request_headers, arginfo_litespeed__void)
- PHP_FE(litespeed_response_headers, arginfo_litespeed__void)
- PHP_FE(apache_get_modules, arginfo_litespeed__void)
- PHP_FE(litespeed_finish_request, arginfo_litespeed__void)
- PHP_FALIAS(getallheaders, litespeed_request_headers, arginfo_litespeed__void)
- PHP_FALIAS(apache_request_headers, litespeed_request_headers, arginfo_litespeed__void)
- PHP_FALIAS(apache_response_headers, litespeed_response_headers, arginfo_litespeed__void)
- {NULL, NULL, NULL}
-};
-
static PHP_MINIT_FUNCTION(litespeed)
{
user_config_cache_init();
@@ -1675,7 +1660,7 @@ static PHP_MSHUTDOWN_FUNCTION(litespeed)
zend_module_entry litespeed_module_entry = {
STANDARD_MODULE_HEADER,
"litespeed",
- litespeed_functions,
+ ext_functions,
PHP_MINIT(litespeed),
PHP_MSHUTDOWN(litespeed),
NULL,
@@ -1697,14 +1682,13 @@ static int add_associate_array( const char * pKey, int keyLen, const char * pVal
Fetch all HTTP request headers */
PHP_FUNCTION(litespeed_request_headers)
{
- /* TODO: */
- if (ZEND_NUM_ARGS() > 0) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters_none() == FAILURE) {
+ RETURN_THROWS();
}
+
array_init(return_value);
LSAPI_ForeachOrgHeader( add_associate_array, return_value );
-
}
/* }}} */
@@ -1720,9 +1704,9 @@ PHP_FUNCTION(litespeed_response_headers)
int len;
char headerBuf[SAPI_LSAPI_MAX_HEADER_LENGTH];
- if (ZEND_NUM_ARGS() > 0) {
- WRONG_PARAM_COUNT;
- }
+ if (zend_parse_parameters_none() == FAILURE) {
+ RETURN_THROWS();
+ }
if (!&SG(sapi_headers).headers) {
RETURN_FALSE;
@@ -1762,10 +1746,11 @@ PHP_FUNCTION(apache_get_modules)
"mod_rewrite", "mod_mime", "mod_headers", "mod_expires", "mod_auth_basic", NULL
};
const char **name = mod_names;
- /* TODO: */
- if (ZEND_NUM_ARGS() > 0) {
- WRONG_PARAM_COUNT;
- }
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ RETURN_THROWS();
+ }
+
array_init(return_value);
while( *name )
{
@@ -1776,13 +1761,13 @@ PHP_FUNCTION(apache_get_modules)
/* }}} */
-/* {{{ proto array litespeed_finish_request(void)
+/* {{{ proto bool litespeed_finish_request(void)
Flushes all response data to the client */
PHP_FUNCTION(litespeed_finish_request)
{
- if (ZEND_NUM_ARGS() > 0) {
- WRONG_PARAM_COUNT;
- }
+ if (zend_parse_parameters_none() == FAILURE) {
+ RETURN_THROWS();
+ }
php_output_end_all();
php_header();
diff --git a/sapi/litespeed/lsapi_main.stub.php b/sapi/litespeed/lsapi_main.stub.php
new file mode 100644
index 0000000000..396cb86385
--- /dev/null
+++ b/sapi/litespeed/lsapi_main.stub.php
@@ -0,0 +1,20 @@
+<?php
+
+/** @generate-function-entries */
+
+function litespeed_request_headers(): array {}
+
+/** @alias litespeed_request_headers */
+function getallheaders(): array {}
+
+/** @alias litespeed_request_headers */
+function apache_request_headers(): array {}
+
+function litespeed_response_headers(): array|false {}
+
+/** @alias litespeed_response_headers */
+function apache_response_headers(): array|false {}
+
+function apache_get_modules(): array {}
+
+function litespeed_finish_request(): bool {}
diff --git a/sapi/litespeed/lsapi_main_arginfo.h b/sapi/litespeed/lsapi_main_arginfo.h
new file mode 100644
index 0000000000..4198c43519
--- /dev/null
+++ b/sapi/litespeed/lsapi_main_arginfo.h
@@ -0,0 +1,36 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_litespeed_request_headers, 0, 0, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_getallheaders arginfo_litespeed_request_headers
+
+#define arginfo_apache_request_headers arginfo_litespeed_request_headers
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_litespeed_response_headers, 0, 0, MAY_BE_ARRAY|MAY_BE_FALSE)
+ZEND_END_ARG_INFO()
+
+#define arginfo_apache_response_headers arginfo_litespeed_response_headers
+
+#define arginfo_apache_get_modules arginfo_litespeed_request_headers
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_litespeed_finish_request, 0, 0, _IS_BOOL, 0)
+ZEND_END_ARG_INFO()
+
+
+ZEND_FUNCTION(litespeed_request_headers);
+ZEND_FUNCTION(litespeed_response_headers);
+ZEND_FUNCTION(apache_get_modules);
+ZEND_FUNCTION(litespeed_finish_request);
+
+
+static const zend_function_entry ext_functions[] = {
+ ZEND_FE(litespeed_request_headers, arginfo_litespeed_request_headers)
+ ZEND_FALIAS(getallheaders, litespeed_request_headers, arginfo_getallheaders)
+ ZEND_FALIAS(apache_request_headers, litespeed_request_headers, arginfo_apache_request_headers)
+ ZEND_FE(litespeed_response_headers, arginfo_litespeed_response_headers)
+ ZEND_FALIAS(apache_response_headers, litespeed_response_headers, arginfo_apache_response_headers)
+ ZEND_FE(apache_get_modules, arginfo_apache_get_modules)
+ ZEND_FE(litespeed_finish_request, arginfo_litespeed_finish_request)
+ ZEND_FE_END
+};