]> git.proxmox.com Git - mirror_edk2.git/blobdiff - StdLib/EfiSocketLib/Tcp4.c
Choose a better subnet mask value for the IPv4 address.
[mirror_edk2.git] / StdLib / EfiSocketLib / Tcp4.c
index 145186bb367d9ce3b3d4d31b9fb309ce26ff17cc..34e60e2a7f7a951a3b4ee02a084e2f7af9f74938 100644 (file)
@@ -1157,9 +1157,9 @@ EslTcp4LocalAddressSet (
     }\r
     else {\r
       pAccessPoint->SubnetMask.Addr[0] = 0xff;\r
-      pAccessPoint->SubnetMask.Addr[1] = 0xff;\r
-      pAccessPoint->SubnetMask.Addr[2] = 0xff;\r
-      pAccessPoint->SubnetMask.Addr[3] = 0xff;\r
+      pAccessPoint->SubnetMask.Addr[1] = ( 128 <= pAccessPoint->StationAddress.Addr[0]) ? 0xff : 0;\r
+      pAccessPoint->SubnetMask.Addr[2] = ( 192 <= pAccessPoint->StationAddress.Addr[0]) ? 0xff : 0;\r
+      pAccessPoint->SubnetMask.Addr[3] = ( 224 <= pAccessPoint->StationAddress.Addr[0]) ? 0xff : 0;\r
     }\r
 \r
     //\r