\r
IsIdStr = (CHAR16 *) String;\r
\r
- if (StrLen (IsIdStr) != 6) {\r
+ if (StrLen (IsIdStr) != 6 && StrLen (IsIdStr) != 12) {\r
UnicodeSPrint (\r
PortString,\r
(UINTN) ISCSI_NAME_IFR_MAX_SIZE,\r
- L"Error! Input is incorrect, please input 6 hex numbers!\n"\r
+ L"Error! Only last 3 bytes are configurable, please input 6 hex numbers for last 3 bytes only or 12 hex numbers for full SSID!\n"\r
);\r
\r
CreatePopUp (\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
+ if (StrLen (IsIdStr) == 12) {\r
+ IsIdStr += 6;\r
+ }\r
+\r
for (Index = 3; Index < 6; Index++) {\r
CopyMem (TempStr, IsIdStr, sizeof (TempStr));\r
TempStr[2] = L'\0';\r
IScsiIpToStr (&Ip, FALSE, IfrNvData->SubnetMask);\r
CopyMem (&Ip.v4, &SessionConfigData->Gateway, sizeof (EFI_IPv4_ADDRESS));\r
IScsiIpToStr (&Ip, FALSE, IfrNvData->Gateway);\r
+ ZeroMem (IfrNvData->TargetIp, sizeof (IfrNvData->TargetIp));\r
if (SessionConfigData->TargetIp.v4.Addr[0] != '\0') {\r
CopyMem (&Ip.v4, &SessionConfigData->TargetIp, sizeof (EFI_IPv4_ADDRESS));\r
IScsiIpToStr (&Ip, FALSE, IfrNvData->TargetIp);\r
}\r
}\r
CopyMem(IfrNvData->ISCSIDisplayAttemptList, AttemptNameList, ATTEMPT_NAME_LIST_SIZE);\r
- }\r
\r
- NET_LIST_FOR_EACH (Entry, &mPrivate->NicInfoList) {\r
- NicInfo = NET_LIST_USER_STRUCT (Entry, ISCSI_NIC_INFO, Link);\r
- IScsiMacAddrToStr (\r
- &NicInfo->PermanentAddress,\r
- NicInfo->HwAddressSize,\r
- NicInfo->VlanId,\r
- MacString\r
- );\r
- CopyMem (\r
- IfrNvData->ISCSIMacAddr + StrLen (IfrNvData->ISCSIMacAddr),\r
- MacString,\r
- StrLen (MacString) * sizeof (CHAR16)\r
- );\r
+ ZeroMem (IfrNvData->ISCSIMacAddr, sizeof (IfrNvData->ISCSIMacAddr));\r
+ NET_LIST_FOR_EACH (Entry, &mPrivate->NicInfoList) {\r
+ NicInfo = NET_LIST_USER_STRUCT (Entry, ISCSI_NIC_INFO, Link);\r
+ IScsiMacAddrToStr (\r
+ &NicInfo->PermanentAddress,\r
+ NicInfo->HwAddressSize,\r
+ NicInfo->VlanId,\r
+ MacString\r
+ );\r
+ CopyMem (\r
+ IfrNvData->ISCSIMacAddr + StrLen (IfrNvData->ISCSIMacAddr),\r
+ MacString,\r
+ StrLen (MacString) * sizeof (CHAR16)\r
+ );\r
+\r
+ *(IfrNvData->ISCSIMacAddr + StrLen (IfrNvData->ISCSIMacAddr)) = L'/';\r
+ }\r
\r
- *(IfrNvData->ISCSIMacAddr + StrLen (IfrNvData->ISCSIMacAddr)) = L'/';\r
- }\r
+ StringLen = StrLen (IfrNvData->ISCSIMacAddr);\r
+ if (StringLen > 0) {\r
+ *(IfrNvData->ISCSIMacAddr + StringLen - 1) = L'\0';\r
+ }\r
+ }\r
}\r
\r
/**\r
ISCSI_CONFIG_IFR_NVDATA OldIfrNvData;\r
EFI_STATUS Status;\r
EFI_INPUT_KEY Key;\r
+ ISCSI_NIC_INFO *NicInfo;\r
+\r
+ NicInfo = NULL;\r
\r
if ((Action == EFI_BROWSER_ACTION_FORM_OPEN) || (Action == EFI_BROWSER_ACTION_FORM_CLOSE)) {\r
//\r
case KEY_IP_MODE:\r
switch (Value->u8) {\r
case IP_MODE_IP6:\r
+ NicInfo = IScsiGetNicInfoByIndex (Private->Current->NicIndex); \r
+ if(NicInfo == NULL) {\r
+ break;\r
+ }\r
+\r
+ if(!NicInfo->Ipv6Available) { \r
+ //\r
+ // Current NIC doesn't Support IPv6, hence use IPv4. \r
+ // \r
+ IfrNvData->IpMode = IP_MODE_IP4;\r
+ \r
+ CreatePopUp (\r
+ EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,\r
+ &Key,\r
+ L"Current NIC doesn't Support IPv6!",\r
+ NULL\r
+ );\r
+ }\r
+ \r
case IP_MODE_IP4:\r
+ ZeroMem (IfrNvData->LocalIp, sizeof (IfrNvData->LocalIp));\r
+ ZeroMem (IfrNvData->SubnetMask, sizeof (IfrNvData->SubnetMask));\r
+ ZeroMem (IfrNvData->Gateway, sizeof (IfrNvData->Gateway));\r
ZeroMem (IfrNvData->TargetIp, sizeof (IfrNvData->TargetIp));\r
Private->Current->AutoConfigureMode = 0;\r
-\r
+ ZeroMem (&Private->Current->SessionConfigData.LocalIp, sizeof (EFI_IP_ADDRESS));\r
+ ZeroMem (&Private->Current->SessionConfigData.SubnetMask, sizeof (EFI_IPv4_ADDRESS));\r
+ ZeroMem (&Private->Current->SessionConfigData.Gateway, sizeof (EFI_IP_ADDRESS));\r
+ ZeroMem (&Private->Current->SessionConfigData.TargetIp, sizeof (EFI_IP_ADDRESS));\r
+ \r
break;\r
}\r
\r