From: lpleahy Date: Fri, 29 Jun 2012 00:46:58 +0000 (+0000) Subject: Choose a better subnet mask value for the IPv4 address. X-Git-Tag: edk2-stable201903~13299 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=6e1450f3095c90cf7119a4dbc8e6710daf988444 Choose a better subnet mask value for the IPv4 address. Signed-off-by: lpleahy git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13479 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/StdLib/EfiSocketLib/Ip4.c b/StdLib/EfiSocketLib/Ip4.c index 5a0f5284f5..80f328a8dd 100644 --- a/StdLib/EfiSocketLib/Ip4.c +++ b/StdLib/EfiSocketLib/Ip4.c @@ -143,9 +143,9 @@ EslIp4LocalAddressSet ( } else { pConfig->SubnetMask.Addr[0] = 0xff; - pConfig->SubnetMask.Addr[1] = 0xff; - pConfig->SubnetMask.Addr[2] = 0xff; - pConfig->SubnetMask.Addr[3] = 0xff; + pConfig->SubnetMask.Addr[1] = ( 128 <= pConfig->StationAddress.Addr[0]) ? 0xff : 0; + pConfig->SubnetMask.Addr[2] = ( 192 <= pConfig->StationAddress.Addr[0]) ? 0xff : 0; + pConfig->SubnetMask.Addr[3] = ( 224 <= pConfig->StationAddress.Addr[0]) ? 0xff : 0; } } diff --git a/StdLib/EfiSocketLib/Tcp4.c b/StdLib/EfiSocketLib/Tcp4.c index 145186bb36..34e60e2a7f 100644 --- a/StdLib/EfiSocketLib/Tcp4.c +++ b/StdLib/EfiSocketLib/Tcp4.c @@ -1157,9 +1157,9 @@ EslTcp4LocalAddressSet ( } else { pAccessPoint->SubnetMask.Addr[0] = 0xff; - pAccessPoint->SubnetMask.Addr[1] = 0xff; - pAccessPoint->SubnetMask.Addr[2] = 0xff; - pAccessPoint->SubnetMask.Addr[3] = 0xff; + pAccessPoint->SubnetMask.Addr[1] = ( 128 <= pAccessPoint->StationAddress.Addr[0]) ? 0xff : 0; + pAccessPoint->SubnetMask.Addr[2] = ( 192 <= pAccessPoint->StationAddress.Addr[0]) ? 0xff : 0; + pAccessPoint->SubnetMask.Addr[3] = ( 224 <= pAccessPoint->StationAddress.Addr[0]) ? 0xff : 0; } // diff --git a/StdLib/EfiSocketLib/Udp4.c b/StdLib/EfiSocketLib/Udp4.c index ae67c4e8c5..026f850377 100644 --- a/StdLib/EfiSocketLib/Udp4.c +++ b/StdLib/EfiSocketLib/Udp4.c @@ -131,9 +131,9 @@ EslUdp4LocalAddressSet ( } else { pConfig->SubnetMask.Addr[0] = 0xff; - pConfig->SubnetMask.Addr[1] = 0xff; - pConfig->SubnetMask.Addr[2] = 0xff; - pConfig->SubnetMask.Addr[3] = 0xff; + pConfig->SubnetMask.Addr[1] = ( 128 <= pConfig->StationAddress.Addr[0]) ? 0xff : 0; + pConfig->SubnetMask.Addr[2] = ( 192 <= pConfig->StationAddress.Addr[0]) ? 0xff : 0; + pConfig->SubnetMask.Addr[3] = ( 224 <= pConfig->StationAddress.Addr[0]) ? 0xff : 0; } //