ipsec gre: Do not reread ovs monitor ipsec pidfile in netdev vport so much
authorArun Sharma <arun.sharma@calsoftinc.com>
Tue, 3 Jul 2012 01:30:21 +0000 (18:30 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 3 Jul 2012 16:05:37 +0000 (09:05 -0700)
Instead of rereading ovs-monitor-ipsec pidfile in netdev-vport so much.  It's
probably only necessary to check once if ovs-monitor-ipsec is running,
and then cache the result.  If the result is negative, then it may be
worthwhile to try again the next time someone tries to configure an ipsec
tunnel.

Signed-off-by: Arun Sharma <arun.sharma@calsoftinc.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
lib/netdev-vport.c

index 7fe169e3603913c0f000077705e71f669dbe0d08..d2c2672b024974abe27d684af82d69617375a919 100644 (file)
@@ -681,10 +681,14 @@ parse_tunnel_config(const char *name, const char *type,
     }
 
     if (is_ipsec) {
-        char *file_name = xasprintf("%s/%s", ovs_rundir(),
-                "ovs-monitor-ipsec.pid");
-        pid_t pid = read_pidfile(file_name);
-        free(file_name);
+        static pid_t pid = 0;
+        if (pid == 0) {
+            char *file_name = xasprintf("%s/%s", ovs_rundir(),
+                                        "ovs-monitor-ipsec.pid");
+            pid = read_pidfile(file_name);
+            free(file_name);
+        }
+
         if (pid < 0) {
             VLOG_ERR("%s: IPsec requires the ovs-monitor-ipsec daemon",
                      name);