You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by tr...@apache.org on 2006/09/05 15:08:17 UTC

svn commit: r440337 - in /httpd/httpd/trunk: ./ include/ modules/arch/netware/ modules/experimental/ modules/generators/ modules/http/ modules/mappers/ modules/proxy/ modules/ssl/ server/ server/mpm/beos/ server/mpm/experimental/event/ server/mpm/exper...

Author: trawick
Date: Tue Sep  5 06:08:15 2006
New Revision: 440337

URL: http://svn.apache.org/viewvc?view=rev&rev=440337
Log:
Replace ap_get_server_version with ap_get_server_banner() and
ap_get_server_description().

High-level summary:

The full server version information is now included in the error log at
startup as well as server status reports, irrespective of the setting
of the ServerTokens directive.

Third-party modules must now use ap_get_server_banner() or 
ap_get_server_description() in place of ap_get_server_version().


Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/include/ap_mmn.h
    httpd/httpd/trunk/include/httpd.h
    httpd/httpd/trunk/modules/arch/netware/mod_nw_ssl.c
    httpd/httpd/trunk/modules/experimental/mod_example.c
    httpd/httpd/trunk/modules/generators/mod_info.c
    httpd/httpd/trunk/modules/generators/mod_status.c
    httpd/httpd/trunk/modules/http/http_filters.c
    httpd/httpd/trunk/modules/mappers/mod_rewrite.c
    httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c
    httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c
    httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c
    httpd/httpd/trunk/modules/ssl/ssl_engine_vars.c
    httpd/httpd/trunk/server/core.c
    httpd/httpd/trunk/server/main.c
    httpd/httpd/trunk/server/mpm/beos/beos.c
    httpd/httpd/trunk/server/mpm/experimental/event/event.c
    httpd/httpd/trunk/server/mpm/experimental/leader/leader.c
    httpd/httpd/trunk/server/mpm/experimental/perchild/perchild.c
    httpd/httpd/trunk/server/mpm/experimental/threadpool/threadpool.c
    httpd/httpd/trunk/server/mpm/mpmt_os2/mpmt_os2.c
    httpd/httpd/trunk/server/mpm/netware/mpm_netware.c
    httpd/httpd/trunk/server/mpm/prefork/prefork.c
    httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c
    httpd/httpd/trunk/server/mpm/winnt/service.c
    httpd/httpd/trunk/server/mpm/worker/worker.c
    httpd/httpd/trunk/server/mpm_common.c
    httpd/httpd/trunk/server/util_script.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Tue Sep  5 06:08:15 2006
@@ -2,6 +2,12 @@
 Changes with Apache 2.3.0
   [Remove entries to the current 2.0 and 2.2 section below, when backported]
 
+  *) The full server version information is now included in the error log at
+     startup as well as server status reports, irrespective of the setting
+     of the ServerTokens directive.  Third-party modules must now use
+     ap_get_server_banner() or ap_get_server_description() in place of 
+     ap_get_server_version().  [Jeff Trawick]
+
   *) mod_proxy_balancer: Extract stickysession routing information contained as
      parameter in the URL correctly. PR 40400.
      [Ruediger Pluem, Tomokazu Harada <harada sysrdc.ns-sol.co.jp>]

Modified: httpd/httpd/trunk/include/ap_mmn.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/include/ap_mmn.h?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/include/ap_mmn.h (original)
+++ httpd/httpd/trunk/include/ap_mmn.h Tue Sep  5 06:08:15 2006
@@ -121,14 +121,16 @@
  *                         proxy_server (minor)
  * 20060110.3 (2.3.0-dev)  added inreslist member to proxy_conn_rec (minor)
  * 20060110.4 (2.3.0-dev)  Added server_scheme member to server_rec (minor)
+ * 20060905.0 (2.3.0-dev)  Replaced ap_get_server_version() with
+ *                         ap_get_server_banner() and ap_get_server_description()
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */
 
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
-#define MODULE_MAGIC_NUMBER_MAJOR 20060110
+#define MODULE_MAGIC_NUMBER_MAJOR 20060905
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 4                     /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 0                     /* 0...n */
 
 /**
  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a

Modified: httpd/httpd/trunk/include/httpd.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/include/httpd.h?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/include/httpd.h (original)
+++ httpd/httpd/trunk/include/httpd.h Tue Sep  5 06:08:15 2006
@@ -420,13 +420,24 @@
 AP_DECLARE(void) ap_get_server_revision(ap_version_t *version);
 
 /**
- * Get the server version string
- * @return The server version string
+ * Get the server banner in a form suitable for sending over the
+ * network, with the level of information controlled by the
+ * ServerTokens directive.
+ * @return The server banner
  */
-AP_DECLARE(const char *) ap_get_server_version(void);
+AP_DECLARE(const char *) ap_get_server_banner(void);
 
 /**
- * Add a component to the version string
+ * Get the server description in a form suitable for local displays,
+ * status reports, or logging.  This includes the detailed server
+ * version and information about some modules.  It is not affected
+ * by the ServerTokens directive.
+ * @return The server description
+ */
+AP_DECLARE(const char *) ap_get_server_description(void);
+
+/**
+ * Add a component to the server description and banner strings
  * @param pconf The pool to allocate the component from
  * @param component The string to add
  */

Modified: httpd/httpd/trunk/modules/arch/netware/mod_nw_ssl.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/arch/netware/mod_nw_ssl.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/modules/arch/netware/mod_nw_ssl.c (original)
+++ httpd/httpd/trunk/modules/arch/netware/mod_nw_ssl.c Tue Sep  5 06:08:15 2006
@@ -1074,7 +1074,7 @@
             /* XXX-Can't get specific SSL info from NetWare */
             /*result = ssl_var_lookup_ssl_version(p, var+12);*/
         else if (strcEQ(var, "SERVER_SOFTWARE"))
-            result = ap_get_server_version();
+            result = ap_get_server_banner();
         else if (strcEQ(var, "API_VERSION")) {
             result = apr_itoa(p, MODULE_MAGIC_NUMBER);
             resdup = FALSE;

Modified: httpd/httpd/trunk/modules/experimental/mod_example.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/experimental/mod_example.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/modules/experimental/mod_example.c (original)
+++ httpd/httpd/trunk/modules/experimental/mod_example.c Tue Sep  5 06:08:15 2006
@@ -546,7 +546,7 @@
     ap_rputs("  </H1>\n", r);
     ap_rputs("  <P>\n", r);
     ap_rprintf(r, "  Apache HTTP Server version: \"%s\"\n",
-            ap_get_server_version());
+            ap_get_server_banner());
     ap_rputs("  <BR>\n", r);
     ap_rprintf(r, "  Server built: \"%s\"\n", ap_get_server_built());
     ap_rputs("  </P>\n", r);;

Modified: httpd/httpd/trunk/modules/generators/mod_info.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/generators/mod_info.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/modules/generators/mod_info.c (original)
+++ httpd/httpd/trunk/modules/generators/mod_info.c Tue Sep  5 06:08:15 2006
@@ -347,7 +347,7 @@
     ap_rprintf(r,
                "<dl><dt><strong>Server Version:</strong> "
                "<font size=\"+1\"><tt>%s</tt></font></dt>\n",
-               ap_get_server_version());
+               ap_get_server_description());
     ap_rprintf(r,
                "<dt><strong>Server Built:</strong> "
                "<font size=\"+1\"><tt>%s</tt></font></dt>\n",

Modified: httpd/httpd/trunk/modules/generators/mod_status.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/generators/mod_status.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/modules/generators/mod_status.c (original)
+++ httpd/httpd/trunk/modules/generators/mod_status.c Tue Sep  5 06:08:15 2006
@@ -397,7 +397,7 @@
         ap_rputs("<h1>Apache Server Status for ", r);
         ap_rvputs(r, ap_get_server_name(r), "</h1>\n\n", NULL);
         ap_rvputs(r, "<dl><dt>Server Version: ",
-                  ap_get_server_version(), "</dt>\n", NULL);
+                  ap_get_server_description(), "</dt>\n", NULL);
         ap_rvputs(r, "<dt>Server Built: ",
                   ap_get_server_built(), "\n</dt></dl><hr /><dl>\n", NULL);
         ap_rvputs(r, "<dt>Current Time: ",

Modified: httpd/httpd/trunk/modules/http/http_filters.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http/http_filters.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/modules/http/http_filters.c (original)
+++ httpd/httpd/trunk/modules/http/http_filters.c Tue Sep  5 06:08:15 2006
@@ -735,11 +735,11 @@
         if (server) {
             form_header_field(&h, "Server", server);
         } else {
-            form_header_field(&h, "Server", ap_get_server_version());
+            form_header_field(&h, "Server", ap_get_server_banner());
         }
     }
     else {
-        form_header_field(&h, "Server", ap_get_server_version());
+        form_header_field(&h, "Server", ap_get_server_banner());
     }
 
     /* unset so we don't send them again */

Modified: httpd/httpd/trunk/modules/mappers/mod_rewrite.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/mappers/mod_rewrite.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/modules/mappers/mod_rewrite.c (original)
+++ httpd/httpd/trunk/modules/mappers/mod_rewrite.c Tue Sep  5 06:08:15 2006
@@ -2006,7 +2006,7 @@
 
             case 'S':
                 if (!strcmp(var, "SERVER_SOFTWARE")) {
-                    result = ap_get_server_version();
+                    result = ap_get_server_banner();
                 }
                 break;
             }

Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c Tue Sep  5 06:08:15 2006
@@ -667,7 +667,7 @@
         ap_rputs("<body><h1>Load Balancer Manager for ", r);
         ap_rvputs(r, ap_get_server_name(r), "</h1>\n\n", NULL);
         ap_rvputs(r, "<dl><dt>Server Version: ",
-                  ap_get_server_version(), "</dt>\n", NULL);
+                  ap_get_server_description(), "</dt>\n", NULL);
         ap_rvputs(r, "<dt>Server Built: ",
                   ap_get_server_built(), "\n</dt></dl>\n", NULL);
         balancer = (proxy_balancer *)conf->balancers->elts;

Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_connect.c Tue Sep  5 06:08:15 2006
@@ -224,7 +224,7 @@
                   "CONNECT %s HTTP/1.0" CRLF, r->uri);
         apr_socket_send(sock, buffer, &nbytes);
         nbytes = apr_snprintf(buffer, sizeof(buffer),
-                  "Proxy-agent: %s" CRLF CRLF, ap_get_server_version());
+                  "Proxy-agent: %s" CRLF CRLF, ap_get_server_banner());
         apr_socket_send(sock, buffer, &nbytes);
     }
     else {
@@ -235,7 +235,7 @@
         ap_xlate_proto_to_ascii(buffer, nbytes);
         apr_socket_send(client_socket, buffer, &nbytes);
         nbytes = apr_snprintf(buffer, sizeof(buffer),
-                  "Proxy-agent: %s" CRLF CRLF, ap_get_server_version());
+                  "Proxy-agent: %s" CRLF CRLF, ap_get_server_banner());
         ap_xlate_proto_to_ascii(buffer, nbytes);
         apr_socket_send(client_socket, buffer, &nbytes);
 #if 0
@@ -244,7 +244,7 @@
          */
         r->status = HTTP_OK;
         r->header_only = 1;
-        apr_table_set(r->headers_out, "Proxy-agent: %s", ap_get_server_version());
+        apr_table_set(r->headers_out, "Proxy-agent: %s", ap_get_server_banner());
         ap_rflush(r);
 #endif
     }

Modified: httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_ftp.c Tue Sep  5 06:08:15 2006
@@ -1662,7 +1662,7 @@
 
     apr_rfc822_date(dates, r->request_time);
     apr_table_setn(r->headers_out, "Date", dates);
-    apr_table_setn(r->headers_out, "Server", ap_get_server_version());
+    apr_table_setn(r->headers_out, "Server", ap_get_server_banner());
 
     /* set content-type */
     if (dirlisting) {

Modified: httpd/httpd/trunk/modules/ssl/ssl_engine_vars.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/ssl/ssl_engine_vars.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/modules/ssl/ssl_engine_vars.c (original)
+++ httpd/httpd/trunk/modules/ssl/ssl_engine_vars.c Tue Sep  5 06:08:15 2006
@@ -192,7 +192,7 @@
         if (strlen(var) > 12 && strcEQn(var, "SSL_VERSION_", 12))
             result = ssl_var_lookup_ssl_version(p, var+12);
         else if (strcEQ(var, "SERVER_SOFTWARE"))
-            result = ap_get_server_version();
+            result = ap_get_server_banner();
         else if (strcEQ(var, "API_VERSION")) {
             result = apr_itoa(p, MODULE_MAGIC_NUMBER);
             resdup = FALSE;

Modified: httpd/httpd/trunk/server/core.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/core.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/core.c (original)
+++ httpd/httpd/trunk/server/core.c Tue Sep  5 06:08:15 2006
@@ -2580,7 +2580,7 @@
 
     if (conf->server_signature == srv_sig_withmail) {
         return apr_pstrcat(r->pool, prefix, "<address>",
-                           ap_get_server_version(),
+                           ap_get_server_banner(),
                            " Server at <a href=\"",
                            ap_is_url(r->server->server_admin) ? "" : "mailto:",
                            ap_escape_html(r->pool, r->server->server_admin),
@@ -2590,7 +2590,7 @@
                            "</address>\n", NULL);
     }
 
-    return apr_pstrcat(r->pool, prefix, "<address>", ap_get_server_version(),
+    return apr_pstrcat(r->pool, prefix, "<address>", ap_get_server_banner(),
                        " Server at ",
                        ap_escape_html(r->pool, ap_get_server_name(r)),
                        " Port ", sport,
@@ -2605,8 +2605,9 @@
  * string.
  */
 
-static char *server_version = NULL;
-static int version_locked = 0;
+static char *server_banner = NULL;
+static int banner_locked = 0;
+static char *server_description = NULL;
 
 enum server_token_type {
     SrvTk_MAJOR,        /* eg: Apache/2 */
@@ -2618,11 +2619,12 @@
 };
 static enum server_token_type ap_server_tokens = SrvTk_FULL;
 
-static apr_status_t reset_version(void *dummy)
+static apr_status_t reset_banner(void *dummy)
 {
-    version_locked = 0;
+    banner_locked = 0;
     ap_server_tokens = SrvTk_FULL;
-    server_version = NULL;
+    server_banner = NULL;
+    server_description = NULL;
     return APR_SUCCESS;
 }
 
@@ -2634,40 +2636,48 @@
     version->add_string = AP_SERVER_ADD_STRING;
 }
 
-AP_DECLARE(const char *) ap_get_server_version(void)
+AP_DECLARE(const char *) ap_get_server_description(void)
 {
-    return (server_version ? server_version : AP_SERVER_BASEVERSION);
+    return server_description ? server_description :
+        AP_SERVER_BASEVERSION " (" PLATFORM ")";
+}
+
+AP_DECLARE(const char *) ap_get_server_banner(void)
+{
+    return server_banner ? server_banner : AP_SERVER_BASEVERSION;
 }
 
 AP_DECLARE(void) ap_add_version_component(apr_pool_t *pconf, const char *component)
 {
-    if (! version_locked) {
+    if (! banner_locked) {
         /*
          * If the version string is null, register our cleanup to reset the
          * pointer on pool destruction. We also know that, if NULL,
          * we are adding the original SERVER_BASEVERSION string.
          */
-        if (server_version == NULL) {
-            apr_pool_cleanup_register(pconf, NULL, reset_version,
+        if (server_banner == NULL) {
+            apr_pool_cleanup_register(pconf, NULL, reset_banner,
                                       apr_pool_cleanup_null);
-            server_version = apr_pstrdup(pconf, component);
+            server_banner = apr_pstrdup(pconf, component);
         }
         else {
             /*
              * Tack the given component identifier to the end of
              * the existing string.
              */
-            server_version = apr_pstrcat(pconf, server_version, " ",
-                                         component, NULL);
+            server_banner = apr_pstrcat(pconf, server_banner, " ",
+                                        component, NULL);
         }
     }
+    server_description = apr_pstrcat(pconf, server_description, " ",
+                                     component, NULL);
 }
 
 /*
- * This routine adds the real server base identity to the version string,
+ * This routine adds the real server base identity to the banner string,
  * and then locks out changes until the next reconfig.
  */
-static void ap_set_version(apr_pool_t *pconf)
+static void set_banner(apr_pool_t *pconf)
 {
     if (ap_server_tokens == SrvTk_PRODUCT_ONLY) {
         ap_add_version_component(pconf, AP_SERVER_BASEPRODUCT);
@@ -2686,12 +2696,13 @@
     }
 
     /*
-     * Lock the server_version string if we're not displaying
+     * Lock the server_banner string if we're not displaying
      * the full set of tokens
      */
     if (ap_server_tokens != SrvTk_FULL) {
-        version_locked++;
+        banner_locked++;
     }
+    server_description = AP_SERVER_BASEVERSION " (" PLATFORM ")";
 }
 
 static const char *set_serv_tokens(cmd_parms *cmd, void *dummy,
@@ -3635,7 +3646,7 @@
     authn_ap_auth_type = APR_RETRIEVE_OPTIONAL_FN(authn_ap_auth_type);
     authn_ap_auth_name = APR_RETRIEVE_OPTIONAL_FN(authn_ap_auth_name);
 
-    ap_set_version(pconf);
+    set_banner(pconf);
     ap_setup_make_content_type(pconf);
     return OK;
 }

Modified: httpd/httpd/trunk/server/main.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/main.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/main.c (original)
+++ httpd/httpd/trunk/server/main.c Tue Sep  5 06:08:15 2006
@@ -92,7 +92,7 @@
 
 static void show_compile_settings(void)
 {
-    printf("Server version: %s\n", ap_get_server_version());
+    printf("Server version: %s\n", ap_get_server_description());
     printf("Server built:   %s\n", ap_get_server_built());
     printf("Server's Module Magic Number: %u:%u\n",
            MODULE_MAGIC_NUMBER_MAJOR, MODULE_MAGIC_NUMBER_MINOR);
@@ -569,7 +569,7 @@
             break;
 
         case 'v':
-            printf("Server version: %s\n", ap_get_server_version());
+            printf("Server version: %s\n", ap_get_server_description());
             printf("Server built:   %s\n", ap_get_server_built());
             destroy_and_exit_process(process, 0);
 

Modified: httpd/httpd/trunk/server/mpm/beos/beos.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/beos/beos.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/beos/beos.c (original)
+++ httpd/httpd/trunk/server/mpm/beos/beos.c Tue Sep  5 06:08:15 2006
@@ -935,7 +935,7 @@
      */
     ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
                 "%s configured -- resuming normal operations",
-                ap_get_server_version());
+                ap_get_server_description());
 
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf,
                 "Server built: %s", ap_get_server_built());

Modified: httpd/httpd/trunk/server/mpm/experimental/event/event.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/experimental/event/event.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/experimental/event/event.c (original)
+++ httpd/httpd/trunk/server/mpm/experimental/event/event.c Tue Sep  5 06:08:15 2006
@@ -1988,7 +1988,7 @@
 
     ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
                  "%s configured -- resuming normal operations",
-                 ap_get_server_version());
+                 ap_get_server_description());
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf,
                  "Server built: %s", ap_get_server_built());
 

Modified: httpd/httpd/trunk/server/mpm/experimental/leader/leader.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/experimental/leader/leader.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/experimental/leader/leader.c (original)
+++ httpd/httpd/trunk/server/mpm/experimental/leader/leader.c Tue Sep  5 06:08:15 2006
@@ -1529,7 +1529,7 @@
 
     ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
                 "%s configured -- resuming normal operations",
-                ap_get_server_version());
+                ap_get_server_description());
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf,
                 "Server built: %s", ap_get_server_built());
 #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH

Modified: httpd/httpd/trunk/server/mpm/experimental/perchild/perchild.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/experimental/perchild/perchild.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/experimental/perchild/perchild.c (original)
+++ httpd/httpd/trunk/server/mpm/experimental/perchild/perchild.c Tue Sep  5 06:08:15 2006
@@ -1314,7 +1314,7 @@
 
     ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
                  "%s configured -- resuming normal operations",
-                 ap_get_server_version());
+                 ap_get_server_description());
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf,
                  "Server built: %s", ap_get_server_built());
 #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH

Modified: httpd/httpd/trunk/server/mpm/experimental/threadpool/threadpool.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/experimental/threadpool/threadpool.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/experimental/threadpool/threadpool.c (original)
+++ httpd/httpd/trunk/server/mpm/experimental/threadpool/threadpool.c Tue Sep  5 06:08:15 2006
@@ -1778,7 +1778,7 @@
 
     ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
                 "%s configured -- resuming normal operations",
-                ap_get_server_version());
+                ap_get_server_description());
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf,
                 "Server built: %s", ap_get_server_built());
 #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH

Modified: httpd/httpd/trunk/server/mpm/mpmt_os2/mpmt_os2.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/mpmt_os2/mpmt_os2.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/mpmt_os2/mpmt_os2.c (original)
+++ httpd/httpd/trunk/server/mpm/mpmt_os2/mpmt_os2.c Tue Sep  5 06:08:15 2006
@@ -207,7 +207,7 @@
     int listener_num, num_listeners, slot;
     ULONG rc;
 
-    printf("%s \n", ap_get_server_version());
+    printf("%s \n", ap_get_server_description());
     set_signals();
 
     if (ap_setup_listeners(ap_server_conf) < 1) {
@@ -270,7 +270,7 @@
     ap_scoreboard_image->global->restart_time = apr_time_now();
     ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
                 "%s configured -- resuming normal operations",
-                ap_get_server_version());
+                ap_get_server_description());
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf,
                 "Server built: %s", ap_get_server_built());
 #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH

Modified: httpd/httpd/trunk/server/mpm/netware/mpm_netware.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/netware/mpm_netware.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/netware/mpm_netware.c (original)
+++ httpd/httpd/trunk/server/mpm/netware/mpm_netware.c Tue Sep  5 06:08:15 2006
@@ -723,7 +723,7 @@
     request_count = 0;
 
     ClearScreen (getscreenhandle());
-    printf("%s \n", ap_get_server_version());
+    printf("%s \n", ap_get_server_description());
 
     for (i=0;i<SERVER_NUM_STATUS;i++) {
         status_array[i] = 0;
@@ -793,7 +793,7 @@
     ap_listen_rec *lr;
     module **m;
 
-    printf("%s\n", ap_get_server_version());
+    printf("%s\n", ap_get_server_description());
     if (ap_my_addrspace && (ap_my_addrspace[0] != 'O') && (ap_my_addrspace[1] != 'S'))
         printf("   Running in address space %s\n", ap_my_addrspace);
 
@@ -899,7 +899,7 @@
 
     ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
             "%s configured -- resuming normal operations",
-            ap_get_server_version());
+            ap_get_server_description());
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf,
             "Server built: %s", ap_get_server_built());
 #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH
@@ -1204,7 +1204,7 @@
             restart();
         }
         else if (!strnicmp("VERSION",&szcommandLine[iCommandLen],3)) {
-            printf("Server version: %s\n", ap_get_server_version());
+            printf("Server version: %s\n", ap_get_server_description());
             printf("Server built:   %s\n", ap_get_server_built());
         }
         else if (!strnicmp("MODULES",&szcommandLine[iCommandLen],3)) {

Modified: httpd/httpd/trunk/server/mpm/prefork/prefork.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/prefork/prefork.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/prefork/prefork.c (original)
+++ httpd/httpd/trunk/server/mpm/prefork/prefork.c Tue Sep  5 06:08:15 2006
@@ -976,7 +976,7 @@
 
     ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
                 "%s configured -- resuming normal operations",
-                ap_get_server_version());
+                ap_get_server_description());
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf,
                 "Server built: %s", ap_get_server_built());
 #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH

Modified: httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c (original)
+++ httpd/httpd/trunk/server/mpm/winnt/mpm_winnt.c Tue Sep  5 06:08:15 2006
@@ -1705,7 +1705,7 @@
         /* A real-honest to goodness parent */
         ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
                      "%s configured -- resuming normal operations",
-                     ap_get_server_version());
+                     ap_get_server_description());
         ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
                      "Server built: %s", ap_get_server_built());
 

Modified: httpd/httpd/trunk/server/mpm/winnt/service.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/winnt/service.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/winnt/service.c (original)
+++ httpd/httpd/trunk/server/mpm/winnt/service.c Tue Sep  5 06:08:15 2006
@@ -436,7 +436,7 @@
 
     /* Time to fix up the description, upon each successful restart
      */
-    full_description = ap_get_server_version();
+    full_description = ap_get_server_description();
 
     if ((osver.dwPlatformId == VER_PLATFORM_WIN32_NT)
           && (osver.dwMajorVersion > 4)

Modified: httpd/httpd/trunk/server/mpm/worker/worker.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm/worker/worker.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm/worker/worker.c (original)
+++ httpd/httpd/trunk/server/mpm/worker/worker.c Tue Sep  5 06:08:15 2006
@@ -1737,7 +1737,7 @@
 
     ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, ap_server_conf,
                 "%s configured -- resuming normal operations",
-                ap_get_server_version());
+                ap_get_server_description());
     ap_log_error(APLOG_MARK, APLOG_INFO, 0, ap_server_conf,
                 "Server built: %s", ap_get_server_built());
 #ifdef AP_MPM_WANT_SET_ACCEPT_LOCK_MECH

Modified: httpd/httpd/trunk/server/mpm_common.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/mpm_common.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/mpm_common.c (original)
+++ httpd/httpd/trunk/server/mpm_common.c Tue Sep  5 06:08:15 2006
@@ -635,7 +635,7 @@
      * requests in their logs.
      */
     srequest = apr_pstrcat(p, "GET / HTTP/1.0\r\nUser-Agent: ",
-                           ap_get_server_version(),
+                           ap_get_server_banner(),
                            " (internal dummy connection)\r\n\r\n", NULL);
 
     /* Since some operating systems support buffering of data or entire

Modified: httpd/httpd/trunk/server/util_script.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util_script.c?view=diff&rev=440337&r1=440336&r2=440337
==============================================================================
--- httpd/httpd/trunk/server/util_script.c (original)
+++ httpd/httpd/trunk/server/util_script.c Tue Sep  5 06:08:15 2006
@@ -223,7 +223,7 @@
 #endif
 
     apr_table_addn(e, "SERVER_SIGNATURE", ap_psignature("", r));
-    apr_table_addn(e, "SERVER_SOFTWARE", ap_get_server_version());
+    apr_table_addn(e, "SERVER_SOFTWARE", ap_get_server_banner());
     apr_table_addn(e, "SERVER_NAME",
                    ap_escape_html(r->pool, ap_get_server_name(r)));
     apr_table_addn(e, "SERVER_ADDR", r->connection->local_ip);  /* Apache */



Re: svn commit: r440337 - in /httpd/httpd/trunk: ./ include/ modules/arch/netware/ modules/experimental/ modules/generators/ modules/http/ modules/mappers/ modules/proxy/ modules/ssl/ server/ server/mpm/beos/ server/mpm/experimental/event/ server/mpm/exper...

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
Ruediger Pluem wrote:
> 
> Hm, what backport are you thinking of? I thought of backporting it to 2.2.x
> not to 2.0.x. I see no general backwards compatibilty of modules written for
> 2.2.x to 2.0.x.

Well, we are talking about breaking <= 2.2.3 / > 2.2.3 right?

You are right, the new function would require an MMN bump.  I'm rethinking
this, most modules don't directly query this information, so I suppose it's
not as horrible as I thought.  It will be up to the module authors to be as
conservative or optimistic about using this API and spelling out the version
required for their module.

Nevermind, no problem with backporting to 2.2 ;-)  Just don't change the
ap_get_server_version export or function signature, and those who want
to adopt _banner will.

(The more I think about this from the principle of least (unpleasant) surprise,
the more I think the existing function's behavior shouldn't change, and the
-new- function should provide the full description no matter what the settings
for the server signature are.)



Re: svn commit: r440337 - in /httpd/httpd/trunk: ./ include/ modules/arch/netware/ modules/experimental/ modules/generators/ modules/http/ modules/mappers/ modules/proxy/ modules/ssl/ server/ server/mpm/beos/ server/mpm/experimental/event/ server/mpm/exper...

Posted by Ruediger Pluem <rp...@apache.org>.

On 09/05/2006 11:49 PM, William A. Rowe, Jr. wrote:
> Brian Akins wrote:
> 
>>Ruediger Pluem wrote:
>>
>>
>>>1. If we stick to
>>>
>>>AP_DECLARE(const char *) ap_get_server_version(void);
>>>
>>>and do
>>>
>>>#define ap_get_server_banner ap_get_server_version
>>
>>
>>I hate macros.  Just do it like:
>>
>>AP_DECLARE(const char *) ap_get_server_banner() {
>>    return ap_get_server_version();
>>}
>>
>>That way, it gets a symbol rather than disappearing after compile.
> 
> 
> If we do that, we break backwards compatibility that otherwise existed
> back to 2.0.44 for anyone who uses the new symbol.

Hm, what backport are you thinking of? I thought of backporting it to 2.2.x
not to 2.0.x. I see no general backwards compatibilty of modules written for
2.2.x to 2.0.x.

But appart from this, isn't this what minor bumps are for? If someone wants to use
the new symbol this would only work if the module is used with a httpd that has
a minimum minor module magic number.

Regards

RĂ¼diger

Re: svn commit: r440337 - in /httpd/httpd/trunk: ./ include/ modules/arch/netware/ modules/experimental/ modules/generators/ modules/http/ modules/mappers/ modules/proxy/ modules/ssl/ server/ server/mpm/beos/ server/mpm/experimental/event/ server/mpm/exper...

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
Brian Akins wrote:
> Ruediger Pluem wrote:
> 
>> 1. If we stick to
>>
>> AP_DECLARE(const char *) ap_get_server_version(void);
>>
>> and do
>>
>> #define ap_get_server_banner ap_get_server_version
> 
> 
> I hate macros.  Just do it like:
> 
> AP_DECLARE(const char *) ap_get_server_banner() {
>     return ap_get_server_version();
> }
> 
> That way, it gets a symbol rather than disappearing after compile.

If we do that, we break backwards compatibility that otherwise existed
back to 2.0.44 for anyone who uses the new symbol.

I'd skip the idea of backporting; there's no way to do this and still
retain this backwards module compatibility across minor versions.
Let's just move on 2.4.0 at our first opportunity.

Re: svn commit: r440337 - in /httpd/httpd/trunk: ./ include/ modules/arch/netware/ modules/experimental/ modules/generators/ modules/http/ modules/mappers/ modules/proxy/ modules/ssl/ server/ server/mpm/beos/ server/mpm/experimental/event/ server/mpm/exper...

Posted by Brian Akins <br...@turner.com>.
Ruediger Pluem wrote:

> 1. If we stick to
> 
> AP_DECLARE(const char *) ap_get_server_version(void);
> 
> and do
> 
> #define ap_get_server_banner ap_get_server_version


I hate macros.  Just do it like:

AP_DECLARE(const char *) ap_get_server_banner() {
	return ap_get_server_version();
}

That way, it gets a symbol rather than disappearing after compile.


-- 
Brian Akins
Chief Operations Engineer
Turner Digital Media Technologies

Re: svn commit: r440337 - in /httpd/httpd/trunk: ./ include/ modules/arch/netware/ modules/experimental/ modules/generators/ modules/http/ modules/mappers/ modules/proxy/ modules/ssl/ server/ server/mpm/beos/ server/mpm/experimental/event/ server/mpm/exper...

Posted by Ruediger Pluem <rp...@apache.org>.

On 09/05/2006 03:08 PM, wrote:
> Author: trawick
> Date: Tue Sep  5 06:08:15 2006
> New Revision: 440337
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=440337
> Log:
> Replace ap_get_server_version with ap_get_server_banner() and
> ap_get_server_description().
> 
> High-level summary:
> 
> The full server version information is now included in the error log at
> startup as well as server status reports, irrespective of the setting
> of the ServerTokens directive.
> 
> Third-party modules must now use ap_get_server_banner() or 
> ap_get_server_description() in place of ap_get_server_version().
> 
> 

>  /**
> - * Get the server version string
> - * @return The server version string
> + * Get the server banner in a form suitable for sending over the
> + * network, with the level of information controlled by the
> + * ServerTokens directive.
> + * @return The server banner
>   */
> -AP_DECLARE(const char *) ap_get_server_version(void);
> +AP_DECLARE(const char *) ap_get_server_banner(void);

Two comments:

1. If we stick to

AP_DECLARE(const char *) ap_get_server_version(void);

and do

#define ap_get_server_banner ap_get_server_version

I guess we can backport this without breaking binary compatibility and the need
for a major bump (on trunk the major bump makes sense to me). Given the fact that
we want to calm certain FAQ requests it would make sense to me to backport it.

2. On trunk shouldn't we add

#define ap_get_server_version ap_get_server_banner

While this still breaks binary compatibility it would allow modules using ap_get_server_version
to compile against trunk. Maybe we could mark ap_get_server_version as deprecated on trunk.
I am not a macro expert, but maybe it is even possible to spit out a warning if ap_get_server_version
is used.

Thoughts?


Regards

RĂ¼diger