ofproto: Fix use-after-free error when ports disappear.
[sliver-openvswitch.git] / lib / rconn.c
index 0e18ab4..1b69b8f 100644 (file)
@@ -119,8 +119,8 @@ struct rconn {
      *
      * We don't cache the local port, because that changes from one connection
      * attempt to the next. */
-    uint32_t local_ip, remote_ip;
-    uint16_t remote_port;
+    ovs_be32 local_ip, remote_ip;
+    ovs_be16 remote_port;
 
     /* Messages sent or received are copied to the monitor connections. */
 #define MAX_MONITORS 8
@@ -700,7 +700,7 @@ rconn_failure_duration(const struct rconn *rconn)
 
 /* Returns the IP address of the peer, or 0 if the peer's IP address is not
  * known. */
-uint32_t
+ovs_be32
 rconn_get_remote_ip(const struct rconn *rconn)
 {
     return rconn->remote_ip;
@@ -708,7 +708,7 @@ rconn_get_remote_ip(const struct rconn *rconn)
 
 /* Returns the transport port of the peer, or 0 if the peer's port is not
  * known. */
-uint16_t
+ovs_be16
 rconn_get_remote_port(const struct rconn *rconn)
 {
     return rconn->remote_port;
@@ -717,7 +717,7 @@ rconn_get_remote_port(const struct rconn *rconn)
 /* Returns the IP address used to connect to the peer, or 0 if the
  * connection is not an IP-based protocol or if its IP address is not
  * known. */
-uint32_t
+ovs_be32
 rconn_get_local_ip(const struct rconn *rconn)
 {
     return rconn->local_ip;
@@ -725,7 +725,7 @@ rconn_get_local_ip(const struct rconn *rconn)
 
 /* Returns the transport port used to connect to the peer, or 0 if the
  * connection does not contain a port or if the port is not known. */
-uint16_t
+ovs_be16
 rconn_get_local_port(const struct rconn *rconn)
 {
     return rconn->vconn ? vconn_get_local_port(rconn->vconn) : 0;