Commit graph

15454 commits

Author SHA1 Message Date
Mario Sanchez Prada
dfd9d85beb nm-dispatcher: Added new 'connectivity-state' parameter to private D-Bus API
In order to pass the connectivity state to the relevant hooks along with
the event itself, we need to add this parameter for the 'Action' method
of then internal 'org.freedesktop.nm_dispatcher' interface, which will
be sent by the network manager main process to the dispatcher.

https://bugzilla.gnome.org/show_bug.cgi?id=768969
2016-07-28 22:22:14 +02:00
Mario Sanchez Prada
283562ef18 nm-dispatcher: Added new action for 'connectivity-change' events
The purpose of this action is to provide a hook for the OS to act
on global changes regarding to connectivity, which can currently
be one of 'none', 'portal', 'limited', 'full' or 'unknown'.

Check the documentation for a more information on each of those states:
https://developer.gnome.org/NetworkManager/stable/nm-dbus-types.html#NMConnectivityState

https://bugzilla.gnome.org/show_bug.cgi?id=768969
2016-07-28 22:22:14 +02:00
Lubomir Rintel
3bed742771 build: fix the logging backend default option name
It's --with-config-logging-backend-default, not --with-logging-backend-default.
2016-07-28 17:02:04 +02:00
Lubomir Rintel
ba45b5ac6f cli: take a reference to the device when activating
It can go away before the activation finishes:

  (process:378): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer

  Thread 1 "lt-nmcli" received signal SIGTRAP, Trace/breakpoint trap.
  0x00007ffff4fa919b in g_logv () from /lib64/libglib-2.0.so.0
  (gdb) bt
  #0  0x00007ffff4fa919b in g_logv () at /lib64/libglib-2.0.so.0
  #1  0x00007ffff4fa930f in g_log () at /lib64/libglib-2.0.so.0
  #2  0x00007ffff529b3ea in g_type_check_instance () at /lib64/libgobject-2.0.so.0
  #3  0x00007ffff528fa94 in g_signal_handlers_disconnect_matched () at /lib64/libgobject-2.0.so.0
  #4  0x000000000041ae4e in activate_connection_info_finish (info=0x7b5490) at connections.c:2197
  #5  0x00007ffff5279470 in g_cclosure_marshal_VOID__OBJECTv () at /lib64/libgobject-2.0.so.0
  #6  0x00007ffff5276617 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
  #7  0x00007ffff5290ea9 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
  #8  0x00007ffff52914ff in g_signal_emit () at /lib64/libgobject-2.0.so.0
  #9  0x00007ffff52763e8 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
  #10 0x00007ffff52884a2 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
  #11 0x00007ffff529112d in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
  #12 0x00007ffff52919ab in g_signal_emit_by_name () at /lib64/libgobject-2.0.so.0
  #13 0x00007ffff78fc9b1 in deferred_notify_cb (data=<optimized out>) at nm-object.c:243
  #14 0x00007ffff4fa2703 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
  #15 0x00007ffff4fa2ab0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
  #16 0x00007ffff4fa2dd2 in g_main_loop_run () at /lib64/libglib-2.0.so.0
  #17 0x00000000004146e3 in main (argc=<optimized out>, argv=<optimized out>) at nmcli.c:618
  (gdb) print info->device
2016-07-28 11:22:31 +02:00
Beniamino Galvani
9446481f4c policy: update system hostname when DHCP configuration changes
If both IPv4 and IPv6 are enabled and IPv6 terminates first (and
ipv4.may-fail=yes), the device becomes ACTIVATED and we try to update
the system hostname from the DHCP lease, if necessary. But later, the
termination of DHCPv4 doesn't trigger a new update and so it's
possible that the system hostname remains unset even if the DHCPv4
lease specifies a hostname.

To have a deterministic behavior we should always try to update the
system hostname when a DHCP transaction terminates.

https://bugzilla.redhat.com/show_bug.cgi?id=1356015
2016-07-27 15:13:49 +02:00
Beniamino Galvani
c44b13f87c team: merge branch 'bg/team-conf-expose-rh1310435-v2'
Some fixes for the the loading of JSON team config from teamd.

https://bugzilla.redhat.com/show_bug.cgi?id=1310435
2016-07-23 09:02:17 +02:00
Beniamino Galvani
300b8ce842 team: update configuration when adding or removing slaves
Unfortunately teamd doesn't have an asynchronous way to notify a
change in the actual configuration, so when a port is enslaved or
released we wait some time for the changes to take effect and read the
configuration again.

https://bugzilla.redhat.com/show_bug.cgi?id=1310435
2016-07-23 08:58:58 +02:00
Beniamino Galvani
791bca1dcc team: request actual configuration to teamd
Request the actual configuration when reading it from teamd. The
actual configuration, differently from the normal one, doesn't contain
non-active team ports.
2016-07-23 08:58:58 +02:00
Beniamino Galvani
1fbdd4d008 cli: fix crash on connection delete/down timeout
connection_op_timeout_cb() passed a wrong object type to timeout_cb();
fix this.

Fixes: ac888de151

https://bugzilla.redhat.com/show_bug.cgi?id=1355740
2016-07-23 08:54:32 +02:00
Francesco Giudici
84a76a93d9 merge: branch 'fg/mac_fixes' 2016-07-22 19:36:38 +02:00
Francesco Giudici
60a82e3ff2 device: enable MAC address check on virtual devices
Virtual devices don't have a valid permanent hw address: when activating
a connection against a specific interface, a check is performed on the
device MAC address too: if it is an empty string, give a try to the
currently assigned MAC address.
2016-07-22 19:36:24 +02:00
Francesco Giudici
ddc35f27eb device: enable checks against the MAC address of virtual devices
enables (back) matching against 802-3-ethernet.mac-address and
802-3-ethenet.mac-address-blacklist connection parameters
for MAC addresses belonging to virtual devices too.
2016-07-22 19:36:23 +02:00
Francesco Giudici
55b9fd46ee device: allow creation of default wired connection for virtual interfaces 2016-07-22 19:36:23 +02:00
Francesco Giudici
65771b80a6 cli: improve devices vs connection compatibility check
report error message on device compatibility failures
2016-07-22 19:36:23 +02:00
Beniamino Galvani
e7bd55afdd cli: fix typo in overview output
Fixes: f14845cc20
2016-07-20 09:31:11 +02:00
Lubomir Rintel
9b96bfaa72 setting-vpn: whatever is in vpn.secrets always is a secrets
Even when there's no <secret>-flags key for it in vpn-data.

This is essentially to fix regression in the way openconnect uses the VPN
secrets:

Openconnect auth helper is essentially a web browser that fills in an arbitrary
HTML (or XML) form that's used to get the session cookie. The actual secret the
service needs is the cookie itself.

However, what needs to be remembered includes the form data. What data can be
in the form is installation dependent and can not be known in advance. Thus the
flags for it can't be currently set in the connection. The auth helper is not
capable of setting the flags either, because it can only return secrets.

Prior to 1424f249e we treated vpn.secrets without the flags as system secrets
and store them in the connection. Since that commit we just filter them away,
which broke user configurations.

This restores the behavior or treating everyting in vpn.secrets as secrets and
falling back to system secrets.

Another way would be to find a way to flag the secrets, perhaps by
extending the auth helper protocol to be able to store non-secret
properties too.

https://bugzilla.gnome.org/show_bug.cgi?id=768737
2016-07-19 16:14:51 +02:00
Lubomir Rintel
4500968587 merge: branch 'lr/nmcli-overview-bgo766426'
https://bugzilla.gnome.org/show_bug.cgi?id=766426
2016-07-19 14:30:00 +02:00
Lubomir Rintel
f14845cc20 cli: output a short summary of devices when called without arguments
This aims to be somewhat similar to what "ifconfig" does.

https://bugzilla.gnome.org/show_bug.cgi?id=766426
2016-07-19 14:29:05 +02:00
Lubomir Rintel
402828d2ed cli/devices: export device_state_to_color()
Also, get rid of the ColorInfo structure. It was not too nice anyway.
2016-07-19 14:29:05 +02:00
Lubomir Rintel
65c6eb5ce5 cli/connections: split out ac_state_to_color()
Going to be useful outside nmcli c.
2016-07-19 14:29:05 +02:00
Jiří Klimeš
39930396cd merge: various syntax fixes for nmcli (bgo #768834) 2016-07-19 10:42:03 +02:00
Jiří Klimeš
58f7319043 man: additional fixes for nmcli commands syntax in nmcli.xml 2016-07-19 10:41:04 +02:00
Jiří Klimeš
77cb0e370e man: fix 'domain' to 'domains' for nmcli general logging 2016-07-15 12:26:24 +02:00
Jiří Klimeš
624a28504e man: fix 'nmcli connection edit' description in nmcli.xml 2016-07-15 12:26:24 +02:00
Jiří Klimeš
f99282d2f5 man: fix 'nmcli connection clone' description in nmcli.xml 2016-07-15 12:26:24 +02:00
Jiří Klimeš
6c71fd588f man: correct '--field' option in nmcli man page 2016-07-15 12:26:24 +02:00
Jiří Klimeš
250662a5d8 man: correct '--wait' option in nmcli man page 2016-07-15 12:26:24 +02:00
Jiří Klimeš
dfa26f2227 man: fix bridge-port properties description in nmcli.xml 2016-07-15 12:26:24 +02:00
Jiří Klimeš
e15645a4d0 man: add missing commands to 'nmcli connection' synopsis in nmcli.xml 2016-07-15 12:26:24 +02:00
Jiří Klimeš
2544f78858 nmcli: add missing commands to 'nmcli connection help' usage description 2016-07-15 12:26:24 +02:00
Jiří Klimeš
c875471430 nmcli: fix 'nmcli device modify' description
Fixes: 8b4494598d
2016-07-15 12:26:24 +02:00
Jiří Klimeš
887cdcc217 nmcli: remove the extra full stop from error messages
$ nmcli dev modify
Error: No interface specified..
$ nmcli dev modify bla
Error: Device 'bla' not found..
2016-07-15 11:43:32 +02:00
Lubomir Rintel
f9821a1669 dhcp: drop an unused fariable
Fixes: 1c58ce0d74
2016-07-13 12:26:15 +02:00
poma
846dc443ce doc: fix typo for cloned-mac-address documentation
https://mail.gnome.org/archives/networkmanager-list/2016-July/msg00006.html
2016-07-11 21:24:04 +02:00
Thomas Haller
d060958a6d libnm: minor cleanup of _bin2str() 2016-07-10 13:51:57 +02:00
Thomas Haller
36856ba610 all: reuse _nm_utils_hwaddr_ntoa() for converting binary to string 2016-07-10 13:44:58 +02:00
Thomas Haller
1c58ce0d74 dhcp: prefix logging messages with "dhcp" 2016-07-10 13:22:12 +02:00
Thomas Haller
bfe4a69c25 wwan: downgrade warning logging about 'No SIM object available'
On every start of NetworkManager I'd see a warning message:

  modem-broadband[cdc-wdm0]: failed to retrieve SIM object: No SIM object available

Apparently, to warn about this is too alarming.
2016-07-10 11:53:11 +02:00
Christian Kirbach
86ad508534 po: update German (de) translation (bgo #766927)
https://bugzilla.gnome.org/show_bug.cgi?id=766927
2016-07-10 10:57:26 +02:00
Beniamino Galvani
75406d1760 device: allow ipv6ll address to be set for disconnected devices
Commit f85941ee91 ("device: don't try to generate ipv6ll address for
disconnected devices") disabled the generation of IPv6 link-local
addresses for disconnected devices to fix a crash. However that broke
the following:

 $ ip a f dev eth0
 $ systemctl start NetworkManager
 $ nmcli d
 DEVICE  TYPE      STATE         CONNECTION
 eth0    ethernet  disconnected  eth0
 $ ip a a dev eth0 2001::42/64
 $ ip a show eth0
 4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
     link/ether 52:52:00:61:32:81 brd ff:ff:ff:ff:ff:ff
     inet6 2001::42/64 scope global
        valid_lft forever preferred_lft forever
     (no link-local address)

Instead, enable the generation of a link-local address even if the
device is disconnected and fix nm_device_get_ip_iface_identifier() to
not require a connection if @ignore_token is set.

Fixes: f85941ee91
2016-07-09 11:38:58 +02:00
Thomas Haller
e988ed96f9 device: downgrade debug logging about not setting hardware address
No change is not particularly interesting, and for Wi-Fi devices
it happens everytime we scan. Downgrade the debug message to trace
level.
2016-07-09 10:23:39 +02:00
Beniamino Galvani
45484af2af platform: wifi: drop old wifi data when an interface is renamed
Drop the old wifi data when the interface is renamed, otherwise WEXT
methods would use the old name.

https://bugzilla.gnome.org/show_bug.cgi?id=768433
2016-07-08 13:40:10 +02:00
Thomas Haller
79c48a559f rdisc: merge branch 'th/rdisc-cleanup-bgo768521'
https://bugzilla.gnome.org/show_bug.cgi?id=768521
2016-07-08 12:35:29 +02:00
Thomas Haller
a9524509e8 rdisc: preserve most-managed dhcp-level from multiple router advertisements 2016-07-08 12:35:14 +02:00
Thomas Haller
0e07bbf968 rdisc: tighten up type and range of NMRDiscRoute.plen 2016-07-08 12:35:14 +02:00
Thomas Haller
15b486700f rdisc: hide internal fields from NMRDisc API
Hide the mutable fields that were exposed to the user of the NMRDisc API.
Instead, only expose a constant NMRDiscData structure.
2016-07-08 12:25:07 +02:00
Thomas Haller
c81eff0669 rdisc: move sysctl configuration values to NMRDiscPrivate
While at it, tighten up the integer values, types and ranges
and ensure no interger overflow can happen when calculating
timeouts and retry.
2016-07-08 12:25:07 +02:00
Thomas Haller
1bc3df0bd4 rdisc: move @iid field to NMRDiscPrivate 2016-07-08 12:08:55 +02:00
Thomas Haller
629332172b rdisc: refactor logging config-changes not as signal handler
Just log _config_changed_log() right away and not go through
the GObject signal.
2016-07-08 12:08:55 +02:00
Thomas Haller
db59f5fa11 rdisc: emit config-changed signal by ID and not by name
Also, properly cast the NMRDiscConfigMap argument to int.
2016-07-08 12:08:55 +02:00