}\r
\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG6_INFO_BREAK), gShellNetwork2HiiHandle);\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_IFCONFIG6_INFO_NEWLINE), gShellNetwork2HiiHandle);\r
\r
return SHELL_SUCCESS;\r
}\r
The clean process of the IfConfig6 application.\r
\r
@param[in] IfList The pointer of IfList(interface list).\r
+ @param[in] IfName The pointer of interface name.\r
\r
@retval SHELL_SUCCESS The IfConfig6 clean processed successfully.\r
@retval others The IfConfig6 clean process failed.\r
**/\r
SHELL_STATUS\r
IfConfig6ClearInterfaceInfo (\r
- IN LIST_ENTRY *IfList\r
+ IN LIST_ENTRY *IfList,\r
+ IN CHAR16 *IfName\r
)\r
{\r
EFI_STATUS Status;\r
IFCONFIG6_INTERFACE_CB *IfCb;\r
EFI_IP6_CONFIG_POLICY Policy;\r
\r
- Policy = Ip6ConfigPolicyAutomatic;\r
Entry = IfList->ForwardLink;\r
Status = EFI_SUCCESS;\r
ShellStatus = SHELL_SUCCESS;\r
}\r
\r
//\r
- // Go through the interface list.\r
+ // Go through the interface list.If the interface name is specified, then\r
+ // need to refresh the configuration.\r
//\r
while (Entry != IfList) {\r
\r
IfCb = BASE_CR (Entry, IFCONFIG6_INTERFACE_CB, Link);\r
\r
+ if ((IfName != NULL) && (StrCmp (IfName, IfCb->IfInfo->Name) == 0)) {\r
+ Policy = Ip6ConfigPolicyManual;\r
+\r
+ Status = IfCb->IfCfg->SetData (\r
+ IfCb->IfCfg,\r
+ Ip6ConfigDataTypePolicy,\r
+ sizeof (EFI_IP6_CONFIG_POLICY),\r
+ &Policy\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_AD), gShellNetwork2HiiHandle, L"ifconfig6");\r
+ ShellStatus = SHELL_ACCESS_DENIED;\r
+ break;\r
+ }\r
+ }\r
+\r
+ Policy = Ip6ConfigPolicyAutomatic;\r
+\r
Status = IfCb->IfCfg->SetData (\r
IfCb->IfCfg,\r
Ip6ConfigDataTypePolicy,\r
);\r
\r
if (EFI_ERROR (Status)) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_AD), gShellNetwork2HiiHandle, L"ifconfig6");\r
ShellStatus = SHELL_ACCESS_DENIED;\r
break;\r
}\r
break;\r
\r
case IfConfig6OpClear:\r
- ShellStatus = IfConfig6ClearInterfaceInfo (&Private->IfList);\r
+ ShellStatus = IfConfig6ClearInterfaceInfo (&Private->IfList, Private->IfName);\r
break;\r
\r
case IfConfig6OpSet:\r