]> granicus.if.org Git - apache/commitdiff
Improve http2env's performance by cutting the work it has to
authorRyan Bloom <rbb@apache.org>
Sat, 10 Nov 2001 18:38:02 +0000 (18:38 +0000)
committerRyan Bloom <rbb@apache.org>
Sat, 10 Nov 2001 18:38:02 +0000 (18:38 +0000)
do.

Submitted by: Brian Pane <bpane@pacbell.net>

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91835 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
server/util_script.c

diff --git a/CHANGES b/CHANGES
index e54fc2d0e0750bdfff58bc7acb86ce5d1f9ce89e..065738186156dce70b55f2a0a1cb252aab439168 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,8 @@
 Changes with Apache 2.0.29-dev
 
+  *) Improve http2env's performance by cutting the work it has to
+     do.  [Brian Pane <bpane@pacbell.net>]
+
   *) use new 'apr_hash_merge' function in mod_mime (performance fix)
      [Brian Pane <bpane@pacbell.net>]
 
index 735c76f348d683d0539c0ac7f94d96240340ab51..0f3733bea4e06a7054b4f6c1785ac124f866367c 100644 (file)
 #define MALFORMED_MESSAGE "malformed header from script. Bad header="
 #define MALFORMED_HEADER_LENGTH_TO_SHOW 30
 
-static char *http2env(apr_pool_t *a, char *w)
+static char *http2env(apr_pool_t *a, const char *w)
 {
-    char *res = apr_pstrcat(a, "HTTP_", w, NULL);
+    char *res = (char *)apr_palloc(a, sizeof("HTTP_") + strlen(w));
     char *cp = res;
-
-    while (*++cp) {
-       if (!apr_isalnum(*cp) && *cp != '_') {
-           *cp = '_';
-       }
-       else {
-           *cp = apr_toupper(*cp);
-       }
-    }
-
+    char c;
+
+    *cp++ = 'H';
+    *cp++ = 'T';
+    *cp++ = 'T';
+    *cp++ = 'P';
+    *cp++ = '_';
+
+    while ((c = *w++) != 0) {
+        if (!apr_isalnum(c)) {
+            *cp++ = '_';
+        }
+        else {
+            *cp++ = apr_toupper(c);
+        }
+    }
+    *cp = 0;
     return res;
 }