Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2021-05-25 15:17:45 +0300
committerMaxim Dounin <mdounin@mdounin.ru>2021-05-25 15:17:45 +0300
commitf85d7016949b34119b5f4c53ddbfac4f199b4343 (patch)
treea5894d1f67c693637f43fac8f3bfad4cb4c6cfe7 /src/core/ngx_resolver.c
parentf1dd1d50e090b32a765295daea5f167f1077d706 (diff)
Resolver: simplified ngx_resolver_copy().
Instead of checking on each label if we need to place a dot or not, now it always adds a dot after a label, and reduces the resulting length afterwards.
Diffstat (limited to 'src/core/ngx_resolver.c')
-rw-r--r--src/core/ngx_resolver.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index 0d7fd7915..9ce53b930 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -3939,11 +3939,11 @@ ngx_resolver_copy(ngx_resolver_t *r, ngx_str_t *name, u_char *buf, u_char *src,
{
char *err;
u_char *p, *dst;
- ssize_t len;
+ size_t len;
ngx_uint_t i, n;
p = src;
- len = -1;
+ len = 0;
/*
* compression pointers allow to create endless loop, so we set limit;
@@ -3996,7 +3996,7 @@ done:
return NGX_OK;
}
- if (len == -1) {
+ if (len == 0) {
ngx_str_null(name);
return NGX_OK;
}
@@ -4012,7 +4012,7 @@ done:
n = *src++;
if (n == 0) {
- name->len = dst - name->data;
+ name->len = dst - name->data - 1;
return NGX_OK;
}
@@ -4021,13 +4021,10 @@ done:
src = &buf[n];
} else {
- if (dst != name->data) {
- *dst++ = '.';
- }
-
ngx_strlow(dst, src, n);
dst += n;
src += n;
+ *dst++ = '.';
}
}
}