Commit graph

11390 commits

Author SHA1 Message Date
Lubomir Rintel
567e86c9f8 device: set the reason for when deactivating for another activation
It's always user requested -- auto activation never happens on already active
devices. nm_device_release_one_slave() rightly asserts teardown with
(un)configuration does not happen for no reason at all.

https://bugzilla.gnome.org/show_bug.cgi?id=744812
(cherry picked from commit 600489003f)
2015-02-24 18:55:03 +01:00
Lubomir Rintel
df7f57c516 manager: don't re-assume generated connections
They're being torn down as their device is being deactivated.

https://bugzilla.gnome.org/show_bug.cgi?id=744812
(cherry picked from commit d37f2280b7)
2015-02-24 18:55:03 +01:00
Thomas Haller
b32b10ac4c build: fix detecting support for -Wno-* compiler flags
Since GCC 4.4, gcc does not warn about unknown -Wno-* flags. At
least, it does not warning unless another warning is raised as well
(https://gcc.gnu.org/wiki/FAQ#wnowarning).

We didn't notice up to now, because we only tested flags that GCC
actually supports.

Hack around this, by checking for the -W* counterpart instead.

(cherry picked from commit 0462104317)
2015-02-24 18:52:45 +01:00
Thomas Haller
dfebbdaef1 device: skip generating enums for internal flags with glib-mkenums
(cherry picked from commit 6cdcf36a3d)
2015-02-24 18:22:29 +01:00
Thomas Haller
2edd273096 core: merge branch 'th/queue_act_request_no_carrier_rh1079353'
https://bugzilla.redhat.com/show_bug.cgi?id=1079353

(cherry picked from commit 1f5b9ffc3d)
2015-02-24 17:49:44 +01:00
Thomas Haller
b8f40f969b device: accept user activation request while waiting for carrier
https://bugzilla.redhat.com/show_bug.cgi?id=1079353
(cherry picked from commit 0bfe635119)
2015-02-24 17:44:05 +01:00
Thomas Haller
b6495b5000 device: eliminate direct calls to check_connection_available() in favor of nm_device_check_connection_available()
It was confusing to understand the difference between calling nm_device_connection_is_available()
and check_connection_available(), they behaved similar, but not really
the same. Especially nm_device_connection_is_available() would look
first into @available_connetions, and might call check_connection_available()
itself. Whereas @available_connetions was also populated by testing
check_connection_available(). This interrelation makes it hard to
understand when nm_device_connection_is_available() returned true.

Rename nm_device_connection_is_available() to nm_device_check_connection_available()
and remove all direct calls of check_connection_available() in favor of
the wrapper nm_device_check_connection_available().

Now we only call nm_device_check_connection_available() with different
parameters (@flags and @specific_object). We also have the additional
guarantee that specifying more @flags will widen the result and making
a connection "more" available, while specifying a @specific_object will
restrict it.

This also changes behavior in several cases. For example before
nm_device_connection_is_available() for user-requests would always
declare matching connections available on Wi-Fi devices (only)
regardless of the device state. Now the device state gets consistently
considered.

For default-unmanaged devices it also changes behavior in complicated
ways, because before we would put connections into @available_connetions
for every device-state, but nm_device_connection_is_available() had a
special over-ride only for unmanaged-state.

This also fixes a bug, that user can activate an unavailable Wi-Fi
device:
  nmcli radio wifi off
  nmcli connection up wlan0

(cherry picked from commit d80f1bf4f0)
2015-02-24 17:44:05 +01:00
Thomas Haller
92f4258326 device: remove debug logging from is_available()
Having logging statements in a simple getter (or is_*()) means
you cannot call these functions without cluttering the log.

Another approach would be to add an @out_reason argument, and
callers who actually care log the reason. For now, just get rid
of the messages.

(cherry picked from commit e524be2c34)
2015-02-24 17:44:04 +01:00
Thomas Haller
60641b0fa7 device: implement flag NM_DEVICE_CHECK_DEV_AVAILABLE_IGNORE_CARRIER for is_available()
(cherry picked from commit 37ebeccaa7)
2015-02-24 17:44:04 +01:00
Thomas Haller
ba52457f4d device: add flags to nm_device_is_available()
(cherry picked from commit 52dbb2398a)
2015-02-24 17:44:04 +01:00
Thomas Haller
3a5cee2a99 device: add flags argument to check_connection_available()
(cherry picked from commit e96af59444)
2015-02-24 17:44:04 +01:00
Thomas Haller
2799d502a1 device: merge check_connection_available_wifi_hidden() into check_connection_available()
Only refactoring, no behavioral change.

(cherry picked from commit 5a04273715)
2015-02-24 17:44:04 +01:00
Thomas Haller
e7c8affef5 device: refactor nm_device_connection_is_available()
No functional change, but refactor the function to
return early.

(cherry picked from commit 364c4476e3)
2015-02-24 17:44:04 +01:00
Thomas Haller
a042cec8a9 device/trivial: rename argument in nm_device_connection_is_available()
The argument name should express what the caller wants
(he wants to know, whether the connection can be activated
for an internal or external activation request).

Whether that involves checking device-specific overrides, is
not the point -- nm_device_check_connection_compatible() is
also a virtual function with device-specific overrides.

(cherry picked from commit a7e0a038bf)
2015-02-24 17:44:04 +01:00
Thomas Haller
1158fd4f5b device: add special NM_UNMANAGED_ALL flag
(cherry picked from commit aefd269308)
2015-02-24 17:43:39 +01:00
Thomas Haller
b2d0bd8afe device: don't remove and re-add pending action in nm_device_bring_up()
(cherry picked from commit dba5e8e731)
2015-02-24 17:43:39 +01:00
Thomas Haller
b09b501766 device: don't add dummy value to @available_connections hash
GHashTable is optimized for usage of a set, where the key equals
the value. Don't add a dummy value.

(cherry picked from commit 3cb5d20c34)
2015-02-24 17:43:39 +01:00
Thomas Haller
1d1947b25e device: fix leaking queued NMActiveConnection
The queued activation request must transition state to
DEACTIVATED, otherwise it is not removed from the list
of active_connections in NMManager.

(cherry picked from commit b9da094da9)
2015-02-24 16:42:39 +01:00
Milo Casagrande
da32e0a841 po: updated Italian (it) translation (bgo #744998)
https://bugzilla.gnome.org/show_bug.cgi?id=744998
2015-02-24 14:36:52 +01:00
Thomas Haller
820607112a doc: clearify description of @options argument for DeviceWireless:RequestScan()
(cherry picked from commit 3f01e3d293)
2015-02-24 14:35:19 +01:00
Thomas Haller
a0619cc36e translations: avoid preprocessor strings inside translation macro
https://bugzilla.gnome.org/show_bug.cgi?id=740381
https://bugzilla.gnome.org/show_bug.cgi?id=744998

Backport commit 943db815ee from libnm-core
to libnm-util.

(cherry picked from commit 81e72d9483)
2015-02-24 14:32:49 +01:00
Bastien Nocera
5c722630a5 man: fix small typo in nmcli man page
https://bugzilla.gnome.org/show_bug.cgi?id=745007
(cherry picked from commit 06535fca29)
2015-02-23 14:22:10 +01:00
Thomas Haller
7f8e486723 keyfile/writer: fix password_raw_writer() to write NMSetting8021x:password-raw
After refactoring libnm-core to use GBytes instead of
GByteArray/DBUS_TYPE_G_UCHAR_ARRAY, it was forgotten to update
keyfile writer.

This causes keyfile writer to skip the NMSetting8021x:password-raw setting
and raise a g_critical() warning.

Fixes: c43f88907b
(cherry picked from commit c651b27793)
2015-02-19 13:13:07 +01:00
Lubomir Rintel
7496cad4aa build: don't run tests with valgrind by default
Only enable it when user requested it. The surpressions might not work for
everyone.

(cherry picked from commit be6ce67213)
2015-02-18 18:16:39 +01:00
Lubomir Rintel
e97a7613f9 manager: memleak: free the state file name on dispose
==12663== 45 bytes in 1 blocks are definitely lost in loss record 2,464 of 4,708
==12663==    at 0x4C29BCF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==12663==    by 0x7F4A6F5: g_malloc (gmem.c:97)
==12663==    by 0x7F6301E: g_strdup (gstrfuncs.c:356)
==12663==    by 0x4B8AE5: nm_manager_new (nm-manager.c:4793)
==12663==    by 0x432F3D: main (main.c:413)

(cherry picked from commit b1e6c9be91)
2015-02-18 18:16:31 +01:00
Lubomir Rintel
2a0fb46d68 agent-manager: memleak: unref the last agent for a request too
==29353== 620 (+620) (32 (+32) direct, 588 (+588) indirect) bytes in 1 (+1) blocks are definitely lost in loss record 6,905 of 7,076
==29353==    at 0x7CDBAC8: g_type_create_instance (gtype.c:1844)
==29353==    by 0x7CBF356: g_object_new_internal (gobject.c:1774)
==29353==    by 0x7CC0D4C: g_object_newv (gobject.c:1922)
==29353==    by 0x7CC14E3: g_object_new (gobject.c:1614)
==29353==    by 0x50B58A: nm_secret_agent_new (nm-secret-agent.c:489)
==29353==    by 0x50915F: impl_agent_manager_register_with_capabilities (nm-agent-manager.c:309)
==29353==    by 0x62649BE: invoke_object_method (dbus-gobject.c:1899)
==29353==    by 0x62649BE: object_registration_message (dbus-gobject.c:2161)
==29353==    by 0x649D5CE: _dbus_object_tree_dispatch_and_unlock (dbus-object-tree.c:1018)
==29353==    by 0x648F193: dbus_connection_dispatch (dbus-connection.c:4718)
==29353==    by 0x6261DB4: message_queue_dispatch (dbus-gmain.c:90)
==29353==    by 0x7F44AEA: g_main_dispatch (gmain.c:3111)
==29353==    by 0x7F44AEA: g_main_context_dispatch (gmain.c:3710)
==29353==    by 0x7F44E87: g_main_context_iterate.isra.29 (gmain.c:3781)

(cherry picked from commit 7d706daf3e)
2015-02-18 18:16:31 +01:00
Lubomir Rintel
be9293fe45 auth-utils: memleak: free the key when we steal data
==5177== 6 (+6) bytes in 1 (+1) blocks are definitely lost in loss record 118 of 6,581
==5177==    at 0x4C29BCF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==5177==    by 0x7F4A6F5: g_malloc (gmem.c:97)
==5177==    by 0x7F6301E: g_strdup (gstrfuncs.c:356)
==5177==    by 0x4AD902: nm_auth_chain_set_data (nm-auth-utils.c:194)
==5177==    by 0x50919E: impl_agent_manager_register_with_capabilities (nm-agent-manager.c:323)
==5177==    by 0x62649BE: invoke_object_method (dbus-gobject.c:1899)
==5177==    by 0x62649BE: object_registration_message (dbus-gobject.c:2161)
==5177==    by 0x649D5CE: _dbus_object_tree_dispatch_and_unlock (dbus-object-tree.c:1018)
==5177==    by 0x648F193: dbus_connection_dispatch (dbus-connection.c:4718)
==5177==    by 0x6261DB4: message_queue_dispatch (dbus-gmain.c:90)
==5177==    by 0x7F44AEA: g_main_dispatch (gmain.c:3111)
==5177==    by 0x7F44AEA: g_main_context_dispatch (gmain.c:3710)
==5177==    by 0x7F44E87: g_main_context_iterate.isra.29 (gmain.c:3781)
==5177==    by 0x7F451B1: g_main_loop_run (gmain.c:3975)

(cherry picked from commit da5c332151)
2015-02-18 18:16:31 +01:00
Lubomir Rintel
755c52758b connectivity: memleak: drop async result reference on complete
==5177== 104 (+104) bytes in 1 (+1) blocks are definitely lost in loss record 5,502 of 6,581
==5177==    at 0x4C29BCF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==5177==    by 0x7F4A6F5: g_malloc (gmem.c:97)
==5177==    by 0x7F6159F: g_slice_alloc (gslice.c:1007)
==5177==    by 0x7F61B6D: g_slice_alloc0 (gslice.c:1032)
==5177==    by 0x7CDB9A3: g_type_create_instance (gtype.c:1847)
==5177==    by 0x7CBF356: g_object_new_internal (gobject.c:1774)
==5177==    by 0x7CC0D4C: g_object_newv (gobject.c:1922)
==5177==    by 0x7CC14E3: g_object_new (gobject.c:1614)
==5177==    by 0x79A4C57: g_simple_async_result_new (gsimpleasyncresult.c:319)
==5177==    by 0x515B34: nm_connectivity_check_async (nm-connectivity.c:289)
==5177==    by 0x515D74: run_check (nm-connectivity.c:217)
==5177==    by 0x515DBF: idle_start_periodic_checks (nm-connectivity.c:229)

(cherry picked from commit e5499c558f)

Conflicts:
	src/nm-connectivity.c
2015-02-18 18:16:27 +01:00
Lubomir Rintel
e343507bd4 linux-platform: dont use-after-free the driver string
==1345== Invalid read of size 1
==1345==    at 0x827DC15: vfprintf (vfprintf.c:1642)
==1345==    by 0x8345D04: __vasprintf_chk (vasprintf_chk.c:66)
==1345==    by 0x7F882DB: vasprintf (stdio2.h:210)
==1345==    by 0x7F882DB: g_vasprintf (gprintf.c:316)
==1345==    by 0x7F6319C: g_strdup_vprintf (gstrfuncs.c:507)
==1345==    by 0x7F63258: g_strdup_printf (gstrfuncs.c:533)
==1345==    by 0x472833: nm_platform_link_to_string (nm-platform.c:2337)
==1345==    by 0x472A05: log_link (nm-platform.c:2754)
==1345==    by 0x9DC5D5F: ffi_call_unix64 (unix64.S:76)
==1345==    by 0x9DC57D0: ffi_call (ffi64.c:525)
==1345==    by 0x7CBA553: g_cclosure_marshal_generic (gclosure.c:1448)
==1345==    by 0x7CB9D34: g_closure_invoke (gclosure.c:768)
==1345==    by 0x7CCB34B: signal_emit_unlocked_R (gsignal.c:3483)
==1345==  Address 0xa91b5a0 is 0 bytes inside a block of size 5 free'd
==1345==    at 0x4C2ACE9: free (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==1345==    by 0x68E7D6D: link_free_data (link.c:223)
==1345==    by 0x6D47B1F: nl_object_free (object.c:186)
==1345==    by 0x46C31C: put_nl_object (nm-linux-platform.c:222)
==1345==    by 0x46C31C: link_change (nm-linux-platform.c:2354)
==1345==    by 0x46C87F: link_set_user_ipv6ll_enabled (nm-linux-platform.c:2583)
==1345==    by 0x4476C4: set_nm_ipv6ll (nm-device.c:4418)
==1345==    by 0x4476C4: ip6_managed_setup (nm-device.c:7515)
==1345==    by 0x453F12: _set_state_full (nm-device.c:7665)
==1345==    by 0x4B6609: add_device (nm-manager.c:1885)
==1345==    by 0x4B6880: system_create_virtual_device (nm-manager.c:1126)
==1345==    by 0x4B6B40: system_create_virtual_devices (nm-manager.c:1163)
==1345==    by 0x4B6E00: platform_link_added (nm-manager.c:2213)
==1345==    by 0x4B6E00: platform_link_cb (nm-manager.c:2228)
==1345==    by 0x9DC5D5F: ffi_call_unix64 (unix64.S:76)

(cherry picked from commit f93f0e0b15)
2015-02-18 18:15:35 +01:00
Lubomir Rintel
50348b708a ndp: memleak: unregister router advertisement handler on dispose
ndp_close() does not do that -- it only closes the socket. It's safe to call
even if we didn't start solicitation as it has a NULL-check.

==7745== 80 (+80) bytes in 2 (+2) blocks are definitely lost in loss record 3,983 of 5,735
==7745==    at 0x4C29BCF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==7745==    by 0x6F57A2D: ndp_msgrcv_handler_register (libndp.c:1697)
==7745==    by 0x47572E: start (nm-lndp-rdisc.c:691)
==7745==    by 0x44A457: addrconf6_start_with_link_ready (nm-device.c:4280)
==7745==    by 0x44C1E7: linklocal6_complete (nm-device.c:3931)
==7745==    by 0x44C1E7: update_ip_config (nm-device.c:6667)
==7745==    by 0x44C2F8: queued_ip_config_change (nm-device.c:6688)
==7745==    by 0x7F44AEA: g_main_dispatch (gmain.c:3111)
==7745==    by 0x7F44AEA: g_main_context_dispatch (gmain.c:3710)
==7745==    by 0x7F44E87: g_main_context_iterate.isra.29 (gmain.c:3781)
==7745==    by 0x7F451B1: g_main_loop_run (gmain.c:3975)
==7745==    by 0x432F74: main (main.c:460)

(cherry picked from commit 5d9f9febfb)
2015-02-18 18:15:35 +01:00
Lubomir Rintel
098c2f2294 dhcp-client: memleak: free uuid on dispose
==7745== 37 (+37) bytes in 1 (+1) blocks are definitely lost in loss record 2,679 of 5,735
==7745==    at 0x4C29BCF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==7745==    by 0x7F4A6F5: g_malloc (gmem.c:97)
==7745==    by 0x7F6301E: g_strdup (gstrfuncs.c:356)
==7745==    by 0x45B097: set_property (nm-dhcp-client.c:851)
==7745==    by 0x7CBF688: object_set_property (gobject.c:1415)
==7745==    by 0x7CBF688: g_object_new_internal (gobject.c:1808)
==7745==    by 0x7CC1194: g_object_new_valist (gobject.c:2034)
==7745==    by 0x7CC14D0: g_object_new (gobject.c:1617)
==7745==    by 0x45FF9F: client_start (nm-dhcp-manager.c:253)
==7745==    by 0x460393: nm_dhcp_manager_start_ip4 (nm-dhcp-manager.c:308)
==7745==    by 0x44EB16: dhcp4_start (nm-device.c:3168)
==7745==    by 0x44EE15: act_stage3_ip4_config_start (nm-device.c:3440)
==7745==    by 0x455C9F: nm_device_activate_stage3_ip4_start (nm-device.c:4657)

(cherry picked from commit c26ef29a47)
2015-02-18 18:15:35 +01:00
Lubomir Rintel
8a9a999958 dhcp-client: memleak: free hostname on dispose
==7745== 11 (+11) bytes in 1 (+1) blocks are definitely lost in loss record 408 of 5,735
==7745==    at 0x4C29BCF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==7745==    by 0x7F4A6F5: g_malloc (gmem.c:97)
==7745==    by 0x7F6301E: g_strdup (gstrfuncs.c:356)
==7745==    by 0x45C188: nm_dhcp_client_start_ip4 (nm-dhcp-client.c:417)
==7745==    by 0x460147: client_start (nm-dhcp-manager.c:268)
==7745==    by 0x460393: nm_dhcp_manager_start_ip4 (nm-dhcp-manager.c:308)
==7745==    by 0x44EB16: dhcp4_start (nm-device.c:3168)
==7745==    by 0x44EE15: act_stage3_ip4_config_start (nm-device.c:3440)
==7745==    by 0x455C9F: nm_device_activate_stage3_ip4_start (nm-device.c:4657)
==7745==    by 0x456467: nm_device_activate_stage3_ip_config_start (nm-device.c:4801)
==7745==    by 0x7F44AEA: g_main_dispatch (gmain.c:3111)
==7745==    by 0x7F44AEA: g_main_context_dispatch (gmain.c:3710)
==7745==    by 0x7F44E87: g_main_context_iterate.isra.29 (gmain.c:3781)

(cherry picked from commit 76430f9cca)
2015-02-18 18:15:07 +01:00
Lubomir Rintel
3c640b1930 settings-connection: memleak: free filename on dispose
==4203== 97 (+97) bytes in 2 (+2) blocks are definitely lost in loss record 4,586 of 5,632
==4203==    at 0x4C29BCF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4203==    by 0x7F4A6F5: g_malloc (gmem.c:97)
==4203==    by 0x7F6301E: g_strdup (gstrfuncs.c:356)
==4203==    by 0x47E4C8: nm_settings_connection_set_filename (nm-settings-connection.c:2228)
==4203==    by 0x7CBF6EC: object_set_property (gobject.c:1415)
==4203==    by 0x7CBF6EC: g_object_new_internal (gobject.c:1828)
==4203==    by 0x7CC1194: g_object_new_valist (gobject.c:2034)
==4203==    by 0x7CC14D0: g_object_new (gobject.c:1617)
==4203==    by 0x12A08193: nm_ifcfg_connection_new (nm-ifcfg-connection.c:229)
==4203==    by 0x12A0542B: update_connection (plugin.c:225)
==4203==    by 0x12A0696A: add_connection (plugin.c:715)
==4203==    by 0x4814BB: nm_settings_add_connection (nm-settings.c:1030)
==4203==    by 0x4817DE: pk_add_cb (nm-settings.c:1136)

(cherry picked from commit 9b7c8db16a)
2015-02-18 18:15:07 +01:00
Aleksander Morgado
b7cc6fb64e wwan: don't assume DNS info is always available
Fixes segfault with e.g. Ericsson modems that reply just with IP+gateway,
without DNS info.

 [mm-port-serial-at.c:440] debug_log(): (ttyACM8): --> 'AT*E2IPCFG?<CR>'
 [mm-port-serial-at.c:440] debug_log(): (ttyACM8): <-- '<CR><LF>*E2IPCFG: (1,"10.191.64.12")(2,"10.191.64.10")<CR><LF>'
 [mm-port-serial-at.c:440] debug_log(): (ttyACM8): <-- '<CR><LF>OK<CR><LF>'
 [mm-port-serial.c:1296] mm_port_serial_close(): (ttyACM8) device open count is 1 (close)
 [mm-port.c:95] mm_port_set_connected(): (wwan0): port now connected
 [mm-base-bearer.c:488] connect_ready(): Connected bearer '/org/freedesktop/ModemManager1/Bearer/0'
 [mm-iface-modem.c:1392] __iface_modem_update_state_internal(): Modem /org/freedesktop/ModemManager1/Modem/0: state changed (connecting -> connected)

 <info> Activation (ttyACM8) Stage 3 of 5 (IP Configure Start) started...
 <info> (ttyACM8): device state change: config -> ip-config (reason 'none') [50 70 0]
 <info> Activation (ttyACM8) Stage 4 of 5 (IPv6 Configure Timeout) scheduled...
 <info> Activation (ttyACM8) Stage 3 of 5 (IP Configure Start) complete.
 <info> (ttyACM8): IPv4 static configuration:
 <info>   address 10.191.64.12/28
 <info>   gateway 10.191.64.10
Errore di segmentazione

http://lists.freedesktop.org/archives/modemmanager-devel/2015-February/001758.html
(cherry picked from commit 5df024f57a)
2015-02-17 12:06:53 -06:00
Dan Williams
7daf63461d dhcp: gracefully recover from failed DHCP BOUND state transitions (bgo #743700)
First, configure.ac's grep was wrong and wasn't setting DHCPCD_SUPPORTS_IPV6,
which caused dhcpcd to acquire a DHCPv6 address when NM didn't think that
was going to happen, and thus DHCP options couldn't be parsed.

Second, even if that does happen, don't just assert and quit, but set the
DHCP state to failed.

https://bugzilla.gnome.org/show_bug.cgi?id=743700
(cherry picked from commit 511a7395bf)
2015-02-17 08:51:51 -06:00
Thomas Haller
530efb3882 default-route-manager/trivial: add code comment
(cherry picked from commit 7de9bc618a)
2015-02-17 12:29:34 +01:00
Thomas Haller
b14b30c157 default-route-manager: own a reference to platform instance
Singletons subscribing (and more importantly unsubscribing)
from other singletons should own a reference to them to avoid
errors during destruction.

(cherry picked from commit d4858013cf)
2015-02-17 11:43:32 +01:00
Thomas Haller
321360aac2 default-route-manager: avoid crash while disposing of NMDefaultRouteManager
During dipose(), NMDefaultRouteManager unrefed all the source pointers
in its list -- thereby having dangling pointers in the list of entries.

The unrefing can cause the final destruction of the device (during
shutdown), which would again call into NMDefaultRouteManager.

Fix this by ensuring that after disposing starts, all external calls
into NMDefaultRouteManager return early.

    #0  0x00007ffff4a2cc60 in g_logv (log_domain=0x535b51 "NetworkManager", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fffffffd530) at gmessages.c:1046
    #1  0x00007ffff4a2ce9f in g_log (log_domain=log_domain@entry=0x535b51 "NetworkManager", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x528f68 "file %s: line %d (%s): should not be reached") at gmessages.c:1079
    #2  0x000000000049b83b in _ipx_update_default_route (vtable=vtable@entry=0x7a49c0 <vtable_ip6>, self=0x7d1350 [NMDefaultRouteManager], source=source@entry=0x8b64e0) at nm-default-route-manager.c:659
    #3  0x000000000049c652 in nm_default_route_manager_ip6_update_default_route (self=<optimized out>, source=source@entry=0x8b64e0) at nm-default-route-manager.c:819
    #4  0x00000000004526a8 in _cleanup_generic_post (self=self@entry=0x8b64e0, deconfigure=deconfigure@entry=0) at devices/nm-device.c:7235
    #5  0x0000000000452bc0 in dispose (object=0x8b64e0) at devices/nm-device.c:8324
    #6  0x00007ffff4d29cbc in g_object_unref (_object=0x8b64e0) at gobject.c:3133
    #7  0x0000000000499091 in _entry_free (entry=0x8bf140) at nm-default-route-manager.c:187
    #8  0x00007ffff49fa82b in g_ptr_array_foreach (array=0x81d220, func=0x499080 <_entry_free>, user_data=0x0) at garray.c:1502
    #9  0x00007ffff49fa8c0 in ptr_array_free (array=0x81d220, flags=FREE_SEGMENT) at garray.c:1088
    #10 0x00007ffff49fa939 in g_ptr_array_free (array=<optimized out>, free_segment=free_segment@entry=1) at garray.c:1075
    #11 0x000000000049abcf in dispose (object=0x7d1350 [NMDefaultRouteManager]) at nm-default-route-manager.c:1357
    #12 0x00007ffff4d29cbc in g_object_unref (_object=0x7d1350) at gobject.c:3133
    #13 0x00007ffff7deb507 in _dl_fini () at dl-fini.c:252
    #14 0x00007ffff4658382 in __run_exit_handlers (status=status@entry=0, listp=0x7ffff49d66a0 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true) at exit.c:82
    #15 0x00007ffff46583d5 in __GI_exit (status=status@entry=0) at exit.c:104
    #16 0x0000000000432fd6 in main (argc=1, argv=0x7fffffffdeb8) at main.c:473

(cherry picked from commit 87517714f1)
2015-02-17 11:43:31 +01:00
Thomas Haller
8c6348c6e2 test: fix setup of logging for no-expect-message
Tests with assert-logging would never overwrite the logging level,
even if no-expect-message was set. Allow resetting the logging level
if no-expect-message is mixed with explicitly setting up logging.

    NMTST_DEBUG='log-level=DEBUG,log-domains=ALL,no-expect-message' make check -C src/tests/config/

(cherry picked from commit 5e74891b58)
2015-02-16 16:21:01 +01:00
Thomas Haller
c3bd16c2b6 tests: fix valgrind script to handle exit value 77 (skip)
(cherry picked from commit 9a2c0451a4)
2015-02-06 13:02:37 +01:00
Thomas Haller
5882153aec callouts/tests: fix parsing dhcp in get_dispatcher_file()
(cherry picked from commit 14040b1cea)
2015-02-06 13:02:35 +01:00
Dan Williams
b0dc95f816 wwan: recheck available connections when modem becomes unlocked (bgo #740966)
NMDevice rechecks available connections when the device moves to the
DISCONNECTED state, but connections are not available if the modem is
PIN locked at that time.  Available connections were never re-checked
when the modem was then unlocked while in the DISCONNECTED state.

(cherry picked from commit f3b16fffbd)
2015-02-05 11:11:18 +01:00
Ankit Patel
b0b8bc814c po: update Gujarati translation 2015-02-03 12:32:34 +01:00
Hedda Peters
9cace4e0d3 po: update German (de) translation
(cherry picked from commit c7e89c6e65)
2015-02-03 12:32:29 +01:00
Dan Williams
5d6f3f5a11 core: fix WiMAX enabled state file property name
The manager wrote the user state to the state file in /var with
the key "WiMAXEnabled", but it was read from the state file as
"WimaxEnabled".  Clearly that's not going to work.

(cherry picked from commit b03a4c3f0a)
2015-02-02 09:51:18 +01:00
Dan Williams
b00475c480 po: fix small error in Telugu translation
The fuzzy tag is wrong.

(cherry picked from commit aba9dbc52e)
2015-01-29 18:23:56 -06:00
Dan Williams
c57a9ef686 po: fix small issues in German translation
Remove one unused string, fix up another, and remove the fuzzy
tag on one that is OK.

(cherry picked from commit a35c7cfee6)
2015-01-29 18:23:50 -06:00
Thomas Haller
a62516d3ab core: intern hyphen_name string in nm_properties_changed_signal_add_property()
(cherry picked from commit 9167b7d66b)
2015-01-29 16:25:32 +01:00
Thomas Haller
c6b99ef941 connectivity: fix memory leak in nm-connectivity.c
(cherry picked from commit cc12f5128c)
2015-01-29 15:04:23 +01:00
Thomas Haller
b3c192eb9f config: fix memleak in read_config()
(cherry picked from commit 6519c2be0a)
2015-01-29 15:04:23 +01:00