]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Main.c
NetLib:
[mirror_edk2.git] / MdeModulePkg / Universal / Network / Udp4Dxe / Udp4Main.c
index 7bb83b06f66a717b54f9b64ef4020705595aec84..582d6f6d448905a643974861d59bb95d61e853de 100644 (file)
@@ -507,7 +507,7 @@ Udp4Transmit (
   UDP4_INSTANCE_DATA      *Instance;\r
   EFI_TPL                 OldTpl;\r
   NET_BUF                 *Packet;\r
-  EFI_UDP4_HEADER         *Udp4Header;\r
+  EFI_UDP_HEADER         *Udp4Header;\r
   EFI_UDP4_CONFIG_DATA    *ConfigData;\r
   IP4_ADDR                Source;\r
   IP4_ADDR                Destination;\r
@@ -516,6 +516,7 @@ Udp4Transmit (
   UDP4_SERVICE_DATA       *Udp4Service;\r
   IP_IO_OVERRIDE          Override;\r
   UINT16                  HeadSum;\r
+  EFI_IP_ADDRESS          IpDestAddr;\r
 \r
   if ((This == NULL) || (Token == NULL)) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -575,7 +576,7 @@ Udp4Transmit (
   Udp4Service = Instance->Udp4Service;\r
   *((UINTN *) &Packet->ProtoData[0]) = (UINTN) (Udp4Service->IpIo);\r
 \r
-  Udp4Header = (EFI_UDP4_HEADER *) NetbufAllocSpace (Packet, UDP4_HEADER_SIZE, TRUE);\r
+  Udp4Header = (EFI_UDP_HEADER *) NetbufAllocSpace (Packet, UDP4_HEADER_SIZE, TRUE);\r
   ASSERT (Udp4Header != NULL);\r
 \r
   ConfigData = &Instance->ConfigData;\r
@@ -589,7 +590,7 @@ Udp4Transmit (
   Udp4Header->Checksum     = 0;\r
 \r
   UdpSessionData = TxData->UdpSessionData;\r
-  Override.SourceAddress = ConfigData->StationAddress;\r
+  Override.Ip4OverrideData.SourceAddress = ConfigData->StationAddress;\r
 \r
   if (UdpSessionData != NULL) {\r
     //\r
@@ -597,7 +598,7 @@ Udp4Transmit (
     // UdpSessionData.\r
     //\r
     if (!EFI_IP4_EQUAL (&UdpSessionData->SourceAddress, &mZeroIp4Addr)) {\r
-      CopyMem (&Override.SourceAddress, &UdpSessionData->SourceAddress, sizeof (EFI_IPv4_ADDRESS));\r
+      CopyMem (&Override.Ip4OverrideData.SourceAddress, &UdpSessionData->SourceAddress, sizeof (EFI_IPv4_ADDRESS));\r
     }\r
 \r
     if (UdpSessionData->SourcePort != 0) {\r
@@ -608,7 +609,7 @@ Udp4Transmit (
       Udp4Header->DstPort = HTONS (UdpSessionData->DestinationPort);\r
     }\r
 \r
-    CopyMem (&Source, &Override.SourceAddress, sizeof (IP4_ADDR));\r
+    CopyMem (&Source, &Override.Ip4OverrideData.SourceAddress, sizeof (IP4_ADDR));\r
     CopyMem (&Destination, &UdpSessionData->DestinationAddress, sizeof (IP4_ADDR));\r
 \r
     //\r
@@ -644,15 +645,15 @@ Udp4Transmit (
   // Fill the IpIo Override data.\r
   //\r
   if (TxData->GatewayAddress != NULL) {\r
-    CopyMem (&Override.GatewayAddress, TxData->GatewayAddress, sizeof (EFI_IPv4_ADDRESS));\r
+    CopyMem (&Override.Ip4OverrideData.GatewayAddress, TxData->GatewayAddress, sizeof (EFI_IPv4_ADDRESS));\r
   } else {\r
-    ZeroMem (&Override.GatewayAddress, sizeof (EFI_IPv4_ADDRESS));\r
+    ZeroMem (&Override.Ip4OverrideData.GatewayAddress, sizeof (EFI_IPv4_ADDRESS));\r
   }\r
 \r
-  Override.Protocol                 = EFI_IP_PROTO_UDP;\r
-  Override.TypeOfService            = ConfigData->TypeOfService;\r
-  Override.TimeToLive               = ConfigData->TimeToLive;\r
-  Override.DoNotFragment            = ConfigData->DoNotFragment;\r
+  Override.Ip4OverrideData.Protocol                 = EFI_IP_PROTO_UDP;\r
+  Override.Ip4OverrideData.TypeOfService            = ConfigData->TypeOfService;\r
+  Override.Ip4OverrideData.TimeToLive               = ConfigData->TimeToLive;\r
+  Override.Ip4OverrideData.DoNotFragment            = ConfigData->DoNotFragment;\r
 \r
   //\r
   // Save the token into the TxToken map.\r
@@ -665,13 +666,14 @@ Udp4Transmit (
   //\r
   // Send out this datagram through IpIo.\r
   //\r
+  IpDestAddr.Addr[0] = Destination;\r
   Status = IpIoSend (\r
              Udp4Service->IpIo,\r
              Packet,\r
              Instance->IpInfo,\r
              Instance,\r
              Token,\r
-             Destination,\r
+             &IpDestAddr,\r
              &Override\r
              );\r
   if (EFI_ERROR (Status)) {\r