On 03/02/16 09:03, Jiaxin Wu wrote: > This patch is used to update ifconfig –r implementation
The dash character in the above "-r" option is not the ASCII hyphen/minus character (0x2D), but the U+2013 unicode code point ("EN DASH"). I think you may have copied & pasted it from a PDF, or a rendered HTML, or a similar document. Please try to avoid this; we should keep the source and the commit messages ASCII-clean. Can be fixed up when you commit the patch. Thanks Laszlo > to sync with UEFI Shell 2.2. > > option -r means to reconfigure all or specified interface, > and set DHCP policy. If specified interface is already set > to DHCP, then refresh the IPv4 configuration. > > If the interface name is specified > with '-r', DHCP DORA process will be triggered by the policy > transition (static -> dhcp). > > Cc: Ye Ting <ting...@intel.com> > Cc: Fu Siyuan <siyuan...@intel.com> > Cc: Carsey Jaben <jaben.car...@intel.com> > Cc: El-Haj-Mahmoud Samer <samer.el-haj-mahm...@hpe.com> > Cc: Subramanian Sriram <srira...@hpe.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jiaxin Wu <jiaxin...@intel.com> > --- > .../UefiShellNetwork1CommandsLib/Ifconfig.c | 31 > ++++++++++++++++++---- > 1 file changed, 26 insertions(+), 5 deletions(-) > > diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c > b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c > index 0c4a3b0..92108a1 100644 > --- a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c > +++ b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c > @@ -1,10 +1,10 @@ > /** @file > The implementation for Shell command ifconfig based on IP4Config2 protocol. > > (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR> > - Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR> > + Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR> > > This program and the accompanying materials > are licensed and made available under the terms and conditions of the BSD > License > which accompanies this distribution. The full text of the license may be > found at > http://opensource.org/licenses/bsd-license.php. > @@ -708,40 +708,61 @@ IfConfigShowInterfaceInfo ( > > /** > The clean process of the ifconfig command to clear interface info. > > @param[in] IfList The pointer of IfList(interface list). > + @param[in] IfName The pointer of interface name. > > @retval SHELL_SUCCESS The ifconfig command clean processed successfully. > @retval others The ifconfig command clean process failed. > > **/ > SHELL_STATUS > IfConfigClearInterfaceInfo ( > - IN LIST_ENTRY *IfList > + IN LIST_ENTRY *IfList, > + IN CHAR16 *IfName > ) > { > EFI_STATUS Status; > SHELL_STATUS ShellStatus; > LIST_ENTRY *Entry; > LIST_ENTRY *Next; > IFCONFIG_INTERFACE_CB *IfCb; > EFI_IP4_CONFIG2_POLICY Policy; > - > - Policy = Ip4Config2PolicyDhcp; > + > Status = EFI_SUCCESS; > ShellStatus = SHELL_SUCCESS; > > if (IsListEmpty (IfList)) { > ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN > (STR_IFCONFIG_INVALID_INTERFACE), gShellNetwork1HiiHandle); > } > > // > // Go through the interface list. > + // If the interface name is specified, DHCP DORA process will be > + // triggered by the policy transition (static -> dhcp). > // > NET_LIST_FOR_EACH_SAFE (Entry, Next, IfList) { > IfCb = NET_LIST_USER_STRUCT (Entry, IFCONFIG_INTERFACE_CB, Link); > + > + if ((IfName != NULL) && (StrCmp (IfName, IfCb->IfInfo->Name) == 0)) { > + Policy = Ip4Config2PolicyStatic; > + > + Status = IfCb->IfCfg->SetData ( > + IfCb->IfCfg, > + Ip4Config2DataTypePolicy, > + sizeof (EFI_IP4_CONFIG2_POLICY), > + &Policy > + ); > + if (EFI_ERROR (Status)) { > + ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_AD), > gShellNetwork1HiiHandle, L"ifconfig"); > + ShellStatus = SHELL_ACCESS_DENIED; > + break; > + } > + } > + > + Policy = Ip4Config2PolicyDhcp; > > Status = IfCb->IfCfg->SetData ( > IfCb->IfCfg, > Ip4Config2DataTypePolicy, > sizeof (EFI_IP4_CONFIG2_POLICY), > @@ -1141,11 +1162,11 @@ IfConfig ( > case IfConfigOpList: > ShellStatus = IfConfigShowInterfaceInfo (&Private->IfList); > break; > > case IfConfigOpClear: > - ShellStatus = IfConfigClearInterfaceInfo (&Private->IfList); > + ShellStatus = IfConfigClearInterfaceInfo (&Private->IfList, > Private->IfName); > break; > > case IfConfigOpSet: > ShellStatus = IfConfigSetInterfaceInfo (&Private->IfList, > Private->VarArg); > break; > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel