File nma-mm-api-change.patch of Package NetworkManager-gnome

Index: network-manager-applet-0.7.1/src/nma-gsm-modem.c
===================================================================
--- network-manager-applet-0.7.1.orig/src/nma-gsm-modem.c
+++ network-manager-applet-0.7.1/src/nma-gsm-modem.c
@@ -103,17 +103,25 @@ nma_gsm_modem_get_registration_info (NMA
 							  char **operator_name)
 {
 	NMAGsmModemPrivate *priv = NMA_GSM_MODEM_GET_PRIVATE (modem);
+	GValueArray *array = NULL;
 	GError *err = NULL;
 	guint32 status = MM_GSM_MODEM_REG_STATUS_UNKNOWN;
 
 	g_return_val_if_fail (NMA_IS_GSM_MODEM (modem), 0);
 
-	if (!dbus_g_proxy_call (priv->proxy, "GetRegistrationInfo", &err,
-					    G_TYPE_INVALID,
-					    G_TYPE_UINT, &status,
-					    G_TYPE_STRING, operator_code,
-					    G_TYPE_STRING, operator_name,
-					    G_TYPE_INVALID)) {
+	if (dbus_g_proxy_call (priv->proxy, "GetRegistrationInfo", &err,
+					   G_TYPE_INVALID,
+					   dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, 
+										  G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID), &array,
+					   G_TYPE_INVALID)) {
+
+		g_assert (array->n_values == 3);
+		status = g_value_get_uint (g_value_array_get_nth (array, 0));
+		*operator_code = g_value_dup_string (g_value_array_get_nth (array, 1));
+		*operator_name = g_value_dup_string (g_value_array_get_nth (array, 2));
+
+		g_value_array_free (array);
+	} else {
 		g_warning ("Error in getting network mode: %s", err->message);
 		g_error_free (err);
 	}
Index: network-manager-applet-0.7.1/src/modems/main.c
===================================================================
--- network-manager-applet-0.7.1.orig/src/modems/main.c
+++ network-manager-applet-0.7.1/src/modems/main.c
@@ -71,26 +71,26 @@ static void
 get_card_info_done (DBusGProxy *proxy, DBusGProxyCall *call_id, gpointer user_data)
 {
 	GladeXML *glade_xml = GLADE_XML (user_data);
-	char *manufacturer = NULL;
-	char *model = NULL;
-	char *version = NULL;
+	GValueArray *array = NULL;
 	GError *error = NULL;
 
 	if (!dbus_g_proxy_end_call (proxy, call_id, &error,
-								G_TYPE_STRING, &manufacturer,
-								G_TYPE_STRING, &model,
-								G_TYPE_STRING, &version,
+								dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING,
+														G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID), &array,
 								G_TYPE_INVALID)) {
 		g_warning ("Couldn't get modem information: %s", error->message);
 		g_error_free (error);
 	} else {
-		gtk_label_set_text (GTK_LABEL (glade_xml_get_widget (glade_xml, "vendor_label")), manufacturer);
-		gtk_label_set_text (GTK_LABEL (glade_xml_get_widget (glade_xml, "model_label")), model);
-		gtk_label_set_text (GTK_LABEL (glade_xml_get_widget (glade_xml, "version_label")), version);
+		g_assert (array->n_values == 3);
 
-		g_free (manufacturer);
-		g_free (model);
-		g_free (version);
+		gtk_label_set_text (GTK_LABEL (glade_xml_get_widget (glade_xml, "vendor_label")),
+							g_value_get_string (g_value_array_get_nth (array, 0)));
+		gtk_label_set_text (GTK_LABEL (glade_xml_get_widget (glade_xml, "model_label")),
+							g_value_get_string (g_value_array_get_nth (array, 1)));
+		gtk_label_set_text (GTK_LABEL (glade_xml_get_widget (glade_xml, "version_label")),
+							g_value_get_string (g_value_array_get_nth (array, 2)));
+
+		g_value_array_free (array);
 	}
 }
 
openSUSE Build Service is sponsored by