TianoCore EDK2 master
Loading...
Searching...
No Matches
DnsImpl.h File Reference

Go to the source code of this file.

Data Structures

struct  DNS4_CACHE
 
struct  DNS6_CACHE
 
struct  DNS4_SERVER_IP
 
struct  DNS6_SERVER_IP
 
struct  DNS4_TOKEN_ENTRY
 
struct  DNS6_TOKEN_ENTRY
 
union  _DNS_FLAGS
 
struct  DNS_HEADER
 
struct  DNS_QUERY_SECTION
 
struct  DNS_ANSWER_SECTION
 

Macros

#define DNS_VERSION   0x00000000
 
#define DNS_SERVER_PORT   53
 
#define DNS_PROTOCOL_UDP   EFI_IP_PROTO_UDP
 
#define DNS_PROTOCOL_TCP   EFI_IP_PROTO_TCP
 
#define DNS_STATE_UNCONFIGED   0
 
#define DNS_STATE_CONFIGED   1
 
#define DNS_STATE_DESTROY   2
 
#define DNS_DEFAULT_TIMEOUT   2
 
#define DNS_TIME_TO_GETMAP   5
 
#define DNS_FLAGS_QR_QUERY   0
 
#define DNS_FLAGS_QR_RESPONSE   1
 
#define DNS_FLAGS_OPCODE_STANDARD   0
 
#define DNS_FLAGS_OPCODE_INVERSE   1
 
#define DNS_FLAGS_OPCODE_SERVER_STATE   2
 
#define DNS_FLAGS_RCODE_NO_ERROR   0
 
#define DNS_FLAGS_RCODE_NAME_ERROR   3
 
#define DNS4_DOMAIN   L"in-addr.arpa"
 
#define DNS6_DOMAIN   L"IP6.ARPA"
 

Typedefs

typedef union _DNS_FLAGS DNS_FLAGS
 

Functions

EFI_STATUS Dns4RemoveTokenEntry (IN NET_MAP *TokenMap, IN DNS4_TOKEN_ENTRY *TokenEntry)
 
EFI_STATUS Dns6RemoveTokenEntry (IN NET_MAP *TokenMap, IN DNS6_TOKEN_ENTRY *TokenEntry)
 
EFI_STATUS EFIAPI Dns4CancelTokens (IN NET_MAP *Map, IN NET_MAP_ITEM *Item, IN VOID *Arg OPTIONAL)
 
EFI_STATUS EFIAPI Dns6CancelTokens (IN NET_MAP *Map, IN NET_MAP_ITEM *Item, IN VOID *Arg OPTIONAL)
 
EFI_STATUS EFIAPI GetDns4TokenEntry (IN NET_MAP *TokensMap, IN EFI_DNS4_COMPLETION_TOKEN *Token, OUT DNS4_TOKEN_ENTRY **TokenEntry)
 
EFI_STATUS EFIAPI GetDns6TokenEntry (IN NET_MAP *TokensMap, IN EFI_DNS6_COMPLETION_TOKEN *Token, OUT DNS6_TOKEN_ENTRY **TokenEntry)
 
EFI_STATUS Dns4InstanceCancelToken (IN DNS_INSTANCE *Instance, IN EFI_DNS4_COMPLETION_TOKEN *Token)
 
EFI_STATUS Dns6InstanceCancelToken (IN DNS_INSTANCE *Instance, IN EFI_DNS6_COMPLETION_TOKEN *Token)
 
VOID Dns4CleanConfigure (IN OUT EFI_DNS4_CONFIG_DATA *Config)
 
VOID Dns6CleanConfigure (IN OUT EFI_DNS6_CONFIG_DATA *Config)
 
EFI_STATUS Dns4CopyConfigure (OUT EFI_DNS4_CONFIG_DATA *Dst, IN EFI_DNS4_CONFIG_DATA *Src)
 
EFI_STATUS Dns6CopyConfigure (OUT EFI_DNS6_CONFIG_DATA *Dst, IN EFI_DNS6_CONFIG_DATA *Src)
 
VOID EFIAPI DnsDummyExtFree (IN VOID *Arg)
 
BOOLEAN Dns4GetMapping (IN DNS_INSTANCE *Instance, IN UDP_IO *UdpIo, IN EFI_UDP4_CONFIG_DATA *UdpCfgData)
 
BOOLEAN Dns6GetMapping (IN DNS_INSTANCE *Instance, IN UDP_IO *UdpIo, IN EFI_UDP6_CONFIG_DATA *UdpCfgData)
 
EFI_STATUS Dns4ConfigUdp (IN DNS_INSTANCE *Instance, IN UDP_IO *UdpIo)
 
EFI_STATUS Dns6ConfigUdp (IN DNS_INSTANCE *Instance, IN UDP_IO *UdpIo)
 
EFI_STATUS EFIAPI UpdateDns4Cache (IN LIST_ENTRY *Dns4CacheList, IN BOOLEAN DeleteFlag, IN BOOLEAN Override, IN EFI_DNS4_CACHE_ENTRY DnsCacheEntry)
 
EFI_STATUS EFIAPI UpdateDns6Cache (IN LIST_ENTRY *Dns6CacheList, IN BOOLEAN DeleteFlag, IN BOOLEAN Override, IN EFI_DNS6_CACHE_ENTRY DnsCacheEntry)
 
EFI_STATUS EFIAPI AddDns4ServerIp (IN LIST_ENTRY *Dns4ServerList, IN EFI_IPv4_ADDRESS ServerIp)
 
EFI_STATUS EFIAPI AddDns6ServerIp (IN LIST_ENTRY *Dns6ServerList, IN EFI_IPv6_ADDRESS ServerIp)
 
BOOLEAN IsValidDnsResponse (IN NET_MAP *TokensMap, IN UINT16 Identification, IN UINT16 Type, IN UINT16 Class, OUT NET_MAP_ITEM **Item)
 
EFI_STATUS ParseDnsResponse (IN OUT DNS_INSTANCE *Instance, IN UINT8 *RxString, IN UINT32 Length, OUT BOOLEAN *Completed)
 
VOID EFIAPI DnsOnPacketReceived (NET_BUF *Packet, UDP_END_POINT *EndPoint, EFI_STATUS IoStatus, VOID *Context)
 
VOID EFIAPI DnsOnPacketSent (NET_BUF *Packet, UDP_END_POINT *EndPoint, EFI_STATUS IoStatus, VOID *Context)
 
EFI_STATUS DoDnsQuery (IN DNS_INSTANCE *Instance, IN NET_BUF *Packet)
 
EFI_STATUS ConstructDNSQuery (IN DNS_INSTANCE *Instance, IN CHAR8 *QueryName, IN UINT16 Type, IN UINT16 Class, OUT NET_BUF **Packet)
 
EFI_STATUS DnsRetransmit (IN DNS_INSTANCE *Instance, IN NET_BUF *Packet)
 
VOID EFIAPI DnsOnTimerRetransmit (IN EFI_EVENT Event, IN VOID *Context)
 
VOID EFIAPI DnsOnTimerUpdate (IN EFI_EVENT Event, IN VOID *Context)
 
EFI_STATUS EFIAPI Dns4GetModeData (IN EFI_DNS4_PROTOCOL *This, OUT EFI_DNS4_MODE_DATA *DnsModeData)
 
EFI_STATUS EFIAPI Dns4Configure (IN EFI_DNS4_PROTOCOL *This, IN EFI_DNS4_CONFIG_DATA *DnsConfigData)
 
EFI_STATUS EFIAPI Dns4HostNameToIp (IN EFI_DNS4_PROTOCOL *This, IN CHAR16 *HostName, IN EFI_DNS4_COMPLETION_TOKEN *Token)
 
EFI_STATUS EFIAPI Dns4IpToHostName (IN EFI_DNS4_PROTOCOL *This, IN EFI_IPv4_ADDRESS IpAddress, IN EFI_DNS4_COMPLETION_TOKEN *Token)
 
EFI_STATUS EFIAPI Dns4GeneralLookUp (IN EFI_DNS4_PROTOCOL *This, IN CHAR8 *QName, IN UINT16 QType, IN UINT16 QClass, IN EFI_DNS4_COMPLETION_TOKEN *Token)
 
EFI_STATUS EFIAPI Dns4UpdateDnsCache (IN EFI_DNS4_PROTOCOL *This, IN BOOLEAN DeleteFlag, IN BOOLEAN Override, IN EFI_DNS4_CACHE_ENTRY DnsCacheEntry)
 
EFI_STATUS EFIAPI Dns4Poll (IN EFI_DNS4_PROTOCOL *This)
 
EFI_STATUS EFIAPI Dns4Cancel (IN EFI_DNS4_PROTOCOL *This, IN EFI_DNS4_COMPLETION_TOKEN *Token)
 
EFI_STATUS EFIAPI Dns6GetModeData (IN EFI_DNS6_PROTOCOL *This, OUT EFI_DNS6_MODE_DATA *DnsModeData)
 
EFI_STATUS EFIAPI Dns6Configure (IN EFI_DNS6_PROTOCOL *This, IN EFI_DNS6_CONFIG_DATA *DnsConfigData)
 
EFI_STATUS EFIAPI Dns6HostNameToIp (IN EFI_DNS6_PROTOCOL *This, IN CHAR16 *HostName, IN EFI_DNS6_COMPLETION_TOKEN *Token)
 
EFI_STATUS EFIAPI Dns6IpToHostName (IN EFI_DNS6_PROTOCOL *This, IN EFI_IPv6_ADDRESS IpAddress, IN EFI_DNS6_COMPLETION_TOKEN *Token)
 
EFI_STATUS EFIAPI Dns6GeneralLookUp (IN EFI_DNS6_PROTOCOL *This, IN CHAR8 *QName, IN UINT16 QType, IN UINT16 QClass, IN EFI_DNS6_COMPLETION_TOKEN *Token)
 
EFI_STATUS EFIAPI Dns6UpdateDnsCache (IN EFI_DNS6_PROTOCOL *This, IN BOOLEAN DeleteFlag, IN BOOLEAN Override, IN EFI_DNS6_CACHE_ENTRY DnsCacheEntry)
 
EFI_STATUS EFIAPI Dns6Poll (IN EFI_DNS6_PROTOCOL *This)
 
EFI_STATUS EFIAPI Dns6Cancel (IN EFI_DNS6_PROTOCOL *This, IN EFI_DNS6_COMPLETION_TOKEN *Token)
 

Variables

EFI_COMPONENT_NAME_PROTOCOL gDnsComponentName
 
EFI_COMPONENT_NAME2_PROTOCOL gDnsComponentName2
 
EFI_UNICODE_STRING_TABLEgDnsControllerNameTable
 
EFI_DRIVER_BINDING_PROTOCOL gDns4DriverBinding
 
EFI_SERVICE_BINDING_PROTOCOL mDns4ServiceBinding
 
EFI_DNS4_PROTOCOL mDns4Protocol
 
EFI_DRIVER_BINDING_PROTOCOL gDns6DriverBinding
 
EFI_SERVICE_BINDING_PROTOCOL mDns6ServiceBinding
 
EFI_DNS6_PROTOCOL mDns6Protocol
 

Detailed Description

DnsDxe support functions implementation.

Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file DnsImpl.h.

Macro Definition Documentation

◆ DNS4_DOMAIN

#define DNS4_DOMAIN   L"in-addr.arpa"

Definition at line 173 of file DnsImpl.h.

◆ DNS6_DOMAIN

#define DNS6_DOMAIN   L"IP6.ARPA"

Definition at line 174 of file DnsImpl.h.

◆ DNS_DEFAULT_TIMEOUT

#define DNS_DEFAULT_TIMEOUT   2

Definition at line 82 of file DnsImpl.h.

◆ DNS_FLAGS_OPCODE_INVERSE

#define DNS_FLAGS_OPCODE_INVERSE   1

Definition at line 146 of file DnsImpl.h.

◆ DNS_FLAGS_OPCODE_SERVER_STATE

#define DNS_FLAGS_OPCODE_SERVER_STATE   2

Definition at line 147 of file DnsImpl.h.

◆ DNS_FLAGS_OPCODE_STANDARD

#define DNS_FLAGS_OPCODE_STANDARD   0

Definition at line 145 of file DnsImpl.h.

◆ DNS_FLAGS_QR_QUERY

#define DNS_FLAGS_QR_QUERY   0

Definition at line 142 of file DnsImpl.h.

◆ DNS_FLAGS_QR_RESPONSE

#define DNS_FLAGS_QR_RESPONSE   1

Definition at line 143 of file DnsImpl.h.

◆ DNS_FLAGS_RCODE_NAME_ERROR

#define DNS_FLAGS_RCODE_NAME_ERROR   3

Definition at line 150 of file DnsImpl.h.

◆ DNS_FLAGS_RCODE_NO_ERROR

#define DNS_FLAGS_RCODE_NO_ERROR   0

Definition at line 149 of file DnsImpl.h.

◆ DNS_PROTOCOL_TCP

#define DNS_PROTOCOL_TCP   EFI_IP_PROTO_TCP

Definition at line 76 of file DnsImpl.h.

◆ DNS_PROTOCOL_UDP

#define DNS_PROTOCOL_UDP   EFI_IP_PROTO_UDP

Definition at line 75 of file DnsImpl.h.

◆ DNS_SERVER_PORT

#define DNS_SERVER_PORT   53

Definition at line 73 of file DnsImpl.h.

◆ DNS_STATE_CONFIGED

#define DNS_STATE_CONFIGED   1

Definition at line 79 of file DnsImpl.h.

◆ DNS_STATE_DESTROY

#define DNS_STATE_DESTROY   2

Definition at line 80 of file DnsImpl.h.

◆ DNS_STATE_UNCONFIGED

#define DNS_STATE_UNCONFIGED   0

Definition at line 78 of file DnsImpl.h.

◆ DNS_TIME_TO_GETMAP

#define DNS_TIME_TO_GETMAP   5

Definition at line 84 of file DnsImpl.h.

◆ DNS_VERSION

#define DNS_VERSION   0x00000000

Definition at line 53 of file DnsImpl.h.

Typedef Documentation

◆ DNS_FLAGS

typedef union _DNS_FLAGS DNS_FLAGS

Definition at line 88 of file DnsImpl.h.

Function Documentation

◆ AddDns4ServerIp()

EFI_STATUS EFIAPI AddDns4ServerIp ( IN LIST_ENTRY Dns4ServerList,
IN EFI_IPv4_ADDRESS  ServerIp 
)

Add Dns4 ServerIp to common list of addresses of all configured DNSv4 server.

Parameters
Dns4ServerListCommon list of addresses of all configured DNSv4 server.
ServerIpDNS server Ip.
Return values
EFI_SUCCESSAdd Dns4 ServerIp to common list successfully.
OthersFailed to add Dns4 ServerIp to common list.

Definition at line 957 of file DnsImpl.c.

◆ AddDns6ServerIp()

EFI_STATUS EFIAPI AddDns6ServerIp ( IN LIST_ENTRY Dns6ServerList,
IN EFI_IPv6_ADDRESS  ServerIp 
)

Add Dns6 ServerIp to common list of addresses of all configured DNSv6 server.

Parameters
Dns6ServerListCommon list of addresses of all configured DNSv6 server.
ServerIpDNS server Ip.
Return values
EFI_SUCCESSAdd Dns6 ServerIp to common list successfully.
OthersFailed to add Dns6 ServerIp to common list.

Definition at line 1012 of file DnsImpl.c.

◆ ConstructDNSQuery()

EFI_STATUS ConstructDNSQuery ( IN DNS_INSTANCE Instance,
IN CHAR8 *  QueryName,
IN UINT16  Type,
IN UINT16  Class,
OUT NET_BUF **  Packet 
)

Construct the Packet according query section.

Parameters
InstanceThe DNS instance
QueryNameQueried Name
TypeQueried Type
ClassQueried Class
PacketThe packet for query
Return values
EFI_SUCCESSThe packet is constructed.
OthersFailed to construct the Packet.

Definition at line 1956 of file DnsImpl.c.

◆ Dns4Cancel()

EFI_STATUS EFIAPI Dns4Cancel ( IN EFI_DNS4_PROTOCOL This,
IN EFI_DNS4_COMPLETION_TOKEN Token 
)

Abort an asynchronous DNS operation, including translation between IP and Host, and general look up behavior.

The Cancel() function is used to abort a pending resolution request. After calling this function, Token.Status will be set to EFI_ABORTED and then Token.Event will be signaled. If the token is not in one of the queues, which usually means that the asynchronous operation has completed, this function will not signal the token and EFI_NOT_FOUND is returned.

Parameters
[in]ThisPointer to EFI_DNS4_PROTOCOL instance.
[in]TokenPointer to a token that has been issued by EFI_DNS4_PROTOCOL.HostNameToIp (), EFI_DNS4_PROTOCOL.IpToHostName() or EFI_DNS4_PROTOCOL.GeneralLookup(). If NULL, all pending tokens are aborted.
Return values
EFI_SUCCESSIncoming or outgoing data was processed.
EFI_NOT_STARTEDThis EFI DNS4 Protocol instance has not been started.
EFI_INVALID_PARAMETERThis is NULL.
EFI_NOT_FOUNDWhen Token is not NULL, and the asynchronous DNS operation was not found in the transmit queue. It was either completed or was not issued by HostNameToIp(), IpToHostName() or GeneralLookup().

Definition at line 849 of file DnsProtocol.c.

◆ Dns4CancelTokens()

EFI_STATUS EFIAPI Dns4CancelTokens ( IN NET_MAP Map,
IN NET_MAP_ITEM Item,
IN VOID *Arg  OPTIONAL 
)

This function cancel the token specified by Arg in the Map.

Parameters
[in]MapPointer to the NET_MAP.
[in]ItemPointer to the NET_MAP_ITEM.
[in]ArgPointer to the token to be cancelled. If NULL, all the tokens in this Map will be cancelled. This parameter is optional and may be NULL.
Return values
EFI_SUCCESSThe token is cancelled if Arg is NULL, or the token is not the same as that in the Item, if Arg is not NULL.
EFI_ABORTEDArg is not NULL, and the token specified by Arg is cancelled.

Definition at line 100 of file DnsImpl.c.

◆ Dns4CleanConfigure()

VOID Dns4CleanConfigure ( IN OUT EFI_DNS4_CONFIG_DATA Config)

Free the resource related to the configure parameters.

Parameters
ConfigThe DNS configure data

Definition at line 397 of file DnsImpl.c.

◆ Dns4ConfigUdp()

EFI_STATUS Dns4ConfigUdp ( IN DNS_INSTANCE Instance,
IN UDP_IO UdpIo 
)

Configure the UDP.

Parameters
InstanceThe DNS session
UdpIoThe UDP_IO instance
Return values
EFI_SUCCESSThe UDP is successfully configured for the session.

Definition at line 666 of file DnsImpl.c.

◆ Dns4Configure()

EFI_STATUS EFIAPI Dns4Configure ( IN EFI_DNS4_PROTOCOL This,
IN EFI_DNS4_CONFIG_DATA DnsConfigData 
)

Configure this DNS instance.

This function is used to configure DNS mode data for this DNS instance.

Parameters
[in]ThisPointer to EFI_DNS4_PROTOCOL instance.
[in]DnsConfigDataPoint to the Configuration data.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_UNSUPPORTEDThe designated protocol is not supported.
EFI_INVALID_PARAMETERThis is NULL. The StationIp address provided in DnsConfigData is not a valid unicast. DnsServerList is NULL while DnsServerListCount is not ZERO. DnsServerListCount is ZERO while DnsServerList is not NULL
EFI_OUT_OF_RESOURCESThe DNS instance data or required space could not be allocated.
EFI_DEVICE_ERRORAn unexpected system or network error occurred. The EFI DNSv4 Protocol instance is not configured.
EFI_ALREADY_STARTEDSecond call to Configure() with DnsConfigData. To reconfigure the instance the caller must call Configure() with NULL first to return driver to unconfigured state.

Definition at line 177 of file DnsProtocol.c.

◆ Dns4CopyConfigure()

EFI_STATUS Dns4CopyConfigure ( OUT EFI_DNS4_CONFIG_DATA Dst,
IN EFI_DNS4_CONFIG_DATA Src 
)

Allocate memory for configure parameter such as timeout value for Dst, then copy the configure parameter from Src to Dst.

Parameters
[out]DstThe destination DHCP configure data.
[in]SrcThe source DHCP configure data.
Return values
EFI_OUT_OF_RESOURCESFailed to allocate memory.
EFI_SUCCESSThe configure is copied.

Definition at line 438 of file DnsImpl.c.

◆ Dns4GeneralLookUp()

EFI_STATUS EFIAPI Dns4GeneralLookUp ( IN EFI_DNS4_PROTOCOL This,
IN CHAR8 *  QName,
IN UINT16  QType,
IN UINT16  QClass,
IN EFI_DNS4_COMPLETION_TOKEN Token 
)

Retrieve arbitrary information from the DNS server.

This GeneralLookup() function retrieves arbitrary information from the DNS. The caller supplies a QNAME, QTYPE, and QCLASS, and all of the matching RRs are returned. All RR content (e.g., TTL) was returned. The caller need parse the returned RR to get required information. The function is optional.

Parameters
[in]ThisPointer to EFI_DNS4_PROTOCOL instance.
[in]QNamePointer to Query Name.
[in]QTypeQuery Type.
[in]QClassQuery Name.
[in]TokenPoint to the completion token to retrieve arbitrary information.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_UNSUPPORTEDThis function is not supported. Or the requested QType is not supported
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL. Token is NULL. Token.Event is NULL. QName is NULL.
EFI_NO_MAPPINGThere's no source address is available for use.
EFI_ALREADY_STARTEDThis Token is being used in another DNS session.
EFI_OUT_OF_RESOURCESFailed to allocate needed resources.

Definition at line 595 of file DnsProtocol.c.

◆ Dns4GetMapping()

BOOLEAN Dns4GetMapping ( IN DNS_INSTANCE Instance,
IN UDP_IO UdpIo,
IN EFI_UDP4_CONFIG_DATA UdpCfgData 
)

Poll the UDP to get the IP4 default address, which may be retrieved by DHCP.

The default time out value is 5 seconds. If IP has retrieved the default address, the UDP is reconfigured.

Parameters
InstanceThe DNS instance
UdpIoThe UDP_IO to poll
UdpCfgDataThe UDP configure data to reconfigure the UDP_IO
Return values
TRUEThe default address is retrieved and UDP is reconfigured.
FALSESome error occurred.

Definition at line 540 of file DnsImpl.c.

◆ Dns4GetModeData()

EFI_STATUS EFIAPI Dns4GetModeData ( IN EFI_DNS4_PROTOCOL This,
OUT EFI_DNS4_MODE_DATA DnsModeData 
)

Retrieve mode data of this DNS instance.

This function is used to retrieve DNS mode data for this DNS instance.

Parameters
[in]ThisPointer to EFI_DNS4_PROTOCOL instance.
[out]DnsModeDataPoint to the mode data.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_NOT_STARTEDWhen DnsConfigData is queried, no configuration data is available because this instance has not been configured.
EFI_INVALID_PARAMETERThis is NULL or DnsModeData is NULL.
EFI_OUT_OF_RESOURCESFailed to allocate needed resources.

Definition at line 50 of file DnsProtocol.c.

◆ Dns4HostNameToIp()

EFI_STATUS EFIAPI Dns4HostNameToIp ( IN EFI_DNS4_PROTOCOL This,
IN CHAR16 *  HostName,
IN EFI_DNS4_COMPLETION_TOKEN Token 
)

Host name to host address translation.

The HostNameToIp () function is used to translate the host name to host IP address. A type A query is used to get the one or more IP addresses for this host.

Parameters
[in]ThisPointer to EFI_DNS4_PROTOCOL instance.
[in]HostNameHost name.
[in]TokenPoint to the completion token to translate host name to host address.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL. Token is NULL. Token.Event is NULL. HostName is NULL. HostName string is unsupported format.
EFI_NO_MAPPINGThere's no source address is available for use.
EFI_NOT_STARTEDThis instance has not been started.

Definition at line 333 of file DnsProtocol.c.

◆ Dns4InstanceCancelToken()

EFI_STATUS Dns4InstanceCancelToken ( IN DNS_INSTANCE Instance,
IN EFI_DNS4_COMPLETION_TOKEN Token 
)

Cancel DNS4 tokens from the DNS4 instance.

Parameters
[in]InstancePointer to the DNS instance context data.
[in]TokenPointer to the token to be canceled. If NULL, all tokens in this instance will be cancelled. This parameter is optional and may be NULL.
Return values
EFI_SUCCESSThe Token is cancelled.
EFI_NOT_FOUNDThe Token is not found.

Definition at line 287 of file DnsImpl.c.

◆ Dns4IpToHostName()

EFI_STATUS EFIAPI Dns4IpToHostName ( IN EFI_DNS4_PROTOCOL This,
IN EFI_IPv4_ADDRESS  IpAddress,
IN EFI_DNS4_COMPLETION_TOKEN Token 
)

IPv4 address to host name translation also known as Reverse DNS lookup.

The IpToHostName() function is used to translate the host address to host name. A type PTR query is used to get the primary name of the host. Support of this function is optional.

Parameters
[in]ThisPointer to EFI_DNS4_PROTOCOL instance.
[in]IpAddressIp Address.
[in]TokenPoint to the completion token to translate host address to host name.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_UNSUPPORTEDThis function is not supported.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL. Token is NULL. Token.Event is NULL. IpAddress is not valid IP address .
EFI_NO_MAPPINGThere's no source address is available for use.
EFI_ALREADY_STARTEDThis Token is being used in another DNS session.
EFI_OUT_OF_RESOURCESFailed to allocate needed resources.

Definition at line 557 of file DnsProtocol.c.

◆ Dns4Poll()

EFI_STATUS EFIAPI Dns4Poll ( IN EFI_DNS4_PROTOCOL This)

Polls for incoming data packets and processes outgoing data packets.

The Poll() function can be used by network drivers and applications to increase the rate that data packets are moved between the communications device and the transmit and receive queues. In some systems, the periodic timer event in the managed network driver may not poll the underlying communications device fast enough to transmit and/or receive all data packets without missing incoming packets or dropping outgoing packets. Drivers and applications that are experiencing packet loss should try calling the Poll() function more often.

Parameters
[in]ThisPointer to EFI_DNS4_PROTOCOL instance.
Return values
EFI_SUCCESSIncoming or outgoing data was processed.
EFI_NOT_STARTEDThis EFI DNS Protocol instance has not been started.
EFI_INVALID_PARAMETERThis is NULL.
EFI_DEVICE_ERRORAn unexpected system or network error occurred.
EFI_TIMEOUTData was dropped out of the transmit and/or receive queue. Consider increasing the polling rate.

Definition at line 798 of file DnsProtocol.c.

◆ Dns4RemoveTokenEntry()

EFI_STATUS Dns4RemoveTokenEntry ( IN NET_MAP TokenMap,
IN DNS4_TOKEN_ENTRY TokenEntry 
)

Remove TokenEntry from TokenMap.

Parameters
[in]TokenMapAll DNSv4 Token entrys.
[in]TokenEntryTokenEntry need to be removed.
Return values
EFI_SUCCESSRemove TokenEntry from TokenMap successfully.
EFI_NOT_FOUNDTokenEntry is not found in TokenMap.

Definition at line 23 of file DnsImpl.c.

◆ Dns4UpdateDnsCache()

EFI_STATUS EFIAPI Dns4UpdateDnsCache ( IN EFI_DNS4_PROTOCOL This,
IN BOOLEAN  DeleteFlag,
IN BOOLEAN  Override,
IN EFI_DNS4_CACHE_ENTRY  DnsCacheEntry 
)

This function is to update the DNS Cache.

The UpdateDnsCache() function is used to add/delete/modify DNS cache entry. DNS cache can be normally dynamically updated after the DNS resolve succeeds. This function provided capability to manually add/delete/modify the DNS cache.

Parameters
[in]ThisPointer to EFI_DNS4_PROTOCOL instance.
[in]DeleteFlagIf FALSE, this function is to add one entry to the DNS Cache. If TRUE, this function will delete matching DNS Cache entry.
[in]OverrideIf TRUE, the matching DNS cache entry will be overwritten with the supplied parameter. If FALSE, EFI_ACCESS_DENIED will be returned if the entry to be added is already existed.
[in]DnsCacheEntryPointer to DNS Cache entry.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL. DnsCacheEntry.HostName is NULL. DnsCacheEntry.IpAddress is NULL. DnsCacheEntry.Timeout is zero.
EFI_ACCESS_DENIEDThe DNS cache entry already exists and Override is not TRUE.

Definition at line 747 of file DnsProtocol.c.

◆ Dns6Cancel()

EFI_STATUS EFIAPI Dns6Cancel ( IN EFI_DNS6_PROTOCOL This,
IN EFI_DNS6_COMPLETION_TOKEN Token 
)

Abort an asynchronous DNS operation, including translation between IP and Host, and general look up behavior.

The Cancel() function is used to abort a pending resolution request. After calling this function, Token.Status will be set to EFI_ABORTED and then Token.Event will be signaled. If the token is not in one of the queues, which usually means that the asynchronous operation has completed, this function will not signal the token and EFI_NOT_FOUND is returned.

Parameters
[in]ThisPointer to EFI_DNS6_PROTOCOL instance.
[in]TokenPointer to a token that has been issued by EFI_DNS6_PROTOCOL.HostNameToIp (), EFI_DNS6_PROTOCOL.IpToHostName() or EFI_DNS6_PROTOCOL.GeneralLookup(). If NULL, all pending tokens are aborted.
Return values
EFI_SUCCESSIncoming or outgoing data was processed.
EFI_NOT_STARTEDThis EFI DNS6 Protocol instance has not been started.
EFI_INVALID_PARAMETERThis is NULL.
EFI_NO_MAPPINGThere's no source address is available for use.
EFI_NOT_FOUNDWhen Token is not NULL, and the asynchronous DNS operation was not found in the transmit queue. It was either completed or was not issued by HostNameToIp(), IpToHostName() or GeneralLookup().

Definition at line 1702 of file DnsProtocol.c.

◆ Dns6CancelTokens()

EFI_STATUS EFIAPI Dns6CancelTokens ( IN NET_MAP Map,
IN NET_MAP_ITEM Item,
IN VOID *Arg  OPTIONAL 
)

This function cancel the token specified by Arg in the Map.

Parameters
[in]MapPointer to the NET_MAP.
[in]ItemPointer to the NET_MAP_ITEM.
[in]ArgPointer to the token to be cancelled. If NULL, all the tokens in this Map will be cancelled. This parameter is optional and may be NULL.
Return values
EFI_SUCCESSThe token is cancelled if Arg is NULL, or the token is not the same as that in the Item, if Arg is not NULL.
EFI_ABORTEDArg is not NULL, and the token specified by Arg is cancelled.

Definition at line 160 of file DnsImpl.c.

◆ Dns6CleanConfigure()

VOID Dns6CleanConfigure ( IN OUT EFI_DNS6_CONFIG_DATA Config)

Free the resource related to the configure parameters.

Parameters
ConfigThe DNS configure data

Definition at line 415 of file DnsImpl.c.

◆ Dns6ConfigUdp()

EFI_STATUS Dns6ConfigUdp ( IN DNS_INSTANCE Instance,
IN UDP_IO UdpIo 
)

Configure the UDP.

Parameters
InstanceThe DNS session
UdpIoThe UDP_IO instance
Return values
EFI_SUCCESSThe UDP is successfully configured for the session.

Definition at line 714 of file DnsImpl.c.

◆ Dns6Configure()

EFI_STATUS EFIAPI Dns6Configure ( IN EFI_DNS6_PROTOCOL This,
IN EFI_DNS6_CONFIG_DATA DnsConfigData 
)

Configure this DNS instance.

The Configure() function is used to set and change the configuration data for this EFI DNSv6 Protocol driver instance. Reset the DNS instance if DnsConfigData is NULL.

Parameters
[in]ThisPointer to EFI_DNS6_PROTOCOL instance.
[in]DnsConfigDataPointer to the configuration data structure. All associated storage to be allocated and released by caller.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_INVALID_PARAMETERThis is NULL. The StationIp address provided in DnsConfigData is not zero and not a valid unicast. DnsServerList is NULL while DnsServerList Count is not ZERO. DnsServerList Count is ZERO while DnsServerList is not NULL.
EFI_OUT_OF_RESOURCESThe DNS instance data or required space could not be allocated.
EFI_DEVICE_ERRORAn unexpected system or network error occurred. The EFI DNSv6 Protocol instance is not configured.
EFI_UNSUPPORTEDThe designated protocol is not supported.
EFI_ALREADY_STARTEDSecond call to Configure() with DnsConfigData. To reconfigure the instance the caller must call Configure() with NULL first to return driver to unconfigured state.

Definition at line 1028 of file DnsProtocol.c.

◆ Dns6CopyConfigure()

EFI_STATUS Dns6CopyConfigure ( OUT EFI_DNS6_CONFIG_DATA Dst,
IN EFI_DNS6_CONFIG_DATA Src 
)

Allocate memory for configure parameter such as timeout value for Dst, then copy the configure parameter from Src to Dst.

Parameters
[out]DstThe destination DHCP configure data.
[in]SrcThe source DHCP configure data.
Return values
EFI_OUT_OF_RESOURCESFailed to allocate memory.
EFI_SUCCESSThe configure is copied.

Definition at line 480 of file DnsImpl.c.

◆ Dns6GeneralLookUp()

EFI_STATUS EFIAPI Dns6GeneralLookUp ( IN EFI_DNS6_PROTOCOL This,
IN CHAR8 *  QName,
IN UINT16  QType,
IN UINT16  QClass,
IN EFI_DNS6_COMPLETION_TOKEN Token 
)

This function provides capability to retrieve arbitrary information from the DNS server.

This GeneralLookup() function retrieves arbitrary information from the DNS. The caller supplies a QNAME, QTYPE, and QCLASS, and all of the matching RRs are returned. All RR content (e.g., TTL) was returned. The caller need parse the returned RR to get required information. The function is optional. Implementation can choose to support it or not.

Parameters
[in]ThisPointer to EFI_DNS6_PROTOCOL instance.
[in]QNamePointer to Query Name.
[in]QTypeQuery Type.
[in]QClassQuery Name.
[in]TokenPoint to the completion token to retrieve arbitrary information.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_UNSUPPORTEDThis function is not supported. Or the requested QType is not supported
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL. Token is NULL. Token.Event is NULL. QName is NULL.
EFI_NO_MAPPINGThere's no source address is available for use.
EFI_NOT_STARTEDThis instance has not been started.
EFI_OUT_OF_RESOURCESFailed to allocate needed resources.

Definition at line 1444 of file DnsProtocol.c.

◆ Dns6GetMapping()

BOOLEAN Dns6GetMapping ( IN DNS_INSTANCE Instance,
IN UDP_IO UdpIo,
IN EFI_UDP6_CONFIG_DATA UdpCfgData 
)

Configure the opened Udp6 instance until the corresponding Ip6 instance has been configured.

Parameters
InstanceThe DNS instance
UdpIoThe UDP_IO to poll
UdpCfgDataThe UDP configure data to reconfigure the UDP_IO
Return values
TRUEConfigure the Udp6 instance successfully.
FALSESome error occurred.

Definition at line 592 of file DnsImpl.c.

◆ Dns6GetModeData()

EFI_STATUS EFIAPI Dns6GetModeData ( IN EFI_DNS6_PROTOCOL This,
OUT EFI_DNS6_MODE_DATA DnsModeData 
)

Retrieve mode data of this DNS instance.

This function is used to retrieve DNS mode data for this DNS instance.

Parameters
[in]ThisPointer to EFI_DNS6_PROTOCOL instance.
[out]DnsModeDataPointer to the caller-allocated storage for the EFI_DNS6_MODE_DATA data.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_NOT_STARTEDWhen DnsConfigData is queried, no configuration data is available because this instance has not been configured.
EFI_INVALID_PARAMETERThis is NULL or DnsModeData is NULL.
EFI_OUT_OF_RESOURCEFailed to allocate needed resources.

Definition at line 903 of file DnsProtocol.c.

◆ Dns6HostNameToIp()

EFI_STATUS EFIAPI Dns6HostNameToIp ( IN EFI_DNS6_PROTOCOL This,
IN CHAR16 *  HostName,
IN EFI_DNS6_COMPLETION_TOKEN Token 
)

Host name to host address translation.

The HostNameToIp () function is used to translate the host name to host IP address. A type AAAA query is used to get the one or more IPv6 addresses for this host.

Parameters
[in]ThisPointer to EFI_DNS6_PROTOCOL instance.
[in]HostNameHost name.
[in]TokenPoint to the completion token to translate host name to host address.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL. Token is NULL. Token.Event is NULL. HostName is NULL or buffer contained unsupported characters.
EFI_NO_MAPPINGThere's no source address is available for use.
EFI_ALREADY_STARTEDThis Token is being used in another DNS session.
EFI_NOT_STARTEDThis instance has not been started.
EFI_OUT_OF_RESOURCESFailed to allocate needed resources.

Definition at line 1179 of file DnsProtocol.c.

◆ Dns6InstanceCancelToken()

EFI_STATUS Dns6InstanceCancelToken ( IN DNS_INSTANCE Instance,
IN EFI_DNS6_COMPLETION_TOKEN Token 
)

Cancel DNS6 tokens from the DNS6 instance.

Parameters
[in]InstancePointer to the DNS instance context data.
[in]TokenPointer to the token to be canceled. If NULL, all tokens in this instance will be cancelled. This parameter is optional and may be NULL.
Return values
EFI_SUCCESSThe Token is cancelled.
EFI_NOT_FOUNDThe Token is not found.

Definition at line 345 of file DnsImpl.c.

◆ Dns6IpToHostName()

EFI_STATUS EFIAPI Dns6IpToHostName ( IN EFI_DNS6_PROTOCOL This,
IN EFI_IPv6_ADDRESS  IpAddress,
IN EFI_DNS6_COMPLETION_TOKEN Token 
)

Host address to host name translation.

The IpToHostName () function is used to translate the host address to host name. A type PTR query is used to get the primary name of the host. Implementation can choose to support this function or not.

Parameters
[in]ThisPointer to EFI_DNS6_PROTOCOL instance.
[in]IpAddressIp Address.
[in]TokenPoint to the completion token to translate host address to host name.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_UNSUPPORTEDThis function is not supported.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL. Token is NULL. Token.Event is NULL. IpAddress is not valid IP address.
EFI_NO_MAPPINGThere's no source address is available for use.
EFI_NOT_STARTEDThis instance has not been started.
EFI_OUT_OF_RESOURCESFailed to allocate needed resources.

Definition at line 1404 of file DnsProtocol.c.

◆ Dns6Poll()

EFI_STATUS EFIAPI Dns6Poll ( IN EFI_DNS6_PROTOCOL This)

Polls for incoming data packets and processes outgoing data packets.

The Poll() function can be used by network drivers and applications to increase the rate that data packets are moved between the communications device and the transmit and receive queues.

In some systems, the periodic timer event in the managed network driver may not poll the underlying communications device fast enough to transmit and/or receive all data packets without missing incoming packets or dropping outgoing packets. Drivers and applications that are experiencing packet loss should try calling the Poll() function more often.

Parameters
[in]ThisPointer to EFI_DNS6_PROTOCOL instance.
Return values
EFI_SUCCESSIncoming or outgoing data was processed.
EFI_NOT_STARTEDThis EFI DNS Protocol instance has not been started.
EFI_INVALID_PARAMETERThis is NULL.
EFI_NO_MAPPINGThere is no source address is available for use.
EFI_DEVICE_ERRORAn unexpected system or network error occurred.
EFI_TIMEOUTData was dropped out of the transmit and/or receive queue. Consider increasing the polling rate.

Definition at line 1650 of file DnsProtocol.c.

◆ Dns6RemoveTokenEntry()

EFI_STATUS Dns6RemoveTokenEntry ( IN NET_MAP TokenMap,
IN DNS6_TOKEN_ENTRY TokenEntry 
)

Remove TokenEntry from TokenMap.

Parameters
[in]TokenMapAll DNSv6 Token entrys.
[in]TokenEntryTokenEntry need to be removed.
Return values
EFI_SUCCESSRemove TokenEntry from TokenMap successfully.
EFI_NOT_FOUNDTokenEntry is not found in TokenMap.

Definition at line 58 of file DnsImpl.c.

◆ Dns6UpdateDnsCache()

EFI_STATUS EFIAPI Dns6UpdateDnsCache ( IN EFI_DNS6_PROTOCOL This,
IN BOOLEAN  DeleteFlag,
IN BOOLEAN  Override,
IN EFI_DNS6_CACHE_ENTRY  DnsCacheEntry 
)

This function is to update the DNS Cache.

The UpdateDnsCache() function is used to add/delete/modify DNS cache entry. DNS cache can be normally dynamically updated after the DNS resolve succeeds. This function provided capability to manually add/delete/modify the DNS cache.

Parameters
[in]ThisPointer to EFI_DNS6_PROTOCOL instance.
[in]DeleteFlagIf FALSE, this function is to add one entry to the DNS Cache. If TRUE, this function will delete matching DNS Cache entry.
[in]OverrideIf TRUE, the matching DNS cache entry will be overwritten with the supplied parameter. If FALSE, EFI_ACCESS_DENIED will be returned if the entry to be added is already existed.
[in]DnsCacheEntryPointer to DNS Cache entry.
Return values
EFI_SUCCESSThe operation completed successfully.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL. DnsCacheEntry.HostName is NULL. DnsCacheEntry.IpAddress is NULL. DnsCacheEntry.Timeout is zero.
EFI_ACCESS_DENIEDThe DNS cache entry already exists and Override is not TRUE.
EFI_OUT_OF_RESOURCEFailed to allocate needed resources.

Definition at line 1597 of file DnsProtocol.c.

◆ DnsDummyExtFree()

VOID EFIAPI DnsDummyExtFree ( IN VOID *  Arg)

Callback of Dns packet. Does nothing.

Parameters
ArgThe context.

Definition at line 518 of file DnsImpl.c.

◆ DnsOnPacketReceived()

VOID EFIAPI DnsOnPacketReceived ( NET_BUF Packet,
UDP_END_POINT EndPoint,
EFI_STATUS  IoStatus,
VOID *  Context 
)

Parse response packet.

Parameters
PacketThe packets received.
EndPointThe local/remote UDP access point
IoStatusThe status of the UDP receive
ContextThe opaque parameter to the function.

Definition at line 1804 of file DnsImpl.c.

◆ DnsOnPacketSent()

VOID EFIAPI DnsOnPacketSent ( NET_BUF Packet,
UDP_END_POINT EndPoint,
EFI_STATUS  IoStatus,
VOID *  Context 
)

Release the net buffer when packet is sent.

Parameters
PacketThe packets received.
EndPointThe local/remote UDP access point
IoStatusThe status of the UDP receive
ContextThe opaque parameter to the function.

Definition at line 1862 of file DnsImpl.c.

◆ DnsOnTimerRetransmit()

VOID EFIAPI DnsOnTimerRetransmit ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

The timer ticking function for the DNS service.

Parameters
EventThe ticking event
ContextThe DNS service instance

The timer ticking function for the DNS services.

Parameters
EventThe ticking event
ContextThe DNS service instance

Definition at line 2098 of file DnsImpl.c.

◆ DnsOnTimerUpdate()

VOID EFIAPI DnsOnTimerUpdate ( IN EFI_EVENT  Event,
IN VOID *  Context 
)

The timer ticking function for the DNS driver.

Parameters
EventThe ticking event
ContextNULL

Definition at line 2219 of file DnsImpl.c.

◆ DnsRetransmit()

EFI_STATUS DnsRetransmit ( IN DNS_INSTANCE Instance,
IN NET_BUF Packet 
)

Retransmit the packet.

Parameters
InstanceThe DNS instance
PacketRetransmit the packet
Return values
EFI_SUCCESSThe packet is retransmitted.
OthersFailed to retransmit.

Definition at line 2054 of file DnsImpl.c.

◆ DoDnsQuery()

EFI_STATUS DoDnsQuery ( IN DNS_INSTANCE Instance,
IN NET_BUF Packet 
)

Query request information.

Parameters
InstanceThe DNS instance
PacketThe packet for querying request information.
Return values
EFI_SUCCESSQuery request information successfully.
OthersFailed to query request information.

Definition at line 1915 of file DnsImpl.c.

◆ GetDns4TokenEntry()

EFI_STATUS EFIAPI GetDns4TokenEntry ( IN NET_MAP TokensMap,
IN EFI_DNS4_COMPLETION_TOKEN Token,
OUT DNS4_TOKEN_ENTRY **  TokenEntry 
)

Get the TokenEntry from the TokensMap.

Parameters
[in]TokensMapAll DNSv4 Token entrys
[in]TokenPointer to the token to be get.
[out]TokenEntryPointer to TokenEntry corresponding Token.
Return values
EFI_SUCCESSGet the TokenEntry from the TokensMap successfully.
EFI_NOT_FOUNDTokenEntry is not found in TokenMap.

Definition at line 215 of file DnsImpl.c.

◆ GetDns6TokenEntry()

EFI_STATUS EFIAPI GetDns6TokenEntry ( IN NET_MAP TokensMap,
IN EFI_DNS6_COMPLETION_TOKEN Token,
OUT DNS6_TOKEN_ENTRY **  TokenEntry 
)

Get the TokenEntry from the TokensMap.

Parameters
[in]TokensMapAll DNSv6 Token entrys
[in]TokenPointer to the token to be get.
[out]TokenEntryPointer to TokenEntry corresponding Token.
Return values
EFI_SUCCESSGet the TokenEntry from the TokensMap successfully.
EFI_NOT_FOUNDTokenEntry is not found in TokenMap.

Definition at line 251 of file DnsImpl.c.

◆ IsValidDnsResponse()

BOOLEAN IsValidDnsResponse ( IN NET_MAP TokensMap,
IN UINT16  Identification,
IN UINT16  Type,
IN UINT16  Class,
OUT NET_MAP_ITEM **  Item 
)

Find out whether the response is valid or invalid.

Parameters
TokensMapAll DNS transmittal Tokens entry.
IdentificationIdentification for queried packet.
TypeType for queried packet.
ClassClass for queried packet.
ItemReturn corresponding Token entry.
Return values
TRUEThe response is valid.
FALSEThe response is invalid.

Definition at line 1069 of file DnsImpl.c.

◆ ParseDnsResponse()

EFI_STATUS ParseDnsResponse ( IN OUT DNS_INSTANCE Instance,
IN UINT8 *  RxString,
IN UINT32  Length,
OUT BOOLEAN *  Completed 
)

Parse Dns Response.

Parameters
InstanceThe DNS instance
RxStringReceived buffer.
LengthReceived buffer length.
CompletedFlag to indicate that Dns response is valid.
Return values
EFI_SUCCESSParse Dns Response successfully.
OthersFailed to parse Dns Response.

Definition at line 1124 of file DnsImpl.c.

◆ UpdateDns4Cache()

EFI_STATUS EFIAPI UpdateDns4Cache ( IN LIST_ENTRY Dns4CacheList,
IN BOOLEAN  DeleteFlag,
IN BOOLEAN  Override,
IN EFI_DNS4_CACHE_ENTRY  DnsCacheEntry 
)

Update Dns4 cache to shared list of caches of all DNSv4 instances.

Parameters
Dns4CacheListAll Dns4 cache list.
DeleteFlagIf FALSE, this function is to add one entry to the DNS Cache. If TRUE, this function will delete matching DNS Cache entry.
OverrideIf TRUE, the matching DNS cache entry will be overwritten with the supplied parameter. If FALSE, EFI_ACCESS_DENIED will be returned if the entry to be added is already exists.
DnsCacheEntryEntry Pointer to DNS Cache entry.
Return values
EFI_SUCCESSUpdate Dns4 cache successfully.
OthersFailed to update Dns4 cache.

Definition at line 762 of file DnsImpl.c.

◆ UpdateDns6Cache()

EFI_STATUS EFIAPI UpdateDns6Cache ( IN LIST_ENTRY Dns6CacheList,
IN BOOLEAN  DeleteFlag,
IN BOOLEAN  Override,
IN EFI_DNS6_CACHE_ENTRY  DnsCacheEntry 
)

Update Dns6 cache to shared list of caches of all DNSv6 instances.

Parameters
Dns6CacheListAll Dns6 cache list.
DeleteFlagIf FALSE, this function is to add one entry to the DNS Cache. If TRUE, this function will delete matching DNS Cache entry.
OverrideIf TRUE, the matching DNS cache entry will be overwritten with the supplied parameter. If FALSE, EFI_ACCESS_DENIED will be returned if the entry to be added is already exists.
DnsCacheEntryEntry Pointer to DNS Cache entry.
Return values
EFI_SUCCESSUpdate Dns6 cache successfully.
OthersFailed to update Dns6 cache.

Definition at line 861 of file DnsImpl.c.

Variable Documentation

◆ gDns4DriverBinding

EFI_DRIVER_BINDING_PROTOCOL gDns4DriverBinding
extern

Definition at line 11 of file DnsDriver.c.

◆ gDns6DriverBinding

EFI_DRIVER_BINDING_PROTOCOL gDns6DriverBinding
extern

Definition at line 20 of file DnsDriver.c.

◆ gDnsComponentName

EFI_COMPONENT_NAME_PROTOCOL gDnsComponentName
extern

Component Name Protocol instance

Definition at line 99 of file ComponentName.c.

◆ gDnsComponentName2

EFI_COMPONENT_NAME2_PROTOCOL gDnsComponentName2
extern

Component Name 2 Protocol instance

Definition at line 109 of file ComponentName.c.

◆ gDnsControllerNameTable

EFI_UNICODE_STRING_TABLE* gDnsControllerNameTable
extern

Definition at line 124 of file ComponentName.c.

◆ mDns4Protocol

EFI_DNS4_PROTOCOL mDns4Protocol
extern

Definition at line 11 of file DnsProtocol.c.

◆ mDns4ServiceBinding

EFI_SERVICE_BINDING_PROTOCOL mDns4ServiceBinding
extern

Definition at line 29 of file DnsDriver.c.

◆ mDns6Protocol

EFI_DNS6_PROTOCOL mDns6Protocol
extern

Definition at line 22 of file DnsProtocol.c.

◆ mDns6ServiceBinding

EFI_SERVICE_BINDING_PROTOCOL mDns6ServiceBinding
extern

Definition at line 34 of file DnsDriver.c.