The Ifconfig command handler tries to return an EFI_STATUS when
the return type should be SHELL_STATUS.
Cc: Cohen Eugene <eugene@hp.com>
Cc: Carsey Jaben <jaben.carsey@intel.com>
Cc: Ye Ting <ting.ye@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Ye Ting <ting.ye@intel.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19110
6f19259b-4bc3-4df7-8a09-
765794883524
&HandleBuffer\r
);\r
if (EFI_ERROR (Status) || (HandleNum == 0)) {\r
&HandleBuffer\r
);\r
if (EFI_ERROR (Status) || (HandleNum == 0)) {\r
\r
@param[in] IfList The pointer of IfList(interface list).\r
\r
\r
@param[in] IfList The pointer of IfList(interface list).\r
\r
- @retval EFI_SUCCESS The ifconfig command list processed successfully.\r
+ @retval SHELL_SUCCESS The ifconfig command list processed successfully.\r
@retval others The ifconfig command list process failed.\r
\r
**/\r
@retval others The ifconfig command list process failed.\r
\r
**/\r
IfConfigShowInterfaceInfo (\r
IN LIST_ENTRY *IfList\r
)\r
IfConfigShowInterfaceInfo (\r
IN LIST_ENTRY *IfList\r
)\r
\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INFO_BREAK), gShellNetwork1HiiHandle);\r
\r
\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INFO_BREAK), gShellNetwork1HiiHandle);\r
\r
+ return SHELL_SUCCESS;\r
\r
@param[in] IfList The pointer of IfList(interface list).\r
\r
\r
@param[in] IfList The pointer of IfList(interface list).\r
\r
- @retval EFI_SUCCESS The ifconfig command clean processed successfully.\r
+ @retval SHELL_SUCCESS The ifconfig command clean processed successfully.\r
@retval others The ifconfig command clean process failed.\r
\r
**/\r
@retval others The ifconfig command clean process failed.\r
\r
**/\r
IfConfigClearInterfaceInfo (\r
IN LIST_ENTRY *IfList\r
)\r
{\r
IfConfigClearInterfaceInfo (\r
IN LIST_ENTRY *IfList\r
)\r
{\r
+ EFI_STATUS Status; \r
+ SHELL_STATUS ShellStatus;\r
LIST_ENTRY *Entry;\r
LIST_ENTRY *Next;\r
IFCONFIG_INTERFACE_CB *IfCb;\r
LIST_ENTRY *Entry;\r
LIST_ENTRY *Next;\r
IFCONFIG_INTERFACE_CB *IfCb;\r
\r
Policy = Ip4Config2PolicyDhcp;\r
Status = EFI_SUCCESS;\r
\r
Policy = Ip4Config2PolicyDhcp;\r
Status = EFI_SUCCESS;\r
+ ShellStatus = SHELL_SUCCESS;\r
\r
if (IsListEmpty (IfList)) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle);\r
\r
if (IsListEmpty (IfList)) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle);\r
sizeof (EFI_IP4_CONFIG2_POLICY),\r
&Policy\r
);\r
sizeof (EFI_IP4_CONFIG2_POLICY),\r
&Policy\r
);\r
if (EFI_ERROR (Status)) {\r
if (EFI_ERROR (Status)) {\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
@param[in] IfList The pointer of IfList(interface list).\r
@param[in] VarArg The pointer of ARG_LIST(Args with "-s" option).\r
\r
@param[in] IfList The pointer of IfList(interface list).\r
@param[in] VarArg The pointer of ARG_LIST(Args with "-s" option).\r
\r
- @retval EFI_SUCCESS The ifconfig command set processed successfully.\r
+ @retval SHELL_SUCCESS The ifconfig command set processed successfully.\r
@retval others The ifconfig command set process failed.\r
\r
**/\r
@retval others The ifconfig command set process failed.\r
\r
**/\r
IfConfigSetInterfaceInfo (\r
IN LIST_ENTRY *IfList,\r
IN ARG_LIST *VarArg\r
)\r
{\r
IfConfigSetInterfaceInfo (\r
IN LIST_ENTRY *IfList,\r
IN ARG_LIST *VarArg\r
)\r
{\r
+ SHELL_STATUS ShellStatus;\r
IFCONFIG_INTERFACE_CB *IfCb;\r
VAR_CHECK_CODE CheckCode;\r
EFI_EVENT TimeOutEvt;\r
IFCONFIG_INTERFACE_CB *IfCb;\r
VAR_CHECK_CODE CheckCode;\r
EFI_EVENT TimeOutEvt;\r
\r
if (IsListEmpty (IfList)) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle);\r
\r
if (IsListEmpty (IfList)) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle);\r
- return EFI_INVALID_PARAMETER;\r
+ return SHELL_INVALID_PARAMETER;\r
//\r
IfCb = NET_LIST_USER_STRUCT (IfList->ForwardLink, IFCONFIG_INTERFACE_CB, Link);\r
Status = EFI_SUCCESS;\r
//\r
IfCb = NET_LIST_USER_STRUCT (IfList->ForwardLink, IFCONFIG_INTERFACE_CB, Link);\r
Status = EFI_SUCCESS;\r
+ ShellStatus = SHELL_SUCCESS;\r
\r
//\r
// Initialize check list mechanism.\r
\r
//\r
// Initialize check list mechanism.\r
&TimeOutEvt\r
);\r
if (EFI_ERROR (Status)) {\r
&TimeOutEvt\r
);\r
if (EFI_ERROR (Status)) {\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
&MappedEvt\r
);\r
if (EFI_ERROR (Status)) {\r
&MappedEvt\r
);\r
if (EFI_ERROR (Status)) {\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
if (IfCb->Policy == Ip4Config2PolicyDhcp) {\r
Status = IfConfigStartIp4 (IfCb->NicHandle, gImageHandle);\r
if (EFI_ERROR(Status)) {\r
if (IfCb->Policy == Ip4Config2PolicyDhcp) {\r
Status = IfConfigStartIp4 (IfCb->NicHandle, gImageHandle);\r
if (EFI_ERROR(Status)) {\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
goto ON_EXIT;\r
}\r
} else {\r
goto ON_EXIT;\r
}\r
} else {\r
&Policy\r
);\r
if (EFI_ERROR(Status)) {\r
&Policy\r
);\r
if (EFI_ERROR(Status)) {\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
sizeof (EFI_IP4_CONFIG2_POLICY),\r
&Policy\r
);\r
sizeof (EFI_IP4_CONFIG2_POLICY),\r
&Policy\r
);\r
if (EFI_ERROR(Status)) {\r
if (EFI_ERROR(Status)) {\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
//\r
Status = NetLibStrToIp4 (VarArg->Arg, &ManualAddress.Address);\r
if (EFI_ERROR(Status)) {\r
//\r
Status = NetLibStrToIp4 (VarArg->Arg, &ManualAddress.Address);\r
if (EFI_ERROR(Status)) {\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
VarArg = VarArg->Next;\r
Status = NetLibStrToIp4 (VarArg->Arg, &ManualAddress.SubnetMask);\r
if (EFI_ERROR(Status)) {\r
VarArg = VarArg->Next;\r
Status = NetLibStrToIp4 (VarArg->Arg, &ManualAddress.SubnetMask);\r
if (EFI_ERROR(Status)) {\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
VarArg = VarArg->Next;\r
Status = NetLibStrToIp4 (VarArg->Arg, &Gateway);\r
if (EFI_ERROR(Status)) {\r
VarArg = VarArg->Next;\r
Status = NetLibStrToIp4 (VarArg->Arg, &Gateway);\r
if (EFI_ERROR(Status)) {\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
MappedEvt\r
);\r
if (EFI_ERROR (Status)) {\r
MappedEvt\r
);\r
if (EFI_ERROR (Status)) {\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
Ip4Config2DataTypeManualAddress,\r
MappedEvt\r
);\r
Ip4Config2DataTypeManualAddress,\r
MappedEvt\r
);\r
if (EFI_ERROR (Status)) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_SET_ADDR_FAILED), gShellNetwork1HiiHandle, Status);\r
if (EFI_ERROR (Status)) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_SET_ADDR_FAILED), gShellNetwork1HiiHandle, Status);\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
DataSize,\r
&Gateway\r
);\r
DataSize,\r
&Gateway\r
);\r
+ if (EFI_ERROR (Status)) {\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
+ goto ON_EXIT;\r
+ }\r
+ \r
VarArg = VarArg->Next;\r
\r
} else if (StrCmp (VarArg->Arg, L"dns") == 0) {\r
VarArg = VarArg->Next;\r
\r
} else if (StrCmp (VarArg->Arg, L"dns") == 0) {\r
while (Tmp != NULL) {\r
Status = NetLibStrToIp4 (Tmp->Arg, Dns + Index);\r
if (EFI_ERROR(Status)) {\r
while (Tmp != NULL) {\r
Status = NetLibStrToIp4 (Tmp->Arg, Dns + Index);\r
if (EFI_ERROR(Status)) {\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
goto ON_EXIT;\r
}\r
Index ++;\r
goto ON_EXIT;\r
}\r
Index ++;\r
+ if (EFI_ERROR (Status)) {\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
+ goto ON_EXIT;\r
+ }\r
\r
@param[in] Private The pointer of IFCONFIG_PRIVATE_DATA.\r
\r
\r
@param[in] Private The pointer of IFCONFIG_PRIVATE_DATA.\r
\r
- @retval EFI_SUCCESS ifconfig command processed successfully.\r
+ @retval SHELL_SUCCESS ifconfig command processed successfully.\r
@retval others The ifconfig command process failed.\r
\r
**/\r
@retval others The ifconfig command process failed.\r
\r
**/\r
IfConfig (\r
IN IFCONFIG_PRIVATE_DATA *Private\r
)\r
{\r
EFI_STATUS Status;\r
IfConfig (\r
IN IFCONFIG_PRIVATE_DATA *Private\r
)\r
{\r
EFI_STATUS Status;\r
+ SHELL_STATUS ShellStatus;\r
+\r
+ ShellStatus = SHELL_SUCCESS;\r
\r
//\r
// Get configure information of all interfaces.\r
\r
//\r
// Get configure information of all interfaces.\r
Private->IfName,\r
&Private->IfList\r
);\r
Private->IfName,\r
&Private->IfList\r
);\r
if (EFI_ERROR (Status)) {\r
if (EFI_ERROR (Status)) {\r
+ ShellStatus = SHELL_NOT_FOUND; \r
goto ON_EXIT;\r
}\r
\r
switch (Private->OpCode) {\r
case IfConfigOpList:\r
goto ON_EXIT;\r
}\r
\r
switch (Private->OpCode) {\r
case IfConfigOpList:\r
- Status = IfConfigShowInterfaceInfo (&Private->IfList);\r
+ ShellStatus = IfConfigShowInterfaceInfo (&Private->IfList);\r
break;\r
\r
case IfConfigOpClear:\r
break;\r
\r
case IfConfigOpClear:\r
- Status = IfConfigClearInterfaceInfo (&Private->IfList);\r
+ ShellStatus = IfConfigClearInterfaceInfo (&Private->IfList);\r
break;\r
\r
case IfConfigOpSet:\r
break;\r
\r
case IfConfigOpSet:\r
- Status = IfConfigSetInterfaceInfo (&Private->IfList, Private->VarArg);\r
+ ShellStatus = IfConfigSetInterfaceInfo (&Private->IfList, Private->VarArg);\r
- Status = EFI_ABORTED;\r
+ ShellStatus = SHELL_UNSUPPORTED;\r
EFI_STATUS Status;\r
IFCONFIG_PRIVATE_DATA *Private;\r
LIST_ENTRY *ParamPackage;\r
EFI_STATUS Status;\r
IFCONFIG_PRIVATE_DATA *Private;\r
LIST_ENTRY *ParamPackage;\r
+ SHELL_STATUS ShellStatus;\r
CONST CHAR16 *ValueStr;\r
ARG_LIST *ArgList;\r
CHAR16 *ProblemParam;\r
CHAR16 *Str;\r
CONST CHAR16 *ValueStr;\r
ARG_LIST *ArgList;\r
CHAR16 *ProblemParam;\r
CHAR16 *Str;\r
+ \r
+ Status = EFI_INVALID_PARAMETER;\r
+ ShellStatus = SHELL_SUCCESS;\r
\r
Status = ShellCommandLineParseEx (mIfConfigCheckList, &ParamPackage, &ProblemParam, TRUE, FALSE);\r
if (EFI_ERROR (Status)) {\r
\r
Status = ShellCommandLineParseEx (mIfConfigCheckList, &ParamPackage, &ProblemParam, TRUE, FALSE);\r
if (EFI_ERROR (Status)) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellNetwork1HiiHandle, L"ifconfig", ProblemParam);\r
+ if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellNetwork1HiiHandle, L"ifconfig", ProblemParam);\r
+ FreePool(ProblemParam);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ } else {\r
+ ASSERT(FALSE);\r
+ }\r
+ \r
//\r
if (ShellCommandLineGetFlag (ParamPackage, L"-c")) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_UNSUPPORTED_OPTION), gShellNetwork1HiiHandle,L"-c");\r
//\r
if (ShellCommandLineGetFlag (ParamPackage, L"-c")) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_UNSUPPORTED_OPTION), gShellNetwork1HiiHandle,L"-c");\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
if (!ShellCommandLineGetFlag (ParamPackage, L"-r") && !ShellCommandLineGetFlag (ParamPackage, L"-s") &&\r
!ShellCommandLineGetFlag (ParamPackage, L"-l")) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_LACK_OPTION), gShellNetwork1HiiHandle);\r
if (!ShellCommandLineGetFlag (ParamPackage, L"-r") && !ShellCommandLineGetFlag (ParamPackage, L"-s") &&\r
!ShellCommandLineGetFlag (ParamPackage, L"-l")) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_LACK_OPTION), gShellNetwork1HiiHandle);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
((ShellCommandLineGetFlag (ParamPackage, L"-r")) && (ShellCommandLineGetFlag (ParamPackage, L"-l"))) ||\r
((ShellCommandLineGetFlag (ParamPackage, L"-s")) && (ShellCommandLineGetFlag (ParamPackage, L"-l")))) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CON), gShellNetwork1HiiHandle, L"ifconfig");\r
((ShellCommandLineGetFlag (ParamPackage, L"-r")) && (ShellCommandLineGetFlag (ParamPackage, L"-l"))) ||\r
((ShellCommandLineGetFlag (ParamPackage, L"-s")) && (ShellCommandLineGetFlag (ParamPackage, L"-l")))) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CON), gShellNetwork1HiiHandle, L"ifconfig");\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
- Status = EFI_INVALID_PARAMETER;\r
-\r
Private = AllocateZeroPool (sizeof (IFCONFIG_PRIVATE_DATA));\r
Private = AllocateZeroPool (sizeof (IFCONFIG_PRIVATE_DATA));\r
- Status = EFI_OUT_OF_RESOURCES;\r
+ ShellStatus = SHELL_OUT_OF_RESOURCES;\r
ValueStr = ShellCommandLineGetValue (ParamPackage, L"-s");\r
if (ValueStr == NULL) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_LACK_INTERFACE), gShellNetwork1HiiHandle);\r
ValueStr = ShellCommandLineGetValue (ParamPackage, L"-s");\r
if (ValueStr == NULL) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_LACK_INTERFACE), gShellNetwork1HiiHandle);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
\r
if (Private->IfName == NULL || Private->VarArg == NULL) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_LACK_COMMAND), gShellNetwork1HiiHandle);\r
\r
if (Private->IfName == NULL || Private->VarArg == NULL) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG_LACK_COMMAND), gShellNetwork1HiiHandle);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
//\r
// Main process of ifconfig.\r
//\r
//\r
// Main process of ifconfig.\r
//\r
- Status = IfConfig (Private);\r
+ ShellStatus = IfConfig (Private);\r
IfConfigCleanup (Private);\r
}\r
\r
IfConfigCleanup (Private);\r
}\r
\r