mirror of
https://github.com/php/php-src.git
synced 2024-11-26 03:16:33 +08:00
Added apache_get_version() & apache_get_modules() to Apache 1.X & Apache
Hooks sapis. Made the module listing in Apache 2 not show the '.c' portion, to be consistent with Apache 1.X.
This commit is contained in:
parent
572394db74
commit
648dd88b42
@ -35,6 +35,7 @@ php_apache_info_struct php_apache_info;
|
||||
#define SECTION(name) PUTS("<h2>" name "</h2>\n")
|
||||
|
||||
extern module *top_module;
|
||||
extern module **ap_loaded_modules;
|
||||
|
||||
PHP_FUNCTION(virtual);
|
||||
PHP_FUNCTION(apache_request_headers);
|
||||
@ -44,6 +45,8 @@ PHP_FUNCTION(apache_note);
|
||||
PHP_FUNCTION(apache_lookup_uri);
|
||||
PHP_FUNCTION(apache_child_terminate);
|
||||
PHP_FUNCTION(apache_setenv);
|
||||
PHP_FUNCTION(apache_get_version);
|
||||
PHP_FUNCTION(apache_get_modules);
|
||||
|
||||
PHP_MINFO_FUNCTION(apache);
|
||||
|
||||
@ -55,6 +58,8 @@ function_entry apache_functions[] = {
|
||||
PHP_FE(apache_child_terminate, NULL)
|
||||
PHP_FE(apache_setenv, NULL)
|
||||
PHP_FE(apache_response_headers, NULL)
|
||||
PHP_FE(apache_get_version, NULL)
|
||||
PHP_FE(apache_get_modules, NULL)
|
||||
PHP_FALIAS(getallheaders, apache_request_headers, NULL)
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
@ -498,6 +503,34 @@ PHP_FUNCTION(apache_exec_uri)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* {{{ proto string apache_get_version(void)
|
||||
Fetch Apache version */
|
||||
PHP_FUNCTION(apache_get_version)
|
||||
{
|
||||
RETURN_STRING(SERVER_VERSION, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto array apache_get_modules(void)
|
||||
Get a list of loaded Apache modules */
|
||||
PHP_FUNCTION(apache_get_modules)
|
||||
{
|
||||
int n;
|
||||
char *p;
|
||||
|
||||
array_init(return_value);
|
||||
|
||||
for (n = 0; ap_loaded_modules[n]; ++n) {
|
||||
char *s = (char *) ap_loaded_modules[n]->name;
|
||||
if ((p = strchr(s, '.'))) {
|
||||
add_next_index_stringl(return_value, s, (p - s), 1);
|
||||
} else {
|
||||
add_next_index_string(return_value, s, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
|
@ -314,11 +314,17 @@ PHP_FUNCTION(apache_get_version)
|
||||
PHP_FUNCTION(apache_get_modules)
|
||||
{
|
||||
int n;
|
||||
char *p;
|
||||
|
||||
array_init(return_value);
|
||||
|
||||
for (n = 0; ap_loaded_modules[n]; ++n) {
|
||||
add_next_index_string(return_value, (char *) ap_loaded_modules[n]->name, 1);
|
||||
char *s = (char *) ap_loaded_modules[n]->name;
|
||||
if ((p = strchr(s, '.'))) {
|
||||
add_next_index_stringl(return_value, s, (p - s), 1);
|
||||
} else {
|
||||
add_next_index_string(return_value, s, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
@ -328,9 +334,15 @@ PHP_MINFO_FUNCTION(apache)
|
||||
char *apv = php_apache_get_version();
|
||||
smart_str tmp1 = {0};
|
||||
int n;
|
||||
char *p;
|
||||
|
||||
for (n = 0; ap_loaded_modules[n]; ++n) {
|
||||
smart_str_appends(&tmp1, ap_loaded_modules[n]->name);
|
||||
char *s = (char *) ap_loaded_modules[n]->name;
|
||||
if ((p = strchr(s, '.'))) {
|
||||
smart_str_appendl(&tmp1, s, (p - s));
|
||||
} else {
|
||||
smart_str_appends(&tmp1, s);
|
||||
}
|
||||
smart_str_appendc(&tmp1, ' ');
|
||||
}
|
||||
|
||||
@ -338,7 +350,7 @@ PHP_MINFO_FUNCTION(apache)
|
||||
if (apv && *apv) {
|
||||
php_info_print_table_row(2, "Apache Version", apv);
|
||||
}
|
||||
php_info_print_table_row(2, "Loaded Apache Modules", tmp1.c);
|
||||
php_info_print_table_row(2, "Loaded Modules", tmp1.c);
|
||||
smart_str_free(&tmp1);
|
||||
php_info_print_table_end();
|
||||
}
|
||||
|
@ -40,6 +40,7 @@ php_apache_info_struct php_apache_info;
|
||||
#define offsetof(s_type,field) ((size_t)&(((s_type*)0)->field))
|
||||
|
||||
extern module *top_module;
|
||||
extern module **ap_loaded_modules;
|
||||
static int le_apachereq;
|
||||
static zend_class_entry *apacherequest_class_entry;
|
||||
|
||||
@ -53,6 +54,8 @@ PHP_FUNCTION(apache_note);
|
||||
PHP_FUNCTION(apache_lookup_uri);
|
||||
PHP_FUNCTION(apache_child_terminate);
|
||||
PHP_FUNCTION(apache_setenv);
|
||||
PHP_FUNCTION(apache_get_version);
|
||||
PHP_FUNCTION(apache_get_modules);
|
||||
|
||||
PHP_MINFO_FUNCTION(apache);
|
||||
|
||||
@ -65,6 +68,8 @@ function_entry apache_functions[] = {
|
||||
PHP_FE(apache_child_terminate, NULL)
|
||||
PHP_FE(apache_setenv, NULL)
|
||||
PHP_FE(apache_response_headers, NULL)
|
||||
PHP_FE(apache_get_version, NULL)
|
||||
PHP_FE(apache_get_modules, NULL)
|
||||
PHP_FALIAS(getallheaders, apache_request_headers, NULL)
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
@ -1907,6 +1912,34 @@ PHP_FUNCTION(apache_exec_uri)
|
||||
}
|
||||
#endif
|
||||
|
||||
/* {{{ proto string apache_get_version(void)
|
||||
Fetch Apache version */
|
||||
PHP_FUNCTION(apache_get_version)
|
||||
{
|
||||
RETURN_STRING(SERVER_VERSION, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto array apache_get_modules(void)
|
||||
Get a list of loaded Apache modules */
|
||||
PHP_FUNCTION(apache_get_modules)
|
||||
{
|
||||
int n;
|
||||
char *p;
|
||||
|
||||
array_init(return_value);
|
||||
|
||||
for (n = 0; ap_loaded_modules[n]; ++n) {
|
||||
char *s = (char *) ap_loaded_modules[n]->name;
|
||||
if ((p = strchr(s, '.'))) {
|
||||
add_next_index_stringl(return_value, s, (p - s), 1);
|
||||
} else {
|
||||
add_next_index_string(return_value, s, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
|
Loading…
Reference in New Issue
Block a user