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:
Malcolm Scott 2020-05-10 21:00:43 +01:00 committed by GitHub
parent c7561f03ef
commit 1f9bc066df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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);