changeset 7861:0b884e47bb79 stable-1.20

Resolver: reworked ngx_resolver_copy() copy loop. To make the code easier to read, reworked the ngx_resolver_copy() copy loop to match the one used to calculate length. No functional changes.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 25 May 2021 15:17:43 +0300
parents a45b6a206cfc
children 60a1d97bedfe
files src/core/ngx_resolver.c
diffstat 1 files changed, 7 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -4008,15 +4008,18 @@ done:
 
     name->data = dst;
 
-    n = *src++;
-
     for ( ;; ) {
+        n = *src++;
+
+        if (n == 0) {
+            name->len = dst - name->data;
+            return NGX_OK;
+        }
+
         if (n & 0xc0) {
             n = ((n & 0x3f) << 8) + *src;
             src = &buf[n];
 
-            n = *src++;
-
         } else {
             if (dst != name->data) {
                 *dst++ = '.';
@@ -4025,13 +4028,6 @@ done:
             ngx_strlow(dst, src, n);
             dst += n;
             src += n;
-
-            n = *src++;
-        }
-
-        if (n == 0) {
-            name->len = dst - name->data;
-            return NGX_OK;
         }
     }
 }