Merge lp:~achiang/network-manager-applet/precise-lp780602 into lp:~network-manager/network-manager-applet/ubuntu.precise
- precise-lp780602
- Merge into ubuntu.precise
Proposed by
Alex Chiang
on 2012-11-22
| Status: | Merged |
|---|---|
| Approved by: | Mathieu Trudel-Lapierre on 2012-11-23 |
| Approved revision: | 340 |
| Merged at revision: | 337 |
| Proposed branch: | lp:~achiang/network-manager-applet/precise-lp780602 |
| Merge into: | lp:~network-manager/network-manager-applet/ubuntu.precise |
| Diff against target: |
1668 lines (+606/-160) 5 files modified
debian/changelog (+13/-0) debian/patches/git_fix_some_leaks_80ef61b.patch (+336/-0) debian/patches/git_mac_addr_string_leakage_6dae878.patch (+94/-0) debian/patches/nm-applet-use-indicator.patch (+161/-160) debian/patches/series (+2/-0) |
| To merge this branch: | bzr merge lp:~achiang/network-manager-applet/precise-lp780602 |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Mathieu Trudel-Lapierre | 2012-11-22 | Approve on 2012-11-23 | |
|
Review via email:
|
|||
Commit Message
Description of the Change
Backport several memory leaks from trunk that were fixed in 12.10 in the hopes that they fix LP: #780602
Packages built fine, and installed fine on my 12.04 amd64 laptop.
Currently doing a valgrind run to verify that things are better, but since these patches have been shipped for a long time, I think these are pretty safe.
To post a comment you must log in.
lp:~achiang/network-manager-applet/precise-lp780602
updated
on 2012-11-23
- 340. By Alex Chiang on 2012-11-23
-
Fix version string.
| Mathieu Trudel-Lapierre (cyphermox) wrote : | # |
Already did merge and upload this : approve.
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
| 1 | === modified file 'debian/changelog' |
| 2 | --- debian/changelog 2012-04-05 19:07:45 +0000 |
| 3 | +++ debian/changelog 2012-11-23 16:30:42 +0000 |
| 4 | @@ -1,3 +1,16 @@ |
| 5 | +network-manager-applet (0.9.4.1-0ubuntu2.1) UNRELEASED; urgency=low |
| 6 | + |
| 7 | + * Backport r355, r364, r368 from trunk (LP: #780602) |
| 8 | + - debian/patches/nm-applet-use-indicator.patch: Plug two small leaks. |
| 9 | + - debian/patches/git_fix_some_leaks_80ef61b.patch: cherry-picked patch to |
| 10 | + fix a few leaks: g_object_get() and gtk_tree_model_get() copy/ref the |
| 11 | + values they return, so make sure to deal with that everywhere. |
| 12 | + - debian/patches/git_mac_addr_string_leakage_6dae878.patch: use |
| 13 | + nm_utils_hwaddr_ntoa() to output MAC addresses as strings since it's |
| 14 | + available and make sure they get freed to avoid leaks. |
| 15 | + |
| 16 | + -- Alex Chiang <achiang@canonical.com> Wed, 21 Nov 2012 16:24:21 -0800 |
| 17 | + |
| 18 | network-manager-applet (0.9.4.1-0ubuntu2) precise; urgency=low |
| 19 | |
| 20 | * debian/patches/nm-applet-use-indicator.patch: move the tooltip/accessible |
| 21 | |
| 22 | === added file 'debian/patches/git_fix_some_leaks_80ef61b.patch' |
| 23 | --- debian/patches/git_fix_some_leaks_80ef61b.patch 1970-01-01 00:00:00 +0000 |
| 24 | +++ debian/patches/git_fix_some_leaks_80ef61b.patch 2012-11-23 16:30:42 +0000 |
| 25 | @@ -0,0 +1,336 @@ |
| 26 | +From 80ef61b967d33e398b0637ebfb5a0dae06ddd379 Mon Sep 17 00:00:00 2001 |
| 27 | +From: Dan Winship <danw@gnome.org> |
| 28 | +Date: Thu, 15 Mar 2012 14:25:46 +0000 |
| 29 | +Subject: Fix some leaks |
| 30 | + |
| 31 | +g_object_get() and gtk_tree_model_get() copy/ref the values they |
| 32 | +return, so make sure to deal with that everywhere. |
| 33 | + |
| 34 | +https://bugzilla.gnome.org/show_bug.cgi?id=679723 |
| 35 | +--- |
| 36 | +diff --git a/src/connection-editor/nm-connection-list.c b/src/connection-editor/nm-connection-list.c |
| 37 | +index 455334d..09e84ea 100644 |
| 38 | +--- a/src/connection-editor/nm-connection-list.c |
| 39 | ++++ b/src/connection-editor/nm-connection-list.c |
| 40 | +@@ -127,6 +127,12 @@ get_active_connection (GtkTreeView *treeview) |
| 41 | + g_list_foreach (selected_rows, (GFunc) gtk_tree_path_free, NULL); |
| 42 | + g_list_free (selected_rows); |
| 43 | + |
| 44 | ++ /* gtk_tree_model_get() will have reffed connection, but we don't |
| 45 | ++ * need that since we know the model will continue to hold a ref. |
| 46 | ++ */ |
| 47 | ++ if (connection) |
| 48 | ++ g_object_unref (connection); |
| 49 | ++ |
| 50 | + return connection; |
| 51 | + } |
| 52 | + |
| 53 | +@@ -198,9 +204,9 @@ get_iter_for_connection (GtkTreeModel *model, |
| 54 | + if (candidate && (candidate == connection)) { |
| 55 | + *iter = temp_iter; |
| 56 | + found = TRUE; |
| 57 | +- break; |
| 58 | + } |
| 59 | +- } while (gtk_tree_model_iter_next (model, &temp_iter)); |
| 60 | ++ g_object_unref (candidate); |
| 61 | ++ } while (!found && gtk_tree_model_iter_next (model, &temp_iter)); |
| 62 | + |
| 63 | + return found; |
| 64 | + } |
| 65 | +diff --git a/src/connection-editor/page-wireless-security.c b/src/connection-editor/page-wireless-security.c |
| 66 | +index 346a52a..09a6744 100644 |
| 67 | +--- a/src/connection-editor/page-wireless-security.c |
| 68 | ++++ b/src/connection-editor/page-wireless-security.c |
| 69 | +@@ -504,6 +504,8 @@ validate (CEPage *page, NMConnection *connection, GError **error) |
| 70 | + valid = FALSE; |
| 71 | + } |
| 72 | + } |
| 73 | ++ |
| 74 | ++ wireless_security_unref (sec); |
| 75 | + } else { |
| 76 | + /* No security, unencrypted */ |
| 77 | + g_object_set (s_wireless, NM_SETTING_WIRELESS_SEC, NULL, NULL); |
| 78 | +@@ -519,9 +521,14 @@ static GtkWidget * |
| 79 | + nag_user (CEPage *page) |
| 80 | + { |
| 81 | + WirelessSecurity *sec; |
| 82 | ++ GtkWidget *nag = NULL; |
| 83 | + |
| 84 | + sec = wireless_security_combo_get_active (CE_PAGE_WIRELESS_SECURITY (page)); |
| 85 | +- return sec ? wireless_security_nag_user (sec) : NULL; |
| 86 | ++ if (sec) { |
| 87 | ++ nag = wireless_security_nag_user (sec); |
| 88 | ++ wireless_security_unref (sec); |
| 89 | ++ } |
| 90 | ++ return nag; |
| 91 | + } |
| 92 | + |
| 93 | + static void |
| 94 | +diff --git a/src/connection-editor/page-wireless.c b/src/connection-editor/page-wireless.c |
| 95 | +index 886f175..3b1b57e 100644 |
| 96 | +--- a/src/connection-editor/page-wireless.c |
| 97 | ++++ b/src/connection-editor/page-wireless.c |
| 98 | +@@ -285,9 +285,9 @@ populate_ui (CEPageWireless *self) |
| 99 | + { |
| 100 | + CEPageWirelessPrivate *priv = CE_PAGE_WIRELESS_GET_PRIVATE (self); |
| 101 | + NMSettingWireless *setting = priv->setting; |
| 102 | +- const GByteArray *ssid = NULL; |
| 103 | +- const char *mode = NULL; |
| 104 | +- const char *band = NULL; |
| 105 | ++ GByteArray *ssid = NULL; |
| 106 | ++ char *mode = NULL; |
| 107 | ++ char *band = NULL; |
| 108 | + int band_idx = 0; |
| 109 | + int rate_def; |
| 110 | + int tx_power_def; |
| 111 | +@@ -330,6 +330,7 @@ populate_ui (CEPageWireless *self) |
| 112 | + gtk_entry_set_text (priv->ssid, utf8_ssid); |
| 113 | + g_signal_connect_swapped (priv->ssid, "changed", G_CALLBACK (ce_page_changed), self); |
| 114 | + g_free (utf8_ssid); |
| 115 | ++ g_byte_array_unref (ssid); |
| 116 | + |
| 117 | + /* Default to Infrastructure */ |
| 118 | + gtk_combo_box_set_active (priv->mode, 0); |
| 119 | +@@ -337,6 +338,7 @@ populate_ui (CEPageWireless *self) |
| 120 | + gtk_combo_box_set_active (priv->mode, 1); |
| 121 | + mode_combo_changed_cb (priv->mode, self); |
| 122 | + g_signal_connect (priv->mode, "changed", G_CALLBACK (mode_combo_changed_cb), self); |
| 123 | ++ g_free (mode); |
| 124 | + |
| 125 | + g_signal_connect (priv->channel, "output", |
| 126 | + G_CALLBACK (channel_spin_output_cb), |
| 127 | +@@ -354,6 +356,7 @@ populate_ui (CEPageWireless *self) |
| 128 | + band_idx = 2; |
| 129 | + gtk_widget_set_sensitive (GTK_WIDGET (priv->channel), TRUE); |
| 130 | + } |
| 131 | ++ g_free (band); |
| 132 | + } |
| 133 | + |
| 134 | + gtk_combo_box_set_active (priv->band, band_idx); |
| 135 | +diff --git a/src/connection-editor/vpn-helpers.c b/src/connection-editor/vpn-helpers.c |
| 136 | +index 12547fe..55ef432 100644 |
| 137 | +--- a/src/connection-editor/vpn-helpers.c |
| 138 | ++++ b/src/connection-editor/vpn-helpers.c |
| 139 | +@@ -427,17 +427,22 @@ sort_plugins (gconstpointer a, gconstpointer b) |
| 140 | + { |
| 141 | + NMVpnPluginUiInterface *aa = NM_VPN_PLUGIN_UI_INTERFACE (a); |
| 142 | + NMVpnPluginUiInterface *bb = NM_VPN_PLUGIN_UI_INTERFACE (b); |
| 143 | +- const char *aa_desc = NULL, *bb_desc = NULL; |
| 144 | ++ char *aa_desc = NULL, *bb_desc = NULL; |
| 145 | ++ gint ret; |
| 146 | + |
| 147 | + g_object_get (aa, NM_VPN_PLUGIN_UI_INTERFACE_NAME, &aa_desc, NULL); |
| 148 | + g_object_get (bb, NM_VPN_PLUGIN_UI_INTERFACE_NAME, &bb_desc, NULL); |
| 149 | + |
| 150 | + if (!aa_desc) |
| 151 | +- return -1; |
| 152 | +- if (!bb_desc) |
| 153 | +- return 1; |
| 154 | +- |
| 155 | +- return strcmp (aa_desc, bb_desc); |
| 156 | ++ ret = -1; |
| 157 | ++ else if (!bb_desc) |
| 158 | ++ ret = 1; |
| 159 | ++ else |
| 160 | ++ ret = strcmp (aa_desc, bb_desc); |
| 161 | ++ |
| 162 | ++ g_free (aa_desc); |
| 163 | ++ g_free (bb_desc); |
| 164 | ++ return ret; |
| 165 | + } |
| 166 | + |
| 167 | + #define COL_PLUGIN_DESC 0 |
| 168 | +@@ -450,7 +455,7 @@ combo_changed_cb (GtkComboBox *combo, gpointer user_data) |
| 169 | + GtkTreeModel *model; |
| 170 | + GtkTreeIter iter; |
| 171 | + NMVpnPluginUiInterface *plugin = NULL; |
| 172 | +- const char *desc = NULL; |
| 173 | ++ char *desc = NULL; |
| 174 | + char *tmp; |
| 175 | + |
| 176 | + if (!gtk_combo_box_get_active_iter (combo, &iter)) |
| 177 | +@@ -465,12 +470,14 @@ combo_changed_cb (GtkComboBox *combo, gpointer user_data) |
| 178 | + goto error; |
| 179 | + |
| 180 | + g_object_get (G_OBJECT (plugin), NM_VPN_PLUGIN_UI_INTERFACE_DESC, &desc, NULL); |
| 181 | ++ g_object_unref (plugin); |
| 182 | + if (!desc) |
| 183 | + goto error; |
| 184 | + |
| 185 | + tmp = g_strdup_printf ("<i>%s</i>", desc); |
| 186 | + gtk_label_set_markup (label, tmp); |
| 187 | + g_free (tmp); |
| 188 | ++ g_free (desc); |
| 189 | + return; |
| 190 | + |
| 191 | + error: |
| 192 | +@@ -515,13 +522,14 @@ vpn_ask_connection_type (GtkWindow *parent) |
| 193 | + plugin_list = g_slist_sort (plugin_list, sort_plugins); |
| 194 | + for (iter = plugin_list; iter; iter = g_slist_next (iter)) { |
| 195 | + NMVpnPluginUiInterface *plugin = NM_VPN_PLUGIN_UI_INTERFACE (iter->data); |
| 196 | +- const char *desc; |
| 197 | ++ char *desc; |
| 198 | + |
| 199 | + gtk_list_store_append (GTK_LIST_STORE (model), &tree_iter); |
| 200 | + g_object_get (plugin, NM_VPN_PLUGIN_UI_INTERFACE_NAME, &desc, NULL); |
| 201 | + gtk_list_store_set (GTK_LIST_STORE (model), &tree_iter, |
| 202 | + COL_PLUGIN_DESC, desc, |
| 203 | + COL_PLUGIN_OBJ, plugin, -1); |
| 204 | ++ g_free (desc); |
| 205 | + } |
| 206 | + |
| 207 | + combo = GTK_WIDGET (gtk_builder_get_object (builder, "vpn_type_combo")); |
| 208 | +@@ -540,15 +548,17 @@ vpn_ask_connection_type (GtkWindow *parent) |
| 209 | + NMVpnPluginUiInterface *plugin = NULL; |
| 210 | + |
| 211 | + gtk_tree_model_get (model, &tree_iter, COL_PLUGIN_OBJ, &plugin, -1); |
| 212 | +- if (plugin) |
| 213 | ++ if (plugin) { |
| 214 | + g_object_get (G_OBJECT (plugin), NM_VPN_PLUGIN_UI_INTERFACE_SERVICE, &service_type, NULL); |
| 215 | ++ g_object_unref (plugin); |
| 216 | ++ } |
| 217 | + } |
| 218 | + |
| 219 | + out: |
| 220 | + gtk_widget_destroy (dialog); |
| 221 | + g_object_unref (builder); |
| 222 | + if (service_type) |
| 223 | +- return g_strdup (service_type); |
| 224 | ++ return service_type; |
| 225 | + return NULL; |
| 226 | + } |
| 227 | + |
| 228 | +diff --git a/src/libnm-gtk/nm-mobile-wizard.c b/src/libnm-gtk/nm-mobile-wizard.c |
| 229 | +index 2b91fa9..0966c99 100644 |
| 230 | +--- a/src/libnm-gtk/nm-mobile-wizard.c |
| 231 | ++++ b/src/libnm-gtk/nm-mobile-wizard.c |
| 232 | +@@ -171,6 +171,8 @@ assistant_closed (GtkButton *button, gpointer user_data) |
| 233 | + |
| 234 | + (*(self->callback)) (self, FALSE, wiz_method, self->user_data); |
| 235 | + |
| 236 | ++ if (provider) |
| 237 | ++ nmn_mobile_provider_unref (provider); |
| 238 | + g_free (wiz_method->provider_name); |
| 239 | + g_free (wiz_method->plan_name); |
| 240 | + g_free (wiz_method->username); |
| 241 | +@@ -292,17 +294,20 @@ confirm_prepare (NMAMobileWizard *self) |
| 242 | + |
| 243 | + /* Provider */ |
| 244 | + str = g_string_new (NULL); |
| 245 | +- if (provider) |
| 246 | ++ if (provider) { |
| 247 | + g_string_append (str, provider->name); |
| 248 | +- else { |
| 249 | ++ nmn_mobile_provider_unref (provider); |
| 250 | ++ } else { |
| 251 | + const char *unlisted_provider; |
| 252 | + |
| 253 | + unlisted_provider = gtk_entry_get_text (GTK_ENTRY (self->provider_unlisted_entry)); |
| 254 | + g_string_append (str, unlisted_provider); |
| 255 | + } |
| 256 | + |
| 257 | +- if (country) |
| 258 | ++ if (country) { |
| 259 | + g_string_append_printf (str, ", %s", country); |
| 260 | ++ g_free (country); |
| 261 | ++ } |
| 262 | + gtk_label_set_text (GTK_LABEL (self->confirm_provider), str->str); |
| 263 | + g_string_free (str, TRUE); |
| 264 | + |
| 265 | +@@ -576,6 +581,7 @@ plan_prepare (NMAMobileWizard *self) |
| 266 | + -1); |
| 267 | + count++; |
| 268 | + } |
| 269 | ++ nmn_mobile_provider_unref (provider); |
| 270 | + |
| 271 | + /* Draw the separator */ |
| 272 | + if (count) |
| 273 | +diff --git a/src/libnm-gtk/nm-wireless-dialog.c b/src/libnm-gtk/nm-wireless-dialog.c |
| 274 | +index f17c776..885a1c6 100644 |
| 275 | +--- a/src/libnm-gtk/nm-wireless-dialog.c |
| 276 | ++++ b/src/libnm-gtk/nm-wireless-dialog.c |
| 277 | +@@ -112,25 +112,6 @@ nma_wireless_dialog_get_nag_ignored (NMAWirelessDialog *self) |
| 278 | + } |
| 279 | + |
| 280 | + static void |
| 281 | +-model_free (GtkTreeModel *model, guint col) |
| 282 | +-{ |
| 283 | +- GtkTreeIter iter; |
| 284 | +- |
| 285 | +- if (!model) |
| 286 | +- return; |
| 287 | +- |
| 288 | +- if (gtk_tree_model_get_iter_first (model, &iter)) { |
| 289 | +- do { |
| 290 | +- char *str; |
| 291 | +- |
| 292 | +- gtk_tree_model_get (model, &iter, col, &str, -1); |
| 293 | +- g_free (str); |
| 294 | +- } while (gtk_tree_model_iter_next (model, &iter)); |
| 295 | +- } |
| 296 | +- g_object_unref (model); |
| 297 | +-} |
| 298 | +- |
| 299 | +-static void |
| 300 | + size_group_clear (GtkSizeGroup *group) |
| 301 | + { |
| 302 | + GSList *iter; |
| 303 | +@@ -427,7 +408,7 @@ connection_combo_init (NMAWirelessDialog *self, NMConnection *connection) |
| 304 | + g_return_val_if_fail (priv->connection == NULL, FALSE); |
| 305 | + |
| 306 | + /* Clear any old model */ |
| 307 | +- model_free (priv->connection_model, C_NAME_COLUMN); |
| 308 | ++ g_object_unref (priv->connection_model); |
| 309 | + |
| 310 | + /* New model */ |
| 311 | + store = gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_OBJECT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN); |
| 312 | +@@ -1358,7 +1339,7 @@ GtkWidget * |
| 313 | + nma_wireless_dialog_nag_user (NMAWirelessDialog *self) |
| 314 | + { |
| 315 | + NMAWirelessDialogPrivate *priv; |
| 316 | +- GtkWidget *combo; |
| 317 | ++ GtkWidget *combo, *nag; |
| 318 | + GtkTreeModel *model; |
| 319 | + GtkTreeIter iter; |
| 320 | + WirelessSecurity *sec = NULL; |
| 321 | +@@ -1378,8 +1359,11 @@ nma_wireless_dialog_nag_user (NMAWirelessDialog *self) |
| 322 | + } |
| 323 | + |
| 324 | + gtk_tree_model_get (model, &iter, S_SEC_COLUMN, &sec, -1); |
| 325 | +- if (sec) |
| 326 | +- return wireless_security_nag_user (sec); |
| 327 | ++ if (sec) { |
| 328 | ++ nag = wireless_security_nag_user (sec); |
| 329 | ++ wireless_security_unref (sec); |
| 330 | ++ return nag; |
| 331 | ++ } |
| 332 | + |
| 333 | + return NULL; |
| 334 | + } |
| 335 | +@@ -1417,8 +1401,8 @@ dispose (GObject *object) |
| 336 | + g_object_unref (priv->settings); |
| 337 | + g_object_unref (priv->builder); |
| 338 | + |
| 339 | +- model_free (priv->device_model, D_NAME_COLUMN); |
| 340 | +- model_free (priv->connection_model, C_NAME_COLUMN); |
| 341 | ++ g_object_unref (priv->device_model); |
| 342 | ++ g_object_unref (priv->connection_model); |
| 343 | + |
| 344 | + if (priv->group) |
| 345 | + g_object_unref (priv->group); |
| 346 | +diff --git a/src/wireless-security/wireless-security.c b/src/wireless-security/wireless-security.c |
| 347 | +index 00cc637..db51920 100644 |
| 348 | +--- a/src/wireless-security/wireless-security.c |
| 349 | ++++ b/src/wireless-security/wireless-security.c |
| 350 | +@@ -544,6 +544,8 @@ ws_802_1x_nag_user (WirelessSecurity *sec, |
| 351 | + gtk_tree_model_get (model, &iter, AUTH_METHOD_COLUMN, &eap, -1); |
| 352 | + g_return_val_if_fail (eap != NULL, NULL); |
| 353 | + |
| 354 | +- return eap_method_nag_user (eap); |
| 355 | ++ widget = eap_method_nag_user (eap); |
| 356 | ++ eap_method_unref (eap); |
| 357 | ++ return widget; |
| 358 | + } |
| 359 | + |
| 360 | +-- |
| 361 | +cgit v0.9.0.2 |
| 362 | |
| 363 | === added file 'debian/patches/git_mac_addr_string_leakage_6dae878.patch' |
| 364 | --- debian/patches/git_mac_addr_string_leakage_6dae878.patch 1970-01-01 00:00:00 +0000 |
| 365 | +++ debian/patches/git_mac_addr_string_leakage_6dae878.patch 2012-11-23 16:30:42 +0000 |
| 366 | @@ -0,0 +1,94 @@ |
| 367 | +From 6dae878bbd1c2d0813f26b38cd6c447e33c903fe Mon Sep 17 00:00:00 2001 |
| 368 | +From: Jiřà Klimeš <jklimes@redhat.com> |
| 369 | +Date: Wed, 05 Sep 2012 12:59:26 +0000 |
| 370 | +Subject: editor: use nm_utils_hwaddr_ntoa() for converting MAC address to string |
| 371 | + |
| 372 | +and fix the string leakage. |
| 373 | +--- |
| 374 | +diff --git a/src/connection-editor/page-wired.c b/src/connection-editor/page-wired.c |
| 375 | +index 2d1ad0f..58e13be 100644 |
| 376 | +--- a/src/connection-editor/page-wired.c |
| 377 | ++++ b/src/connection-editor/page-wired.c |
| 378 | +@@ -17,7 +17,7 @@ |
| 379 | + * with this program; if not, write to the Free Software Foundation, Inc., |
| 380 | + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| 381 | + * |
| 382 | +- * (C) Copyright 2008 - 2011 Red Hat, Inc. |
| 383 | ++ * (C) Copyright 2008 - 2012 Red Hat, Inc. |
| 384 | + */ |
| 385 | + |
| 386 | + #include "config.h" |
| 387 | +@@ -31,6 +31,8 @@ |
| 388 | + #include <nm-setting-connection.h> |
| 389 | + #include <nm-setting-wired.h> |
| 390 | + #include <nm-device-ethernet.h> |
| 391 | ++#include <nm-utils.h> |
| 392 | ++#include <net/if_arp.h> /* for ARPHRD_ETHER for MAC utilies */ |
| 393 | + |
| 394 | + #include "page-wired.h" |
| 395 | + |
| 396 | +@@ -174,11 +176,7 @@ populate_ui (CEPageWired *self) |
| 397 | + /* Device MAC address */ |
| 398 | + mac_list = ce_page_get_mac_list (CE_PAGE (self)); |
| 399 | + s_mac = nm_setting_wired_get_mac_address (setting); |
| 400 | +- s_mac_str = s_mac ? g_strdup_printf ("%02X:%02X:%02X:%02X:%02X:%02X", |
| 401 | +- s_mac->data[0], s_mac->data[1], s_mac->data[2], |
| 402 | +- s_mac->data[3], s_mac->data[4], s_mac->data[5]): |
| 403 | +- NULL; |
| 404 | +- |
| 405 | ++ s_mac_str = s_mac ? nm_utils_hwaddr_ntoa (s_mac->data, ARPHRD_ETHER) : NULL; |
| 406 | + for (iter = mac_list; iter && *iter; iter++) { |
| 407 | + #if GTK_CHECK_VERSION (2,24,0) |
| 408 | + gtk_combo_box_text_append_text (priv->device_mac, *iter); |
| 409 | +@@ -202,6 +200,7 @@ populate_ui (CEPageWired *self) |
| 410 | + if (entry) |
| 411 | + gtk_entry_set_text (GTK_ENTRY (entry), active_mac ? active_mac : s_mac_str); |
| 412 | + } |
| 413 | ++ g_free (s_mac_str); |
| 414 | + g_strfreev (mac_list); |
| 415 | + g_signal_connect (priv->device_mac, "changed", G_CALLBACK (stuff_changed), self); |
| 416 | + |
| 417 | +diff --git a/src/connection-editor/page-wireless.c b/src/connection-editor/page-wireless.c |
| 418 | +index 886f175..74b48cf 100644 |
| 419 | +--- a/src/connection-editor/page-wireless.c |
| 420 | ++++ b/src/connection-editor/page-wireless.c |
| 421 | +@@ -17,7 +17,7 @@ |
| 422 | + * with this program; if not, write to the Free Software Foundation, Inc., |
| 423 | + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
| 424 | + * |
| 425 | +- * (C) Copyright 2008 - 2010 Red Hat, Inc. |
| 426 | ++ * (C) Copyright 2008 - 2012 Red Hat, Inc. |
| 427 | + */ |
| 428 | + |
| 429 | + #include "config.h" |
| 430 | +@@ -32,6 +32,7 @@ |
| 431 | + #include <nm-setting-wireless.h> |
| 432 | + #include <nm-device-wifi.h> |
| 433 | + #include <nm-utils.h> |
| 434 | ++#include <net/if_arp.h> /* for ARPHRD_ETHER for MAC utilies */ |
| 435 | + |
| 436 | + #include "page-wireless.h" |
| 437 | + |
| 438 | +@@ -374,11 +375,7 @@ populate_ui (CEPageWireless *self) |
| 439 | + /* Device MAC address */ |
| 440 | + mac_list = ce_page_get_mac_list (CE_PAGE (self)); |
| 441 | + s_mac = nm_setting_wireless_get_mac_address (setting); |
| 442 | +- s_mac_str = s_mac ? g_strdup_printf ("%02X:%02X:%02X:%02X:%02X:%02X", |
| 443 | +- s_mac->data[0], s_mac->data[1], s_mac->data[2], |
| 444 | +- s_mac->data[3], s_mac->data[4], s_mac->data[5]): |
| 445 | +- NULL; |
| 446 | +- |
| 447 | ++ s_mac_str = s_mac ? nm_utils_hwaddr_ntoa (s_mac->data, ARPHRD_ETHER) : NULL; |
| 448 | + for (iter = mac_list; iter && *iter; iter++) { |
| 449 | + #if GTK_CHECK_VERSION (2,24,0) |
| 450 | + gtk_combo_box_text_append_text (priv->device_mac, *iter); |
| 451 | +@@ -402,6 +399,7 @@ populate_ui (CEPageWireless *self) |
| 452 | + if (entry) |
| 453 | + gtk_entry_set_text (GTK_ENTRY (entry), active_mac ? active_mac : s_mac_str); |
| 454 | + } |
| 455 | ++ g_free (s_mac_str); |
| 456 | + g_strfreev (mac_list); |
| 457 | + g_signal_connect_swapped (priv->device_mac, "changed", G_CALLBACK (ce_page_changed), self); |
| 458 | + |
| 459 | +-- |
| 460 | +cgit v0.9.0.2 |
| 461 | |
| 462 | === modified file 'debian/patches/nm-applet-use-indicator.patch' |
| 463 | --- debian/patches/nm-applet-use-indicator.patch 2012-04-03 15:31:39 +0000 |
| 464 | +++ debian/patches/nm-applet-use-indicator.patch 2012-11-23 16:30:42 +0000 |
| 465 | @@ -25,11 +25,11 @@ |
| 466 | src/mobile-helpers.h | 11 + |
| 467 | 14 files changed, 1020 insertions(+), 113 deletions(-) |
| 468 | |
| 469 | -Index: b/configure.ac |
| 470 | +Index: network-manager-applet-0.9.4.1/configure.ac |
| 471 | =================================================================== |
| 472 | ---- a/configure.ac |
| 473 | -+++ b/configure.ac |
| 474 | -@@ -170,6 +170,14 @@ case "${with_bluetooth}" in |
| 475 | +--- network-manager-applet-0.9.4.1.orig/configure.ac 2012-03-23 15:55:33.000000000 -0700 |
| 476 | ++++ network-manager-applet-0.9.4.1/configure.ac 2012-11-21 16:19:09.071734640 -0800 |
| 477 | +@@ -170,6 +170,14 @@ |
| 478 | ;; |
| 479 | esac |
| 480 | |
| 481 | @@ -44,11 +44,11 @@ |
| 482 | AM_CONDITIONAL(HAVE_GBT, test x"$have_gbt" = "xyes") |
| 483 | |
| 484 | AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) |
| 485 | -Index: b/src/Makefile.am |
| 486 | +Index: network-manager-applet-0.9.4.1/src/Makefile.am |
| 487 | =================================================================== |
| 488 | ---- a/src/Makefile.am |
| 489 | -+++ b/src/Makefile.am |
| 490 | -@@ -8,6 +8,7 @@ nm_applet_CPPFLAGS = \ |
| 491 | +--- network-manager-applet-0.9.4.1.orig/src/Makefile.am 2012-03-13 16:03:59.000000000 -0700 |
| 492 | ++++ network-manager-applet-0.9.4.1/src/Makefile.am 2012-11-21 16:19:09.071734640 -0800 |
| 493 | +@@ -8,6 +8,7 @@ |
| 494 | $(GCONF_CFLAGS) \ |
| 495 | $(GNOME_KEYRING_CFLAGS) \ |
| 496 | $(NOTIFY_CFLAGS) \ |
| 497 | @@ -56,7 +56,7 @@ |
| 498 | -DICONDIR=\""$(datadir)/icons"\" \ |
| 499 | -DUIDIR=\""$(uidir)"\" \ |
| 500 | -DBINDIR=\""$(bindir)"\" \ |
| 501 | -@@ -68,6 +69,7 @@ nm_applet_LDADD = \ |
| 502 | +@@ -68,6 +69,7 @@ |
| 503 | $(GCONF_LIBS) \ |
| 504 | $(GNOME_KEYRING_LIBS) \ |
| 505 | $(NOTIFY_LIBS) \ |
| 506 | @@ -64,11 +64,11 @@ |
| 507 | ${top_builddir}/src/marshallers/libmarshallers.la \ |
| 508 | ${top_builddir}/src/utils/libutils.la \ |
| 509 | ${top_builddir}/src/gconf-helpers/libgconf-helpers.la \ |
| 510 | -Index: b/src/applet-device-bt.c |
| 511 | +Index: network-manager-applet-0.9.4.1/src/applet-device-bt.c |
| 512 | =================================================================== |
| 513 | ---- a/src/applet-device-bt.c |
| 514 | -+++ b/src/applet-device-bt.c |
| 515 | -@@ -154,7 +154,9 @@ bt_add_menu_item (NMDevice *device, |
| 516 | +--- network-manager-applet-0.9.4.1.orig/src/applet-device-bt.c 2012-03-19 11:39:48.000000000 -0700 |
| 517 | ++++ network-manager-applet-0.9.4.1/src/applet-device-bt.c 2012-11-21 16:19:09.071734640 -0800 |
| 518 | +@@ -154,7 +154,9 @@ |
| 519 | |
| 520 | item = applet_menu_item_create_device_item_helper (device, applet, text); |
| 521 | |
| 522 | @@ -78,7 +78,7 @@ |
| 523 | gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); |
| 524 | gtk_widget_show (item); |
| 525 | |
| 526 | -@@ -209,15 +211,16 @@ bt_device_state_changed (NMDevice *devic |
| 527 | +@@ -209,15 +211,16 @@ |
| 528 | } |
| 529 | } |
| 530 | |
| 531 | @@ -97,7 +97,7 @@ |
| 532 | const char *id; |
| 533 | |
| 534 | id = nm_device_get_iface (NM_DEVICE (device)); |
| 535 | -@@ -240,14 +243,16 @@ bt_get_icon (NMDevice *device, |
| 536 | +@@ -240,14 +243,16 @@ |
| 537 | *tip = g_strdup_printf (_("Requesting a network address for '%s'..."), id); |
| 538 | break; |
| 539 | case NM_DEVICE_STATE_ACTIVATED: |
| 540 | @@ -116,11 +116,11 @@ |
| 541 | } |
| 542 | |
| 543 | typedef struct { |
| 544 | -Index: b/src/applet-device-cdma.c |
| 545 | +Index: network-manager-applet-0.9.4.1/src/applet-device-cdma.c |
| 546 | =================================================================== |
| 547 | ---- a/src/applet-device-cdma.c |
| 548 | -+++ b/src/applet-device-cdma.c |
| 549 | -@@ -327,6 +327,9 @@ cdma_add_menu_item (NMDevice *device, |
| 550 | +--- network-manager-applet-0.9.4.1.orig/src/applet-device-cdma.c 2012-03-19 07:53:53.000000000 -0700 |
| 551 | ++++ network-manager-applet-0.9.4.1/src/applet-device-cdma.c 2012-11-21 16:19:09.071734640 -0800 |
| 552 | +@@ -327,6 +327,9 @@ |
| 553 | char *text; |
| 554 | GtkWidget *item; |
| 555 | GSList *connections, *all, *iter; |
| 556 | @@ -130,7 +130,7 @@ |
| 557 | |
| 558 | info = g_object_get_data (G_OBJECT (device), "devinfo"); |
| 559 | |
| 560 | -@@ -348,7 +351,9 @@ cdma_add_menu_item (NMDevice *device, |
| 561 | +@@ -348,7 +351,9 @@ |
| 562 | } |
| 563 | |
| 564 | item = applet_menu_item_create_device_item_helper (device, applet, text); |
| 565 | @@ -140,7 +140,7 @@ |
| 566 | gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); |
| 567 | gtk_widget_show (item); |
| 568 | g_free (text); |
| 569 | -@@ -360,6 +365,7 @@ cdma_add_menu_item (NMDevice *device, |
| 570 | +@@ -360,6 +365,7 @@ |
| 571 | s_con = nm_connection_get_setting_connection (active); |
| 572 | g_assert (s_con); |
| 573 | |
| 574 | @@ -148,7 +148,7 @@ |
| 575 | item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), |
| 576 | info->quality_valid ? info->quality : 0, |
| 577 | info->provider_name, |
| 578 | -@@ -368,6 +374,21 @@ cdma_add_menu_item (NMDevice *device, |
| 579 | +@@ -368,6 +374,21 @@ |
| 580 | cdma_state_to_mb_state (info), |
| 581 | info->modem_enabled, |
| 582 | applet); |
| 583 | @@ -170,7 +170,7 @@ |
| 584 | gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); |
| 585 | add_connection_item (device, active, item, menu, applet); |
| 586 | } |
| 587 | -@@ -381,6 +402,7 @@ cdma_add_menu_item (NMDevice *device, |
| 588 | +@@ -381,6 +402,7 @@ |
| 589 | } |
| 590 | } else { |
| 591 | /* Otherwise show idle registration state or disabled */ |
| 592 | @@ -178,7 +178,7 @@ |
| 593 | item = nm_mb_menu_item_new (NULL, |
| 594 | info->quality_valid ? info->quality : 0, |
| 595 | info->provider_name, |
| 596 | -@@ -389,6 +411,21 @@ cdma_add_menu_item (NMDevice *device, |
| 597 | +@@ -389,6 +411,21 @@ |
| 598 | cdma_state_to_mb_state (info), |
| 599 | info->modem_enabled, |
| 600 | applet); |
| 601 | @@ -200,7 +200,7 @@ |
| 602 | gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); |
| 603 | gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); |
| 604 | } |
| 605 | -@@ -454,15 +491,16 @@ cdma_device_state_changed (NMDevice *dev |
| 606 | +@@ -454,15 +491,16 @@ |
| 607 | check_start_polling (info); |
| 608 | } |
| 609 | |
| 610 | @@ -219,7 +219,7 @@ |
| 611 | const char *id; |
| 612 | CdmaDeviceInfo *info; |
| 613 | gboolean mb_state; |
| 614 | -@@ -491,11 +529,14 @@ cdma_get_icon (NMDevice *device, |
| 615 | +@@ -491,11 +529,14 @@ |
| 616 | break; |
| 617 | case NM_DEVICE_STATE_ACTIVATED: |
| 618 | mb_state = cdma_state_to_mb_state (info); |
| 619 | @@ -235,7 +235,7 @@ |
| 620 | |
| 621 | if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { |
| 622 | gboolean roaming = (mb_state == MB_STATE_ROAMING); |
| 623 | -@@ -510,8 +551,6 @@ cdma_get_icon (NMDevice *device, |
| 624 | +@@ -510,8 +551,6 @@ |
| 625 | default: |
| 626 | break; |
| 627 | } |
| 628 | @@ -244,7 +244,7 @@ |
| 629 | } |
| 630 | |
| 631 | typedef struct { |
| 632 | -@@ -877,6 +916,9 @@ reg_state_changed_cb (DBusGProxy *proxy, |
| 633 | +@@ -877,6 +916,9 @@ |
| 634 | update_registration_state (info, cdma1x_state, evdo_state); |
| 635 | info->skip_reg_poll = TRUE; |
| 636 | applet_schedule_update_icon (info->applet); |
| 637 | @@ -254,10 +254,10 @@ |
| 638 | } |
| 639 | |
| 640 | static void |
| 641 | -Index: b/src/applet-device-gsm.c |
| 642 | +Index: network-manager-applet-0.9.4.1/src/applet-device-gsm.c |
| 643 | =================================================================== |
| 644 | ---- a/src/applet-device-gsm.c |
| 645 | -+++ b/src/applet-device-gsm.c |
| 646 | +--- network-manager-applet-0.9.4.1.orig/src/applet-device-gsm.c 2012-11-21 16:19:08.943734000 -0800 |
| 647 | ++++ network-manager-applet-0.9.4.1/src/applet-device-gsm.c 2012-11-21 16:19:09.071734640 -0800 |
| 648 | @@ -42,6 +42,7 @@ |
| 649 | #include "applet-device-gsm.h" |
| 650 | #include "utils.h" |
| 651 | @@ -266,7 +266,7 @@ |
| 652 | #include "applet-dialogs.h" |
| 653 | #include "mb-menu-item.h" |
| 654 | #include "nma-marshal.h" |
| 655 | -@@ -374,6 +375,9 @@ gsm_add_menu_item (NMDevice *device, |
| 656 | +@@ -374,6 +375,9 @@ |
| 657 | char *text; |
| 658 | GtkWidget *item; |
| 659 | GSList *connections, *all, *iter; |
| 660 | @@ -276,7 +276,7 @@ |
| 661 | |
| 662 | info = g_object_get_data (G_OBJECT (device), "devinfo"); |
| 663 | |
| 664 | -@@ -395,7 +399,9 @@ gsm_add_menu_item (NMDevice *device, |
| 665 | +@@ -395,7 +399,9 @@ |
| 666 | } |
| 667 | |
| 668 | item = applet_menu_item_create_device_item_helper (device, applet, text); |
| 669 | @@ -286,7 +286,7 @@ |
| 670 | gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); |
| 671 | gtk_widget_show (item); |
| 672 | g_free (text); |
| 673 | -@@ -407,6 +413,7 @@ gsm_add_menu_item (NMDevice *device, |
| 674 | +@@ -407,6 +413,7 @@ |
| 675 | s_con = nm_connection_get_setting_connection (active); |
| 676 | g_assert (s_con); |
| 677 | |
| 678 | @@ -294,7 +294,7 @@ |
| 679 | item = nm_mb_menu_item_new (nm_setting_connection_get_id (s_con), |
| 680 | info->quality_valid ? info->quality : 0, |
| 681 | info->op_name, |
| 682 | -@@ -415,6 +422,21 @@ gsm_add_menu_item (NMDevice *device, |
| 683 | +@@ -415,6 +422,21 @@ |
| 684 | gsm_state_to_mb_state (info), |
| 685 | info->modem_enabled, |
| 686 | applet); |
| 687 | @@ -316,7 +316,7 @@ |
| 688 | gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); |
| 689 | add_connection_item (device, active, item, menu, applet); |
| 690 | } |
| 691 | -@@ -428,6 +450,7 @@ gsm_add_menu_item (NMDevice *device, |
| 692 | +@@ -428,6 +450,7 @@ |
| 693 | } |
| 694 | } else { |
| 695 | /* Otherwise show idle registration state or disabled */ |
| 696 | @@ -324,7 +324,7 @@ |
| 697 | item = nm_mb_menu_item_new (NULL, |
| 698 | info->quality_valid ? info->quality : 0, |
| 699 | info->op_name, |
| 700 | -@@ -436,6 +459,23 @@ gsm_add_menu_item (NMDevice *device, |
| 701 | +@@ -436,6 +459,23 @@ |
| 702 | gsm_state_to_mb_state (info), |
| 703 | info->modem_enabled, |
| 704 | applet); |
| 705 | @@ -348,7 +348,7 @@ |
| 706 | gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); |
| 707 | gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); |
| 708 | } |
| 709 | -@@ -496,15 +536,16 @@ gsm_device_state_changed (NMDevice *devi |
| 710 | +@@ -496,15 +536,16 @@ |
| 711 | check_start_polling (info); |
| 712 | } |
| 713 | |
| 714 | @@ -367,7 +367,7 @@ |
| 715 | const char *id; |
| 716 | GsmDeviceInfo *info; |
| 717 | guint32 mb_state; |
| 718 | -@@ -533,11 +574,14 @@ gsm_get_icon (NMDevice *device, |
| 719 | +@@ -533,11 +574,14 @@ |
| 720 | break; |
| 721 | case NM_DEVICE_STATE_ACTIVATED: |
| 722 | mb_state = gsm_state_to_mb_state (info); |
| 723 | @@ -383,7 +383,7 @@ |
| 724 | |
| 725 | if ((mb_state != MB_STATE_UNKNOWN) && info->quality_valid) { |
| 726 | gboolean roaming = (mb_state == MB_STATE_ROAMING); |
| 727 | -@@ -552,8 +596,6 @@ gsm_get_icon (NMDevice *device, |
| 728 | +@@ -552,8 +596,6 @@ |
| 729 | default: |
| 730 | break; |
| 731 | } |
| 732 | @@ -392,7 +392,7 @@ |
| 733 | } |
| 734 | |
| 735 | typedef struct { |
| 736 | -@@ -1554,6 +1596,10 @@ reg_info_changed_cb (DBusGProxy *proxy, |
| 737 | +@@ -1554,6 +1596,10 @@ |
| 738 | g_free (info->op_name); |
| 739 | info->op_name = parse_op_name (info, op_name, info->op_code); |
| 740 | info->skip_reg_poll = TRUE; |
| 741 | @@ -403,10 +403,10 @@ |
| 742 | } |
| 743 | |
| 744 | static void |
| 745 | -Index: b/src/applet-device-wifi.c |
| 746 | +Index: network-manager-applet-0.9.4.1/src/applet-device-wifi.c |
| 747 | =================================================================== |
| 748 | ---- a/src/applet-device-wifi.c |
| 749 | -+++ b/src/applet-device-wifi.c |
| 750 | +--- network-manager-applet-0.9.4.1.orig/src/applet-device-wifi.c 2012-11-21 16:19:08.971734142 -0800 |
| 751 | ++++ network-manager-applet-0.9.4.1/src/applet-device-wifi.c 2012-11-21 16:22:11.308638296 -0800 |
| 752 | @@ -31,6 +31,7 @@ |
| 753 | |
| 754 | #include <glib/gi18n.h> |
| 755 | @@ -415,7 +415,7 @@ |
| 756 | |
| 757 | #include <nm-device.h> |
| 758 | #include <nm-access-point.h> |
| 759 | -@@ -309,6 +310,135 @@ is_blacklisted_ssid (const GByteArray *s |
| 760 | +@@ -309,6 +310,135 @@ |
| 761 | return is_ssid_in_list (ssid, blacklisted_ssids); |
| 762 | } |
| 763 | |
| 764 | @@ -544,14 +544,14 @@ |
| 765 | +out: |
| 766 | + atk_object_set_name (gtk_widget_get_accessible (GTK_WIDGET (item)), icon_desc->str); |
| 767 | + g_free (ssid); |
| 768 | -+ g_string_free (icon_desc, FALSE); |
| 769 | ++ g_string_free (icon_desc, TRUE); |
| 770 | +} |
| 771 | +#endif |
| 772 | + |
| 773 | static void |
| 774 | clamp_ap_to_bssid (NMAccessPoint *ap, NMSettingWireless *s_wifi) |
| 775 | { |
| 776 | -@@ -517,7 +647,11 @@ wireless_menu_item_activate (GtkMenuItem |
| 777 | +@@ -517,7 +647,11 @@ |
| 778 | |
| 779 | struct dup_data { |
| 780 | NMDevice *device; |
| 781 | @@ -563,7 +563,7 @@ |
| 782 | char *hash; |
| 783 | }; |
| 784 | |
| 785 | -@@ -533,19 +667,34 @@ find_duplicate (gpointer d, gpointer use |
| 786 | +@@ -533,19 +667,34 @@ |
| 787 | g_return_if_fail (data); |
| 788 | g_return_if_fail (data->hash); |
| 789 | |
| 790 | @@ -598,7 +598,7 @@ |
| 791 | create_new_ap_item (NMDeviceWifi *device, |
| 792 | NMAccessPoint *ap, |
| 793 | struct dup_data *dup_data, |
| 794 | -@@ -554,7 +703,16 @@ create_new_ap_item (NMDeviceWifi *device |
| 795 | +@@ -554,7 +703,16 @@ |
| 796 | { |
| 797 | WirelessMenuItemInfo *info; |
| 798 | GSList *iter; |
| 799 | @@ -615,7 +615,7 @@ |
| 800 | GSList *dev_connections = NULL; |
| 801 | GSList *ap_connections = NULL; |
| 802 | const GByteArray *ssid; |
| 803 | -@@ -565,18 +723,51 @@ create_new_ap_item (NMDeviceWifi *device |
| 804 | +@@ -565,18 +723,51 @@ |
| 805 | g_slist_free (dev_connections); |
| 806 | dev_connections = NULL; |
| 807 | |
| 808 | @@ -669,7 +669,7 @@ |
| 809 | |
| 810 | g_object_set_data (G_OBJECT (item), "device", NM_DEVICE (device)); |
| 811 | |
| 812 | -@@ -634,7 +825,11 @@ create_new_ap_item (NMDeviceWifi *device |
| 813 | +@@ -634,7 +825,11 @@ |
| 814 | return item; |
| 815 | } |
| 816 | |
| 817 | @@ -681,7 +681,7 @@ |
| 818 | get_menu_item_for_ap (NMDeviceWifi *device, |
| 819 | NMAccessPoint *ap, |
| 820 | GSList *connections, |
| 821 | -@@ -658,14 +853,31 @@ get_menu_item_for_ap (NMDeviceWifi *devi |
| 822 | +@@ -658,14 +853,32 @@ |
| 823 | */ |
| 824 | dup_data.found = NULL; |
| 825 | dup_data.hash = g_object_get_data (G_OBJECT (ap), "hash"); |
| 826 | @@ -706,14 +706,15 @@ |
| 827 | + GSList *dupes = NULL; |
| 828 | + const char *path; |
| 829 | + |
| 830 | -+ dupes = g_object_get_data (G_OBJECT (dup_data.found), "dupes"); |
| 831 | ++ dupes = g_object_steal_data (G_OBJECT (dup_data.found), "dupes"); |
| 832 | + path = nm_object_get_path (NM_OBJECT (ap)); |
| 833 | + dupes = g_slist_prepend (dupes, g_strdup (path)); |
| 834 | ++ g_object_set_data_full (G_OBJECT (dup_data.found), "dupes", (gpointer) dupes, (GDestroyNotify) clear_dupes_list); |
| 835 | +#endif |
| 836 | return NULL; |
| 837 | } |
| 838 | |
| 839 | -@@ -675,6 +887,7 @@ get_menu_item_for_ap (NMDeviceWifi *devi |
| 840 | +@@ -675,6 +888,7 @@ |
| 841 | static gint |
| 842 | sort_by_name (gconstpointer tmpa, gconstpointer tmpb) |
| 843 | { |
| 844 | @@ -721,7 +722,7 @@ |
| 845 | NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); |
| 846 | NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); |
| 847 | const char *a_ssid, *b_ssid; |
| 848 | -@@ -711,6 +924,44 @@ sort_by_name (gconstpointer tmpa, gconst |
| 849 | +@@ -711,6 +925,44 @@ |
| 850 | return -1; |
| 851 | |
| 852 | return 0; |
| 853 | @@ -766,7 +767,7 @@ |
| 854 | } |
| 855 | |
| 856 | /* Sort menu items for the top-level menu: |
| 857 | -@@ -722,6 +973,7 @@ sort_by_name (gconstpointer tmpa, gconst |
| 858 | +@@ -722,6 +974,7 @@ |
| 859 | static gint |
| 860 | sort_toplevel (gconstpointer tmpa, gconstpointer tmpb) |
| 861 | { |
| 862 | @@ -774,7 +775,7 @@ |
| 863 | NMNetworkMenuItem *a = NM_NETWORK_MENU_ITEM (tmpa); |
| 864 | NMNetworkMenuItem *b = NM_NETWORK_MENU_ITEM (tmpb); |
| 865 | gboolean a_fave, b_fave; |
| 866 | -@@ -756,6 +1008,42 @@ sort_toplevel (gconstpointer tmpa, gcons |
| 867 | +@@ -756,6 +1009,42 @@ |
| 868 | * both are unencrypted) just sort by name. |
| 869 | */ |
| 870 | return sort_by_name (a, b); |
| 871 | @@ -817,7 +818,7 @@ |
| 872 | } |
| 873 | |
| 874 | static void |
| 875 | -@@ -774,7 +1062,11 @@ wireless_add_menu_item (NMDevice *device |
| 876 | +@@ -774,7 +1063,11 @@ |
| 877 | gboolean wireless_enabled = TRUE; |
| 878 | gboolean wireless_hw_enabled = TRUE; |
| 879 | GSList *menu_items = NULL; /* All menu items we'll be adding */ |
| 880 | @@ -829,7 +830,7 @@ |
| 881 | GtkWidget *widget; |
| 882 | |
| 883 | wdev = NM_DEVICE_WIFI (device); |
| 884 | -@@ -812,7 +1104,9 @@ wireless_add_menu_item (NMDevice *device |
| 885 | +@@ -812,7 +1105,9 @@ |
| 886 | if (active_ap) { |
| 887 | active_item = item = get_menu_item_for_ap (wdev, active_ap, connections, NULL, applet); |
| 888 | if (item) { |
| 889 | @@ -839,7 +840,7 @@ |
| 890 | menu_items = g_slist_append (menu_items, item); |
| 891 | |
| 892 | gtk_menu_shell_append (GTK_MENU_SHELL (menu), GTK_WIDGET (item)); |
| 893 | -@@ -1109,6 +1403,9 @@ access_point_added_cb (NMDeviceWifi *dev |
| 894 | +@@ -1109,6 +1404,9 @@ |
| 895 | applet); |
| 896 | |
| 897 | queue_avail_access_point_notification (NM_DEVICE (device)); |
| 898 | @@ -849,7 +850,7 @@ |
| 899 | } |
| 900 | |
| 901 | static void |
| 902 | -@@ -1126,6 +1423,9 @@ access_point_removed_cb (NMDeviceWifi *d |
| 903 | +@@ -1126,6 +1424,9 @@ |
| 904 | if (old == ap) { |
| 905 | g_object_set_data (G_OBJECT (device), ACTIVE_AP_TAG, NULL); |
| 906 | applet_schedule_update_icon (applet); |
| 907 | @@ -859,7 +860,7 @@ |
| 908 | } |
| 909 | } |
| 910 | |
| 911 | -@@ -1272,16 +1572,17 @@ wireless_device_state_changed (NMDevice |
| 912 | +@@ -1272,16 +1573,17 @@ |
| 913 | g_free (esc_ssid); |
| 914 | } |
| 915 | |
| 916 | @@ -879,7 +880,7 @@ |
| 917 | const char *id; |
| 918 | char *ssid = NULL; |
| 919 | |
| 920 | -@@ -1314,22 +1615,25 @@ wireless_get_icon (NMDevice *device, |
| 921 | +@@ -1314,22 +1616,25 @@ |
| 922 | strength = CLAMP (strength, 0, 100); |
| 923 | |
| 924 | if (strength > 80) |
| 925 | @@ -911,7 +912,7 @@ |
| 926 | *tip = g_strdup_printf (_("Wireless network connection '%s' active"), id); |
| 927 | } |
| 928 | break; |
| 929 | -@@ -1337,7 +1641,8 @@ wireless_get_icon (NMDevice *device, |
| 930 | +@@ -1337,7 +1642,8 @@ |
| 931 | break; |
| 932 | } |
| 933 | |
| 934 | @@ -921,11 +922,11 @@ |
| 935 | } |
| 936 | |
| 937 | static gboolean |
| 938 | -Index: b/src/applet-device-wired.c |
| 939 | +Index: network-manager-applet-0.9.4.1/src/applet-device-wired.c |
| 940 | =================================================================== |
| 941 | ---- a/src/applet-device-wired.c |
| 942 | -+++ b/src/applet-device-wired.c |
| 943 | -@@ -221,7 +221,9 @@ wired_add_menu_item (NMDevice *device, |
| 944 | +--- network-manager-applet-0.9.4.1.orig/src/applet-device-wired.c 2012-11-21 16:19:08.943734000 -0800 |
| 945 | ++++ network-manager-applet-0.9.4.1/src/applet-device-wired.c 2012-11-21 16:19:09.079734683 -0800 |
| 946 | +@@ -221,7 +221,9 @@ |
| 947 | if (nm_device_get_capabilities (device) & NM_DEVICE_CAP_CARRIER_DETECT) |
| 948 | carrier = nm_device_ethernet_get_carrier (NM_DEVICE_ETHERNET (device)); |
| 949 | |
| 950 | @@ -935,7 +936,7 @@ |
| 951 | gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); |
| 952 | gtk_widget_show (item); |
| 953 | |
| 954 | -@@ -274,15 +276,16 @@ wired_device_state_changed (NMDevice *de |
| 955 | +@@ -274,15 +276,16 @@ |
| 956 | } |
| 957 | } |
| 958 | |
| 959 | @@ -954,7 +955,7 @@ |
| 960 | const char *id; |
| 961 | |
| 962 | id = nm_device_get_iface (NM_DEVICE (device)); |
| 963 | -@@ -305,14 +308,16 @@ wired_get_icon (NMDevice *device, |
| 964 | +@@ -305,14 +308,16 @@ |
| 965 | *tip = g_strdup_printf (_("Requesting a wired network address for '%s'..."), id); |
| 966 | break; |
| 967 | case NM_DEVICE_STATE_ACTIVATED: |
| 968 | @@ -973,11 +974,11 @@ |
| 969 | } |
| 970 | |
| 971 | /* PPPoE */ |
| 972 | -Index: b/src/applet.c |
| 973 | +Index: network-manager-applet-0.9.4.1/src/applet.c |
| 974 | =================================================================== |
| 975 | ---- a/src/applet.c |
| 976 | -+++ b/src/applet.c |
| 977 | -@@ -499,6 +499,8 @@ add_and_activate_cb (NMClient *client, |
| 978 | +--- network-manager-applet-0.9.4.1.orig/src/applet.c 2012-11-21 16:19:09.047734521 -0800 |
| 979 | ++++ network-manager-applet-0.9.4.1/src/applet.c 2012-11-21 16:19:33.259854586 -0800 |
| 980 | +@@ -499,6 +499,8 @@ |
| 981 | GError *error, |
| 982 | gpointer user_data) |
| 983 | { |
| 984 | @@ -986,7 +987,7 @@ |
| 985 | if (error) { |
| 986 | const char *text = _("Failed to add/activate connection"); |
| 987 | char *err_text = g_strdup_printf ("(%d) %s", error->code, |
| 988 | -@@ -509,7 +511,8 @@ add_and_activate_cb (NMClient *client, |
| 989 | +@@ -509,7 +511,8 @@ |
| 990 | g_free (err_text); |
| 991 | } |
| 992 | |
| 993 | @@ -996,7 +997,7 @@ |
| 994 | } |
| 995 | |
| 996 | static void |
| 997 | -@@ -543,6 +546,8 @@ applet_menu_item_activate_helper_new_con |
| 998 | +@@ -543,6 +546,8 @@ |
| 999 | static void |
| 1000 | disconnect_cb (NMDevice *device, GError *error, gpointer user_data) |
| 1001 | { |
| 1002 | @@ -1005,7 +1006,7 @@ |
| 1003 | if (error) { |
| 1004 | const char *text = _("Device disconnect failed"); |
| 1005 | char *err_text = g_strdup_printf ("(%d) %s", error->code, |
| 1006 | -@@ -552,6 +557,9 @@ disconnect_cb (NMDevice *device, GError |
| 1007 | +@@ -552,6 +557,9 @@ |
| 1008 | utils_show_error_dialog (_("Disconnect failure"), text, err_text, FALSE, NULL); |
| 1009 | g_free (err_text); |
| 1010 | } |
| 1011 | @@ -1015,7 +1016,7 @@ |
| 1012 | } |
| 1013 | |
| 1014 | void |
| 1015 | -@@ -560,7 +568,7 @@ applet_menu_item_disconnect_helper (NMDe |
| 1016 | +@@ -560,7 +568,7 @@ |
| 1017 | { |
| 1018 | g_return_if_fail (NM_IS_DEVICE (device)); |
| 1019 | |
| 1020 | @@ -1024,7 +1025,7 @@ |
| 1021 | } |
| 1022 | |
| 1023 | static void |
| 1024 | -@@ -633,13 +641,15 @@ applet_menu_item_add_complex_separator_h |
| 1025 | +@@ -633,13 +641,15 @@ |
| 1026 | const gchar* label, |
| 1027 | int pos) |
| 1028 | { |
| 1029 | @@ -1041,7 +1042,7 @@ |
| 1030 | |
| 1031 | if (label) { |
| 1032 | xlabel = gtk_label_new (NULL); |
| 1033 | -@@ -663,6 +673,9 @@ applet_menu_item_add_complex_separator_h |
| 1034 | +@@ -663,6 +673,9 @@ |
| 1035 | "child", box, |
| 1036 | "sensitive", FALSE, |
| 1037 | NULL); |
| 1038 | @@ -1051,7 +1052,7 @@ |
| 1039 | if (pos < 0) |
| 1040 | gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); |
| 1041 | else |
| 1042 | -@@ -677,10 +690,13 @@ applet_new_menu_item_helper (NMConnectio |
| 1043 | +@@ -677,10 +690,13 @@ |
| 1044 | { |
| 1045 | GtkWidget *item; |
| 1046 | NMSettingConnection *s_con; |
| 1047 | @@ -1065,7 +1066,7 @@ |
| 1048 | item = gtk_image_menu_item_new_with_label (""); |
| 1049 | if (add_active && (active == connection)) { |
| 1050 | /* Pure evil */ |
| 1051 | -@@ -693,9 +709,13 @@ applet_new_menu_item_helper (NMConnectio |
| 1052 | +@@ -693,9 +709,13 @@ |
| 1053 | gtk_menu_item_set_label (GTK_MENU_ITEM (item), nm_setting_connection_get_id (s_con)); |
| 1054 | |
| 1055 | gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); |
| 1056 | @@ -1079,7 +1080,7 @@ |
| 1057 | #define TITLE_TEXT_R ((double) 0x5e / 255.0 ) |
| 1058 | #define TITLE_TEXT_G ((double) 0x5e / 255.0 ) |
| 1059 | #define TITLE_TEXT_B ((double) 0x5e / 255.0 ) |
| 1060 | -@@ -800,6 +820,8 @@ menu_title_item_expose (GtkWidget *widge |
| 1061 | +@@ -800,6 +820,8 @@ |
| 1062 | } |
| 1063 | #endif |
| 1064 | |
| 1065 | @@ -1088,7 +1089,7 @@ |
| 1066 | GtkWidget * |
| 1067 | applet_menu_item_create_device_item_helper (NMDevice *device, |
| 1068 | NMApplet *applet, |
| 1069 | -@@ -809,11 +831,13 @@ applet_menu_item_create_device_item_help |
| 1070 | +@@ -809,11 +831,13 @@ |
| 1071 | |
| 1072 | item = gtk_menu_item_new_with_mnemonic (text); |
| 1073 | gtk_widget_set_sensitive (item, FALSE); |
| 1074 | @@ -1102,7 +1103,7 @@ |
| 1075 | return item; |
| 1076 | } |
| 1077 | |
| 1078 | -@@ -860,7 +884,12 @@ applet_do_notify (NMApplet *applet, |
| 1079 | +@@ -860,7 +884,12 @@ |
| 1080 | g_return_if_fail (summary != NULL); |
| 1081 | g_return_if_fail (message != NULL); |
| 1082 | |
| 1083 | @@ -1115,7 +1116,7 @@ |
| 1084 | return; |
| 1085 | |
| 1086 | escaped = utils_escape_notify_message (message); |
| 1087 | -@@ -1144,6 +1173,7 @@ vpn_connection_state_changed (NMVPNConne |
| 1088 | +@@ -1144,6 +1173,7 @@ |
| 1089 | clear_animation_timeout (applet); |
| 1090 | |
| 1091 | applet_schedule_update_icon (applet); |
| 1092 | @@ -1123,7 +1124,7 @@ |
| 1093 | } |
| 1094 | |
| 1095 | static const char * |
| 1096 | -@@ -1199,10 +1229,13 @@ activate_vpn_cb (NMClient *client, |
| 1097 | +@@ -1199,10 +1229,13 @@ |
| 1098 | } |
| 1099 | |
| 1100 | applet_schedule_update_icon (info->applet); |
| 1101 | @@ -1137,7 +1138,7 @@ |
| 1102 | static void |
| 1103 | nma_menu_vpn_item_clicked (GtkMenuItem *item, gpointer user_data) |
| 1104 | { |
| 1105 | -@@ -1225,9 +1258,14 @@ nma_menu_vpn_item_clicked (GtkMenuItem * |
| 1106 | +@@ -1225,9 +1258,14 @@ |
| 1107 | return; |
| 1108 | } |
| 1109 | |
| 1110 | @@ -1153,7 +1154,7 @@ |
| 1111 | |
| 1112 | s_con = nm_connection_get_setting_connection (connection); |
| 1113 | info = g_malloc0 (sizeof (VPNActivateInfo)); |
| 1114 | -@@ -1620,6 +1658,8 @@ nma_menu_add_devices (GtkWidget *menu, N |
| 1115 | +@@ -1620,6 +1658,8 @@ |
| 1116 | dclass = get_device_class (device, applet); |
| 1117 | if (dclass) |
| 1118 | dclass->add_menu_item (device, n_devices, active, menu, applet); |
| 1119 | @@ -1162,7 +1163,7 @@ |
| 1120 | } |
| 1121 | |
| 1122 | out: |
| 1123 | -@@ -1677,8 +1717,6 @@ nma_menu_add_vpn_submenu (GtkWidget *men |
| 1124 | +@@ -1677,8 +1717,6 @@ |
| 1125 | GSList *list, *iter; |
| 1126 | int num_vpn_active = 0; |
| 1127 | |
| 1128 | @@ -1171,7 +1172,7 @@ |
| 1129 | vpn_menu = GTK_MENU (gtk_menu_new ()); |
| 1130 | |
| 1131 | item = GTK_MENU_ITEM (gtk_menu_item_new_with_mnemonic (_("_VPN Connections"))); |
| 1132 | -@@ -1697,13 +1735,20 @@ nma_menu_add_vpn_submenu (GtkWidget *men |
| 1133 | +@@ -1697,13 +1735,20 @@ |
| 1134 | NMConnection *connection = NM_CONNECTION (iter->data); |
| 1135 | NMActiveConnection *active; |
| 1136 | const char *name; |
| 1137 | @@ -1192,7 +1193,7 @@ |
| 1138 | |
| 1139 | /* If no VPN connections are active, draw all menu items enabled. If |
| 1140 | * >= 1 VPN connections are active, only the active VPN menu item is |
| 1141 | -@@ -1722,8 +1767,12 @@ nma_menu_add_vpn_submenu (GtkWidget *men |
| 1142 | +@@ -1722,8 +1767,12 @@ |
| 1143 | gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE); |
| 1144 | |
| 1145 | if (active) { |
| 1146 | @@ -1205,7 +1206,7 @@ |
| 1147 | } |
| 1148 | |
| 1149 | g_object_set_data_full (G_OBJECT (item), "connection", |
| 1150 | -@@ -1797,6 +1846,7 @@ nma_set_networking_enabled_cb (GtkWidget |
| 1151 | +@@ -1797,6 +1846,7 @@ |
| 1152 | } |
| 1153 | |
| 1154 | |
| 1155 | @@ -1213,7 +1214,7 @@ |
| 1156 | static void |
| 1157 | nma_set_notifications_enabled_cb (GtkWidget *widget, NMApplet *applet) |
| 1158 | { |
| 1159 | -@@ -1823,6 +1873,7 @@ nma_set_notifications_enabled_cb (GtkWid |
| 1160 | +@@ -1823,6 +1873,7 @@ |
| 1161 | !state, |
| 1162 | NULL); |
| 1163 | } |
| 1164 | @@ -1221,7 +1222,7 @@ |
| 1165 | |
| 1166 | /* |
| 1167 | * nma_menu_show_cb |
| 1168 | -@@ -1911,7 +1962,9 @@ nma_context_menu_update (NMApplet *apple |
| 1169 | +@@ -1911,7 +1962,9 @@ |
| 1170 | gboolean wireless_hw_enabled; |
| 1171 | gboolean wwan_hw_enabled; |
| 1172 | gboolean wimax_hw_enabled; |
| 1173 | @@ -1231,7 +1232,7 @@ |
| 1174 | gboolean sensitive = FALSE; |
| 1175 | |
| 1176 | state = nm_client_get_state (applet->nm_client); |
| 1177 | -@@ -1971,6 +2024,7 @@ nma_context_menu_update (NMApplet *apple |
| 1178 | +@@ -1971,6 +2024,7 @@ |
| 1179 | gtk_widget_set_sensitive (GTK_WIDGET (applet->wimax_enabled_item), |
| 1180 | wimax_hw_enabled && is_permission_yes (applet, NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX)); |
| 1181 | |
| 1182 | @@ -1239,7 +1240,7 @@ |
| 1183 | /* Enabled notifications */ |
| 1184 | g_signal_handler_block (G_OBJECT (applet->notifications_enabled_item), |
| 1185 | applet->notifications_enabled_toggled_id); |
| 1186 | -@@ -1982,6 +2036,7 @@ nma_context_menu_update (NMApplet *apple |
| 1187 | +@@ -1982,6 +2036,7 @@ |
| 1188 | gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (applet->notifications_enabled_item), notifications_enabled); |
| 1189 | g_signal_handler_unblock (G_OBJECT (applet->notifications_enabled_item), |
| 1190 | applet->notifications_enabled_toggled_id); |
| 1191 | @@ -1247,7 +1248,7 @@ |
| 1192 | |
| 1193 | /* Don't show wifi-specific stuff if wireless is off */ |
| 1194 | if (state != NM_STATE_ASLEEP) { |
| 1195 | -@@ -2054,16 +2109,20 @@ applet_connection_info_cb (NMApplet *app |
| 1196 | +@@ -2054,16 +2109,20 @@ |
| 1197 | * Generate the contextual popup menu. |
| 1198 | * |
| 1199 | */ |
| 1200 | @@ -1269,7 +1270,7 @@ |
| 1201 | |
| 1202 | /* 'Enable Networking' item */ |
| 1203 | applet->networking_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable _Networking")); |
| 1204 | -@@ -2103,6 +2162,7 @@ static GtkWidget *nma_context_menu_creat |
| 1205 | +@@ -2103,6 +2162,7 @@ |
| 1206 | |
| 1207 | nma_menu_add_separator_item (GTK_WIDGET (menu)); |
| 1208 | |
| 1209 | @@ -1277,7 +1278,7 @@ |
| 1210 | /* Toggle notifications item */ |
| 1211 | applet->notifications_enabled_item = gtk_check_menu_item_new_with_mnemonic (_("Enable N_otifications")); |
| 1212 | id = g_signal_connect (applet->notifications_enabled_item, |
| 1213 | -@@ -2113,6 +2173,7 @@ static GtkWidget *nma_context_menu_creat |
| 1214 | +@@ -2113,6 +2173,7 @@ |
| 1215 | gtk_menu_shell_append (menu, applet->notifications_enabled_item); |
| 1216 | |
| 1217 | nma_menu_add_separator_item (GTK_WIDGET (menu)); |
| 1218 | @@ -1285,7 +1286,7 @@ |
| 1219 | |
| 1220 | /* 'Connection Information' item */ |
| 1221 | applet->info_menu_item = gtk_image_menu_item_new_with_mnemonic (_("Connection _Information")); |
| 1222 | -@@ -2134,6 +2195,7 @@ static GtkWidget *nma_context_menu_creat |
| 1223 | +@@ -2134,6 +2195,7 @@ |
| 1224 | gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (applet->connections_menu_item), image); |
| 1225 | gtk_menu_shell_append (menu, applet->connections_menu_item); |
| 1226 | |
| 1227 | @@ -1293,7 +1294,7 @@ |
| 1228 | /* Separator */ |
| 1229 | nma_menu_add_separator_item (GTK_WIDGET (menu)); |
| 1230 | |
| 1231 | -@@ -2153,25 +2215,112 @@ static GtkWidget *nma_context_menu_creat |
| 1232 | +@@ -2153,25 +2215,112 @@ |
| 1233 | image = gtk_image_new_from_stock (GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU); |
| 1234 | gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); |
| 1235 | gtk_menu_shell_append (menu, menu_item); |
| 1236 | @@ -1410,7 +1411,7 @@ |
| 1237 | /* Ignore setting of the same icon as is already displayed */ |
| 1238 | if (applet->icon_layers[layer] == pixbuf) |
| 1239 | return; |
| 1240 | -@@ -2205,8 +2354,13 @@ foo_set_icon (NMApplet *applet, GdkPixbu |
| 1241 | +@@ -2205,8 +2354,13 @@ |
| 1242 | |
| 1243 | gtk_status_icon_set_from_pixbuf (applet->status_icon, pixbuf); |
| 1244 | g_object_unref (pixbuf); |
| 1245 | @@ -1425,7 +1426,7 @@ |
| 1246 | |
| 1247 | NMRemoteConnection * |
| 1248 | applet_get_exported_connection_for_device (NMDevice *device, NMApplet *applet) |
| 1249 | -@@ -2393,6 +2547,7 @@ foo_device_state_changed_cb (NMDevice *d |
| 1250 | +@@ -2393,6 +2547,7 @@ |
| 1251 | applet_common_device_state_changed (device, new_state, old_state, reason, applet); |
| 1252 | |
| 1253 | applet_schedule_update_icon (applet); |
| 1254 | @@ -1433,7 +1434,7 @@ |
| 1255 | } |
| 1256 | |
| 1257 | static void |
| 1258 | -@@ -2448,8 +2603,20 @@ foo_client_state_changed_cb (NMClient *c |
| 1259 | +@@ -2448,8 +2603,20 @@ |
| 1260 | } |
| 1261 | |
| 1262 | applet_schedule_update_icon (applet); |
| 1263 | @@ -1454,7 +1455,7 @@ |
| 1264 | static void |
| 1265 | foo_manager_running_cb (NMClient *client, |
| 1266 | GParamSpec *pspec, |
| 1267 | -@@ -2465,6 +2632,7 @@ foo_manager_running_cb (NMClient *client |
| 1268 | +@@ -2465,6 +2632,7 @@ |
| 1269 | } |
| 1270 | |
| 1271 | applet_schedule_update_icon (applet); |
| 1272 | @@ -1462,7 +1463,7 @@ |
| 1273 | } |
| 1274 | |
| 1275 | #define VPN_STATE_ID_TAG "vpn-state-id" |
| 1276 | -@@ -2494,6 +2662,7 @@ foo_active_connections_changed_cb (NMCli |
| 1277 | +@@ -2494,6 +2662,7 @@ |
| 1278 | } |
| 1279 | |
| 1280 | applet_schedule_update_icon (applet); |
| 1281 | @@ -1470,7 +1471,7 @@ |
| 1282 | } |
| 1283 | |
| 1284 | static void |
| 1285 | -@@ -2526,6 +2695,9 @@ foo_set_initial_state (gpointer data) |
| 1286 | +@@ -2526,6 +2695,9 @@ |
| 1287 | return FALSE; |
| 1288 | } |
| 1289 | |
| 1290 | @@ -1480,7 +1481,7 @@ |
| 1291 | static void |
| 1292 | foo_client_setup (NMApplet *applet) |
| 1293 | { |
| 1294 | -@@ -2542,6 +2714,11 @@ foo_client_setup (NMApplet *applet) |
| 1295 | +@@ -2542,6 +2714,11 @@ |
| 1296 | g_signal_connect (applet->nm_client, "device-added", |
| 1297 | G_CALLBACK (foo_device_added_cb), |
| 1298 | applet); |
| 1299 | @@ -1492,7 +1493,7 @@ |
| 1300 | g_signal_connect (applet->nm_client, "notify::manager-running", |
| 1301 | G_CALLBACK (foo_manager_running_cb), |
| 1302 | applet); |
| 1303 | -@@ -2561,10 +2738,12 @@ foo_client_setup (NMApplet *applet) |
| 1304 | +@@ -2561,10 +2738,12 @@ |
| 1305 | applet_schedule_update_icon (applet); |
| 1306 | } |
| 1307 | |
| 1308 | @@ -1508,7 +1509,7 @@ |
| 1309 | int stage = -1; |
| 1310 | |
| 1311 | switch (state) { |
| 1312 | -@@ -2583,25 +2762,32 @@ applet_common_get_device_icon (NMDeviceS |
| 1313 | +@@ -2583,25 +2762,32 @@ |
| 1314 | } |
| 1315 | |
| 1316 | if (stage >= 0) { |
| 1317 | @@ -1553,7 +1554,7 @@ |
| 1318 | } |
| 1319 | |
| 1320 | static char * |
| 1321 | -@@ -2640,12 +2826,14 @@ get_tip_for_device_state (NMDevice *devi |
| 1322 | +@@ -2640,12 +2826,14 @@ |
| 1323 | return tip; |
| 1324 | } |
| 1325 | |
| 1326 | @@ -1571,7 +1572,7 @@ |
| 1327 | NMDeviceState state = NM_DEVICE_STATE_UNKNOWN; |
| 1328 | NMADeviceClass *dclass; |
| 1329 | |
| 1330 | -@@ -2670,19 +2858,13 @@ applet_get_device_icon_for_state (NMAppl |
| 1331 | +@@ -2670,19 +2858,13 @@ |
| 1332 | |
| 1333 | connection = applet_find_active_connection_for_device (device, applet, NULL); |
| 1334 | /* device class returns a referenced pixbuf */ |
| 1335 | @@ -1595,7 +1596,7 @@ |
| 1336 | } |
| 1337 | |
| 1338 | static char * |
| 1339 | -@@ -2738,7 +2920,7 @@ applet_update_icon (gpointer user_data) |
| 1340 | +@@ -2738,7 +2920,7 @@ |
| 1341 | NMApplet *applet = NM_APPLET (user_data); |
| 1342 | GdkPixbuf *pixbuf = NULL; |
| 1343 | NMState state; |
| 1344 | @@ -1604,7 +1605,7 @@ |
| 1345 | NMVPNConnectionState vpn_state = NM_VPN_SERVICE_STATE_UNKNOWN; |
| 1346 | gboolean nm_running; |
| 1347 | NMActiveConnection *active_vpn = NULL; |
| 1348 | -@@ -2753,36 +2935,53 @@ applet_update_icon (gpointer user_data) |
| 1349 | +@@ -2753,36 +2935,53 @@ |
| 1350 | if (!nm_running) |
| 1351 | state = NM_STATE_UNKNOWN; |
| 1352 | |
| 1353 | @@ -1663,7 +1664,7 @@ |
| 1354 | break; |
| 1355 | case NM_VPN_CONNECTION_STATE_PREPARE: |
| 1356 | case NM_VPN_CONNECTION_STATE_NEED_AUTH: |
| 1357 | -@@ -2797,6 +2996,9 @@ applet_update_icon (gpointer user_data) |
| 1358 | +@@ -2797,6 +2996,9 @@ |
| 1359 | } |
| 1360 | |
| 1361 | pixbuf = applet->vpn_connecting_icons[applet->animation_step]; |
| 1362 | @@ -1673,7 +1674,7 @@ |
| 1363 | applet->animation_step++; |
| 1364 | if (applet->animation_step >= NUM_VPN_CONNECTING_FRAMES) |
| 1365 | applet->animation_step = 0; |
| 1366 | -@@ -2807,28 +3009,9 @@ applet_update_icon (gpointer user_data) |
| 1367 | +@@ -2807,28 +3009,9 @@ |
| 1368 | |
| 1369 | vpn_tip = get_tip_for_vpn (active_vpn, vpn_state, applet); |
| 1370 | } |
| 1371 | @@ -1705,7 +1706,7 @@ |
| 1372 | |
| 1373 | return FALSE; |
| 1374 | } |
| 1375 | -@@ -3311,18 +3494,95 @@ status_icon_popup_menu_cb (GtkStatusIcon |
| 1376 | +@@ -3311,18 +3494,95 @@ |
| 1377 | * of the notification. |
| 1378 | */ |
| 1379 | |
| 1380 | @@ -1802,7 +1803,7 @@ |
| 1381 | if (!applet->status_icon) |
| 1382 | return FALSE; |
| 1383 | if (shell_debug) |
| 1384 | -@@ -3337,11 +3597,34 @@ setup_widgets (NMApplet *applet) |
| 1385 | +@@ -3337,11 +3597,34 @@ |
| 1386 | g_signal_connect (applet->status_icon, "popup-menu", |
| 1387 | G_CALLBACK (status_icon_popup_menu_cb), applet); |
| 1388 | |
| 1389 | @@ -1841,7 +1842,7 @@ |
| 1390 | } |
| 1391 | |
| 1392 | static void |
| 1393 | -@@ -3537,6 +3820,8 @@ constructor (GType type, |
| 1394 | +@@ -3537,6 +3820,8 @@ |
| 1395 | GCONF_CLIENT_PRELOAD_ONELEVEL, |
| 1396 | NULL); |
| 1397 | |
| 1398 | @@ -1850,7 +1851,7 @@ |
| 1399 | /* Load pixmaps and create applet widgets */ |
| 1400 | if (!setup_widgets (applet)) |
| 1401 | goto error; |
| 1402 | -@@ -3555,6 +3840,13 @@ constructor (GType type, |
| 1403 | +@@ -3555,6 +3840,13 @@ |
| 1404 | /* Move user connections to the system */ |
| 1405 | nm_gconf_move_connections_to_system (import_cb, applet); |
| 1406 | |
| 1407 | @@ -1864,7 +1865,7 @@ |
| 1408 | applet->agent = applet_agent_new (); |
| 1409 | g_assert (applet->agent); |
| 1410 | g_signal_connect (applet->agent, APPLET_AGENT_GET_SECRETS, |
| 1411 | -@@ -3583,8 +3875,6 @@ constructor (GType type, |
| 1412 | +@@ -3583,8 +3875,6 @@ |
| 1413 | applet->wimax_class = applet_device_wimax_get_class (applet); |
| 1414 | g_assert (applet->wimax_class); |
| 1415 | |
| 1416 | @@ -1873,7 +1874,7 @@ |
| 1417 | /* Track embedding to help debug issues where user has removed the |
| 1418 | * notification area applet from the panel, and thus nm-applet too. |
| 1419 | */ |
| 1420 | -@@ -3630,6 +3920,11 @@ static void finalize (GObject *object) |
| 1421 | +@@ -3630,6 +3920,11 @@ |
| 1422 | if (applet->update_icon_id) |
| 1423 | g_source_remove (applet->update_icon_id); |
| 1424 | |
| 1425 | @@ -1885,7 +1886,7 @@ |
| 1426 | if (applet->menu) |
| 1427 | g_object_unref (applet->menu); |
| 1428 | nma_icons_free (applet); |
| 1429 | -@@ -3657,6 +3952,11 @@ static void finalize (GObject *object) |
| 1430 | +@@ -3657,6 +3952,11 @@ |
| 1431 | if (applet->status_icon) |
| 1432 | g_object_unref (applet->status_icon); |
| 1433 | |
| 1434 | @@ -1897,10 +1898,10 @@ |
| 1435 | if (applet->nm_client) |
| 1436 | g_object_unref (applet->nm_client); |
| 1437 | |
| 1438 | -Index: b/src/applet.h |
| 1439 | +Index: network-manager-applet-0.9.4.1/src/applet.h |
| 1440 | =================================================================== |
| 1441 | ---- a/src/applet.h |
| 1442 | -+++ b/src/applet.h |
| 1443 | +--- network-manager-applet-0.9.4.1.orig/src/applet.h 2012-11-21 16:19:08.971734142 -0800 |
| 1444 | ++++ network-manager-applet-0.9.4.1/src/applet.h 2012-11-21 16:19:33.239854478 -0800 |
| 1445 | @@ -38,6 +38,10 @@ |
| 1446 | |
| 1447 | #include <libnotify/notify.h> |
| 1448 | @@ -1912,7 +1913,7 @@ |
| 1449 | #include <nm-connection.h> |
| 1450 | #include <nm-client.h> |
| 1451 | #include <nm-access-point.h> |
| 1452 | -@@ -148,6 +152,11 @@ typedef struct |
| 1453 | +@@ -148,6 +152,11 @@ |
| 1454 | guint animation_id; |
| 1455 | |
| 1456 | /* Direct UI elements */ |
| 1457 | @@ -1924,7 +1925,7 @@ |
| 1458 | GtkStatusIcon * status_icon; |
| 1459 | int icon_size; |
| 1460 | |
| 1461 | -@@ -234,13 +243,15 @@ struct NMADeviceClass { |
| 1462 | +@@ -234,13 +243,15 @@ |
| 1463 | NMDeviceStateReason reason, |
| 1464 | NMApplet *applet); |
| 1465 | |
| 1466 | @@ -1942,7 +1943,7 @@ |
| 1467 | char **tip, |
| 1468 | NMApplet *applet); |
| 1469 | |
| 1470 | -@@ -255,6 +266,10 @@ NMApplet *nm_applet_new (GMainLoop *loop |
| 1471 | +@@ -255,6 +266,10 @@ |
| 1472 | |
| 1473 | void applet_schedule_update_icon (NMApplet *applet); |
| 1474 | |
| 1475 | @@ -1953,10 +1954,10 @@ |
| 1476 | NMRemoteSettings *applet_get_settings (NMApplet *applet); |
| 1477 | |
| 1478 | GSList *applet_get_all_connections (NMApplet *applet); |
| 1479 | -Index: b/src/mobile-helpers.c |
| 1480 | +Index: network-manager-applet-0.9.4.1/src/mobile-helpers.c |
| 1481 | =================================================================== |
| 1482 | ---- a/src/mobile-helpers.c |
| 1483 | -+++ b/src/mobile-helpers.c |
| 1484 | +--- network-manager-applet-0.9.4.1.orig/src/mobile-helpers.c 2012-03-19 11:41:12.000000000 -0700 |
| 1485 | ++++ network-manager-applet-0.9.4.1/src/mobile-helpers.c 2012-11-21 16:19:09.079734683 -0800 |
| 1486 | @@ -21,6 +21,7 @@ |
| 1487 | */ |
| 1488 | |
| 1489 | @@ -1965,7 +1966,7 @@ |
| 1490 | |
| 1491 | GdkPixbuf * |
| 1492 | mobile_helper_get_status_pixbuf (guint32 quality, |
| 1493 | -@@ -35,7 +36,11 @@ mobile_helper_get_status_pixbuf (guint32 |
| 1494 | +@@ -35,7 +36,11 @@ |
| 1495 | |
| 1496 | if (!quality_valid) |
| 1497 | quality = 0; |
| 1498 | @@ -1977,7 +1978,7 @@ |
| 1499 | |
| 1500 | pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, |
| 1501 | TRUE, |
| 1502 | -@@ -83,9 +88,14 @@ mobile_helper_get_status_pixbuf (guint32 |
| 1503 | +@@ -83,9 +88,14 @@ |
| 1504 | return pixbuf; |
| 1505 | } |
| 1506 | |
| 1507 | @@ -1992,7 +1993,7 @@ |
| 1508 | if (quality > 80) |
| 1509 | return nma_icon_check_and_load ("nm-signal-100", &applet->wireless_100_icon, applet); |
| 1510 | else if (quality > 55) |
| 1511 | -@@ -96,7 +106,132 @@ mobile_helper_get_quality_icon (guint32 |
| 1512 | +@@ -96,7 +106,132 @@ |
| 1513 | return nma_icon_check_and_load ("nm-signal-25", &applet->wireless_25_icon, applet); |
| 1514 | |
| 1515 | return nma_icon_check_and_load ("nm-signal-00", &applet->wireless_00_icon, applet); |
| 1516 | @@ -2125,11 +2126,11 @@ |
| 1517 | |
| 1518 | GdkPixbuf * |
| 1519 | mobile_helper_get_tech_icon (guint32 tech, NMApplet *applet) |
| 1520 | -Index: b/src/mobile-helpers.h |
| 1521 | +Index: network-manager-applet-0.9.4.1/src/mobile-helpers.h |
| 1522 | =================================================================== |
| 1523 | ---- a/src/mobile-helpers.h |
| 1524 | -+++ b/src/mobile-helpers.h |
| 1525 | -@@ -56,9 +56,20 @@ GdkPixbuf *mobile_helper_get_status_pixb |
| 1526 | +--- network-manager-applet-0.9.4.1.orig/src/mobile-helpers.h 2012-03-13 16:04:00.000000000 -0700 |
| 1527 | ++++ network-manager-applet-0.9.4.1/src/mobile-helpers.h 2012-11-21 16:19:09.079734683 -0800 |
| 1528 | +@@ -56,9 +56,20 @@ |
| 1529 | guint32 access_tech, |
| 1530 | NMApplet *applet); |
| 1531 | |
| 1532 | @@ -2150,11 +2151,11 @@ |
| 1533 | + |
| 1534 | #endif /* APPLET_MOBILE_HELPERS_H */ |
| 1535 | |
| 1536 | -Index: b/src/mb-menu-item.c |
| 1537 | +Index: network-manager-applet-0.9.4.1/src/mb-menu-item.c |
| 1538 | =================================================================== |
| 1539 | ---- a/src/mb-menu-item.c |
| 1540 | -+++ b/src/mb-menu-item.c |
| 1541 | -@@ -180,11 +180,14 @@ nm_mb_menu_item_new (const char *connect |
| 1542 | +--- network-manager-applet-0.9.4.1.orig/src/mb-menu-item.c 2012-03-20 13:32:44.000000000 -0700 |
| 1543 | ++++ network-manager-applet-0.9.4.1/src/mb-menu-item.c 2012-11-21 16:19:09.079734683 -0800 |
| 1544 | +@@ -180,11 +180,14 @@ |
| 1545 | gtk_label_set_text (GTK_LABEL (priv->desc), priv->desc_string); |
| 1546 | } |
| 1547 | |
| 1548 | @@ -2169,11 +2170,11 @@ |
| 1549 | |
| 1550 | return GTK_WIDGET (item); |
| 1551 | } |
| 1552 | -Index: b/src/gconf-helpers/Makefile.am |
| 1553 | +Index: network-manager-applet-0.9.4.1/src/gconf-helpers/Makefile.am |
| 1554 | =================================================================== |
| 1555 | ---- a/src/gconf-helpers/Makefile.am |
| 1556 | -+++ b/src/gconf-helpers/Makefile.am |
| 1557 | -@@ -16,6 +16,7 @@ libgconf_helpers_la_CPPFLAGS = \ |
| 1558 | +--- network-manager-applet-0.9.4.1.orig/src/gconf-helpers/Makefile.am 2012-03-13 16:03:59.000000000 -0700 |
| 1559 | ++++ network-manager-applet-0.9.4.1/src/gconf-helpers/Makefile.am 2012-11-21 16:19:09.083734694 -0800 |
| 1560 | +@@ -16,6 +16,7 @@ |
| 1561 | -I$(top_srcdir)/src/utils \ |
| 1562 | $(GTK_CFLAGS) \ |
| 1563 | $(NMA_CFLAGS) \ |
| 1564 | @@ -2181,7 +2182,7 @@ |
| 1565 | $(GCONF_CFLAGS) \ |
| 1566 | $(GNOME_KEYRING_CFLAGS) \ |
| 1567 | $(DISABLE_DEPRECATED) |
| 1568 | -@@ -23,6 +24,7 @@ libgconf_helpers_la_CPPFLAGS = \ |
| 1569 | +@@ -23,6 +24,7 @@ |
| 1570 | libgconf_helpers_la_LIBADD = \ |
| 1571 | $(GTK_LIBS) \ |
| 1572 | $(NMA_LIBS) \ |
| 1573 | @@ -2189,10 +2190,10 @@ |
| 1574 | $(GCONF_LIBS) \ |
| 1575 | $(GNOME_KEYRING_LIBS) |
| 1576 | |
| 1577 | -Index: b/src/applet-device-wimax.c |
| 1578 | +Index: network-manager-applet-0.9.4.1/src/applet-device-wimax.c |
| 1579 | =================================================================== |
| 1580 | ---- a/src/applet-device-wimax.c |
| 1581 | -+++ b/src/applet-device-wimax.c |
| 1582 | +--- network-manager-applet-0.9.4.1.orig/src/applet-device-wimax.c 2012-03-19 07:53:53.000000000 -0700 |
| 1583 | ++++ network-manager-applet-0.9.4.1/src/applet-device-wimax.c 2012-11-21 16:19:09.083734694 -0800 |
| 1584 | @@ -36,6 +36,7 @@ |
| 1585 | #include "applet.h" |
| 1586 | #include "applet-device-wimax.h" |
| 1587 | @@ -2201,7 +2202,7 @@ |
| 1588 | #include "applet-dialogs.h" |
| 1589 | #include "nma-marshal.h" |
| 1590 | #include "mb-menu-item.h" |
| 1591 | -@@ -141,9 +142,14 @@ new_nsp_menu_item (NMDeviceWimax *device |
| 1592 | +@@ -141,9 +142,14 @@ |
| 1593 | { |
| 1594 | GtkWidget *item; |
| 1595 | WimaxMenuItemInfo *info; |
| 1596 | @@ -2216,7 +2217,7 @@ |
| 1597 | item = nm_mb_menu_item_new (nm_wimax_nsp_get_name (nsp), |
| 1598 | nm_wimax_nsp_get_signal_quality (nsp), |
| 1599 | NULL, |
| 1600 | -@@ -152,6 +158,16 @@ new_nsp_menu_item (NMDeviceWimax *device |
| 1601 | +@@ -152,6 +158,16 @@ |
| 1602 | nsp_type_to_mb_state (nm_wimax_nsp_get_network_type (nsp)), |
| 1603 | TRUE, |
| 1604 | applet); |
| 1605 | @@ -2233,7 +2234,7 @@ |
| 1606 | gtk_widget_set_sensitive (GTK_WIDGET (item), TRUE); |
| 1607 | |
| 1608 | info = g_slice_new0 (WimaxMenuItemInfo); |
| 1609 | -@@ -305,7 +321,12 @@ wimax_add_menu_item (NMDevice *device, |
| 1610 | +@@ -305,7 +321,12 @@ |
| 1611 | static void |
| 1612 | nsp_quality_changed (NMWimaxNsp *nsp, GParamSpec *pspec, gpointer user_data) |
| 1613 | { |
| 1614 | @@ -2247,7 +2248,7 @@ |
| 1615 | } |
| 1616 | |
| 1617 | static NMWimaxNsp * |
| 1618 | -@@ -367,8 +388,12 @@ active_nsp_changed_cb (NMDeviceWimax *de |
| 1619 | +@@ -367,8 +388,12 @@ |
| 1620 | if (!s_wimax) |
| 1621 | return; |
| 1622 | |
| 1623 | @@ -2261,7 +2262,7 @@ |
| 1624 | } |
| 1625 | |
| 1626 | static void |
| 1627 | -@@ -384,6 +409,9 @@ nsp_removed_cb (NMDeviceWimax *device, |
| 1628 | +@@ -384,6 +409,9 @@ |
| 1629 | if (old == nsp) { |
| 1630 | g_object_set_data (G_OBJECT (device), ACTIVE_NSP_TAG, NULL); |
| 1631 | applet_schedule_update_icon (applet); |
| 1632 | @@ -2271,7 +2272,7 @@ |
| 1633 | } |
| 1634 | } |
| 1635 | |
| 1636 | -@@ -432,15 +460,16 @@ wimax_device_state_changed (NMDevice *de |
| 1637 | +@@ -432,15 +460,16 @@ |
| 1638 | } |
| 1639 | } |
| 1640 | |
| 1641 | @@ -2290,7 +2291,7 @@ |
| 1642 | const char *id; |
| 1643 | NMWimaxNsp *nsp; |
| 1644 | guint32 quality = 0; |
| 1645 | -@@ -474,7 +503,7 @@ wimax_get_icon (NMDevice *device, |
| 1646 | +@@ -474,7 +503,7 @@ |
| 1647 | break; |
| 1648 | case NM_DEVICE_STATE_ACTIVATED: |
| 1649 | roaming = (nsp_type == NM_WIMAX_NSP_NETWORK_TYPE_ROAMING_PARTNER); |
| 1650 | @@ -2299,7 +2300,7 @@ |
| 1651 | TRUE, |
| 1652 | nsp_type_to_mb_state (nsp_type), |
| 1653 | MB_TECH_WIMAX, |
| 1654 | -@@ -483,12 +512,11 @@ wimax_get_icon (NMDevice *device, |
| 1655 | +@@ -483,12 +512,11 @@ |
| 1656 | id, quality, |
| 1657 | roaming ? ", " : "", |
| 1658 | roaming ? _("roaming") : ""); |
| 1659 | |
| 1660 | === modified file 'debian/patches/series' |
| 1661 | --- debian/patches/series 2012-03-27 14:17:07 +0000 |
| 1662 | +++ debian/patches/series 2012-11-23 16:30:42 +0000 |
| 1663 | @@ -1,3 +1,5 @@ |
| 1664 | +git_fix_some_leaks_80ef61b.patch |
| 1665 | +git_mac_addr_string_leakage_6dae878.patch |
| 1666 | lp289466_always_show_tray_icon.patch |
| 1667 | lp328572-dxteam-connect-text.patch |
| 1668 | lp330571_dxteam_wired_connect_text.patch |

Looking good, with the only exception (at first glance) that the version should be 2.1 instead of 3. I'll do a more thorough review tomorrow ;)