Hi,

Yes, its working now with this patch. Not showing any ASSERT now.

Results snippets are:

Shell> ifconfig -s eth0 tatic
Unknown commands. Bad command tatic is skipped.
Shell> ifconfig -s eth0 static 192.168.1.141 255.255.255.0 192.168.1.1
InstallProtocolInterface: F4B427BB-BA21-4F16-BC4E-43E416AB619C DF512A30
Shell> ping 192.168.1.1
InstallProtocolInterface: 41D94CD2-35B6-455A-8258-D4E51334AADD DF5149E0
Ping 192.168.1.1 16 data bytes.
16 bytes from 192.168.1.1 : icmp_seq=1 ttl=0 time<0ms
16 bytes from 192.168.1.1 : icmp_seq=2 ttl=0 time<0ms
16 bytes from 192.168.1.1 : icmp_seq=3 ttl=0 time<0ms
16 bytes from 192.168.1.1 : icmp_seq=4 ttl=0 time<0ms
16 bytes from 192.168.1.1 : icmp_seq=5 ttl=0 time<0ms
16 bytes from 192.168.1.1 : icmp_seq=6 ttl=0 time<0ms
16 bytes from 192.168.1.1 : icmp_seq=7 ttl=0 time<0ms
16 bytes from 192.168.1.1 : icmp_seq=8 ttl=0 time<0ms
16 bytes from 192.168.1.1 : icmp_seq=9 ttl=0 time<0ms
16 bytes from 192.168.1.1 : icmp_seq=10 ttl=0 time<0ms

10 packets transmitted, 10 received, 0% packet loss, time 0ms

Rtt(round trip time) min=0ms max=0ms avg=0ms
Shell> ifconfig -s eth0 static 192.168.2.142
Lack interface config option.
Shell>

Thanks and Regards,
Shaveta

-----Original Message-----
From: Wu, Jiaxin [mailto:jiaxin...@intel.com] 
Sent: Thursday, December 10, 2015 7:56 AM
To: Leekha Shaveta-B20052 <shav...@freescale.com>; Carsey, Jaben 
<jaben.car...@intel.com>; edk2-devel@lists.01.org
Cc: Ye, Ting <ting...@intel.com>
Subject: RE: [Patch] ShellPkg: Fix ifconfig hang issue with incomplete 
parameters

Hi Shaveta,
How about your test result?

Thanks.
Jiaxin

-----Original Message-----
From: Leekha Shaveta [mailto:shav...@freescale.com]
Sent: Tuesday, December 8, 2015 2:21 PM
To: Carsey, Jaben; Wu, Jiaxin; edk2-devel@lists.01.org
Cc: Ye, Ting
Subject: RE: [Patch] ShellPkg: Fix ifconfig hang issue with incomplete 
parameters

Hi,

Thanks for the fix, I will test it and revert in a day or two.

Regards,
Shaveta

-----Original Message-----
From: Carsey, Jaben [mailto:jaben.car...@intel.com]
Sent: Friday, December 04, 2015 11:38 PM
To: Wu, Jiaxin <jiaxin...@intel.com>; edk2-devel@lists.01.org
Cc: Leekha Shaveta-B20052 <shav...@freescale.com>; Ye, Ting 
<ting...@intel.com>; Carsey, Jaben <jaben.car...@intel.com>
Subject: RE: [Patch] ShellPkg: Fix ifconfig hang issue with incomplete 
parameters

Looks good to me.  I think we should wait for Leekha for up to a few days to 
confirm that this fixes the problem at their location.

Reviewed-by: Jaben Carsey <jaben.car...@intel.com>

-Jaben

> -----Original Message-----
> From: Wu, Jiaxin
> Sent: Thursday, December 03, 2015 5:27 PM
> To: edk2-devel@lists.01.org
> Cc: Leekha Shaveta <shav...@freescale.com>; Carsey, Jaben 
> <jaben.car...@intel.com>; Ye, Ting <ting...@intel.com>
> Subject: [Patch] ShellPkg: Fix ifconfig hang issue with incomplete 
> parameters
> Importance: High
> 
> This patch is used to fix ifconfig hang issue with incomplete 
> parameters. In addition, some error related output information is 
> added to increase the interactivity.
> 
> Cc: Leekha Shaveta <shav...@freescale.com>
> Cc: Carsey Jaben <jaben.car...@intel.com>
> Cc: Ye Ting <ting...@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jiaxin Wu <jiaxin...@intel.com>
> ---
>  .../UefiShellNetwork1CommandsLib/Ifconfig.c        |  61 ++++++++++++++++--
> ---
>  .../UefiShellNetwork1CommandsLib.uni               | Bin 21094 -> 21256 bytes
>  2 files changed, 47 insertions(+), 14 deletions(-)
> 
> diff --git a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
> b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
> index fb6f575..f8dbc88 100644
> --- a/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
> +++ b/ShellPkg/Library/UefiShellNetwork1CommandsLib/Ifconfig.c
> @@ -826,10 +826,11 @@ IfConfigClearInterfaceInfo (
>                              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;
>      }
>    }
> 
> @@ -902,10 +903,11 @@ IfConfigSetInterfaceInfo (
>                    NULL,
>                    NULL,
>                    &TimeOutEvt
>                    );
>    if (EFI_ERROR (Status)) {
> +    ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_AD),
> gShellNetwork1HiiHandle, L"ifconfig");
>      ShellStatus = SHELL_ACCESS_DENIED;
>      goto ON_EXIT;
>    }
> 
>    Status = gBS->CreateEvent (
> @@ -914,10 +916,11 @@ IfConfigSetInterfaceInfo (
>                    IfConfigManualAddressNotify,
>                    &IsAddressOk,
>                    &MappedEvt
>                    );
>    if (EFI_ERROR (Status)) {
> +    ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_AD),
> gShellNetwork1HiiHandle, L"ifconfig");
>      ShellStatus = SHELL_ACCESS_DENIED;
>      goto ON_EXIT;
>    }
> 
>    //
> @@ -972,10 +975,11 @@ IfConfigSetInterfaceInfo (
>      //
>      if (StrCmp(VarArg->Arg, L"dhcp") == 0) {
>        if (IfCb->Policy == Ip4Config2PolicyDhcp) {
>          Status = IfConfigStartIp4 (IfCb->NicHandle, gImageHandle);
>          if (EFI_ERROR(Status)) {
> +          ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN 
> + (STR_GEN_ERR_AD),
> gShellNetwork1HiiHandle, L"ifconfig");
>            ShellStatus = SHELL_ACCESS_DENIED;
>            goto ON_EXIT;
>          }
>        } else {
>          //
> @@ -987,74 +991,100 @@ IfConfigSetInterfaceInfo (
>                                  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;
>            goto ON_EXIT;
>          }
>        }
> 
>        VarArg= VarArg->Next;
> 
>      } else if (StrCmp (VarArg->Arg, L"static") == 0) {
> -      //
> -      // Set manual config policy.
> -      //
> -      Policy = Ip4Config2PolicyStatic;
> -      Status = IfCb->IfCfg->SetData (
> -                              IfCb->IfCfg,
> -                              Ip4Config2DataTypePolicy,
> -                              sizeof (EFI_IP4_CONFIG2_POLICY),
> -                              &Policy
> -                              );
> -      if (EFI_ERROR(Status)) {
> -        ShellStatus = SHELL_ACCESS_DENIED;
> +      VarArg= VarArg->Next;
> +      if (VarArg == NULL) {
> +        ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> (STR_IFCONFIG_LACK_COMMAND), gShellNetwork1HiiHandle);
> +        ShellStatus = SHELL_INVALID_PARAMETER;
>          goto ON_EXIT;
>        }
> 
> -      VarArg= VarArg->Next;
> -
>        ZeroMem (&ManualAddress, sizeof (ManualAddress));
> 
>        //
>        // Get manual IP address.
>        //
>        Status = NetLibStrToIp4 (VarArg->Arg, &ManualAddress.Address);
>        if (EFI_ERROR(Status)) {
> +        ShellPrintHiiEx(-1, -1, NULL,STRING_TOKEN
> (STR_IFCONFIG_INVALID_IPADDRESS), gShellNetwork1HiiHandle, VarArg-
> >Arg);
>          ShellStatus = SHELL_INVALID_PARAMETER;
>          goto ON_EXIT;
>        }
> 
>        //
>        // Get subnetmask.
>        //
>        VarArg = VarArg->Next;
> +      if (VarArg == NULL) {
> +        ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> (STR_IFCONFIG_LACK_COMMAND), gShellNetwork1HiiHandle);
> +        ShellStatus = SHELL_INVALID_PARAMETER;
> +        goto ON_EXIT;
> +      }
> +
>        Status = NetLibStrToIp4 (VarArg->Arg, &ManualAddress.SubnetMask);
>        if (EFI_ERROR(Status)) {
> +        ShellPrintHiiEx(-1, -1, NULL,STRING_TOKEN
> (STR_IFCONFIG_INVALID_IPADDRESS), gShellNetwork1HiiHandle, VarArg-
> >Arg);
>          ShellStatus = SHELL_INVALID_PARAMETER;
>          goto ON_EXIT;
>        }
> 
>        //
>        // Get gateway.
>        //
>        VarArg = VarArg->Next;
> +      if (VarArg == NULL) {
> +        ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> (STR_IFCONFIG_LACK_COMMAND), gShellNetwork1HiiHandle);
> +        ShellStatus = SHELL_INVALID_PARAMETER;
> +        goto ON_EXIT;
> +      }
> +
>        Status = NetLibStrToIp4 (VarArg->Arg, &Gateway);
>        if (EFI_ERROR(Status)) {
> +        ShellPrintHiiEx(-1, -1, NULL,STRING_TOKEN
> (STR_IFCONFIG_INVALID_IPADDRESS), gShellNetwork1HiiHandle, VarArg-
> >Arg);
>          ShellStatus = SHELL_INVALID_PARAMETER;
>          goto ON_EXIT;
>        }
> +
> +      //
> +      // Set manual config policy.
> +      //
> +      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;
> +        goto ON_EXIT;
> +      }
> 
> +      //
> +      // Set Manual Address.
> +      //
>        IsAddressOk = FALSE;
> 
>        Status = IfCb->IfCfg->RegisterDataNotify (
>                                IfCb->IfCfg,
>                                Ip4Config2DataTypeManualAddress,
>                                MappedEvt
>                                );
>        if (EFI_ERROR (Status)) {
> +        ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> (STR_IFCONFIG_SET_ADDR_FAILED), gShellNetwork1HiiHandle, Status);
>          ShellStatus = SHELL_ACCESS_DENIED;
>          goto ON_EXIT;
>        }
> 
>        DataSize = sizeof (EFI_IP4_CONFIG2_MANUAL_ADDRESS); @@ -1099,10
> +1129,11 @@ IfConfigSetInterfaceInfo (
>                                Ip4Config2DataTypeGateway,
>                                DataSize,
>                                &Gateway
>                                );
>        if (EFI_ERROR (Status)) {
> +        ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN
> (STR_IFCONFIG_SET_ADDR_FAILED), gShellNetwork1HiiHandle, Status);
>          ShellStatus = SHELL_ACCESS_DENIED;
>          goto ON_EXIT;
>        }
> 
>        VarArg = VarArg->Next;
> @@ -1124,10 +1155,11 @@ IfConfigSetInterfaceInfo (
>        Tmp   = VarArg;
>        Index = 0;
>        while (Tmp != NULL) {
>          Status = NetLibStrToIp4 (Tmp->Arg, Dns + Index);
>          if (EFI_ERROR(Status)) {
> +          ShellPrintHiiEx(-1, -1, NULL,STRING_TOKEN
> (STR_IFCONFIG_INVALID_IPADDRESS), gShellNetwork1HiiHandle, Tmp->Arg);
>            ShellStatus = SHELL_INVALID_PARAMETER;
>            goto ON_EXIT;
>          }
>          Index ++;
>          Tmp = Tmp->Next;
> @@ -1145,10 +1177,11 @@ IfConfigSetInterfaceInfo (
>                                Ip4Config2DataTypeDnsServer,
>                                DataSize,
>                                Dns
>                                );
>        if (EFI_ERROR (Status)) {
> +        ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_AD),
> gShellNetwork1HiiHandle, L"ifconfig");
>          ShellStatus = SHELL_ACCESS_DENIED;
>          goto ON_EXIT;
>        }
>      }
>    }
> diff --git
> a/ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1Comm
> andsLib.uni
> b/ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1Comm
> andsLib.uni
> index
> 43259591820582cc38937ad680739fcff21b96c5..aa3a38a55fadd82f73d581f
> 3678466db23af2645 100644
> GIT binary patch
> delta 132
> zcmaF1gt228<AxB$$qt$<ljkV#@dq$CGPnR?5Q8g2FhlU<kMfq2KPd=JPSO)&w
> 3>X8
> zLv*r>oYCeGMJ;AcH-<!pOokkWRE87=1%?uad>~m2<dp#FM4(s-
> LlKZy%uqZzQNeuj
> c3{}3(PgHEwCNp{2OwRH?2ckDm^SQtZ0B9B^1poj5
> 
> delta 74
> zcmeBJ#`tUr<AxB$&2maw%<P^FB@7A-
> X_Gxwr8gI;HmGqYGUNcE0z*DS(d3I>_LKE|
> V&ar~UCL1b<Gebo;TlijJ1pqo#7J2{x
> 
> --
> 1.9.5.msysgit.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to