mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-29 08:34:07 +02:00
1. Update iSCSI UI to be more user-friendly.
2. Fix potential memory leak issue in IScsiConfig.c. Signed-off-by: tye Reviewed-by: xdu2 Reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12245 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
329e5116b6
commit
c0d494b5a7
@ -421,15 +421,16 @@ IScsiConvertAttemptConfigDataToIfrNvData (
|
|||||||
AsciiStrToUnicodeStr (Attempt->AttemptName, IfrNvData->AttemptName);
|
AsciiStrToUnicodeStr (Attempt->AttemptName, IfrNvData->AttemptName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Convert the IFR data to iSCSI configuration data.
|
Convert the IFR data to iSCSI configuration data.
|
||||||
|
|
||||||
@param[in] IfrNvData The IFR nv data.
|
@param[in] IfrNvData Point to ISCSI_CONFIG_IFR_NVDATA.
|
||||||
@param[in, out] Attempt The iSCSI attempt config data.
|
@param[in, out] Attempt The iSCSI attempt config data.
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER Any input or configured parameter is invalid.
|
@retval EFI_INVALID_PARAMETER Any input or configured parameter is invalid.
|
||||||
@retval EFI_NOT_FOUND Cannot find the corresponding variable.
|
@retval EFI_NOT_FOUND Cannot find the corresponding variable.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES The operation is failed due to lack of resources.
|
||||||
|
@retval EFI_ABORTED The operation is aborted.
|
||||||
@retval EFI_SUCCESS The operation is completed successfully.
|
@retval EFI_SUCCESS The operation is completed successfully.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
@ -451,6 +452,11 @@ IScsiConvertIfrNvDataToAttemptConfigData (
|
|||||||
CHAR16 IpMode[64];
|
CHAR16 IpMode[64];
|
||||||
ISCSI_NIC_INFO *NicInfo;
|
ISCSI_NIC_INFO *NicInfo;
|
||||||
EFI_INPUT_KEY Key;
|
EFI_INPUT_KEY Key;
|
||||||
|
UINT8 *AttemptConfigOrder;
|
||||||
|
UINTN AttemptConfigOrderSize;
|
||||||
|
UINT8 *AttemptOrderTmp;
|
||||||
|
UINTN TotalNumber;
|
||||||
|
EFI_STATUS Status;
|
||||||
|
|
||||||
if (IfrNvData == NULL || Attempt == NULL) {
|
if (IfrNvData == NULL || Attempt == NULL) {
|
||||||
return EFI_INVALID_PARAMETER;
|
return EFI_INVALID_PARAMETER;
|
||||||
@ -614,6 +620,61 @@ IScsiConvertIfrNvDataToAttemptConfigData (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Update the iSCSI Mode data and record it in attempt help info.
|
||||||
|
//
|
||||||
|
Attempt->SessionConfigData.Enabled = IfrNvData->Enabled;
|
||||||
|
if (IfrNvData->Enabled == ISCSI_DISABLED) {
|
||||||
|
UnicodeSPrint (IScsiMode, 64, L"Disabled");
|
||||||
|
} else if (IfrNvData->Enabled == ISCSI_ENABLED) {
|
||||||
|
UnicodeSPrint (IScsiMode, 64, L"Enabled");
|
||||||
|
} else if (IfrNvData->Enabled == ISCSI_ENABLED_FOR_MPIO) {
|
||||||
|
UnicodeSPrint (IScsiMode, 64, L"Enabled for MPIO");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (IfrNvData->IpMode == IP_MODE_IP4) {
|
||||||
|
UnicodeSPrint (IpMode, 64, L"IP4");
|
||||||
|
} else if (IfrNvData->IpMode == IP_MODE_IP6) {
|
||||||
|
UnicodeSPrint (IpMode, 64, L"IP6");
|
||||||
|
} else if (IfrNvData->IpMode == IP_MODE_AUTOCONFIG) {
|
||||||
|
UnicodeSPrint (IpMode, 64, L"Autoconfigure");
|
||||||
|
}
|
||||||
|
|
||||||
|
NicInfo = IScsiGetNicInfoByIndex (Attempt->NicIndex);
|
||||||
|
if (NicInfo == NULL) {
|
||||||
|
return EFI_NOT_FOUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
MacString = (CHAR16 *) AllocateZeroPool (ISCSI_MAX_MAC_STRING_LEN * sizeof (CHAR16));
|
||||||
|
if (MacString == NULL) {
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
|
|
||||||
|
AsciiStrToUnicodeStr (Attempt->MacString, MacString);
|
||||||
|
|
||||||
|
UnicodeSPrint (
|
||||||
|
mPrivate->PortString,
|
||||||
|
(UINTN) ISCSI_NAME_IFR_MAX_SIZE,
|
||||||
|
L"MAC: %s, PFA: Bus %d | Dev %d | Func %d, iSCSI mode: %s, IP version: %s",
|
||||||
|
MacString,
|
||||||
|
NicInfo->BusNumber,
|
||||||
|
NicInfo->DeviceNumber,
|
||||||
|
NicInfo->FunctionNumber,
|
||||||
|
IScsiMode,
|
||||||
|
IpMode
|
||||||
|
);
|
||||||
|
|
||||||
|
Attempt->AttemptTitleHelpToken = HiiSetString (
|
||||||
|
mCallbackInfo->RegisteredHandle,
|
||||||
|
Attempt->AttemptTitleHelpToken,
|
||||||
|
mPrivate->PortString,
|
||||||
|
NULL
|
||||||
|
);
|
||||||
|
if (Attempt->AttemptTitleHelpToken == 0) {
|
||||||
|
FreePool (MacString);
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check whether this attempt is an existing one.
|
// Check whether this attempt is an existing one.
|
||||||
//
|
//
|
||||||
@ -683,7 +744,70 @@ IScsiConvertIfrNvDataToAttemptConfigData (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (ExistAttempt == NULL && IfrNvData->Enabled != ISCSI_DISABLED) {
|
} else if (ExistAttempt == NULL) {
|
||||||
|
//
|
||||||
|
// When a new attempt is created, pointer of the attempt is saved to
|
||||||
|
// mPrivate->NewAttempt, and also saved to mCallbackInfo->Current in
|
||||||
|
// IScsiConfigProcessDefault. If input Attempt does not match any existing
|
||||||
|
// attempt, it should be a new created attempt. Save it to system now.
|
||||||
|
//
|
||||||
|
ASSERT (Attempt == mPrivate->NewAttempt);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Save current order number for this attempt.
|
||||||
|
//
|
||||||
|
AttemptConfigOrder = IScsiGetVariableAndSize (
|
||||||
|
L"AttemptOrder",
|
||||||
|
&mVendorGuid,
|
||||||
|
&AttemptConfigOrderSize
|
||||||
|
);
|
||||||
|
|
||||||
|
TotalNumber = AttemptConfigOrderSize / sizeof (UINT8);
|
||||||
|
TotalNumber++;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Append the new created attempt order to the end.
|
||||||
|
//
|
||||||
|
AttemptOrderTmp = AllocateZeroPool (TotalNumber * sizeof (UINT8));
|
||||||
|
if (AttemptOrderTmp == NULL) {
|
||||||
|
if (AttemptConfigOrder != NULL) {
|
||||||
|
FreePool (AttemptConfigOrder);
|
||||||
|
}
|
||||||
|
return EFI_OUT_OF_RESOURCES;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AttemptConfigOrder != NULL) {
|
||||||
|
CopyMem (AttemptOrderTmp, AttemptConfigOrder, AttemptConfigOrderSize);
|
||||||
|
FreePool (AttemptConfigOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
AttemptOrderTmp[TotalNumber - 1] = Attempt->AttemptConfigIndex;
|
||||||
|
AttemptConfigOrder = AttemptOrderTmp;
|
||||||
|
AttemptConfigOrderSize = TotalNumber * sizeof (UINT8);
|
||||||
|
|
||||||
|
Status = gRT->SetVariable (
|
||||||
|
L"AttemptOrder",
|
||||||
|
&mVendorGuid,
|
||||||
|
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
|
||||||
|
AttemptConfigOrderSize,
|
||||||
|
AttemptConfigOrder
|
||||||
|
);
|
||||||
|
FreePool (AttemptConfigOrder);
|
||||||
|
if (EFI_ERROR (Status)) {
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Insert new created attempt to array.
|
||||||
|
//
|
||||||
|
InsertTailList (&mPrivate->AttemptConfigs, &Attempt->Link);
|
||||||
|
mPrivate->AttemptCount++;
|
||||||
|
//
|
||||||
|
// Reset mPrivate->NewAttempt to NULL, which indicates none attempt is created
|
||||||
|
// but not saved now.
|
||||||
|
//
|
||||||
|
mPrivate->NewAttempt = NULL;
|
||||||
|
|
||||||
if (IfrNvData->Enabled == ISCSI_ENABLED_FOR_MPIO) {
|
if (IfrNvData->Enabled == ISCSI_ENABLED_FOR_MPIO) {
|
||||||
//
|
//
|
||||||
// This new Attempt is enabled for MPIO; enable the multipath mode.
|
// This new Attempt is enabled for MPIO; enable the multipath mode.
|
||||||
@ -693,61 +817,8 @@ IScsiConvertIfrNvDataToAttemptConfigData (
|
|||||||
} else if (IfrNvData->Enabled == ISCSI_ENABLED) {
|
} else if (IfrNvData->Enabled == ISCSI_ENABLED) {
|
||||||
mPrivate->SinglePathCount++;
|
mPrivate->SinglePathCount++;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//
|
IScsiConfigUpdateAttempt ();
|
||||||
// Update the iSCSI Mode data and record it in attempt help info.
|
|
||||||
//
|
|
||||||
Attempt->SessionConfigData.Enabled = IfrNvData->Enabled;
|
|
||||||
if (IfrNvData->Enabled == ISCSI_DISABLED) {
|
|
||||||
UnicodeSPrint (IScsiMode, 64, L"Disabled");
|
|
||||||
} else if (IfrNvData->Enabled == ISCSI_ENABLED) {
|
|
||||||
UnicodeSPrint (IScsiMode, 64, L"Enabled");
|
|
||||||
} else if (IfrNvData->Enabled == ISCSI_ENABLED_FOR_MPIO) {
|
|
||||||
UnicodeSPrint (IScsiMode, 64, L"Enabled for MPIO");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IfrNvData->IpMode == IP_MODE_IP4) {
|
|
||||||
UnicodeSPrint (IpMode, 64, L"IP4");
|
|
||||||
} else if (IfrNvData->IpMode == IP_MODE_IP6) {
|
|
||||||
UnicodeSPrint (IpMode, 64, L"IP6");
|
|
||||||
} else if (IfrNvData->IpMode == IP_MODE_AUTOCONFIG) {
|
|
||||||
UnicodeSPrint (IpMode, 64, L"Autoconfigure");
|
|
||||||
}
|
|
||||||
|
|
||||||
NicInfo = IScsiGetNicInfoByIndex (Attempt->NicIndex);
|
|
||||||
if (NicInfo == NULL) {
|
|
||||||
return EFI_NOT_FOUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
MacString = (CHAR16 *) AllocateZeroPool (ISCSI_MAX_MAC_STRING_LEN * sizeof (CHAR16));
|
|
||||||
if (MacString == NULL) {
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
AsciiStrToUnicodeStr (Attempt->MacString, MacString);
|
|
||||||
|
|
||||||
UnicodeSPrint (
|
|
||||||
mPrivate->PortString,
|
|
||||||
(UINTN) ISCSI_NAME_IFR_MAX_SIZE,
|
|
||||||
L"MAC: %s, PFA: Bus %d | Dev %d | Func %d, iSCSI mode: %s, IP version: %s",
|
|
||||||
MacString,
|
|
||||||
NicInfo->BusNumber,
|
|
||||||
NicInfo->DeviceNumber,
|
|
||||||
NicInfo->FunctionNumber,
|
|
||||||
IScsiMode,
|
|
||||||
IpMode
|
|
||||||
);
|
|
||||||
|
|
||||||
Attempt->AttemptTitleHelpToken = HiiSetString (
|
|
||||||
mCallbackInfo->RegisteredHandle,
|
|
||||||
Attempt->AttemptTitleHelpToken,
|
|
||||||
mPrivate->PortString,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
if (Attempt->AttemptTitleHelpToken == 0) {
|
|
||||||
FreePool (MacString);
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -919,7 +990,7 @@ IScsiConfigAddAttempt (
|
|||||||
MacString
|
MacString
|
||||||
);
|
);
|
||||||
|
|
||||||
UnicodeSPrint (mPrivate->PortString, (UINTN) ISCSI_NAME_IFR_MAX_SIZE, L"Port %s", MacString);
|
UnicodeSPrint (mPrivate->PortString, (UINTN) ISCSI_NAME_IFR_MAX_SIZE, L"MAC %s", MacString);
|
||||||
PortTitleToken = HiiSetString (
|
PortTitleToken = HiiSetString (
|
||||||
mCallbackInfo->RegisteredHandle,
|
mCallbackInfo->RegisteredHandle,
|
||||||
0,
|
0,
|
||||||
@ -1081,7 +1152,8 @@ IScsiConfigDeleteAttempts (
|
|||||||
|
|
||||||
AttemptNewOrder = AllocateZeroPool (AttemptConfigOrderSize);
|
AttemptNewOrder = AllocateZeroPool (AttemptConfigOrderSize);
|
||||||
if (AttemptNewOrder == NULL) {
|
if (AttemptNewOrder == NULL) {
|
||||||
return EFI_OUT_OF_RESOURCES;
|
Status = EFI_OUT_OF_RESOURCES;
|
||||||
|
goto Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
Total = AttemptConfigOrderSize / sizeof (UINT8);
|
Total = AttemptConfigOrderSize / sizeof (UINT8);
|
||||||
@ -1193,8 +1265,13 @@ IScsiConfigDeleteAttempts (
|
|||||||
);
|
);
|
||||||
|
|
||||||
Error:
|
Error:
|
||||||
FreePool (AttemptConfigOrder);
|
if (AttemptConfigOrder != NULL) {
|
||||||
FreePool (AttemptNewOrder);
|
FreePool (AttemptConfigOrder);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AttemptNewOrder != NULL) {
|
||||||
|
FreePool (AttemptNewOrder);
|
||||||
|
}
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
@ -1530,10 +1607,19 @@ IScsiConfigProcessDefault (
|
|||||||
UINT8 *AttemptConfigOrder;
|
UINT8 *AttemptConfigOrder;
|
||||||
UINTN AttemptConfigOrderSize;
|
UINTN AttemptConfigOrderSize;
|
||||||
UINTN TotalNumber;
|
UINTN TotalNumber;
|
||||||
UINT8 *AttemptOrderTmp;
|
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
EFI_STATUS Status;
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Free any attempt that is previously created but not saved to system.
|
||||||
|
//
|
||||||
|
if (mPrivate->NewAttempt != NULL) {
|
||||||
|
FreePool (mPrivate->NewAttempt);
|
||||||
|
mPrivate->NewAttempt = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Is User creating a new attempt?
|
||||||
|
//
|
||||||
NewAttempt = FALSE;
|
NewAttempt = FALSE;
|
||||||
|
|
||||||
if ((KeyValue >= KEY_MAC_ENTRY_BASE) &&
|
if ((KeyValue >= KEY_MAC_ENTRY_BASE) &&
|
||||||
@ -1567,7 +1653,7 @@ IScsiConfigProcessDefault (
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Create the new attempt and save to NVR.
|
// Create new attempt.
|
||||||
//
|
//
|
||||||
|
|
||||||
AttemptConfigData = AllocateZeroPool (sizeof (ISCSI_ATTEMPT_CONFIG_NVDATA));
|
AttemptConfigData = AllocateZeroPool (sizeof (ISCSI_ATTEMPT_CONFIG_NVDATA));
|
||||||
@ -1612,46 +1698,14 @@ IScsiConfigProcessDefault (
|
|||||||
|
|
||||||
TotalNumber++;
|
TotalNumber++;
|
||||||
|
|
||||||
//
|
|
||||||
// Append the new created attempt order to the end.
|
|
||||||
//
|
|
||||||
AttemptOrderTmp = AllocateZeroPool (TotalNumber * sizeof (UINT8));
|
|
||||||
if (AttemptOrderTmp == NULL) {
|
|
||||||
FreePool (AttemptConfigData);
|
|
||||||
if (AttemptConfigOrder != NULL) {
|
|
||||||
FreePool (AttemptConfigOrder);
|
|
||||||
}
|
|
||||||
return EFI_OUT_OF_RESOURCES;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (AttemptConfigOrder != NULL) {
|
|
||||||
CopyMem (AttemptOrderTmp, AttemptConfigOrder, AttemptConfigOrderSize);
|
|
||||||
FreePool (AttemptConfigOrder);
|
|
||||||
}
|
|
||||||
|
|
||||||
AttemptOrderTmp[TotalNumber - 1] = CurrentAttemptConfigIndex;
|
|
||||||
AttemptConfigOrder = AttemptOrderTmp;
|
|
||||||
AttemptConfigOrderSize = TotalNumber * sizeof (UINT8);
|
|
||||||
|
|
||||||
Status = gRT->SetVariable (
|
|
||||||
L"AttemptOrder",
|
|
||||||
&mVendorGuid,
|
|
||||||
EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
|
|
||||||
AttemptConfigOrderSize,
|
|
||||||
AttemptConfigOrder
|
|
||||||
);
|
|
||||||
FreePool (AttemptConfigOrder);
|
|
||||||
if (EFI_ERROR (Status)) {
|
|
||||||
FreePool (AttemptConfigData);
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Record the mapping between attempt order and attempt's configdata.
|
// Record the mapping between attempt order and attempt's configdata.
|
||||||
//
|
//
|
||||||
AttemptConfigData->AttemptConfigIndex = CurrentAttemptConfigIndex;
|
AttemptConfigData->AttemptConfigIndex = CurrentAttemptConfigIndex;
|
||||||
InsertTailList (&mPrivate->AttemptConfigs, &AttemptConfigData->Link);
|
|
||||||
mPrivate->AttemptCount++;
|
if (AttemptConfigOrder != NULL) {
|
||||||
|
FreePool (AttemptConfigOrder);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Record the MAC info in Config Data.
|
// Record the MAC info in Config Data.
|
||||||
@ -1708,6 +1762,13 @@ IScsiConfigProcessDefault (
|
|||||||
);
|
);
|
||||||
UnicodeStrToAsciiStr (mPrivate->PortString, AttemptConfigData->AttemptName);
|
UnicodeStrToAsciiStr (mPrivate->PortString, AttemptConfigData->AttemptName);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Save the created Attempt temporarily. If user does not save the attempt
|
||||||
|
// by press 'KEY_SAVE_ATTEMPT_CONFIG' later, iSCSI driver would know that
|
||||||
|
// and free resources.
|
||||||
|
//
|
||||||
|
mPrivate->NewAttempt = (VOID *) AttemptConfigData;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//
|
//
|
||||||
// Determine which Attempt user has selected to configure.
|
// Determine which Attempt user has selected to configure.
|
||||||
@ -1734,10 +1795,11 @@ IScsiConfigProcessDefault (
|
|||||||
|
|
||||||
IScsiConvertAttemptConfigDataToIfrNvData (AttemptConfigData, IfrNvData);
|
IScsiConvertAttemptConfigDataToIfrNvData (AttemptConfigData, IfrNvData);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Update current attempt to be a new created attempt or an existing attempt.
|
||||||
|
//
|
||||||
mCallbackInfo->Current = AttemptConfigData;
|
mCallbackInfo->Current = AttemptConfigData;
|
||||||
|
|
||||||
IScsiConfigUpdateAttempt ();
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2496,6 +2558,13 @@ IScsiConfigFormUnload (
|
|||||||
|
|
||||||
ASSERT (mPrivate->NicCount == 0);
|
ASSERT (mPrivate->NicCount == 0);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Free attempt is created but not saved to system.
|
||||||
|
//
|
||||||
|
if (mPrivate->NewAttempt != NULL) {
|
||||||
|
FreePool (mPrivate->NewAttempt);
|
||||||
|
}
|
||||||
|
|
||||||
FreePool (mPrivate);
|
FreePool (mPrivate);
|
||||||
mPrivate = NULL;
|
mPrivate = NULL;
|
||||||
|
|
||||||
|
@ -102,12 +102,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
#define KEY_IGNORE_DELETE_ATTEMPT 0x115
|
#define KEY_IGNORE_DELETE_ATTEMPT 0x115
|
||||||
#define KEY_DELETE_ATTEMPT 0x116
|
#define KEY_DELETE_ATTEMPT 0x116
|
||||||
|
|
||||||
#define KEY_KERBEROS_USER_NAME 0x117
|
|
||||||
#define KEY_KERBEROS_USER_SECRET 0x118
|
|
||||||
#define KEY_KERBEROS_KDC_NAME 0x119
|
|
||||||
#define KEY_KERBEROS_KDC_REALM 0x11a
|
|
||||||
#define KEY_KERBEROS_KDC_IP_ADDR 0x11b
|
|
||||||
|
|
||||||
#define KEY_IP_MODE 0x11c
|
#define KEY_IP_MODE 0x11c
|
||||||
#define KEY_AUTH_TYPE 0x11d
|
#define KEY_AUTH_TYPE 0x11d
|
||||||
#define KEY_CONFIG_ISID 0x11e
|
#define KEY_CONFIG_ISID 0x11e
|
||||||
|
Binary file not shown.
@ -346,75 +346,11 @@ formset
|
|||||||
|
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
suppressif NOT ideqval ISCSI_CONFIG_IFR_NVDATA.AuthenticationType == ISCSI_AUTH_TYPE_KRB;
|
|
||||||
|
|
||||||
checkbox varid = ISCSI_CONFIG_IFR_NVDATA.MutualRequired,
|
|
||||||
prompt = STRING_TOKEN(STR_ISCSI_MUTUAL_REQUIRED),
|
|
||||||
help = STRING_TOKEN(STR_ISCSI_MUTUAL_REQUIRED_HELP),
|
|
||||||
flags = 0,
|
|
||||||
endcheckbox;
|
|
||||||
|
|
||||||
string varid = ISCSI_CONFIG_IFR_NVDATA.KerberosUserName,
|
|
||||||
prompt = STRING_TOKEN(STR_ISCSI_KERBEROS_USER_NAME),
|
|
||||||
help = STRING_TOKEN(STR_ISCSI_KERBEROS_USER_NAME),
|
|
||||||
flags = INTERACTIVE,
|
|
||||||
key = KEY_KERBEROS_USER_NAME,
|
|
||||||
minsize = 0,
|
|
||||||
maxsize = KERBEROS_NAME_MAX_LEN,
|
|
||||||
endstring;
|
|
||||||
|
|
||||||
string varid = ISCSI_CONFIG_IFR_NVDATA.KerberosUserSecret,
|
|
||||||
prompt = STRING_TOKEN(STR_ISCSI_KERBEROS_USER_SECRET),
|
|
||||||
help = STRING_TOKEN(STR_ISCSI_KERBEROS_USER_SECRET),
|
|
||||||
flags = INTERACTIVE,
|
|
||||||
key = KEY_KERBEROS_USER_SECRET,
|
|
||||||
minsize = KERBEROS_SECRET_MIN_LEN,
|
|
||||||
maxsize = KERBEROS_SECRET_MAX_LEN,
|
|
||||||
endstring;
|
|
||||||
|
|
||||||
string varid = ISCSI_CONFIG_IFR_NVDATA.KerberosKDCName,
|
|
||||||
prompt = STRING_TOKEN(STR_ISCSI_KERBEROS_KDC_NAME),
|
|
||||||
help = STRING_TOKEN(STR_ISCSI_KERBEROS_KDC_NAME),
|
|
||||||
flags = INTERACTIVE,
|
|
||||||
key = KEY_KERBEROS_KDC_NAME,
|
|
||||||
minsize = 0,
|
|
||||||
maxsize = KERBEROS_NAME_MAX_LEN,
|
|
||||||
endstring;
|
|
||||||
|
|
||||||
string varid = ISCSI_CONFIG_IFR_NVDATA.KerberosKDCRealm,
|
|
||||||
prompt = STRING_TOKEN(STR_ISCSI_KERBEROS_KDC_REALM),
|
|
||||||
help = STRING_TOKEN(STR_ISCSI_KERBEROS_KDC_REALM),
|
|
||||||
flags = INTERACTIVE,
|
|
||||||
key = KEY_KERBEROS_KDC_REALM,
|
|
||||||
minsize = 0,
|
|
||||||
maxsize = KERBEROS_NAME_MAX_LEN,
|
|
||||||
endstring;
|
|
||||||
|
|
||||||
string varid = ISCSI_CONFIG_IFR_NVDATA.KerberosKDCIp,
|
|
||||||
prompt = STRING_TOKEN(STR_ISCSI_KERBEROS_KDC_IP),
|
|
||||||
help = STRING_TOKEN(STR_ISCSI_KERBEROS_KDC_IP),
|
|
||||||
flags = INTERACTIVE,
|
|
||||||
key = KEY_KERBEROS_KDC_IP_ADDR,
|
|
||||||
minsize = IP_MIN_SIZE,
|
|
||||||
maxsize = IP_MAX_SIZE,
|
|
||||||
endstring;
|
|
||||||
|
|
||||||
numeric varid = ISCSI_CONFIG_IFR_NVDATA.KerberosKDCPort,
|
|
||||||
prompt = STRING_TOKEN(STR_ISCSI_KERBEROS_KDC_PORT),
|
|
||||||
help = STRING_TOKEN(STR_ISCSI_KERBEROS_KDC_PORT),
|
|
||||||
flags = 0,
|
|
||||||
minimum = KERBEROS_KDC_PORT_MIN_NUM,
|
|
||||||
maximum = KERBEROS_KDC_PORT_MAX_NUM,
|
|
||||||
step = 0,
|
|
||||||
endnumeric;
|
|
||||||
|
|
||||||
endif;
|
|
||||||
|
|
||||||
subtitle text = STRING_TOKEN(STR_NULL);
|
subtitle text = STRING_TOKEN(STR_NULL);
|
||||||
|
|
||||||
goto FORMID_ATTEMPT_FORM,
|
goto FORMID_ATTEMPT_FORM,
|
||||||
prompt = STRING_TOKEN (STR_SAVE_CHANGES),
|
prompt = STRING_TOKEN (STR_SAVE_CHANGES),
|
||||||
help = STRING_TOKEN (STR_SAVE_CHANGES),
|
help = STRING_TOKEN (STR_SAVE_CHANGES_HELP),
|
||||||
flags = INTERACTIVE,
|
flags = INTERACTIVE,
|
||||||
key = KEY_SAVE_ATTEMPT_CONFIG;
|
key = KEY_SAVE_ATTEMPT_CONFIG;
|
||||||
|
|
||||||
|
@ -55,6 +55,7 @@ typedef struct {
|
|||||||
LIST_ENTRY AttemptConfigs; // User configured Attempt list.
|
LIST_ENTRY AttemptConfigs; // User configured Attempt list.
|
||||||
CHAR8 InitiatorName[ISCSI_NAME_MAX_SIZE];
|
CHAR8 InitiatorName[ISCSI_NAME_MAX_SIZE];
|
||||||
UINTN InitiatorNameLength;
|
UINTN InitiatorNameLength;
|
||||||
|
VOID *NewAttempt; // Attempt is created but not saved.
|
||||||
} ISCSI_PRIVATE_DATA;
|
} ISCSI_PRIVATE_DATA;
|
||||||
|
|
||||||
extern ISCSI_PRIVATE_DATA *mPrivate;
|
extern ISCSI_PRIVATE_DATA *mPrivate;
|
||||||
|
@ -297,7 +297,7 @@ IScsiMacAddrToStr (
|
|||||||
for (Index = 0; Index < Len; Index++) {
|
for (Index = 0; Index < Len; Index++) {
|
||||||
Str[3 * Index] = (CHAR16) IScsiHexString[(Mac->Addr[Index] >> 4) & 0x0F];
|
Str[3 * Index] = (CHAR16) IScsiHexString[(Mac->Addr[Index] >> 4) & 0x0F];
|
||||||
Str[3 * Index + 1] = (CHAR16) IScsiHexString[Mac->Addr[Index] & 0x0F];
|
Str[3 * Index + 1] = (CHAR16) IScsiHexString[Mac->Addr[Index] & 0x0F];
|
||||||
Str[3 * Index + 2] = L'-';
|
Str[3 * Index + 2] = L':';
|
||||||
}
|
}
|
||||||
|
|
||||||
String = &Str[3 * Index - 1] ;
|
String = &Str[3 * Index - 1] ;
|
||||||
@ -640,6 +640,14 @@ IScsiRemoveNic (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Free attempt is created but not saved to system.
|
||||||
|
//
|
||||||
|
if (mPrivate->NewAttempt != NULL) {
|
||||||
|
FreePool (mPrivate->NewAttempt);
|
||||||
|
mPrivate->NewAttempt = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user