Skip any unhandled DNS record type
Currently the DNS resolver handles CNAME by skipping that record in the answer and looking for the subsequent A/AAAA/PTR record. There are other record types which could be handled in the same way, e.g. DNAME, but their presence currently causes the answer parsing to be abandoned. A better approach would be to skip *any* other record and just use the first A, AAAA or PTR in the answer, regardless of what comes before it.
This commit is contained in:
parent
c7561f03ef
commit
1f9bc066df
1 changed files with 2 additions and 6 deletions
|
@ -702,13 +702,9 @@ static int proc_answer(struct reslist *request, HEADER * header, char *buf, char
|
||||||
rb_strlcpy(request->name, hostbuf, IRCD_RES_HOSTLEN + 1);
|
rb_strlcpy(request->name, hostbuf, IRCD_RES_HOSTLEN + 1);
|
||||||
|
|
||||||
return (1);
|
return (1);
|
||||||
case T_CNAME:
|
|
||||||
/* real answer will follow */
|
|
||||||
current += rd_length;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
/* skip any other record type e.g. CNAME, DNAME; real answer should follow */
|
||||||
|
current += rd_length;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (1);
|
return (1);
|
||||||
|
|
Loading…
Reference in a new issue