]> xenbits.xensource.com Git - people/liuw/qemu-rump-config.git/commitdiff
some interfaces may not exist to be added to bridge
authorWei Liu <wei.liu2@citrix.com>
Fri, 31 Jul 2015 10:21:09 +0000 (11:21 +0100)
committerWei Liu <wei.liu2@citrix.com>
Fri, 31 Jul 2015 10:21:09 +0000 (11:21 +0100)
qemu-rump-config.c

index 5daa87b8d7a4c69ec76c2c2043aff2da170c9b2d..1a85f8ccb7e0d7993a854ad4ab6ab9df412fbfac 100644 (file)
@@ -48,7 +48,8 @@ void new_interface(const char *name)
        close(s);
 }
 
-void add_to_bridge(const char *bridge, const char *interface)
+void add_to_bridge(const char *bridge, const char *interface,
+                  bool mandatory)
 {
        int s, rc;
        struct ifbreq ifbr;
@@ -66,7 +67,7 @@ void add_to_bridge(const char *bridge, const char *interface)
        ifd.ifd_len = sizeof(ifbr);
        ifd.ifd_data = &ifbr;
        rc = ioctl(s, SIOCSDRVSPEC, &ifd);
-       if (rc < 0)
+       if (rc < 0 && mandatory)
                err(1, "SIOCSDRVSPEC");
 
        close(s);
@@ -79,11 +80,12 @@ int main(int argc, char **argv)
        new_interface("tap2");
        new_interface("bridge0");
 
-       add_to_bridge("bridge0", "tap0");
-       add_to_bridge("bridge0", "tap1");
-       add_to_bridge("bridge0", "tap2");
+       add_to_bridge("bridge0", "tap0", true);
+       add_to_bridge("bridge0", "tap1", true);
+       add_to_bridge("bridge0", "tap2", true);
 
-       add_to_bridge("bridge0", "xenif0");
+       add_to_bridge("bridge0", "xenif0", false);
+       add_to_bridge("bridge0", "xenif1", false);
 
        sleep(1000000);
        return 0;