Reviewed-by: Zachary Clark-Williams <zachary.clark-willi...@intel.com>
-----Original Message----- From: Tan, Ming <ming....@intel.com> Sent: Thursday, March 21, 2024 6:16 PM To: devel@edk2.groups.io Cc: Kasbekar, Saloni <saloni.kasbe...@intel.com>; Clark-williams, Zachary <zachary.clark-willi...@intel.com>; Bi, Dandan <dandan...@intel.com>; POLUDOV, FELIX <fel...@ami.com>; Liu, Liqi <liqi....@intel.com> Subject: [PATCH] NetworkPkg/WifiConnectionManagerDxe: Update UI according to UEFI spec REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4736 In UEFI_Spec_2_10_Aug29.pdf page 1694 section 35.5.4 for EFI_BROWSER_ACTION_FORM_OPEN: NOTE: EFI_FORM_BROWSER2_PROTOCOL.BrowserCallback() cannot be used with this browser action because question values have not been retrieved yet. So should not call HiiGetBrowserData() and HiiSetBrowserData() in FORM_OPEN call back function. Now use wifi list key and enroll cert key instead of the connect action key, move wifi info display from open action to close action. Cc: Saloni Kasbekar <saloni.kasbe...@intel.com> Cc: Zachary Clark-williams <zachary.clark-willi...@intel.com> Cc: Dandan Bi <dandan...@intel.com> Cc: Felix Polyudov <fel...@ami.com> Signed-off-by: Liqi Liu <liqi....@intel.com> Signed-off-by: Ming Tan <ming....@intel.com> --- PR: https://github.com/tianocore/edk2/pull/5487 .../WifiConnectionMgrHiiConfigAccess.c | 113 ++++++++++++------ 1 file changed, 74 insertions(+), 39 deletions(-) diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c index 431fcbb33a..f242bdf056 100644 --- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c +++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAcce +++ ss.c @@ -1412,7 +1412,9 @@ WifiMgrDxeHiiConfigAccessCallback ( return EFI_OUT_OF_RESOURCES; } - HiiGetBrowserData (&gWifiConfigFormSetGuid, mVendorStorageName, BufferSize, (UINT8 *)IfrNvData);+ if (Action != EFI_BROWSER_ACTION_FORM_OPEN) {+ HiiGetBrowserData (&gWifiConfigFormSetGuid, mVendorStorageName, BufferSize, (UINT8 *)IfrNvData);+ } if (Action == EFI_BROWSER_ACTION_FORM_OPEN) { switch (QuestionId) {@@ -1438,43 +1440,6 @@ WifiMgrDxeHiiConfigAccessCallback ( break; - case KEY_CONNECT_ACTION:-- if (Private->CurrentNic->UserSelectedProfile == NULL) {- break;- }-- Profile = Private->CurrentNic->UserSelectedProfile;-- //- // Enter the network connection configuration page- // Recovery from restored data- //- if (HiiSetString (Private->RegisteredHandle, STRING_TOKEN (STR_SSID), Profile->SSId, NULL) == 0) {- return EFI_OUT_OF_RESOURCES;- }-- IfrNvData->SecurityType = Profile->SecurityType;- if (HiiSetString (- Private->RegisteredHandle,- STRING_TOKEN (STR_SECURITY_TYPE),- mSecurityType[IfrNvData->SecurityType],- NULL- ) == 0)- {- return EFI_OUT_OF_RESOURCES;- }-- if ((IfrNvData->SecurityType == SECURITY_TYPE_WPA2_ENTERPRISE) ||- (IfrNvData->SecurityType == SECURITY_TYPE_WPA3_ENTERPRISE))- {- IfrNvData->EapAuthMethod = Profile->EapAuthMethod;- IfrNvData->EapSecondAuthMethod = Profile->EapSecondAuthMethod;- StrCpyS (IfrNvData->EapIdentity, EAP_IDENTITY_SIZE, Profile->EapIdentity);- }-- break;- case KEY_ENROLLED_CERT_NAME: if (Private->CurrentNic->UserSelectedProfile == NULL) {@@ -1524,6 +1489,43 @@ WifiMgrDxeHiiConfigAccessCallback ( } } else if (Action == EFI_BROWSER_ACTION_FORM_CLOSE) { switch (QuestionId) {+ case KEY_EAP_ENROLL_CERT_FROM_FILE:++ if (Private->CurrentNic->UserSelectedProfile == NULL) {+ break;+ }++ Profile = Private->CurrentNic->UserSelectedProfile;++ //+ // Enter the network connection configuration page+ // Recovery from restored data+ //+ if (HiiSetString (Private->RegisteredHandle, STRING_TOKEN (STR_SSID), Profile->SSId, NULL) == 0) {+ return EFI_OUT_OF_RESOURCES;+ }++ IfrNvData->SecurityType = Profile->SecurityType;+ if (HiiSetString (+ Private->RegisteredHandle,+ STRING_TOKEN (STR_SECURITY_TYPE),+ mSecurityType[IfrNvData->SecurityType],+ NULL+ ) == 0)+ {+ return EFI_OUT_OF_RESOURCES;+ }++ if ( (IfrNvData->SecurityType == SECURITY_TYPE_WPA2_ENTERPRISE)+ || (IfrNvData->SecurityType == SECURITY_TYPE_WPA3_ENTERPRISE))+ {+ IfrNvData->EapAuthMethod = Profile->EapAuthMethod;+ IfrNvData->EapSecondAuthMethod = Profile->EapSecondAuthMethod;+ StrCpyS (IfrNvData->EapIdentity, EAP_IDENTITY_SIZE, Profile->EapIdentity);+ }++ break;+ case KEY_CONNECT_ACTION: if (Private->CurrentNic->UserSelectedProfile == NULL) {@@ -1909,6 +1911,39 @@ WifiMgrDxeHiiConfigAccessCallback ( NULL ); }++ if (Private->CurrentNic->UserSelectedProfile == NULL) {+ break;+ }++ Profile = Private->CurrentNic->UserSelectedProfile;++ //+ // Enter the network connection configuration page+ // Recovery from restored data+ //+ if (HiiSetString (Private->RegisteredHandle, STRING_TOKEN (STR_SSID), Profile->SSId, NULL) == 0) {+ return EFI_OUT_OF_RESOURCES;+ }++ IfrNvData->SecurityType = Profile->SecurityType;+ if (HiiSetString (+ Private->RegisteredHandle,+ STRING_TOKEN (STR_SECURITY_TYPE),+ mSecurityType[IfrNvData->SecurityType],+ NULL+ ) == 0)+ {+ return EFI_OUT_OF_RESOURCES;+ }++ if ( (IfrNvData->SecurityType == SECURITY_TYPE_WPA2_ENTERPRISE)+ || (IfrNvData->SecurityType == SECURITY_TYPE_WPA3_ENTERPRISE))+ {+ IfrNvData->EapAuthMethod = Profile->EapAuthMethod;+ IfrNvData->EapSecondAuthMethod = Profile->EapSecondAuthMethod;+ StrCpyS (IfrNvData->EapIdentity, EAP_IDENTITY_SIZE, Profile->EapIdentity);+ } } break;@@ -1944,7 +1979,7 @@ WifiMgrDxeHiiConfigAccessCallback ( } } - if (!EFI_ERROR (Status)) {+ if (!EFI_ERROR (Status) && (Action != EFI_BROWSER_ACTION_FORM_OPEN)) { // // Pass changed uncommitted data back to Form Browser. //-- 2.31.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#117605): https://edk2.groups.io/g/devel/message/117605 Mute This Topic: https://groups.io/mt/105077953/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-