]> git.proxmox.com Git - mirror_edk2.git/commit - NetworkPkg/DnsDxe/DnsImpl.c
NetworkPkg/DnsDxe: Handle CNAME type responded from the name server
authorJiaxin Wu <jiaxin.wu@intel.com>
Tue, 6 Sep 2016 03:23:38 +0000 (11:23 +0800)
committerJiaxin Wu <jiaxin.wu@intel.com>
Wed, 7 Sep 2016 06:28:17 +0000 (14:28 +0800)
commit3093f45c44eaea11e2f2552af7ff5c5b370a93d7
treeb718e8b1b572f715bc7828c4b3716e74e3b8eca3
parentec68dc28557925e0708d5676288ad140651a3851
NetworkPkg/DnsDxe: Handle CNAME type responded from the name server

v2:
* Code refine.
* For DnsCache, the minimum value of TTL is selected between CNAME and A/AAAA record.

According RFC 1034 - 3.6.2, if the query name is an alias, the name server
will include the CNAME record in the response and restart the query at the
domain name specified in the data field of the CNAME record. RFC also provides
one example server action when A query received:

Suppose a name server was processing a query with for USCISIC.ARPA, asking for
type A information, and had the following resource records:
USC-ISIC.ARPA IN CNAME C.ISI.EDU
C.ISI.EDU     IN A     10.0.0.52
Both of these RRs would be returned in the response to the type A query.

Currently, DnsDxe driver doesn't handle the CNAME type response, which will cause
any exception result. The driver need continue the packet parsing while CNAME type
record parsed. So, this patch is used to handle it correctly.

Cc: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Ye Ting <ting.ye@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Tested-by: Hegde Nagaraj P <nagaraj-p.hegde@hpe.com>
NetworkPkg/DnsDxe/DnsImpl.c