New function rconn_get_ip().
authorBen Pfaff <blp@nicira.com>
Wed, 16 Jul 2008 20:22:30 +0000 (13:22 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 18 Jul 2008 20:23:23 +0000 (13:23 -0700)
include/rconn.h
lib/rconn.c

index 17fcef82a3ab44e8c75e29bad6f784c532b1de53..67356862cf1cbc694498a1555a62af79baff2043 100644 (file)
@@ -36,6 +36,7 @@
 
 #include "queue.h"
 #include <stdbool.h>
+#include <stdint.h>
 #include <time.h>
 
 /* A wrapper around vconn that provides queuing and optionally reliability.
@@ -72,4 +73,6 @@ bool rconn_is_alive(const struct rconn *);
 bool rconn_is_connected(const struct rconn *);
 int rconn_disconnected_duration(const struct rconn *);
 
+uint32_t rconn_get_ip(const struct rconn *);
+
 #endif /* rconn.h */
index 46fd51df35217337f164a2ea37dd91b99047f3ef..a6613ffe60c7fd9f7f638c87e455f50fdb1e0099 100644 (file)
@@ -324,6 +324,14 @@ rconn_disconnected_duration(const struct rconn *rconn)
 {
     return rconn_is_connected(rconn) ? 0 : time(0) - rconn->last_connected;
 }
+
+/* Returns the IP address of the peer, or 0 if the peer is not connected over
+ * an IP-based protocol or if its IP address is not known. */
+uint32_t
+rconn_get_ip(const struct rconn *rconn) 
+{
+    return rconn->vconn ? vconn_get_ip(rconn->vconn) : 0;
+}
 \f
 static struct rconn *
 create_rconn(const char *name, int txq_limit, int probe_interval,