You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2011/01/19 03:41:50 UTC

svn commit: r1060657 - in /httpd/httpd/trunk: include/ap_mmn.h include/httpd.h modules/proxy/mod_proxy.h modules/proxy/mod_proxy_balancer.c server/util.c

Author: jim
Date: Wed Jan 19 02:41:49 2011
New Revision: 1060657

URL: http://svn.apache.org/viewvc?rev=1060657&view=rev
Log:
Make the balancer shared memory slot more human readable. But we need
to make it a "safe" filename, so create 2 funcs which do that.

Modified:
    httpd/httpd/trunk/include/ap_mmn.h
    httpd/httpd/trunk/include/httpd.h
    httpd/httpd/trunk/modules/proxy/mod_proxy.h
    httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c
    httpd/httpd/trunk/server/util.c

Modified: httpd/httpd/trunk/include/ap_mmn.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/include/ap_mmn.h?rev=1060657&r1=1060656&r2=1060657&view=diff
==============================================================================
--- httpd/httpd/trunk/include/ap_mmn.h (original)
+++ httpd/httpd/trunk/include/ap_mmn.h Wed Jan 19 02:41:49 2011
@@ -297,6 +297,7 @@
  * 20110117.0 (2.3.11-dev) Merge <If> sections in separate step (ap_if_walk).
  *                         Add core_dir_config->sec_if. Add ap_add_if_conf().
  *                         Add pool argument to ap_add_file_conf().
+ * 20110117.1 (2.3.11-dev) Add ap_pstr2alnum() and ap_str2alnum()
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503234UL /* "AP24" */
@@ -304,7 +305,7 @@
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
 #define MODULE_MAGIC_NUMBER_MAJOR 20110117
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 0                     /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 1                     /* 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?rev=1060657&r1=1060656&r2=1060657&view=diff
==============================================================================
--- httpd/httpd/trunk/include/httpd.h (original)
+++ httpd/httpd/trunk/include/httpd.h Wed Jan 19 02:41:49 2011
@@ -1828,6 +1828,29 @@ AP_DECLARE(apr_status_t) ap_timeout_para
  */
 AP_DECLARE(int) ap_request_has_body(request_rec *r);
     
+/**
+ * Cleanup a string.
+ * We only allow alphanumeric chars. Non-printable
+ * map to 'x' and all others map to '_'
+ *
+ * @param  p pool to use to allocate dest
+ * @param  src string to clean up
+ * @param  dest cleaned up, allocated string
+ * @return Status value indicating whether the cleaning was successful or not.
+ */
+AP_DECLARE(apr_status_t) ap_pstr2alnum(apr_pool_t *p, const char *src, char **dest);
+
+/**
+ * Cleanup a string.
+ * We only allow alphanumeric chars. Non-printable
+ * map to 'x' and all others map to '_'
+ *
+ * @param  src string to clean up
+ * @param  dest cleaned up, pre-allocated string
+ * @return Status value indicating whether the cleaning was successful or not.
+ */
+AP_DECLARE(apr_status_t) ap_str2alnum(const char *src, char *dest);
+
 /* Misc system hackery */
 /**
  * Given the name of an object in the file system determine if it is a directory

Modified: httpd/httpd/trunk/modules/proxy/mod_proxy.h
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy.h?rev=1060657&r1=1060656&r2=1060657&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy.h (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy.h Wed Jan 19 02:41:49 2011
@@ -59,7 +59,6 @@
 #include "http_connection.h"
 #include "util_filter.h"
 #include "util_ebcdic.h"
-#include "util_md5.h"
 #include "ap_provider.h"
 #include "ap_slotmem.h"
 

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?rev=1060657&r1=1060656&r2=1060657&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c (original)
+++ httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c Wed Jan 19 02:41:49 2011
@@ -736,7 +736,7 @@ static int balancer_post_config(apr_pool
             ap_slotmem_instance_t *new = NULL;
 
             balancer->max_workers = balancer->workers->nelts + balancer->growth;
-            balancer->sname = ap_md5(pconf, (const unsigned char *)balancer->name);
+            ap_pstr2alnum(pconf, balancer->name, &balancer->sname);
 
             /* Create global mutex */
             rv = ap_global_mutex_create(&(balancer->mutex), NULL, balancer_mutex_type,

Modified: httpd/httpd/trunk/server/util.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/server/util.c?rev=1060657&r1=1060656&r2=1060657&view=diff
==============================================================================
--- httpd/httpd/trunk/server/util.c (original)
+++ httpd/httpd/trunk/server/util.c Wed Jan 19 02:41:49 2011
@@ -2255,3 +2255,27 @@ AP_DECLARE_NONSTD(apr_status_t) ap_pool_
     *ptr = NULL;
     return APR_SUCCESS;
 }
+
+AP_DECLARE(apr_status_t) ap_str2alnum(const char *src, char *dest) {
+    
+    for ( ; *src; src++, dest++)
+    {
+        if (!apr_isprint(*src))
+            *dest = 'x';
+        else if (!apr_isalnum(*src))
+            *dest = '_';
+        else
+            *dest = (char)*src;
+    }
+    *dest = '\0';
+    return APR_SUCCESS;
+    
+}
+
+AP_DECLARE(apr_status_t) ap_pstr2alnum(apr_pool_t *p, const char *src, char **dest)
+{
+    *dest = apr_palloc(p, strlen(src)+1);
+    if (!*dest)
+        return APR_ENOMEM;
+    return ap_str2alnum(src, *dest);
+}