[edk2] [Patch] ShellPkg: Fix wrong return status for Ifconfig.c

2015-12-02 Thread Jiaxin Wu
The Ifconfig command handler tries to return an EFI_STATUS when
the return type should be SHELL_STATUS.

Cc: Cohen, Eugene 
Cc: Carsey, Jaben 
Cc: Ye Ting 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu 
---
 .../UefiShellNetwork1CommandsLib/Ifconfig.c| 102 ++---
 1 file changed, 69 insertions(+), 33 deletions(-)

diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c 
b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
index e16d46a..fb6f575 100644
--- a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
+++ b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
@@ -421,11 +421,11 @@ IfConfigGetInterfaceInfo (
   NULL,
   &HandleNum,
   &HandleBuffer
  );
   if (EFI_ERROR (Status) || (HandleNum == 0)) {
-return EFI_ABORTED;
+return Status;
   }
 
   //
   // Enumerate all handles that installed with ip4 service binding protocol.
   //
@@ -585,15 +585,15 @@ ON_ERROR:
 /**
   The list process of the ifconfig command.
 
   @param[in]   IfListThe pointer of IfList(interface list).
 
-  @retval EFI_SUCCESSThe ifconfig command list processed successfully.
+  @retval SHELL_SUCCESS  The ifconfig command list processed successfully.
   @retval others The ifconfig command list process failed.
 
 **/
-EFI_STATUS
+SHELL_STATUS
 IfConfigShowInterfaceInfo (
   IN LIST_ENTRY*IfList
   )
 {
   LIST_ENTRY   *Entry;
@@ -781,35 +781,37 @@ IfConfigShowInterfaceInfo (
 }
   }
   
   ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INFO_BREAK), 
gShellNetwork1HiiHandle);
 
-  return EFI_SUCCESS;
+  return SHELL_SUCCESS;
 }
 
 /**
   The clean process of the ifconfig command to clear interface info.
 
   @param[in]   IfListThe pointer of IfList(interface list).
 
-  @retval EFI_SUCCESSThe ifconfig command clean processed successfully.
+  @retval SHELL_SUCCESS  The ifconfig command clean processed successfully.
   @retval others The ifconfig command clean process failed.
 
 **/
-EFI_STATUS
+SHELL_STATUS
 IfConfigClearInterfaceInfo (
   IN LIST_ENTRY*IfList
   )
 {
-  EFI_STATUSStatus;
+  EFI_STATUSStatus;  
+  SHELL_STATUS  ShellStatus;
   LIST_ENTRY*Entry;
   LIST_ENTRY*Next;
   IFCONFIG_INTERFACE_CB *IfCb;
   EFI_IP4_CONFIG2_POLICYPolicy;
 
   Policy = Ip4Config2PolicyDhcp;
   Status = EFI_SUCCESS;
+  ShellStatus = SHELL_SUCCESS;
 
   if (IsListEmpty (IfList)) {
 ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN 
(STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle);
   }
 
@@ -823,37 +825,37 @@ IfConfigClearInterfaceInfo (
 IfCb->IfCfg,
 Ip4Config2DataTypePolicy,
 sizeof (EFI_IP4_CONFIG2_POLICY),
 &Policy
 );
-
 if (EFI_ERROR (Status)) {
+  ShellStatus = SHELL_ACCESS_DENIED;
   break;
 }
   }
 
-  return Status;
+  return ShellStatus;
 }
 
 /**
   The set process of the ifconfig command.
 
   @param[in]   IfListThe pointer of IfList(interface list).
   @param[in]   VarArgThe pointer of ARG_LIST(Args with "-s" option).
 
-  @retval EFI_SUCCESSThe ifconfig command set processed successfully.
+  @retval SHELL_SUCCESS  The ifconfig command set processed successfully.
   @retval others The ifconfig command set process failed.
 
 **/
-EFI_STATUS
+SHELL_STATUS
 IfConfigSetInterfaceInfo (
   IN LIST_ENTRY*IfList,
   IN ARG_LIST  *VarArg
   )
 {
-
   EFI_STATUS   Status;
+  SHELL_STATUS ShellStatus;
   IFCONFIG_INTERFACE_CB*IfCb;
   VAR_CHECK_CODE   CheckCode;
   EFI_EVENTTimeOutEvt;
   EFI_EVENTMappedEvt;
   BOOLEAN  IsAddressOk;
@@ -870,18 +872,19 @@ IfConfigSetInterfaceInfo (
 
   Dns = NULL;
 
   if (IsListEmpty (IfList)) {
 ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN 
(STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle);
-return EFI_INVALID_PARAMETER;
+return SHELL_INVALID_PARAMETER;
   }
   
   //
   // Make sure to set only one interface each time.
   //
   IfCb   = NET_LIST_USER_STRUCT (IfList->ForwardLink, IFCONFIG_INTERFACE_CB, 
Link);
   Status = EFI_SUCCESS;
+  ShellStatus = SHELL_SUCCESS;
 
   //
   // Initialize check list mechanism.
   //
   CheckCode = IfConfigRetriveCheckListByName(
@@ -899,10 +902,11 @@ IfConfigSetInterfaceInfo (
   NULL,
   NULL,
   &TimeOutEvt
   );
   if (EFI_ERROR (Status)) {
+ShellStatus = SHELL_ACCESS_DENIED;
 goto ON_EXIT;
   }
 
   Status = gBS->CreateEvent (
   EVT_NOTIFY_SIGNAL,
@@ -910,10 +914,11 @@ IfConfigSetInterfaceInfo (
   IfConfigMan

Re: [edk2] [Patch] ShellPkg: Fix wrong return status for Ifconfig.c

2015-12-02 Thread Carsey, Jaben
Reviewed-by: Jaben Carsey 

> -Original Message-
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> Jiaxin Wu
> Sent: Wednesday, December 02, 2015 12:54 AM
> To: edk2-devel@lists.01.org
> Cc: Carsey, Jaben ; Ye, Ting ;
> Cohen, Eugene 
> Subject: [edk2] [Patch] ShellPkg: Fix wrong return status for Ifconfig.c
> Importance: High
> 
> The Ifconfig command handler tries to return an EFI_STATUS when
> the return type should be SHELL_STATUS.
> 
> Cc: Cohen, Eugene 
> Cc: Carsey, Jaben 
> Cc: Ye Ting 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jiaxin Wu 
> ---
>  .../UefiShellNetwork1CommandsLib/Ifconfig.c| 102 ++
> ---
>  1 file changed, 69 insertions(+), 33 deletions(-)
> 
> diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
> b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
> index e16d46a..fb6f575 100644
> --- a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
> +++ b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
> @@ -421,11 +421,11 @@ IfConfigGetInterfaceInfo (
>NULL,
>&HandleNum,
>&HandleBuffer
>   );
>if (EFI_ERROR (Status) || (HandleNum == 0)) {
> -return EFI_ABORTED;
> +return Status;
>}
> 
>//
>// Enumerate all handles that installed with ip4 service binding protocol.
>//
> @@ -585,15 +585,15 @@ ON_ERROR:
>  /**
>The list process of the ifconfig command.
> 
>@param[in]   IfListThe pointer of IfList(interface list).
> 
> -  @retval EFI_SUCCESSThe ifconfig command list processed successfully.
> +  @retval SHELL_SUCCESS  The ifconfig command list processed successfully.
>@retval others The ifconfig command list process failed.
> 
>  **/
> -EFI_STATUS
> +SHELL_STATUS
>  IfConfigShowInterfaceInfo (
>IN LIST_ENTRY*IfList
>)
>  {
>LIST_ENTRY   *Entry;
> @@ -781,35 +781,37 @@ IfConfigShowInterfaceInfo (
>  }
>}
> 
>ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INFO_BREAK),
> gShellNetwork1HiiHandle);
> 
> -  return EFI_SUCCESS;
> +  return SHELL_SUCCESS;
>  }
> 
>  /**
>The clean process of the ifconfig command to clear interface info.
> 
>@param[in]   IfListThe pointer of IfList(interface list).
> 
> -  @retval EFI_SUCCESSThe ifconfig command clean processed successfully.
> +  @retval SHELL_SUCCESS  The ifconfig command clean processed
> successfully.
>@retval others The ifconfig command clean process failed.
> 
>  **/
> -EFI_STATUS
> +SHELL_STATUS
>  IfConfigClearInterfaceInfo (
>IN LIST_ENTRY*IfList
>)
>  {
> -  EFI_STATUSStatus;
> +  EFI_STATUSStatus;
> +  SHELL_STATUS  ShellStatus;
>LIST_ENTRY*Entry;
>LIST_ENTRY*Next;
>IFCONFIG_INTERFACE_CB *IfCb;
>EFI_IP4_CONFIG2_POLICYPolicy;
> 
>Policy = Ip4Config2PolicyDhcp;
>Status = EFI_SUCCESS;
> +  ShellStatus = SHELL_SUCCESS;
> 
>if (IsListEmpty (IfList)) {
>  ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> (STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle);
>}
> 
> @@ -823,37 +825,37 @@ IfConfigClearInterfaceInfo (
>  IfCb->IfCfg,
>  Ip4Config2DataTypePolicy,
>  sizeof (EFI_IP4_CONFIG2_POLICY),
>  &Policy
>  );
> -
>  if (EFI_ERROR (Status)) {
> +  ShellStatus = SHELL_ACCESS_DENIED;
>break;
>  }
>}
> 
> -  return Status;
> +  return ShellStatus;
>  }
> 
>  /**
>The set process of the ifconfig command.
> 
>@param[in]   IfListThe pointer of IfList(interface list).
>@param[in]   VarArgThe pointer of ARG_LIST(Args with "-s" option).
> 
> -  @retval EFI_SUCCESSThe ifconfig command set processed successfully.
> +  @retval SHELL_SUCCESS  The ifconfig command set processed successfully.
>@retval others The ifconfig command set process failed.
> 
>  **/
> -EFI_STATUS
> +SHELL_STATUS
>  IfConfigSetInterfaceInfo (
>IN LIST_ENTRY*IfList,
>IN ARG_LIST  *VarArg
>)
>  {
> -
>EFI_STATUS   Status;
> +  SHELL_STATUS ShellStatus;
>IFCONFIG_INTERFACE_CB*IfCb;
>VAR_CHECK_CODE   CheckCode;
>EFI_EVENTTimeOutEvt;
>   

Re: [edk2] [Patch] ShellPkg: Fix wrong return status for Ifconfig.c

2015-12-02 Thread Ye, Ting
Reviewed-by: Ye Ting  

-Original Message-
From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Jiaxin Wu
Sent: Wednesday, December 02, 2015 4:54 PM
To: edk2-devel@lists.01.org
Cc: Carsey, Jaben; Ye, Ting; Cohen, Eugene
Subject: [edk2] [Patch] ShellPkg: Fix wrong return status for Ifconfig.c

The Ifconfig command handler tries to return an EFI_STATUS when the return type 
should be SHELL_STATUS.

Cc: Cohen, Eugene 
Cc: Carsey, Jaben 
Cc: Ye Ting 
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu 
---
 .../UefiShellNetwork1CommandsLib/Ifconfig.c| 102 ++---
 1 file changed, 69 insertions(+), 33 deletions(-)

diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c 
b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
index e16d46a..fb6f575 100644
--- a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
+++ b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
@@ -421,11 +421,11 @@ IfConfigGetInterfaceInfo (
   NULL,
   &HandleNum,
   &HandleBuffer
  );
   if (EFI_ERROR (Status) || (HandleNum == 0)) {
-return EFI_ABORTED;
+return Status;
   }
 
   //
   // Enumerate all handles that installed with ip4 service binding protocol.
   //
@@ -585,15 +585,15 @@ ON_ERROR:
 /**
   The list process of the ifconfig command.
 
   @param[in]   IfListThe pointer of IfList(interface list).
 
-  @retval EFI_SUCCESSThe ifconfig command list processed successfully.
+  @retval SHELL_SUCCESS  The ifconfig command list processed successfully.
   @retval others The ifconfig command list process failed.
 
 **/
-EFI_STATUS
+SHELL_STATUS
 IfConfigShowInterfaceInfo (
   IN LIST_ENTRY*IfList
   )
 {
   LIST_ENTRY   *Entry;
@@ -781,35 +781,37 @@ IfConfigShowInterfaceInfo (
 }
   }
   
   ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INFO_BREAK), 
gShellNetwork1HiiHandle);
 
-  return EFI_SUCCESS;
+  return SHELL_SUCCESS;
 }
 
 /**
   The clean process of the ifconfig command to clear interface info.
 
   @param[in]   IfListThe pointer of IfList(interface list).
 
-  @retval EFI_SUCCESSThe ifconfig command clean processed successfully.
+  @retval SHELL_SUCCESS  The ifconfig command clean processed successfully.
   @retval others The ifconfig command clean process failed.
 
 **/
-EFI_STATUS
+SHELL_STATUS
 IfConfigClearInterfaceInfo (
   IN LIST_ENTRY*IfList
   )
 {
-  EFI_STATUSStatus;
+  EFI_STATUSStatus;  
+  SHELL_STATUS  ShellStatus;
   LIST_ENTRY*Entry;
   LIST_ENTRY*Next;
   IFCONFIG_INTERFACE_CB *IfCb;
   EFI_IP4_CONFIG2_POLICYPolicy;
 
   Policy = Ip4Config2PolicyDhcp;
   Status = EFI_SUCCESS;
+  ShellStatus = SHELL_SUCCESS;
 
   if (IsListEmpty (IfList)) {
 ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN 
(STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle);
   }
 
@@ -823,37 +825,37 @@ IfConfigClearInterfaceInfo (
 IfCb->IfCfg,
 Ip4Config2DataTypePolicy,
 sizeof (EFI_IP4_CONFIG2_POLICY),
 &Policy
 );
-
 if (EFI_ERROR (Status)) {
+  ShellStatus = SHELL_ACCESS_DENIED;
   break;
 }
   }
 
-  return Status;
+  return ShellStatus;
 }
 
 /**
   The set process of the ifconfig command.
 
   @param[in]   IfListThe pointer of IfList(interface list).
   @param[in]   VarArgThe pointer of ARG_LIST(Args with "-s" option).
 
-  @retval EFI_SUCCESSThe ifconfig command set processed successfully.
+  @retval SHELL_SUCCESS  The ifconfig command set processed successfully.
   @retval others The ifconfig command set process failed.
 
 **/
-EFI_STATUS
+SHELL_STATUS
 IfConfigSetInterfaceInfo (
   IN LIST_ENTRY*IfList,
   IN ARG_LIST  *VarArg
   )
 {
-
   EFI_STATUS   Status;
+  SHELL_STATUS ShellStatus;
   IFCONFIG_INTERFACE_CB*IfCb;
   VAR_CHECK_CODE   CheckCode;
   EFI_EVENTTimeOutEvt;
   EFI_EVENTMappedEvt;
   BOOLEAN  IsAddressOk;
@@ -870,18 +872,19 @@ IfConfigSetInterfaceInfo (
 
   Dns = NULL;
 
   if (IsListEmpty (IfList)) {
 ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN 
(STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle);
-return EFI_INVALID_PARAMETER;
+return SHELL_INVALID_PARAMETER;
   }
   
   //
   // Make sure to set only one interface each time.
   //
   IfCb   = NET_LIST_USER_STRUCT (IfList->ForwardLink, IFCONFIG_INTERFACE_CB, 
Link);
   Status = EFI_SUCCESS;
+  ShellStatus = SHELL_SUCCESS;
 
   //
   // Initialize check list mechanism.
   //
   CheckCode = IfConfigRetriveCheckListByName( @@ -899,10 +902,11 @@ 
IfConfigSetInterfaceIn