rconn: Add new function rconn_reconnect().
authorBen Pfaff <blp@nicira.com>
Wed, 4 Mar 2009 17:56:47 +0000 (09:56 -0800)
committerBen Pfaff <blp@nicira.com>
Thu, 5 Mar 2009 00:55:53 +0000 (16:55 -0800)
lib/rconn.c
lib/rconn.h

index a37f9fb8ee3c491ea236189ad2c7cf37f2ec3d6e..562f96f3162a2aad085ef31371872bfe67d8313a 100644 (file)
@@ -272,6 +272,15 @@ rconn_connect_unreliably(struct rconn *rc,
     state_transition(rc, S_ACTIVE);
 }
 
+/* If 'rc' is connected, forces it to drop the connection and reconnect. */
+void
+rconn_reconnect(struct rconn *rc)
+{
+    if (rc->state & (S_ACTIVE | S_IDLE)) {
+        disconnect(rc, 0);
+    }
+}
+
 void
 rconn_disconnect(struct rconn *rc)
 {
index f804b9a7e4df5cff9a55a47367dc0f4fac8fbe88..93ccec05b14a372c24e8dd77634596f96bfebb57 100644 (file)
@@ -67,6 +67,7 @@ int rconn_get_probe_interval(const struct rconn *);
 int rconn_connect(struct rconn *, const char *name);
 void rconn_connect_unreliably(struct rconn *,
                               const char *name, struct vconn *vconn);
+void rconn_reconnect(struct rconn *);
 void rconn_disconnect(struct rconn *);
 void rconn_destroy(struct rconn *);