]> granicus.if.org Git - apache/commitdiff
Rearranged the loop in fix_hostname() to run faster in the
authorBrian Pane <brianp@apache.org>
Mon, 2 Sep 2002 01:37:54 +0000 (01:37 +0000)
committerBrian Pane <brianp@apache.org>
Mon, 2 Sep 2002 01:37:54 +0000 (01:37 +0000)
common case in which lowercase characters are the most frequent
characters in the hostname

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

server/vhost.c

index 324b305bfe7fcf335c8f6df4ddafa1fa906e1aaf..412c782d2aa91f8f54e493ff25aec306bd9ec81e 100644 (file)
@@ -777,17 +777,20 @@ static void fix_hostname(request_rec *r)
      */
     if (r->hostname[0] != '[') {
         for (dst = host; *dst; dst++) {
-            if (*dst == '.') {
+            if (apr_islower(*dst)) {
+                /* leave char unchanged */
+            }
+            else if (*dst == '.') {
                 if (*(dst + 1) == '.') {
                     goto bad;
                 }
             }
+            else if (apr_isupper(*dst)) {
+                *dst = apr_tolower(*dst);
+            }
             else if (*dst == '/' || *dst == '\\') {
                 goto bad;
             }
-            else if (apr_isalpha(*dst)) {
-                *dst = apr_tolower(*dst);
-            }
         }
         /* strip trailing gubbins */
         if (dst > host && dst[-1] == '.') {