From: Ben Pfaff Date: Wed, 24 Oct 2012 16:42:34 +0000 (-0700) Subject: rconn: Factor code out from copy_to_monitor(). X-Git-Tag: sliver-openvswitch-1.10.90-3~16^2~39 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=5ac7c4dcf593a4515f9302cd0f5beae3c0290a96;p=sliver-openvswitch.git rconn: Factor code out from copy_to_monitor(). This prepares for the introduction of a second user in the following commit. Signed-off-by: Ben Pfaff --- diff --git a/lib/rconn.c b/lib/rconn.c index 9b6cd8638..d7bb0be21 100644 --- a/lib/rconn.c +++ b/lib/rconn.c @@ -150,6 +150,7 @@ static void reconnect(struct rconn *); static void report_error(struct rconn *, int error); static void disconnect(struct rconn *, int error); static void flush_queue(struct rconn *); +static void close_monitor(struct rconn *, size_t idx, int retval); static void copy_to_monitor(struct rconn *, const struct ofpbuf *); static bool is_connected_state(enum state); static bool is_admitted_msg(const struct ofpbuf *); @@ -1056,6 +1057,15 @@ state_transition(struct rconn *rc, enum state state) rc->state_entered = time_now(); } +static void +close_monitor(struct rconn *rc, size_t idx, int retval) +{ + VLOG_DBG("%s: closing monitor connection to %s: %s", + rconn_get_name(rc), vconn_get_name(rc->monitors[idx]), + ovs_retval_to_string(retval)); + rc->monitors[idx] = rc->monitors[--rc->n_monitors]; +} + static void copy_to_monitor(struct rconn *rc, const struct ofpbuf *b) { @@ -1073,10 +1083,7 @@ copy_to_monitor(struct rconn *rc, const struct ofpbuf *b) if (!retval) { clone = NULL; } else if (retval != EAGAIN) { - VLOG_DBG("%s: closing monitor connection to %s: %s", - rconn_get_name(rc), vconn_get_name(vconn), - strerror(retval)); - rc->monitors[i] = rc->monitors[--rc->n_monitors]; + close_monitor(rc, i, retval); continue; } i++;