Don't send mgmt OpenFlow messages if mgmt_rconn isn't set.
authorJustin Pettit <jpettit@nicira.com>
Fri, 13 Mar 2009 00:32:33 +0000 (17:32 -0700)
committerJustin Pettit <jpettit@nicira.com>
Fri, 13 Mar 2009 00:33:53 +0000 (17:33 -0700)
In some circumstances we try to send a configuration update to the
controller, regardless of whether we're actually connected.  This fixes
that and warns if others try to do similar things.

vswitchd/mgmt.c

index 4e1130c73aa86255d53872ea85375899c299cebc..22eaf7e81fa27eb284efffa1d7a6986d74bd3503 100644 (file)
@@ -162,7 +162,7 @@ mgmt_reconfigure(void)
          * resent automatically.  If we're not reconnecting and the
          * config file has changed, we need to notify the controller of
          * changes. */
-        if (cfg_updated) {
+        if (cfg_updated && mgmt_rconn) {
             send_config_update(0, false);
         }
         return;
@@ -223,6 +223,11 @@ send_openflow_buffer(struct ofpbuf *buffer)
 {               
     int retval;
 
+    if (!mgmt_rconn) {
+        VLOG_ERR("attempt to send openflow packet with no rconn\n");
+        return EINVAL;
+    }
+
     update_openflow_length(buffer);
     retval = rconn_send_with_limit(mgmt_rconn, buffer, txqlen, TXQ_LIMIT);
     if (retval) {