UINT8 IpMode; \r
\r
ConfigNvData = &ConfigData->SessionConfigData;\r
-\r
+ ConfigNvData->DnsMode = FALSE;\r
//\r
// "iscsi:"<servername>":"<protocol>":"<port>":"<LUN>":"<targetname>\r
//\r
// Extract SERVERNAME field in the Root Path option.\r
//\r
if (TmpStr[Index] != ISCSI_ROOT_PATH_ADDR_START_DELIMITER) {\r
- Status = EFI_INVALID_PARAMETER;\r
- goto ON_EXIT;\r
+ //\r
+ // The servername is expressed as domain name.\r
+ //\r
+ ConfigNvData->DnsMode = TRUE;\r
} else {\r
Index++;\r
}\r
\r
Fields[RP_FIELD_IDX_SERVERNAME].Str = &TmpStr[Index];\r
\r
- while ((TmpStr[Index] != ISCSI_ROOT_PATH_ADDR_END_DELIMITER) && (Index < Length)) {\r
- Index++;\r
- }\r
+ if (!ConfigNvData->DnsMode) {\r
+ while ((TmpStr[Index] != ISCSI_ROOT_PATH_ADDR_END_DELIMITER)&& (Index < Length)) {\r
+ Index++;\r
+ }\r
\r
- //\r
- // Skip ']' and ':'.\r
- //\r
- TmpStr[Index] = '\0';\r
- Index += 2;\r
+ //\r
+ // Skip ']' and ':'.\r
+ //\r
+ TmpStr[Index] = '\0';\r
+ Index += 2;\r
+ } else {\r
+ while ((TmpStr[Index] != ISCSI_ROOT_PATH_FIELD_DELIMITER) && (Index < Length)) {\r
+ Index++;\r
+ }\r
+ //\r
+ // Skip ':'.\r
+ //\r
+ TmpStr[Index] = '\0';\r
+ Index += 1;\r
+ }\r
\r
Fields[RP_FIELD_IDX_SERVERNAME].Len = (UINT8) AsciiStrLen (Fields[RP_FIELD_IDX_SERVERNAME].Str);\r
\r
//\r
// Server name is expressed as domain name, just save it.\r
//\r
- if ((!NET_IS_DIGIT (*(Field->Str))) && (*(Field->Str) != '[')) {\r
- ConfigNvData->DnsMode = TRUE;\r
+ if (ConfigNvData->DnsMode) {\r
if (Field->Len > sizeof (ConfigNvData->TargetUrl)) {\r
return EFI_INVALID_PARAMETER;\r
}\r