vconn: Make errors in vconn names non-fatal errors.
[openvswitch] / switch / switch.c
index 77d43bb87d8a70d4a4c26426ddd7160d92fa6d83..01fb4b8218589301d618ae047be255d85783deeb 100644 (file)
@@ -71,6 +71,7 @@ static void add_ports(struct datapath *dp, char *port_list);
 int
 main(int argc, char *argv[])
 {
+    struct rconn *rconn;
     int error;
 
     set_program_name(argv[0]);
@@ -82,7 +83,12 @@ main(int argc, char *argv[])
         fatal(0, "missing controller argument; use --help for usage");
     }
 
-    error = dp_new(&dp, dpid, rconn_new(argv[optind], 128, 60, max_backoff));
+    rconn = rconn_create(128, 60, max_backoff);
+    error = rconn_connect(rconn, argv[optind]);
+    if (error == EAFNOSUPPORT) {
+        fatal(0, "no support for %s vconn", argv[optind]);
+    }
+    error = dp_new(&dp, dpid, rconn);
     if (listen_vconn_name) {
         struct vconn *listen_vconn;
         int retval;