summary refs log tree commit diff
path: root/clients/cli/devices.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2015-05-05 17:48:57 +0200
committerMichael Biebl <biebl@debian.org>2015-05-05 17:48:57 +0200
commitf408e27bccfacf347605a8d98649975a68f38a17 (patch)
tree654fd6695c31511baf919b1c0870d119a352ed75 /clients/cli/devices.c
parent2c032d8f1c6292c1338a615e6ec40252889ba85c (diff)
Imported Upstream version 1.0.2 upstream/1.0.2
Diffstat (limited to 'clients/cli/devices.c')
-rw-r--r--clients/cli/devices.c115
1 files changed, 69 insertions, 46 deletions
diff --git a/clients/cli/devices.c b/clients/cli/devices.c
index 5530adc7..1633f0ce 100644
--- a/clients/cli/devices.c
+++ b/clients/cli/devices.c
@@ -57,28 +57,31 @@ static NmcOutputField nmc_fields_dev_show_general[] = {
 	{"NAME",              N_("NAME"),              10},  /* 0 */
 	{"DEVICE",            N_("DEVICE"),            10},  /* 1 */
 	{"TYPE",              N_("TYPE"),              17},  /* 2 */
-	{"VENDOR",            N_("VENDOR"),            20},  /* 3 */
-	{"PRODUCT",           N_("PRODUCT"),           50},  /* 4 */
-	{"DRIVER",            N_("DRIVER"),             9},  /* 5 */
-	{"DRIVER-VERSION",    N_("DRIVER-VERSION"),    18},  /* 6 */
-	{"FIRMWARE-VERSION",  N_("FIRMWARE-VERSION"),  18},  /* 7 */
-	{"HWADDR",            N_("HWADDR"),            19},  /* 8 */
-	{"MTU",               N_("MTU"),               10},  /* 9 */
-	{"STATE",             N_("STATE"),             14},  /* 10 */
-	{"REASON",            N_("REASON"),            25},  /* 11 */
-	{"UDI",               N_("UDI"),               64},  /* 12 */
-	{"IP-IFACE",          N_("IP-IFACE"),          10},  /* 13 */
-	{"IS-SOFTWARE",       N_("IS-SOFTWARE"),       15},  /* 14 */
-	{"NM-MANAGED",        N_("NM-MANAGED"),        15},  /* 15 */
-	{"AUTOCONNECT",       N_("AUTOCONNECT"),       15},  /* 16 */
-	{"FIRMWARE-MISSING",  N_("FIRMWARE-MISSING"),  18},  /* 17 */
-	{"CONNECTION",        N_("CONNECTION"),        20},  /* 18 */
-	{"CON-UUID",          N_("CON-UUID"),          38},  /* 19 */
-	{"CON-PATH",          N_("CON-PATH"),          51},  /* 20 */
+	{"NM-TYPE",           N_("NM-TYPE"),           17},  /* 3 */
+	{"VENDOR",            N_("VENDOR"),            20},  /* 4 */
+	{"PRODUCT",           N_("PRODUCT"),           50},  /* 5 */
+	{"DRIVER",            N_("DRIVER"),             9},  /* 6 */
+	{"DRIVER-VERSION",    N_("DRIVER-VERSION"),    18},  /* 7 */
+	{"FIRMWARE-VERSION",  N_("FIRMWARE-VERSION"),  18},  /* 8 */
+	{"HWADDR",            N_("HWADDR"),            19},  /* 9 */
+	{"MTU",               N_("MTU"),               10},  /* 10 */
+	{"STATE",             N_("STATE"),             14},  /* 11 */
+	{"REASON",            N_("REASON"),            25},  /* 12 */
+	{"UDI",               N_("UDI"),               64},  /* 13 */
+	{"IP-IFACE",          N_("IP-IFACE"),          10},  /* 14 */
+	{"IS-SOFTWARE",       N_("IS-SOFTWARE"),       15},  /* 15 */
+	{"NM-MANAGED",        N_("NM-MANAGED"),        15},  /* 16 */
+	{"AUTOCONNECT",       N_("AUTOCONNECT"),       15},  /* 17 */
+	{"FIRMWARE-MISSING",  N_("FIRMWARE-MISSING"),  18},  /* 18 */
+	{"PHYS-PORT-ID",      N_("PHYS-PORT-ID"),      18},  /* 19 */
+	{"CONNECTION",        N_("CONNECTION"),        20},  /* 20 */
+	{"CON-UUID",          N_("CON-UUID"),          38},  /* 21 */
+	{"CON-PATH",          N_("CON-PATH"),          51},  /* 22 */
 	{NULL, NULL, 0}
 };
-#define NMC_FIELDS_DEV_SHOW_GENERAL_ALL     "NAME,DEVICE,TYPE,VENDOR,PRODUCT,DRIVER,DRIVER-VERSION,FIRMWARE-VERSION,HWADDR,MTU,STATE,REASON,"\
-                                            "UDI,IP-IFACE,IS-SOFTWARE,NM-MANAGED,AUTOCONNECT,FIRMWARE-MISSING,CONNECTION,CON-UUID,CON-PATH"
+#define NMC_FIELDS_DEV_SHOW_GENERAL_ALL     "NAME,DEVICE,TYPE,NM-TYPE,VENDOR,PRODUCT,DRIVER,DRIVER-VERSION,FIRMWARE-VERSION,HWADDR,MTU,"\
+                                            "STATE,REASON,UDI,IP-IFACE,IS-SOFTWARE,NM-MANAGED,AUTOCONNECT,FIRMWARE-MISSING,PHYS-PORT-ID,"\
+                                            "CONNECTION,CON-UUID,CON-PATH"
 #define NMC_FIELDS_DEV_SHOW_GENERAL_COMMON  "NAME,DEVICE,TYPE,VENDOR,PRODUCT,DRIVER,HWADDR,STATE"
 
 /* Available fields for 'device show' - CONNECTIONS part */
@@ -121,9 +124,11 @@ static NmcOutputField nmc_fields_dev_show_wifi_prop[] = {
 	{"CCMP",       N_("CCMP"),    6},  /* 5 */
 	{"AP",         N_("AP"),      6},  /* 6 */
 	{"ADHOC",      N_("ADHOC"),   6},  /* 7 */
+	{"2GHZ",       N_("2GHZ"),   10},  /* 8 */
+	{"5GHZ",       N_("5GHZ"),   10},  /* 9 */
 	{NULL,         NULL,          0}
 };
-#define NMC_FIELDS_DEV_SHOW_WIFI_PROP_ALL     "NAME,WEP,WPA,WPA2,TKIP,CCMP,AP,ADHOC"
+#define NMC_FIELDS_DEV_SHOW_WIFI_PROP_ALL     "NAME,WEP,WPA,WPA2,TKIP,CCMP,AP,ADHOC,2GHZ,5GHZ"
 #define NMC_FIELDS_DEV_SHOW_WIFI_PROP_COMMON  "NAME,WEP,WPA,WPA2,TKIP,CCMP,AP,ADHOC"
 
 /* Available fields for 'device show' - wimax properties part */
@@ -832,24 +837,26 @@ show_device_info (NMDevice *device, NmCli *nmc)
 			set_val_strc (arr, 0, nmc_fields_dev_show_sections[0].name);  /* "GENERAL"*/
 			set_val_strc (arr, 1, nm_device_get_iface (device));
 			set_val_strc (arr, 2, nm_device_get_type_description (device));
-			set_val_strc (arr, 3, nm_device_get_vendor (device));
-			set_val_strc (arr, 4, nm_device_get_product (device));
-			set_val_strc (arr, 5, nm_device_get_driver (device) ? nm_device_get_driver (device) : _("(unknown)"));
-			set_val_strc (arr, 6, nm_device_get_driver_version (device));
-			set_val_strc (arr, 7, nm_device_get_firmware_version (device));
-			set_val_strc (arr, 8, hwaddr ? hwaddr : _("(unknown)"));
-			set_val_str  (arr, 9, mtu_str);
-			set_val_str  (arr, 10, state_str);
-			set_val_str  (arr, 11, reason_str);
-			set_val_strc (arr, 12, nm_device_get_udi (device));
-			set_val_strc (arr, 13, nm_device_get_ip_iface (device));
-			set_val_strc (arr, 14, nm_device_is_software (device) ? _("yes") : _("no"));
-			set_val_strc (arr, 15, nm_device_get_managed (device) ? _("yes") : _("no"));
-			set_val_strc (arr, 16, nm_device_get_autoconnect (device) ? _("yes") : _("no"));
-			set_val_strc (arr, 17, nm_device_get_firmware_missing (device) ? _("yes") : _("no"));
-			set_val_strc (arr, 18, get_active_connection_id (device));
-			set_val_strc (arr, 19, acon ? nm_active_connection_get_uuid (acon) : NULL);
-			set_val_strc (arr, 20, acon ? nm_object_get_path (NM_OBJECT (acon)) : NULL);
+			set_val_strc (arr, 3, G_OBJECT_TYPE_NAME (device));
+			set_val_strc (arr, 4, nm_device_get_vendor (device));
+			set_val_strc (arr, 5, nm_device_get_product (device));
+			set_val_strc (arr, 6, nm_device_get_driver (device) ? nm_device_get_driver (device) : _("(unknown)"));
+			set_val_strc (arr, 7, nm_device_get_driver_version (device));
+			set_val_strc (arr, 8, nm_device_get_firmware_version (device));
+			set_val_strc (arr, 9, hwaddr ? hwaddr : _("(unknown)"));
+			set_val_str  (arr, 10, mtu_str);
+			set_val_str  (arr, 11, state_str);
+			set_val_str  (arr, 12, reason_str);
+			set_val_strc (arr, 13, nm_device_get_udi (device));
+			set_val_strc (arr, 14, nm_device_get_ip_iface (device));
+			set_val_strc (arr, 15, nm_device_is_software (device) ? _("yes") : _("no"));
+			set_val_strc (arr, 16, nm_device_get_managed (device) ? _("yes") : _("no"));
+			set_val_strc (arr, 17, nm_device_get_autoconnect (device) ? _("yes") : _("no"));
+			set_val_strc (arr, 18, nm_device_get_firmware_missing (device) ? _("yes") : _("no"));
+			set_val_strc (arr, 19, nm_device_get_physical_port_id (device));
+			set_val_strc (arr, 20, get_active_connection_id (device));
+			set_val_strc (arr, 21, acon ? nm_active_connection_get_uuid (acon) : NULL);
+			set_val_strc (arr, 22, acon ? nm_object_get_path (NM_OBJECT (acon)) : NULL);
 			g_ptr_array_add (nmc->output_data, arr);
 
 			print_data (nmc);  /* Print all data */
@@ -916,6 +923,10 @@ show_device_info (NMDevice *device, NmCli *nmc)
 				set_val_strc (arr, 5, (wcaps & NM_WIFI_DEVICE_CAP_CIPHER_CCMP) ? _("yes") : _("no"));
 				set_val_strc (arr, 6, (wcaps & NM_WIFI_DEVICE_CAP_AP) ? _("yes") : _("no"));
 				set_val_strc (arr, 7, (wcaps & NM_WIFI_DEVICE_CAP_ADHOC) ? _("yes") : _("no"));
+				set_val_strc (arr, 8, !(wcaps & NM_WIFI_DEVICE_CAP_FREQ_VALID) ? _("unknown") :
+				                      ((wcaps & NM_WIFI_DEVICE_CAP_FREQ_2GHZ) ? _("yes") : _("no")));
+				set_val_strc (arr, 9, !(wcaps & NM_WIFI_DEVICE_CAP_FREQ_VALID) ? _("unknown") :
+				                      ((wcaps & NM_WIFI_DEVICE_CAP_FREQ_5GHZ) ? _("yes") : _("no")));
 				g_ptr_array_add (nmc->output_data, arr);
 
 				print_data (nmc);  /* Print all data */
@@ -1634,7 +1645,7 @@ disconnect_state_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data)
 
 	state = nm_device_get_state (device);
 
-	if (state == NM_DEVICE_STATE_DISCONNECTED) {
+	if (state <= NM_DEVICE_STATE_DISCONNECTED) {
 		g_signal_handlers_disconnect_by_data (device, user_data);
 		g_print (_("Device '%s' successfully disconnected.\n"),
 		         nm_device_get_iface (device));
@@ -1671,9 +1682,9 @@ disconnect_device_cb (GObject *object, GAsyncResult *result, gpointer user_data)
 	} else {
 		state = nm_device_get_state (device);
 
-		if (nmc->nowait_flag || state == NM_DEVICE_STATE_DISCONNECTED) {
+		if (nmc->nowait_flag || state <= NM_DEVICE_STATE_DISCONNECTED) {
 			/* Don't want to wait or device already disconnected */
-			if (state == NM_DEVICE_STATE_DISCONNECTED) {
+			if (state <= NM_DEVICE_STATE_DISCONNECTED) {
 				if (nmc->print_output == NMC_PRINT_PRETTY)
 					nmc_terminal_erase_line ();
 				g_print (_("Device '%s' has been disconnected.\n"), nm_device_get_iface (device));
@@ -2005,7 +2016,13 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
 				show_access_point_info (device, nmc);
 			}
 		} else {
-			g_string_printf (nmc->return_text, _("Error: Device '%s' is not a Wi-Fi device."), ifname);
+			const char *err_msg;
+			if (   nm_device_get_device_type (device) == NM_DEVICE_TYPE_GENERIC
+			    && g_strcmp0 (nm_device_get_type_description (device), "wifi") == 0)
+				err_msg = _("Error: Device '%s' was not recognized as a Wi-Fi device, check NetworkManager Wi-Fi plugin.");
+			else
+				err_msg = _("Error: Device '%s' is not a Wi-Fi device.");
+			g_string_printf (nmc->return_text, err_msg, ifname);
 			nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
 			goto error;
 		}
@@ -2485,9 +2502,15 @@ do_device_wifi_rescan (NmCli *nmc, int argc, char **argv)
 	device = find_wifi_device_by_iface (devices, ifname, &devices_idx);
 
 	if (!device) {
-		if (ifname)
-			g_string_printf (nmc->return_text, _("Error: Device '%s' is not a Wi-Fi device."), ifname);
-		else
+		if (ifname) {
+			const char *err_msg;
+			if (   nm_device_get_device_type (device) == NM_DEVICE_TYPE_GENERIC
+			    && g_strcmp0 (nm_device_get_type_description (device), "wifi") == 0)
+				err_msg = _("Error: Device '%s' was not recognized as a Wi-Fi device, check NetworkManager Wi-Fi plugin.");
+			else
+				err_msg = _("Error: Device '%s' is not a Wi-Fi device.");
+			g_string_printf (nmc->return_text, err_msg, ifname);
+		} else
 			g_string_printf (nmc->return_text, _("Error: No Wi-Fi device found."));
 		nmc->return_value = NMC_RESULT_ERROR_UNKNOWN;
 		goto error;