fix bug for dig command
This commit is contained in:
10
src/dns.c
10
src/dns.c
@@ -913,6 +913,7 @@ static int _dns_decode_domain(struct dns_context *context, char *output, int siz
|
|||||||
static int _dns_encode_domain(struct dns_context *context, char *domain)
|
static int _dns_encode_domain(struct dns_context *context, char *domain)
|
||||||
{
|
{
|
||||||
int num = 0;
|
int num = 0;
|
||||||
|
int total_len = 0;
|
||||||
unsigned char *ptr_num = context->ptr++;
|
unsigned char *ptr_num = context->ptr++;
|
||||||
|
|
||||||
/*[len]string[len]string...[0]0 */
|
/*[len]string[len]string...[0]0 */
|
||||||
@@ -929,12 +930,15 @@ static int _dns_encode_domain(struct dns_context *context, char *domain)
|
|||||||
num++;
|
num++;
|
||||||
context->ptr++;
|
context->ptr++;
|
||||||
domain++;
|
domain++;
|
||||||
|
total_len++;
|
||||||
}
|
}
|
||||||
|
|
||||||
*ptr_num = num;
|
*ptr_num = num;
|
||||||
/* if domain is '\0', [domain] is '\0' */
|
if (total_len > 0) {
|
||||||
*(context->ptr) = 0;
|
/* if domain is '\0', [domain] is '\0' */
|
||||||
context->ptr++;
|
*(context->ptr) = 0;
|
||||||
|
context->ptr++;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user