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
prev 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