mirror of
https://github.com/nginx/nginx.git
synced 2024-12-23 15:40:03 -06:00
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.
This commit is contained in:
parent
f1dd1d50e0
commit
f85d701694
@ -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++ = '.';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user