DPathNode->Ipv4.StaticIpAddress = \r
(BOOLEAN) (!Session->ConfigData.NvData.InitiatorInfoFromDhcp);\r
\r
- IP4_COPY_ADDRESS (\r
- &DPathNode->Ipv4.GatewayIpAddress,\r
- &Session->ConfigData.NvData.Gateway\r
- );\r
-\r
- IP4_COPY_ADDRESS (\r
- &DPathNode->Ipv4.SubnetMask,\r
- &Session->ConfigData.NvData.SubnetMask\r
- );\r
+ //\r
+ // Add a judgement here to support previous versions of IPv4_DEVICE_PATH.\r
+ // In previous versions of IPv4_DEVICE_PATH, GatewayIpAddress and SubnetMask\r
+ // do not exist.\r
+ // In new version of IPv4_DEVICE_PATH, structcure length is 27.\r
+ //\r
+ if (DevicePathNodeLength (&DPathNode->Ipv4) == IPv4_NODE_LEN_NEW_VERSIONS) { \r
+\r
+ IP4_COPY_ADDRESS (\r
+ &DPathNode->Ipv4.GatewayIpAddress,\r
+ &Session->ConfigData.NvData.Gateway\r
+ );\r
+\r
+ IP4_COPY_ADDRESS (\r
+ &DPathNode->Ipv4.SubnetMask,\r
+ &Session->ConfigData.NvData.SubnetMask\r
+ );\r
+ }\r
\r
break;\r
}\r