iliaa           Fri Dec 27 17:47:07 2002 EDT

  Modified files:              
    /php4/sapi/apache   php_apache.c 
    /php4/sapi/apache2filter    php_functions.c 
    /php4/sapi/apache_hooks     php_apache.c 
  Log:
  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.
  
  
Index: php4/sapi/apache/php_apache.c
diff -u php4/sapi/apache/php_apache.c:1.70 php4/sapi/apache/php_apache.c:1.71
--- php4/sapi/apache/php_apache.c:1.70  Thu Dec  5 18:18:28 2002
+++ php4/sapi/apache/php_apache.c       Fri Dec 27 17:47:06 2002
@@ -17,7 +17,7 @@
    |          David Sklar <[EMAIL PROTECTED]>                             |
    +----------------------------------------------------------------------+
  */
-/* $Id: php_apache.c,v 1.70 2002/12/05 23:18:28 helly Exp $ */
+/* $Id: php_apache.c,v 1.71 2002/12/27 22:47:06 iliaa Exp $ */
 
 #include "php_apache_http.h"
 
@@ -35,6 +35,7 @@
 #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_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 @@
        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}
 };
@@ -497,6 +502,34 @@
        ap_destroy_sub_req(rr);
 }
 #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:
Index: php4/sapi/apache2filter/php_functions.c
diff -u php4/sapi/apache2filter/php_functions.c:1.32 
php4/sapi/apache2filter/php_functions.c:1.33
--- php4/sapi/apache2filter/php_functions.c:1.32        Fri Dec 27 17:02:17 2002
+++ php4/sapi/apache2filter/php_functions.c     Fri Dec 27 17:47:06 2002
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: php_functions.c,v 1.32 2002/12/27 22:02:17 iliaa Exp $ */
+/* $Id: php_functions.c,v 1.33 2002/12/27 22:47:06 iliaa Exp $ */
 
 #include "php.h"
 #include "ext/standard/php_smart_str.h"
@@ -314,11 +314,17 @@
 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 @@
        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 @@
        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();
 }
Index: php4/sapi/apache_hooks/php_apache.c
diff -u php4/sapi/apache_hooks/php_apache.c:1.5 php4/sapi/apache_hooks/php_apache.c:1.6
--- php4/sapi/apache_hooks/php_apache.c:1.5     Tue Dec 10 15:16:30 2002
+++ php4/sapi/apache_hooks/php_apache.c Fri Dec 27 17:47:06 2002
@@ -17,7 +17,7 @@
    |          David Sklar <[EMAIL PROTECTED]>                             |
    +----------------------------------------------------------------------+
  */
-/* $Id: php_apache.c,v 1.5 2002/12/10 20:16:30 iliaa Exp $ */
+/* $Id: php_apache.c,v 1.6 2002/12/27 22:47:06 iliaa Exp $ */
 
 #include "php_apache_http.h"
 
@@ -40,6 +40,7 @@
 #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_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 @@
        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}
 };
@@ -1906,6 +1911,34 @@
        ap_destroy_sub_req(rr);
 }
 #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:



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to