]> xenbits.xensource.com Git - xen.git/commitdiff
xl: fix network-detach command line parsing
authorKeir Fraser <keir.fraser@citrix.com>
Fri, 4 Jun 2010 09:10:45 +0000 (10:10 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Fri, 4 Jun 2010 09:10:45 +0000 (10:10 +0100)
Command line arguments start at argv[2].  Also, exit(1) on failure.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
tools/libxl/xl_cmdimpl.c

index 54507e4583c09004b127e8b65371d22b475bc714..0681b058cd398b7354ed5bdce97e8f77a4ccbe52 100644 (file)
@@ -3508,11 +3508,11 @@ int main_networkdetach(int argc, char **argv)
     int opt;
     libxl_device_nic nic;
 
-    if (argc != 3) {
+    if (argc != 4) {
         help("network-detach");
         exit(0);
     }
-    while ((opt = getopt(argc, argv, "hl")) != -1) {
+    while ((opt = getopt(argc, argv, "h")) != -1) {
         switch (opt) {
         case 'h':
             help("network-detach");
@@ -3523,24 +3523,25 @@ int main_networkdetach(int argc, char **argv)
         }
     }
 
-    if (domain_qualifier_to_domid(argv[1], &domid, 0) < 0) {
-        fprintf(stderr, "%s is an invalid domain identifier\n", argv[1]);
+    if (domain_qualifier_to_domid(argv[2], &domid, 0) < 0) {
+        fprintf(stderr, "%s is an invalid domain identifier\n", argv[2]);
         exit(1);
     }
 
-    if (!strchr(argv[2], ':')) {
-        if (libxl_devid_to_device_nic(&ctx, domid, argv[2], &nic)) {
-            fprintf(stderr, "Unknown device %s.\n", argv[2]);
+    if (!strchr(argv[3], ':')) {
+        if (libxl_devid_to_device_nic(&ctx, domid, argv[3], &nic)) {
+            fprintf(stderr, "Unknown device %s.\n", argv[3]);
             exit(1);
         }
     } else {
-        if (libxl_mac_to_device_nic(&ctx, domid, argv[2], &nic)) {
-            fprintf(stderr, "Unknown device %s.\n", argv[2]);
+        if (libxl_mac_to_device_nic(&ctx, domid, argv[3], &nic)) {
+            fprintf(stderr, "Unknown device %s.\n", argv[3]);
             exit(1);
         }
     }
     if (libxl_device_nic_del(&ctx, &nic, 1)) {
         fprintf(stderr, "libxl_device_nic_del failed.\n");
+        exit(1);
     }
     exit(0);
 }