-/**\r
- Fill QName for IP querying. QName is a domain name represented as \r
- a sequence of labels, where each label consists of a length octet \r
- followed by that number of octets. The domain name terminates with \r
- the zero length octet for the null label of the root. Caller should \r
- take responsibility to the buffer in QName.\r
-\r
- @param HostName Queried HostName \r
-\r
- @retval NULL Failed to fill QName.\r
- @return QName filled successfully.\r
- \r
-**/ \r
-CHAR8 *\r
-EFIAPI\r
-DnsFillinQNameForQueryIp (\r
- IN CHAR16 *HostName\r
- )\r
-{\r
- CHAR8 *QueryName;\r
- CHAR8 *Header;\r
- CHAR8 *Tail;\r
- UINTN Len;\r
- UINTN Index;\r
-\r
- QueryName = NULL;\r
- Header = NULL;\r
- Tail = NULL;\r
-\r
- QueryName = AllocateZeroPool (DNS_DEFAULT_BLKSIZE);\r
- if (QueryName == NULL) {\r
- return NULL;\r
- }\r
- \r
- Header = QueryName;\r
- Tail = Header + 1;\r
- Len = 0;\r
- for (Index = 0; HostName[Index] != 0; Index++) {\r
- *Tail = (CHAR8) HostName[Index];\r
- if (*Tail == '.') {\r
- *Header = (CHAR8) Len;\r
- Header = Tail;\r
- Tail ++;\r
- Len = 0;\r
- } else {\r
- Tail++;\r
- Len++;\r
- }\r
- }\r
- *Header = (CHAR8) Len;\r
- *Tail = 0;\r
-\r
- return QueryName;\r
-}\r
-\r