Kaynağa Gözat

cfgtool: Return error when -i doesn't match

Give error message and EXIT_FAILURE return code when -i
option doesn't match.

Signed-off-by: liangxin1300 <XLiang@suse.com>
Reviewed-by: Jan Friesse <jfriesse@redhat.com>
liangxin1300 5 yıl önce
ebeveyn
işleme
c02a69a988
1 değiştirilmiş dosya ile 8 ekleme ve 0 silme
  1. 8 0
      tools/corosync-cfgtool.c

+ 8 - 0
tools/corosync-cfgtool.c

@@ -110,6 +110,7 @@ linkstatusget_do (char *interface_name, int brief)
 	char stat_ch;
 	char stat_ch;
 	char *str;
 	char *str;
 	totem_transport_t transport_number = TOTEM_TRANSPORT_KNET;
 	totem_transport_t transport_number = TOTEM_TRANSPORT_KNET;
+	int no_match = 1;
 
 
 	printf ("Printing link status.\n");
 	printf ("Printing link status.\n");
 	result = corosync_cfg_initialize (&handle, NULL);
 	result = corosync_cfg_initialize (&handle, NULL);
@@ -201,6 +202,7 @@ linkstatusget_do (char *interface_name, int brief)
 			}
 			}
 
 
 			if (show_current_iface) {
 			if (show_current_iface) {
+				no_match = 0;
 				printf ("LINK ID %s\n", interface_names[i]);
 				printf ("LINK ID %s\n", interface_names[i]);
 				printf ("\taddr\t= %s\n", cur_iface_name_space + 1);
 				printf ("\taddr\t= %s\n", cur_iface_name_space + 1);
 				/*
 				/*
@@ -270,6 +272,12 @@ linkstatusget_do (char *interface_name, int brief)
 			}
 			}
 		}
 		}
 
 
+		/* No match for value of -i option */
+		if (no_match) {
+			rc = EXIT_FAILURE;
+			fprintf(stderr, "Can't match any IP address or link id\n");
+		}
+
 		for (i = 0; i < interface_count; i++) {
 		for (i = 0; i < interface_count; i++) {
 			free(interface_status[i]);
 			free(interface_status[i]);
 			free(interface_names[i]);
 			free(interface_names[i]);