Commit graph

9908 commits

Author SHA1 Message Date
Dan Williams
8dc5ef4b29 core: ignore carrier disconnect in UNMANAGED state
Prevent this warning:

NetworkManager[3149]: <info> caught signal 2, shutting down normally.
NetworkManager[3149]: <info> (p4p1): device state change: disconnected -> unmanaged (reason 'removed') [30 10 36]
NetworkManager[3149]: <info> (p4p1): link disconnected
NetworkManager[3149]: <info> (p4p1.5): device state change: activated -> unmanaged (reason 'removed') [100 10 36]
NetworkManager[3149]: <info> (p4p1.5): deactivating device (reason 'removed') [36]
NetworkManager[3149]: <info> (p4p1.5): link disconnected
NetworkManager[3149]: carrier_changed: assertion `priv->state >= NM_DEVICE_STATE_UNAVAILABLE' failed
NetworkManager[3149]: <info> (wlp12s0): device state change: disconnected -> unmanaged (reason 'removed') [30 10 36]
NetworkManager[3149]: <info> exiting (success)
2014-07-03 13:18:35 -05:00
Thomas Haller
55a0f25aba keyfile: avoid assertion reading keyfile without connection.type property
Avoids the following warning:
  (NetworkManager:26113): libnm-util-CRITICAL **: nm_connection_get_setting_by_name: assertion 'name != NULL' failed

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit bbdae859f6)
2014-07-03 18:48:53 +02:00
Thomas Haller
48359262a4 core: remove unused @state variable from nm_device_activate_schedule_stage3_ip_config_start()
Fixes: 5affa446aa
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-07-02 15:25:58 -05:00
Dan Williams
acdd5076c7 libnm-util: merge nm-util-private and nm-utils-private
No reason to have two differently named files for the
same general purpose.

(cherry picked from commit 6cb6d39725)
2014-07-02 15:24:49 -05:00
Dan Winship
8ee32b87df core: make veth devices default-unmanaged for now
We only want to treat a veth device as ethernet if (a) NM is running
inside a container, and (b) the veth in question is the "inside" end
of the veth, not the outside. Unfortunately, we don't have good
heuristics for this at the moment, so just ignore veths for now.

https://bugzilla.gnome.org/show_bug.cgi?id=731014
(cherry picked from commit ebeaeaed4d)
2014-07-02 15:20:03 -05:00
Thomas Haller
a24ad8b03c supplicant: fix crash passing invalid parameter to AddBlob when adding network
The DBUS method 'AddBlob' expects a data argument of type 'ay'.
Instead we passed the hash table 'blobs'.

This must be broken for a long time and surprisingly stayed unnoticed.

https://mail.gnome.org/archives/networkmanager-list/2014-July/msg00001.html

Fixes: fb6cde508c
Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit e343c45ebb)
2014-07-02 16:33:46 +02:00
Dan Williams
cf145b2c26 docs: ignore a private header
(cherry picked from commit ca2e2a7ec8)
2014-07-01 15:49:37 -05:00
Dan Williams
e1716d6fc8 docs: fix multi-line Since notation
(cherry picked from commit 2428401f5e)
2014-07-01 15:49:30 -05:00
Jiří Klimeš
f6c36703c6 device: test dhcp[46]_config when getting properties, not dhcp[46]_client
An assertion in nm_dhcp4_config_get_dbus_path() has been actually fixed
by 3d6936b2cc (hopefully for all cases).
But still I think we should check _config here instead of _client.

(cherry picked from commit 4dcfdec347)
2014-07-01 14:36:42 -05:00
Dan Williams
1e16b5a32c build: check harder for readline
Not all distros build their readline linked with a termcap library,
since apps are (apparently) supposed to choose one for themselves
and explicitly link to it when using readline.  So add some checks
to figure out whether readline is already linked, and if not, prefer
ncurses since we use that for nmtui already.

ax_lib_readline based off:

http://www.gnu.org/software/autoconf-archive/ax_lib_readline.html
(cherry picked from commit 29297f8531)
2014-06-30 11:37:38 -05:00
Jiří Klimeš
75cb1a6058 libnm-util: document "address-labels" property as for internal use only
(cherry picked from commit 214f523f3f)
2014-06-30 11:37:38 -05:00
Yuri Chornoivan
2e296f27d2 po: updated Ukranian translation (bgo #732172)
https://bugzilla.gnome.org/show_bug.cgi?id=732172

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit 65068af303)
2014-06-30 11:37:38 -05:00
Thomas Haller
867cab466a core: fix assertion logging master device during activation
backtrace:
  #0  0x0000003370c504e9 in g_logv (log_domain=0x4c14cc "NetworkManager", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fff420d05c0) at gmessages.c:989
  #1  0x0000003370c5063f in g_log (log_domain=log_domain@entry=0x4c14cc "NetworkManager", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x3370cbc89a "%s: assertion '%s' failed") at gmessages.c:1025
  #2  0x0000003370c50679 in g_return_if_fail_warning (log_domain=log_domain@entry=0x4c14cc "NetworkManager", pretty_function=pretty_function@entry=0x4b4710 <__PRETTY_FUNCTION__.35285> "nm_device_get_iface",
      expression=expression@entry=0x4b160a "self != NULL") at gmessages.c:1034
  #3  0x000000000042e39b in nm_device_get_iface (self=0x0) at devices/nm-device.c:501
  #4  0x00000000004393cc in nm_device_activate_stage3_ip_config_start (user_data=<optimized out>) at devices/nm-device.c:4062
  #5  0x0000003370c492a6 in g_main_dispatch (context=0x153b190) at gmain.c:3066
  #6  g_main_context_dispatch (context=context@entry=0x153b190) at gmain.c:3642
  #7  0x0000003370c49628 in g_main_context_iterate (context=0x153b190, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3713
  #8  0x0000003370c49a3a in g_main_loop_run (loop=0x153ae30) at gmain.c:3907
  #9  0x0000000000429f15 in main (argc=1, argv=0x7fff420d0b78) at main.c:678

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit f4db6f13cb)
2014-06-30 11:37:38 -05:00
Thomas Haller
02cd3e839b trivial: fix whitespace
Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit 724fc736fe)
2014-06-30 11:37:37 -05:00
Jiří Klimeš
2905999cd9 team: start teamd when ensuring team connection else teamdctl_connect() fails
Check if teamd is already running before trying to connect, else it would fail
anyway with errors:
libteamdctl: teamdctl_connect: Failed to connect using all CLIs.
NetworkManager[5535]: <error> [1402495644.226625] [devices/nm-device-team.c:208] ensure_teamd_connection(): (TTT): failed to connect to teamd (err=-22)

 # ip link set name TTT type team

(cherry picked from commit a78386b6d1)
2014-06-30 11:37:37 -05:00
Jiří Klimeš
768df83cd8 team: set connection type for class, else the generating connection is invalid
(cherry picked from commit 4ece719beb)
2014-06-30 11:37:37 -05:00
Jiří Klimeš
790d97fc9c team: don't pass priv parameter to functions, get it when needed
(cherry picked from commit 206753fed8)
2014-06-30 11:37:37 -05:00
Jiří Klimeš
d65b78c194 ifcfg-rh: write GATEWAY instead of GATEWAY0 to be ifup-compatible (rh #771673)
https://bugzilla.redhat.com/show_bug.cgi?id=771673
https://bugzilla.redhat.com/show_bug.cgi?id=1105770
(cherry picked from commit e554ef606f)
2014-06-30 11:37:37 -05:00
Giovanni Campagna
66a593fd5a core: don't reject activating devices with incomplete IP config
An activating device may have an IP config that is unrelated to
the current activation (for example if it comes from capturing
the existing config when NM is started), and that config might
not have a gateway, which would have NM ignore that the device
is activating until after DHCP.

https://bugzilla.gnome.org/show_bug.cgi?id=726400

[thaller@redhat.com: move variables inside if-block]
Signed-off-by: Thomas Haller <thaller@redhat.com>

(cherry picked from commit 86ca7dce0c)
2014-06-30 17:06:14 +02:00
Thomas Haller
69cb909c9b platform: fix invalid address lifetimes on startup
When starting, the initally loaded addresses were not fixed to have
absolute lifetimes.

This also leads to a crash due to failed assertion[1], when having
already expired addresses during NetworkManager start.

[1] backtrace:
  #0  0x00007f39db91ec39 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
  #1  0x00007f39db920348 in __GI_abort () at abort.c:89
  #2  0x00007f39dc35a0ed in _g_log_abort () at gmessages.c:255
  #3  0x00007f39dc377c97 in g_assertion_message (domain=domain@entry=0x7f39e0085c67 "NetworkManager", file=file@entry=0x7f39e007f070 "platform/nm-linux-platform.c", line=line@entry=1146,
      func=func@entry=0x7f39e0081430 <__FUNCTION__.23775> "_init_ip_address_lifetime", message=message@entry=0x7f39e13828b0 "assertion failed: (a_preferred <= a_valid && a_valid > 0 && a_preferred > 0)") at gtestutils.c:2278
  #4  0x00007f39dc377cfa in g_assertion_message_expr (domain=domain@entry=0x7f39e0085c67 "NetworkManager", file=file@entry=0x7f39e007f070 "platform/nm-linux-platform.c", line=line@entry=1146,
      func=func@entry=0x7f39e0081430 <__FUNCTION__.23775> "_init_ip_address_lifetime", expr=expr@entry=0x7f39e007f4e8 "a_preferred <= a_valid && a_valid > 0 && a_preferred > 0") at gtestutils.c:2293
  #5  0x00007f39e0004608 in _init_ip_address_lifetime (address=address@entry=0x7fff7f8a2580, rtnladdr=rtnladdr@entry=0x7f39e12cdb20) at platform/nm-linux-platform.c:1144
  #6  0x00007f39e0004ae4 in init_ip6_address (address=address@entry=0x7fff7f8a2580, rtnladdr=rtnladdr@entry=0x7f39e12cdb20) at platform/nm-linux-platform.c:1216
  #7  0x00007f39e000a75e in ip6_address_get_all (platform=<optimized out>, ifindex=3) at platform/nm-linux-platform.c:3342
  #8  0x00007f39e0032729 in nm_ip6_config_capture (ifindex=ifindex@entry=3, capture_resolv_conf=capture_resolv_conf@entry=0, use_temporary=use_temporary@entry=NM_SETTING_IP6_CONFIG_PRIVACY_UNKNOWN) at nm-ip6-config.c:303
  #9  0x00007f39dffee8fa in update_ip_config (self=0x7f39e1380300, initial=<optimized out>) at devices/nm-device.c:5841
  #10 0x00007f39dffef52a in nm_device_capture_initial_config (dev=<optimized out>) at devices/nm-device.c:5869
  #11 0x00007f39e003e74e in get_existing_connection (manager=manager@entry=0x7f39e132b150, device=device@entry=0x7f39e1380300) at nm-manager.c:1576
  #12 0x00007f39e003edb2 in add_device (self=self@entry=0x7f39e132b150, device=device@entry=0x7f39e1380300, generate_con=<optimized out>) at nm-manager.c:1826
  #13 0x00007f39e003f503 in platform_link_added (reason=<optimized out>, plink=0x7f39e1372340, ifindex=3, self=0x7f39e132b150) at nm-manager.c:2205
  #14 platform_link_cb (platform=<optimized out>, ifindex=3, plink=0x7f39e1372340, change_type=<optimized out>, reason=<optimized out>, user_data=<optimized out>) at nm-manager.c:2220
  #15 0x00007f39da868d8c in ffi_call_unix64 () at ../src/x86/unix64.S:76
  #16 0x00007f39da8686bc in ffi_call (cif=cif@entry=0x7fff7f8a2a40, fn=0x7f39e003f360 <platform_link_cb>, rvalue=0x7fff7f8a29b0, avalue=avalue@entry=0x7fff7f8a2930) at ../src/x86/ffi64.c:522
  #17 0x00007f39dc84aad8 in g_cclosure_marshal_generic (closure=0x7f39e1368080, return_gvalue=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=0x0) at gclosure.c:1454
  #18 0x00007f39dc84a298 in g_closure_invoke (closure=0x7f39e1368080, return_value=return_value@entry=0x0, n_param_values=5, param_values=param_values@entry=0x7fff7f8a2c40, invocation_hint=invocation_hint@entry=0x7fff7f8a2be0)
      at gclosure.c:777
  #19 0x00007f39dc85c35d in signal_emit_unlocked_R (node=node@entry=0x7f39e12c16c0, detail=detail@entry=0, instance=instance@entry=0x7f39e12c30a0, emission_return=emission_return@entry=0x0,
      instance_and_params=instance_and_params@entry=0x7fff7f8a2c40) at gsignal.c:3586
  #20 0x00007f39dc8640f2 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fff7f8a2e20) at gsignal.c:3330
  #21 0x00007f39dc8643af in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3386
  #22 0x00007f39e000e24c in nm_platform_query_devices () at platform/nm-platform.c:330
  #23 0x00007f39e0040f30 in nm_manager_start (self=0x7f39e132b150) at nm-manager.c:4207
  #24 0x00007f39dffe53ab in main (argc=1, argv=0x7fff7f8a3468) at main.c:657

Regression introduced by commit 8310a039d8.

https://bugzilla.gnome.org/show_bug.cgi?id=732472

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit 2a89258562)
2014-06-30 14:19:58 +02:00
Thomas Haller
3f1c3c4fc8 settings: fix invalid signature in impl_settings_get_connection_by_uuid()
impl_settings_get_connection_by_uuid() was changed from a synchronous
function to an asynchronous one. Thereby the @out_object_path argument
was forgotten, leaving the function completely broken.

This bug has the potential to crash NetworkManager.

Regression introduced by commit 8ab8990938.

Found running
  $ ./dfuzzer -v -n com.redhat.ifcfgrh1

Related: https://bugzilla.redhat.com/show_bug.cgi?id=1113508

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit c35d63ddea)
2014-06-26 18:40:25 +02:00
Thomas Haller
ce0c8f29c6 core: fix crash in impl_settings_get_connection_by_uuid() when requesing non-existing uuid
Regression introduced by commit 8ab8990938.

Found running
  $ ./dfuzzer -v -n com.redhat.ifcfgrh1

Related: https://bugzilla.redhat.com/show_bug.cgi?id=1113508

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit 7665585d4d)
2014-06-26 18:40:24 +02:00
Thomas Haller
398038ec1b device: fix warning releasing of slave when slave device gets removed
When the slave device gets removed, the master is not in a state-change when
calling nm_device_release_one_slave(). This triggers a warning [1].

[1] backtrace:
  #0  0x0000003370c504e9 in g_logv (log_domain=0x4c144c "NetworkManager", log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, args=args@entry=0x7fff8b1d35b0) at gmessages.c:989
  #1  0x0000003370c5063f in g_log (log_domain=log_domain@entry=0x4c144c "NetworkManager", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0x3370cc1fdc "%s") at gmessages.c:1025
  #2  0x0000003370c50956 in g_warn_message (domain=domain@entry=0x4c144c "NetworkManager", file=file@entry=0x4b14d5 "devices/nm-device.c", line=line@entry=841, func=func@entry=0x4b48f0 <__FUNCTION__.35456> "nm_device_release_one_slave",
      warnexpr=warnexpr@entry=0x0) at gmessages.c:1058
  #3  0x0000000000436c30 in nm_device_release_one_slave (dev=dev@entry=0xd92540, slave=slave@entry=0xdb0e50, configure=configure@entry=1) at devices/nm-device.c:841
  #4  0x000000000043a779 in slave_state_changed (slave=0xdb0e50, slave_new_state=NM_DEVICE_STATE_UNMANAGED, slave_old_state=NM_DEVICE_STATE_ACTIVATED, reason=<optimized out>, self=0xd92540) at devices/nm-device.c:1214
  #5  0x0000003371805d8c in ffi_call_unix64 () at ../src/x86/unix64.S:76
  #6  0x00000033718056bc in ffi_call (cif=cif@entry=0x7fff8b1d3a00, fn=0x43a677 <slave_state_changed>, rvalue=0x7fff8b1d3970, avalue=avalue@entry=0x7fff8b1d38f0) at ../src/x86/ffi64.c:522
  #7  0x0000003371c10ad8 in g_cclosure_marshal_generic (closure=0xd76120, return_gvalue=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=0x0) at gclosure.c:1454
  #8  0x0000003371c10298 in g_closure_invoke (closure=0xd76120, return_value=return_value@entry=0x0, n_param_values=4, param_values=param_values@entry=0x7fff8b1d3c00, invocation_hint=invocation_hint@entry=0x7fff8b1d3ba0) at gclosure.c:777
  #9  0x0000003371c2235d in signal_emit_unlocked_R (node=node@entry=0xd9d850, detail=detail@entry=0, instance=instance@entry=0xdb0e50, emission_return=emission_return@entry=0x0,
      instance_and_params=instance_and_params@entry=0x7fff8b1d3c00) at gsignal.c:3586
  #10 0x0000003371c2a0f2 in g_signal_emit_valist (instance=instance@entry=0xdb0e50, signal_id=signal_id@entry=68, detail=detail@entry=0, var_args=var_args@entry=0x7fff8b1d3e38) at gsignal.c:3330
  #11 0x0000003371c2a8f8 in g_signal_emit_by_name (instance=instance@entry=0xdb0e50, detailed_signal=detailed_signal@entry=0x4c3ce2 "state-changed") at gsignal.c:3426
  #12 0x000000000043754f in _set_state_full (device=device@entry=0xdb0e50, state=state@entry=NM_DEVICE_STATE_UNMANAGED, reason=reason@entry=NM_DEVICE_STATE_REASON_REMOVED, quitting=quitting@entry=0) at devices/nm-device.c:6689
  #13 0x000000000043797c in nm_device_state_changed (device=device@entry=0xdb0e50, state=state@entry=NM_DEVICE_STATE_UNMANAGED, reason=reason@entry=NM_DEVICE_STATE_REASON_REMOVED) at devices/nm-device.c:6823
  #14 0x0000000000439fe7 in nm_device_set_unmanaged (device=device@entry=0xdb0e50, flag=flag@entry=NM_UNMANAGED_INTERNAL, unmanaged=unmanaged@entry=1, reason=reason@entry=NM_DEVICE_STATE_REASON_REMOVED) at devices/nm-device.c:5983
  #15 0x00000000004799c2 in remove_device (manager=manager@entry=0xd86150, device=0xdb0e50, quitting=quitting@entry=0) at nm-manager.c:769
  #16 0x000000000047e3bf in platform_link_cb (platform=<optimized out>, ifindex=35, plink=<optimized out>, change_type=<optimized out>, reason=<optimized out>, user_data=<optimized out>) at nm-manager.c:2123
  #17 0x0000003371805d8c in ffi_call_unix64 () at ../src/x86/unix64.S:76
  #18 0x00000033718056bc in ffi_call (cif=cif@entry=0x7fff8b1d4320, fn=0x47e34b <platform_link_cb>, rvalue=0x7fff8b1d4290, avalue=avalue@entry=0x7fff8b1d4210) at ../src/x86/ffi64.c:522
  #19 0x0000003371c10ad8 in g_cclosure_marshal_generic (closure=0xd32e40, return_gvalue=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=<optimized out>, marshal_data=0x0) at gclosure.c:1454
  #20 0x0000003371c10298 in g_closure_invoke (closure=0xd32e40, return_value=return_value@entry=0x0, n_param_values=5, param_values=param_values@entry=0x7fff8b1d4520, invocation_hint=invocation_hint@entry=0x7fff8b1d44c0) at gclosure.c:777
  #21 0x0000003371c2235d in signal_emit_unlocked_R (node=node@entry=0xcf5780, detail=detail@entry=0, instance=instance@entry=0xcf78a0, emission_return=emission_return@entry=0x0,
      instance_and_params=instance_and_params@entry=0x7fff8b1d4520) at gsignal.c:3586
  #22 0x0000003371c2a0f2 in g_signal_emit_valist (instance=instance@entry=0xcf78a0, signal_id=signal_id@entry=2, detail=detail@entry=0, var_args=var_args@entry=0x7fff8b1d4778) at gsignal.c:3330
  #23 0x0000003371c2a8f8 in g_signal_emit_by_name (instance=instance@entry=0xcf78a0, detailed_signal=detailed_signal@entry=0x4b183d "link-changed") at gsignal.c:3426
  #24 0x000000000044c6f3 in announce_object (platform=platform@entry=0xcf78a0, object=0xde1720, change_type=change_type@entry=NM_PLATFORM_SIGNAL_REMOVED, reason=reason@entry=NM_PLATFORM_REASON_EXTERNAL)
      at platform/nm-linux-platform.c:1572
  #25 0x000000000044ec07 in event_notification (msg=<optimized out>, user_data=<optimized out>) at platform/nm-linux-platform.c:1886
  #26 0x0000003844c1117f in nl_cb_call (msg=<optimized out>, type=<optimized out>, cb=<optimized out>) at ../include/netlink-private/netlink.h:141
  #27 recvmsgs (cb=0xcf7240, sk=0xcf7330) at nl.c:952
  #28 nl_recvmsgs_report (sk=0xcf7330, cb=0xcf7240) at nl.c:1003
  #29 0x0000003844c11549 in nl_recvmsgs (sk=<optimized out>, cb=<optimized out>) at nl.c:1027
  #30 0x0000003844c11569 in nl_recvmsgs_default (sk=<optimized out>) at nl.c:1041
  #31 0x000000000044e955 in event_handler (channel=<optimized out>, io_condition=<optimized out>, user_data=0xcf78a0) at platform/nm-linux-platform.c:3804
  #32 0x0000003370c492a6 in g_main_dispatch (context=0xcf5190) at gmain.c:3066
  #33 g_main_context_dispatch (context=context@entry=0xcf5190) at gmain.c:3642
  #34 0x0000003370c49628 in g_main_context_iterate (context=0xcf5190, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3713
  #35 0x0000003370c49a3a in g_main_loop_run (loop=0xcf4e30) at gmain.c:3907
  #36 0x0000000000429f15 in main (argc=1, argv=0x7fff8b1d4f38) at main.c:678

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit 1dd50924c8)
2014-06-23 19:34:50 +02:00
Thomas Haller
3e2448d518 core: fix dhcp4_cleanup() to clear dhcp4_client first (avoids assert accessing NM_DEVICE_DHCP4_CONFIG)
dhcp4_cleanup() should first clear @dhcp4_client variables before
clearing @dhcp4_config. Otherwise the following assert fails [1] and
the DBUS property NM_DEVICE_DHCP4_CONFIG is set to %NULL.

Analog to dhcp6_cleanup(), dhcp6_client, and NM_DEVICE_DHCP6_CONFIG.

[1] backtrace:
  #0  0x0000003370c504e9 in g_logv (log_domain=0x4c148c "unrecognized-specs-changed", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=args@entry=0x7fff4710ed60) at gmessages.c:989
  #1  0x0000003370c5063f in g_log (log_domain=log_domain@entry=0x4c144c "NetworkManager", log_level=log_level@entry=G_LOG_LEVEL_CRITICAL, format=format@entry=0x3370cbc89a "%s: assertion '%s' failed") at gmessages.c:1025
  #2  0x0000003370c50679 in g_return_if_fail_warning (log_domain=log_domain@entry=0x4c144c "NetworkManager", pretty_function=pretty_function@entry=0x4c6140 <__PRETTY_FUNCTION__.15969> "nm_dhcp4_config_get_dbus_path",
      expression=expression@entry=0x4c60d9 "NM_IS_DHCP4_CONFIG (self)") at gmessages.c:1034
  #3  0x000000000046b1d4 in nm_dhcp4_config_get_dbus_path (self=0x0) at nm-dhcp4-config.c:115
  #4  0x0000000000434791 in get_property (object=0x9d2320, prop_id=13, value=0x9618a0, pspec=0x9bbc20) at devices/nm-device.c:7539
  #5  0x0000003371c18e73 in object_get_property (value=0x9618a0, pspec=<optimized out>, object=0x9d2320) at gobject.c:1303
  #6  g_object_get_property (object=0x9d2320, property_name=<optimized out>, value=0x9618a0) at gobject.c:2402
  #7  0x000000000048482c in idle_id_reset (data=<optimized out>) at nm-properties-changed-signal.c:123
  #8  0x0000003371c13055 in g_cclosure_marshal_VOID__PARAM (closure=0x9618a0, return_value=0xffffffff, n_param_values=0, param_values=0x7fff4710f130, invocation_hint=0x0, marshal_data=0x4b5201) at gmarshal.c:1037
  #9  0x0000003371c10298 in g_closure_invoke (closure=0x2, closure@entry=0x919d00, return_value=return_value@entry=0x0, n_param_values=1192292656, param_values=0x9d2320, param_values@entry=0x7fff4710f130,
      invocation_hint=invocation_hint@entry=0x7fff4710f0d0) at gclosure.c:777
  #10 0x0000003371c21b87 in signal_emit_unlocked_R (node=node@entry=0x919d90, detail=detail@entry=667, instance=instance@entry=0x9d2320, emission_return=emission_return@entry=0x0,
      instance_and_params=instance_and_params@entry=0x7fff4710f130) at gsignal.c:3516
  #11 0x0000003371c2a0f2 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fff4710f2c0) at gsignal.c:3330
  #12 0x0000003371c2a3af in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at gsignal.c:3386
  #13 0x0000003371c14945 in g_object_dispatch_properties_changed (object=0x9d2320, n_pspecs=4294967295, pspecs=0x0) at gobject.c:1047
  #14 0x0000003371c17019 in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x9d2320) at gobject.c:1141
  #15 g_object_notify (object=0x9d2320, property_name=property_name@entry=0x4c400f "dhcp4-config") at gobject.c:1183
  #16 0x0000000000434332 in dhcp4_cleanup (self=self@entry=0x9d2320, stop=stop@entry=1, release=release@entry=0) at devices/nm-device.c:2581
  #17 0x0000000000434cab in _cleanup_generic_pre (self=self@entry=0x9d2320, deconfigure=deconfigure@entry=1) at devices/nm-device.c:6448
  #18 0x0000000000436db1 in nm_device_cleanup (self=self@entry=0x9d2320, reason=reason@entry=NM_DEVICE_STATE_REASON_REMOVED) at devices/nm-device.c:6524
  #19 0x0000000000437358 in _set_state_full (device=device@entry=0x9d2320, state=state@entry=NM_DEVICE_STATE_UNMANAGED, reason=reason@entry=NM_DEVICE_STATE_REASON_REMOVED, quitting=quitting@entry=0) at devices/nm-device.c:6641
  #20 0x000000000043797c in nm_device_state_changed (device=device@entry=0x9d2320, state=state@entry=NM_DEVICE_STATE_UNMANAGED, reason=reason@entry=NM_DEVICE_STATE_REASON_REMOVED) at devices/nm-device.c:6823
  #21 0x0000000000439fe7 in nm_device_set_unmanaged (device=device@entry=0x9d2320, flag=flag@entry=NM_UNMANAGED_INTERNAL, unmanaged=unmanaged@entry=1, reason=reason@entry=NM_DEVICE_STATE_REASON_REMOVED) at devices/nm-device.c:5983
  #22 0x000000000043a193 in nm_device_set_unmanaged_quitting (device=0x9d2320) at devices/nm-device.c:5998
  #23 0x00000000004799f9 in remove_device (manager=0x9b2150, device=0x9d2320, quitting=1) at nm-manager.c:775
  #24 0x000000000047bf47 in dispose (object=0x9b2150) at nm-manager.c:4935
  #25 0x0000003371c14ee8 in g_object_unref (_object=0x9b2150) at gobject.c:3160
  #26 0x0000000000429f43 in main (argc=1, argv=0x7fff4710f9a8) at main.c:681

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit 3d6936b2cc)
2014-06-23 19:29:15 +02:00
Thomas Haller
620c4956ec tui: fix inverted option "Require IPvX addressing for this connection"
https://bugzilla.redhat.com/show_bug.cgi?id=1108839

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit 41a20a75a1)
2014-06-23 19:21:11 +02:00
Piotr Drąg
9c4b6d5a67 po: update Polish (pl) translation (bgo #732013)
https://bugzilla.gnome.org/show_bug.cgi?id=732013

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit f5681d15ba)
2014-06-23 12:16:36 +02:00
Dan Williams
63b0a2f5e6 release: bump version to 0.9.9.98 (0.9.10-rc1) 2014-06-20 19:04:26 -05:00
Dan Winship
0d795789f5 libnm-util: various NMSetting* property doc fixes/improvements
Fix up various issues with the docs for the NMSetting properties, and
pull in text from the GParamSpec docs where the GParamSpec docs were
better (or contained information that is necessary in the context of
nm-settings.5).

Also, consistently wrap all of the doc comments to the same width (80
columns).

(cherry picked from commit e8577083ca)
2014-06-20 18:11:17 -05:00
Dan Winship
f2050d50c7 libnm-util: fix gtk-doc bugs in NMSetting* properties
Fix misused gtk-doc annotations and incorrectly-identified properties.

In particular, the upcoming introspection-based generate-settings-spec
expands macro and enum values, so if you use '%' where you should have
used '#', it will fail to find an expansion, and error out.

(cherry picked from commit 9de24b16e8)
2014-06-20 18:11:08 -05:00
Dan Winship
d4e67ceb18 libnm-util, libnm-glib: be consistent about "Wi-Fi", "Ethernet", "InfiniBand" in docs
We made the UIs consistent last year, but missed the documentation.
Fix the docs to also consistently use "Wi-Fi" rather than "WiFi",
"Wifi", "wifi", or "WiFI"; "Ethernet" rather than "ethernet"; and
"InfiniBand" rather than "Infiniband".

(cherry picked from commit 8487a4490c)
2014-06-20 18:11:01 -05:00
Dan Williams
1b5804db9e examples: add Python dbus example indicating if WWAN is the default connection
(cherry picked from commit 5a4e42bc51)
2014-06-20 17:29:09 -05:00
Thomas Haller
2bd0098b68 dispatcher: suppress log warning when nm-dispatcher is disabled in systemd
When 'nm-dispatcher' is not running because its systemd service
'NetworkManager-dispatcher.service' is not enabled, any calls to the dispatcher
will fail with an error of typ DBUS_ERROR:DBUS_GERROR_REMOTE_EXCEPTION (32):

  "Unit dbus-org.freedesktop.nm-dispatcher.service failed to load: No such file or directory."

This clutters the logfile with warnings, although the user probably
disabled the service on purpose.

Special case this particular (recurring) failure and downgrade the warning
to debug level.

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit 0d45284aa7)
2014-06-20 17:28:56 -05:00
Dan Winship
5fabb4f2a5 wifi: fix WoWLAN detection
WoWLAN state has to be requested by phy, not by ifindex

Related: rh#1025009
(cherry picked from commit 73508704d8)
2014-06-20 17:28:48 -05:00
Dan Williams
ae841e0bd5 platform: merge branch 'th/bgo727382_platform_fix_addr_lifetime' (part 2)
https://bugzilla.gnome.org/show_bug.cgi?id=727382

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-20 17:26:39 -05:00
Thomas Haller
590c0d27e6 platform: extend nm_platform_ip_address_cmp_expiry() to handle addresses without timestamp
If the timestamp is set to zero, the to_string() functions treat the lifetime
as based on *now*. For nm_platform_ip_address_cmp_expiry() this makes no
sense, because there is no absolute exiry to compare. Instead compare
them as expire earlier then the other address.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-20 17:22:27 -05:00
Thomas Haller
60477f3f1c platform: modify address to_string() to show raw lifetime values
The "lifetime" part when printing an address in nm_platform_ip[46]_address_to_string()
is supposed to show the raw, internal values of the address.

We already have the "lft" and "pref" output that presents the expiries based on now.
These fields are already crafted to show what the user probably wants
to see when looking at debugging log. "lifetime" should not do any
special casing and just print the raw values.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-20 17:22:27 -05:00
Thomas Haller
1184cadc7d platform: handle unset address timestamp as *now* in to_string()
When printing an address in nm_platform_ip4_address_to_string()
and nm_platform_ip6_address_to_string() treat an unset @timestamp
as counting from @now.

This is useful, if you just have the remaining lifetime at hand
and want to print an address. In general it is not a good idea to
leave the timestamp not anchored to an absolute @timestamp.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-20 17:22:26 -05:00
Thomas Haller
2d37fedcd3 platform: set timestamp in platform addresses to last_update_time()
Previous patch 8310a039d8 modified
platform to set the timestamp of addresses always to 1.

So, when adding an address platform logging looked like:
  signal: address 4 added: 192.168.232.3/24 lft 2000sec pref 1000sec lifetime 12345-1[13344,14344] dev em1 src kernel

This is confusing in the log file and during debugging. Instead set the
timestamp to the last modification time of the address so that it will
look like:
  signal: address 4 added: 192.168.232.3/24 lft 2000sec pref 1000sec lifetime 12345-12345[1000,2000] dev em1 src kernel

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-20 17:22:26 -05:00
Thomas Haller
9980b9843c platform: fix off-by-two error converting lifetimes in _init_ip_address_lifetime()
When setting the timestamp to 1, we have to subtract(!) one second
from a_valid and a_preferred.

Due to this error, NM saw the lifetimes of addresses from system as two
seconds larger then the actual value.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-20 17:22:26 -05:00
Thomas Haller
225a199fd3 dhcp: nm_dhcp_dhclient_read_lease_ip_configs() must anchor the address lifetime at *now*
nm_dhcp_dhclient_read_lease_ip_configs() calculates the remaining time
until the address expires. It must anchor the lifetimes by setting the
@timestamp to nm_utils_get_monotonic_timestamp_s().

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-20 17:22:26 -05:00
Thomas Haller
bbcaa8b925 platform/test: use proper to_string() functions when printing NMPlaformIP[46]Address in dump_interface()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-20 17:22:26 -05:00
Thomas Haller
f6ef874f35 contrib/rpm: fix typo in spec file (wrong option --enable-teamdctl)
Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit ca85ecd145)
2014-06-20 17:21:29 -05:00
Jiří Klimeš
258dcdbac7 cli: clarify nmcli description for route metric
(cherry picked from commit f227d25ed9)
2014-06-20 17:21:21 -05:00
Jiří Klimeš
497fb4cb94 cli: editor - do not print separator when printing one setting
(cherry picked from commit 7c41835203)
2014-06-20 17:20:15 -05:00
Jiří Klimeš
183e1e8aad cli: editor - enhance TAB completion for 'print' command
(cherry picked from commit 9ab59bdfac)
2014-06-20 17:20:09 -05:00
Jiří Klimeš
4bccec249c cli: editor - enhance 'print' command
- allow printing single properties:
nmcli> print con.id
connection.id: my-main-ethernet

- allow printing other settings in second (settings) menu level:
nmcli connection> print ipv4.method
ipv4.method: auto
nmcli connection> print eth
...

(cherry picked from commit e7830c7925)
2014-06-20 17:20:03 -05:00
Thomas Haller
3c166ae93a contrib/rpm: improve usage output of build_clean.sh script
Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit bf0b08ad55)
2014-06-20 17:19:52 -05:00
Thomas Haller
0ed0fe5c4c dispatcher: silence warning about sub-directories in dispatcher directory
Especially now that we have the 'pre-up.d/' and 'pre-down.d/' directories,
silently skip over any sub directories inside the dispatcher directory.

Fixes warning:
  nm-dispatcher: Cannot execute '/etc/NetworkManager/dispatcher.d/pre-up.d': not a regular file.

Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit 02747203c6)
2014-06-20 17:19:46 -05:00
Thomas Haller
57d04625d8 dispatcher: fix leak in callouts/nm-dispatcher
Signed-off-by: Thomas Haller <thaller@redhat.com>
(cherry picked from commit 589272facf)
2014-06-20 17:19:38 -05:00
Dan Williams
8b2de26936 core: merge branch 'th/bgo731570_master_slave'
https://bugzilla.gnome.org/show_bug.cgi?id=731570

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-20 17:14:48 -05:00