]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/IpSecDxe/Ikev2/Info.c
NetworkPkg/IpSecDxe: Fix wrong IKE header "FLAG" update
[mirror_edk2.git] / NetworkPkg / IpSecDxe / Ikev2 / Info.c
index 23e47ceea8a652658d836530375c2f64565088c2..0d2b29081758d6341444d53066cf615137244acf 100644 (file)
@@ -128,7 +128,11 @@ Ikev2InfoGenerator (
       // The input parameter is not correct.\r
       //\r
       goto ERROR_EXIT;\r
-    } \r
+    }\r
+\r
+    if (IkeSaSession->SessionCommon.IsInitiator) {\r
+      IkePacket->Header->Flags = IKE_HEADER_FLAGS_INIT ;\r
+    }  \r
   } else {\r
     //\r
     // Delete the Child SA Information Exchagne\r
@@ -180,13 +184,16 @@ Ikev2InfoGenerator (
     // Change the IsOnDeleting Flag\r
     //\r
     ChildSaSession->SessionCommon.IsOnDeleting = TRUE;\r
+\r
+    if (ChildSaSession->SessionCommon.IsInitiator) {\r
+      IkePacket->Header->Flags = IKE_HEADER_FLAGS_INIT ;\r
+    }\r
   }\r
 \r
-  if (InfoContext == NULL) {\r
-    IkePacket->Header->Flags = IKE_HEADER_FLAGS_INIT;\r
-  } else {\r
-    IkePacket->Header->Flags = IKE_HEADER_FLAGS_RESPOND;\r
+  if (InfoContext != NULL) {\r
+    IkePacket->Header->Flags |= IKE_HEADER_FLAGS_RESPOND;\r
   }\r
+  \r
   return IkePacket;\r
 \r
 ERROR_EXIT:\r