public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Wu, Jiaxin" <jiaxin.wu@intel.com>
To: "Zhang, Lubo" <lubo.zhang@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: Santhapur Naveen <naveens@amiindia.co.in>,
	"Ye, Ting" <ting.ye@intel.com>,
	 "Fu, Siyuan" <siyuan.fu@intel.com>
Subject: Re: [patch] ShellPkg: Add check logic for the gateway validity.
Date: Mon, 9 Jan 2017 07:54:20 +0000	[thread overview]
Message-ID: <895558F6EA4E3B41AC93A00D163B727416292389@SHSMSX103.ccr.corp.intel.com> (raw)
In-Reply-To: <1483694175-41876-1-git-send-email-lubo.zhang@intel.com>

Reviewed-by: Wu Jiaxin <jiaxin.wu@intel.com>


> -----Original Message-----
> From: Zhang, Lubo
> Sent: Friday, January 6, 2017 5:16 PM
> To: edk2-devel@lists.01.org
> Cc: Santhapur Naveen <naveens@amiindia.co.in>; Ye, Ting
> <ting.ye@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>; Wu, Jiaxin
> <jiaxin.wu@intel.com>
> Subject: [patch] ShellPkg: Add check logic for the gateway validity.
> 
> if we set a static IP using command
> 'ifconfig -s eth0 static 192.168.0.121 255.255.255.0 0.0.0.0'
> The system says 'Failed to set address.' but using
> 'ifconfig -l', the static IP can be assigned successfully.
> so we need to check the gateway validity before setting manual
> address to keep the ifconfig -s command more consistent.
> 
> Signed-off-by: Zhang Lubo <lubo.zhang@intel.com>
> Cc: Santhapur Naveen <naveens@amiindia.co.in>
> Cc: Ye Ting <ting.ye@intel.com>
> Cc: Fu Siyuan <siyuan.fu@intel.com>
> Cc: Wu Jiaxin <jiaxin.wu@intel.com>
> ---
>  .../Library/UefiShellNetwork1CommandsLib/Ifconfig.c   | 19
> ++++++++++++++++++-
>  .../UefiShellNetwork1CommandsLib.uni                  |  3 ++-
>  2 files changed, 20 insertions(+), 2 deletions(-)
> 
> diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
> b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
> index 5e243d5..4db07b2 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 - 2016, Intel Corporation. All rights reserved.<BR>
> +  Copyright (c) 2006 - 2017, 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.
> @@ -835,10 +835,12 @@ IfConfigSetInterfaceInfo (
> 
>    EFI_IP4_CONFIG2_POLICY           Policy;
>    EFI_IP4_CONFIG2_MANUAL_ADDRESS   ManualAddress;
>    UINTN                            DataSize;
>    EFI_IPv4_ADDRESS                 Gateway;
> +  IP4_ADDR                         SubnetMask;
> +  IP4_ADDR                         TempGateway;
>    EFI_IPv4_ADDRESS                 *Dns;
>    ARG_LIST                         *Tmp;
>    UINTN                            Index;
> 
>    CONST CHAR16* TempString;
> @@ -1017,10 +1019,25 @@ IfConfigSetInterfaceInfo (
>          ShellStatus = SHELL_INVALID_PARAMETER;
>          goto ON_EXIT;
>        }
> 
>        //
> +      // Need to check the gateway validity before set Manual Address.
> +      // In case we can set manual address but fail to configure Gateway.
> +      //
> +      CopyMem (&SubnetMask, &ManualAddress.SubnetMask, sizeof
> (IP4_ADDR));
> +      CopyMem (&TempGateway, &Gateway, sizeof (IP4_ADDR));
> +      SubnetMask  = NTOHL (SubnetMask);
> +      TempGateway = NTOHL (TempGateway);
> +      if ((SubnetMask != 0) &&
> +          !NetIp4IsUnicast (TempGateway, SubnetMask)) {
> +        ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> (STR_IFCONFIG_INVALID_GATEWAY), gShellNetwork1HiiHandle, VarArg-
> >Arg);
> +        ShellStatus = SHELL_INVALID_PARAMETER;
> +        goto ON_EXIT;
> +      }
> +
> +      //
>        // Set manual config policy.
>        //
>        Policy = Ip4Config2PolicyStatic;
>        Status = IfCb->IfCfg->SetData (
>                                IfCb->IfCfg,
> diff --git
> a/ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1Com
> mandsLib.uni
> b/ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1Com
> mandsLib.uni
> index 4566cd1..d9bbb20 100644
> ---
> a/ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1Com
> mandsLib.uni
> +++
> b/ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1Com
> mandsLib.uni
> @@ -1,9 +1,9 @@
>  // /**
>  //
>  // (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
> -// Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved. <BR>
> +// Copyright (c) 2010 - 2017, 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
>  //
> @@ -64,10 +64,11 @@
>  #string STR_IFCONFIG_LACK_OPTION              #language en-US    "Flags lack.
> Please type 'ifConfig -?' for help info.\n"
>  #string STR_IFCONFIG_LACK_INTERFACE           #language en-US    "Lack
> interface name.\n"
>  #string STR_IFCONFIG_LACK_COMMAND             #language en-US    "Lack
> interface config option.\n"
>  #string STR_IFCONFIG_INVALID_INTERFACE        #language en-US    "Invalid
> interface name.\n"
>  #string STR_IFCONFIG_INVALID_IPADDRESS        #language en-US    "Invalid
> ipv4 address: '%H%s%N'\n"
> +#string STR_IFCONFIG_INVALID_GATEWAY          #language en-US    "Invalid
> gateway address: '%H%s%N'\n"
>  #string STR_IFCONFIG_DUPLICATE_COMMAND        #language en-US
> "Duplicate commands. Bad command %H%s%N is skipped.\n"
>  #string STR_IFCONFIG_CONFLICT_COMMAND         #language en-US
> "Conflict commands. Bad command %H%s%N is skipped.\n"
>  #string STR_IFCONFIG_UNKNOWN_COMMAND          #language en-US
> "Unknown commands. Bad command %H%s%N is skipped.\n"
>  #string STR_IFCONFIG_SET_ADDR_FAILED          #language en-US    "Failed to
> set address.\n"
>  #string STR_IFCONFIG_ROUTES_SIZE              #language en-US  	 "\n%H
> Routes (%d entries):\n"
> --
> 1.9.5.msysgit.1



      parent reply	other threads:[~2017-01-09  7:54 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-06  9:16 [patch] ShellPkg: Add check logic for the gateway validity Zhang Lubo
2017-01-09  6:42 ` Ye, Ting
2017-01-09  7:11 ` Fu, Siyuan
2017-01-09  7:54 ` Wu, Jiaxin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=895558F6EA4E3B41AC93A00D163B727416292389@SHSMSX103.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox