Acked-by: Alin Gabriel Serdean <[email protected]>

-----Mesaj original-----
De la: dev [mailto:[email protected]] În numele Sorin Vinturis
Trimis: Thursday, June 18, 2015 9:37 PM
Către: [email protected]
Subiect: [ovs-dev] [PATCH v2] datapath-windows: Return success for already 
existing WFP objects

There are cases when the WFP callout or sublayer, being persistent objects, 
already exists when we try to register the OVS callout. In this cases, when 
trying to add again these WFP objects the return code is 
STATUS_FWP_ALREADY_EXISTS, which we are interpreting as an error.
This is incorrect and this patch changes that.

Signed-off-by: Sorin Vinturis <[email protected]>
Reported-by: Sorin Vinturis <[email protected]>
Reported-at: https://github.com/openvswitch/ovs-issues/issues/84
---
 datapath-windows/ovsext/TunnelFilter.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/datapath-windows/ovsext/TunnelFilter.c 
b/datapath-windows/ovsext/TunnelFilter.c
index 08cc13f..231750e 100644
--- a/datapath-windows/ovsext/TunnelFilter.c
+++ b/datapath-windows/ovsext/TunnelFilter.c
@@ -414,7 +414,12 @@ OvsTunnelRegisterDatagramDataCallouts(const GUID *layerKey,
 
     status = FwpmCalloutAdd(gEngineHandle, &mCallout, NULL, NULL);
     if (!NT_SUCCESS(status)) {
-        goto Exit;
+        if (STATUS_FWP_ALREADY_EXISTS != status) {
+            OVS_LOG_ERROR("Failed to add WFP callout, status: %x.",
+                          status);
+            goto Exit;
+        }
+        status = STATUS_SUCCESS;
     }
 
 Exit:
@@ -459,7 +464,11 @@ OvsTunnelRegisterCallouts(VOID *deviceObject)
 
     status = FwpmSubLayerAdd(gEngineHandle, &OvsTunnelSubLayer, NULL);
     if (!NT_SUCCESS(status)) {
-        goto Exit;
+        if (STATUS_FWP_ALREADY_EXISTS != status) {
+            OVS_LOG_ERROR("Failed to add WFP sublayer, status: %x.",
+                          status);
+            goto Exit;
+        }
     }
 
     /* In order to use this callout a socket must be opened. */
--
1.9.0.msysgit.0
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to