Commit graph

15152 commits

Author SHA1 Message Date
Beniamino Galvani
54b873a475 build: import attributes.m4 from systemd
It contains useful macros for determining compiler support for
flags/attributes. We already similar macros in compiler_options.m4,
but the plan is to replace them.
2016-06-03 22:19:37 +02:00
Dan Williams
6725962f83 build: add -Wformat-nonliteral to --enable-more-warnings flags
New with gcc 6.0.
2016-06-03 11:05:05 -05:00
Thomas Haller
87a1360505 dns: merge branch 'th/rc-manager-file-follow'
https://github.com/NetworkManager/NetworkManager/pull/7
2016-06-03 12:21:16 +02:00
Thomas Haller
bcb88d540e dns: minor fix of logging with unset dns mode
With
  [main]
  #dns=

we would see in the log:
  dns-mgr: init: dns=(null), rc-manager=symlink

Instead, it should be
  dns-mgr: init: dns=default, rc-manager=symlink

Also, we should avoid logging NULL values with "%s", although
glib's printf is fine with that.
2016-06-03 12:20:37 +02:00
Thomas Haller
4711867915 dns: update detection of immutable resolv.conf
Before, we would first check whether the file is immuable before
parsing main.rc-manager setting. That means, if you configured

  [main]
  dns=default
  rc-manager=unmanged

we would still first try to detect whether the file is immutable.
The result of course is only minor, e.g. showing up in logging
as rc-manager=immutable instead of rc-manager=unmanged.
Also, an immutable resolv.conf would suppress a warning about
a bogus rc-manager setting.

Also, when selecting rc-manager=symlink and resolv.conf is a symlink
to an immutable file, we don't actually care about that. The reason is,
that if the link-target is not /var/run/NetworkManager/resolv.conf,
we anyway wouldn't modify the file.

The effect of this change is pretty minor, now in logging you would see:
  dns-mgr: init: dns=default, rc-manager=symlink
  dns-mgr: update-resolv-conf: write internal file /var/run/NetworkManager/resolv.conf succeeded but don't update /etc/resolv.conf as it points to /some/where/else
instead of
  dns-mgr: init: dns=default, rc-manager=immutable
  dns-mgr: update-resolv-conf: write internal file /var/run/NetworkManager/resolv.conf succeeded

Which feels slightly more right.

Note that symlinks cannot have file attributes.
2016-06-03 12:18:47 +02:00
Thomas Haller
718fd22436 dns: follow resolv.conf if it is a symlink for 'rc-manager=file'
Until before 1.2.0, NetworkManager would always write resolv.conf as file, but
if /etc/resolv.conf was a symlink, it would follow the link instead of
replacing it with a file ([1], [2]).

With 1.2.0, we initially dropped that behavior and added a new 'rc-manager=none'
which writes resolv.conf to /var/run/NetworkManager and symlinks resolv.conf [3].
In case resolv.conf being already a symlink to another target, it would
not be replaced [4].
Later, we added 'rc-manager=file', which always writes /etc/resolv.conf as
file [5].

With 1.4.0, we will rename 'rc-manager=none' to 'rc-manager=symlink' [6].

This commit now fixes 'rc-manager=file' to restores the pre-1.2 behavior
and follow symlinks.

[1] 5761e328b8
[2] https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/324233
[3] 4805be2ed2
[4] 583568e12f
[5] 288799713d
[6] cd6a469668

https://github.com/NetworkManager/NetworkManager/pull/7
2016-06-03 11:50:02 +02:00
Thomas Haller
9418f81528 dns: refactor logging statements to use _rc_manager_to_string()
Reuse _rc_manager_to_string() to stringify the rc-manager mode.
Also fix typo "rc-managed=file".
2016-06-03 10:31:07 +02:00
Thomas Haller
2ca21e150a configure/trivial: prettify "if" in configure.ac 2016-06-03 10:27:07 +02:00
Thomas Haller
d66b5e79c7 core: reuse common static string buffer in nm_utils_dnsmasq_status_to_string()
Instead of declaring our local string buffer @buffer,
reuse nm_utils_to_string_buffer_init().

https://github.com/NetworkManager/NetworkManager/pull/8
2016-06-03 09:24:45 +02:00
Michael Biebl
fe7d12a010 systemd: add Documentation to service files
Reference the nm-online and NetworkManager man page in the corresponding
service files.

https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Documentation=

https://bugzilla.gnome.org/show_bug.cgi?id=767168
2016-06-02 21:27:14 +02:00
Michael Biebl
c8199b7de0 systemd: use RemainAfterExit=yes for NetworkManager-wait-online.service
RemainAfterExit=yes is typically used for Type=oneshot services.
systemd-networkd-wait-online.service uses it, so we should as well.

See
https://www.freedesktop.org/software/systemd/man/systemd.service.html#RemainAfterExit=
https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=

https://bugzilla.gnome.org/show_bug.cgi?id=767170
2016-06-02 20:59:10 +02:00
Thomas Haller
aa04e04c83 libnm/tests: fix memleak in test test_nm_utils_check_valid_json()
Fixes: 82f8a54854
2016-06-02 10:01:58 +02:00
Thomas Haller
5dea2efd9e contrib/rpm: add Requires to exact wwan version for NetworkManager-bluetooth subpackage
rpmdiff complains:

  Subpackage NetworkManager-bluetooth on aarch64 x86_64 ppc64 ppc64le s390x
  consumes library libnm-wwan.so()(64bit) from subpackage NetworkManager-wwan
  but does not have explicit package version requirement.
  Please add Requires: NetworkManager-wwan = %{version}-%{release} to
  NetworkManager-bluetooth in the specfile to avoid the need to test
  interoperability between the various combinations of old and new subpackages.

And indeed, device plugins don't have a stable API/ABI, and requires
exact NetworkManager and wwan versions. This was already enforced implicitly,
because all device plugins require the same exact NetworkManager version.
2016-06-02 09:44:37 +02:00
Thomas Haller
d91f3b35d7 auth: fix get_permissions() D-Bus call for settings-modify-global-dns 2016-06-01 22:04:37 +02:00
Thomas Haller
431c70832d dns,config: merge branch 'th/dns-reload-bgo766996'
https://bugzilla.gnome.org/show_bug.cgi?id=766996
2016-06-01 19:06:43 +02:00
Thomas Haller
8e54cfdb27 all: move NM_AUTH_PERMISSION_* defines to "nm-common-macros.h" header 2016-06-01 19:06:35 +02:00
Thomas Haller
ed551a4633 shared: add "nm-common-macros.h" header
Shared headers are all project-wide and internal API.
Currently we have the following:

General purpose:

  - shared/gsystem-local-alloc.h: header-only, allocation macros
  - shared/nm-dbus-compat.h: header-only, D-Bus related defines
  - shared/nm-glib.h: header-only, glib compatibility defines
  - shared/nm-macros-internal.h: header-only, utils
  - shared/nm-shared-utils.[hc]: source and header, utils
  - shared/nm-test*.[hc]: source and header, libnm testing utils

Special to NetworkManager repository:

  - shared/nm-version-macros.h.in: header-only, version macros
  - shared/nm-default.h: header-only, default-include

Now we add "shared/nm-common-macros.h" which is header-only, but non
general purpose.

I am running low on good names, considering all the shared/core/macros
utils headers. Still, I think "nm-common-macros.h" is appropriate.
2016-06-01 19:06:35 +02:00
Thomas Haller
2c411e9070 config: cleanup includes 2016-06-01 19:06:35 +02:00
Thomas Haller
02034cead3 config: unify logging line when reloading configuration
Also when config_data changes, the logging line should start with
"config: signal" like it does in the other cases.
2016-06-01 19:06:35 +02:00
Thomas Haller
ca5028e608 config: fix ignoring internal [.config] section
The [.config] section is configuration about the configuration file itself,
it should not be merged.

Properly ignore the [.config] section before merging the configuration
file.
2016-06-01 19:06:34 +02:00
Thomas Haller
0acee97220 config,dns: support Reload flags to specify that only parts should be reloaded
Support 3 new flags for Reload:

  - 0x01 (CONF): reload the configuration from disk
  - 0x02 (DNS_RC): write DNS configuration to resolv.conf
  - 0x04 (DNS_FULL): restart DNS plugin

Omitting all flags is the same as reloading everything, thus SIGHUP.
2016-06-01 19:06:34 +02:00
Thomas Haller
1d0e0eeffd manager: add Reload() D-Bus command
Add new Reload D-Bus command to reload NetworkManager configuration.

For now, this is like sending SIGHUP to the process. There are several
advantages here:

  - it is guarded via PolicyKit authentication while signals
    can only be sent by root.

  - the user can wait for the reload to be complete instead of sending
    an asynchronous signal. For now, we operation completes after
    nm_config_reload() returns, but later we could delay the response
    further until specific parts are fully reloaded.

  - SIGHUP reloads everything including re-reading configuration from
    disk while SIGUSR1 reloads just certain parts such as writing out DNS
    configuration anew.
    Now, the Reload command has a flags argument which is more granular
    in selecting parts which are to be reloaded. For example, via
    signals the user can:

      1) send SIGUSR1: this writes out the DNS configuration to
         resolv.conf and possibly reloads other parts without
         re-reading configuration and without restarting the DNS plugin.
      2) send SIGHUP: this reloads configuration from disk,
         writes out resolv.conf and restarts the DNS plugin.

    There is no way, to only restart the DNS plugin without also reloading
    everything else.
2016-06-01 19:06:34 +02:00
Thomas Haller
8913585397 libnm: implement missing NM_AUTH_PERMISSION_SETTINGS_MODIFY_GLOBAL_DNS 2016-06-01 19:06:34 +02:00
Thomas Haller
eb6140a772 config: refactor change-flags to be a cause/reason which triggered the change
For the most part, this patch just renames some change-flags, but
doesn't change much about them. The new name should better express
what they are.

A config-change signal can be emitted for different reasons:
when we receive a signal (SIGHUP, SIGUSR1, SIGUSR2) or for internal
reasons like resetting of no-auto-default or setting internal
values.

Depending on the reason, we want to perform different actions.
For example:
 - we reload the configuration from disk on SIGHUP, but not for
   SIGUSR1.
 - For SIGUSR1 and SIGHUP, we want to update-dns, but not for SIGUSR2.

Another part of the change-flags encodes which part of the configuration
actually changed. Often, these parts can only change when re-reading
from disk (e.g. a SIGUSR1 will not change any configuration inside
NMConfig).

Later, we will have more causes, and accordingly more fine-grained
effects of what should be done on reload.
2016-06-01 19:06:34 +02:00
Thomas Haller
ec89bd5171 man: update documenting signals in NetworkManager manual 2016-06-01 19:06:34 +02:00
Thomas Haller
9ae307347b dns: reload DNS plugin in SIGHUP
Previously, on SIGHUP we would re-read the configuration and possibly
reconfigure DNS. However, if the DNS plugin didn't change, we would
not restart it. That is good, because restarting the DNS plugin shortly
interrupts name resolution.

dnsmasq might depend on additional configuration from /etc/NetworkManager/dnsmasq.d,
thus, the user also needs a way to restart the plugin to pickup the
configuration. For that, it could just kill the dnsmasq instance, but
that means, ratelimiting will hit and restarting dnsmasq too often
might bork the plugin for 5 minutes.

Now, on SIGHUP, also restart the DNS plugin. The advantage is that
one signal reloads everything, including the dnsmasq instance, without
ratelimiting.
The disadvantage is, that it shortly interrupts name resolution.
2016-06-01 12:12:18 +02:00
Thomas Haller
a920155d0b dns: reset plugin-ratelimiting when clearing plugin
This also fixes cancelling the timeout in dispose().
Just to be explicit, also cancel it in dispose(),
although dispose() alreay calls _clear_plugin().
2016-06-01 12:12:18 +02:00
Thomas Haller
e1d5b27c4f dns: explicitly stop DNS plugin in manager
_clear_plugin() should explicitly stop the DNS plugin, instead of just
unreferencing it. Unreferencing does not necessarily mean, that the
plugin will be destroyed right away.
2016-06-01 12:12:18 +02:00
Thomas Haller
7d808e523b dns: embed private data in NMDnsManager struct
Make NMDnsManager an opaque type and embed the private data
directly in struct _NMDnsManager.
2016-06-01 12:12:18 +02:00
Thomas Haller
bcbbaaa182 dns: remove unused signal slot for NM_DNS_MANAGER_CONFIG_CHANGED 2016-06-01 12:12:17 +02:00
Thomas Haller
2e7f4aeb60 dnsmasq: properly handling respawning of dnsmask
Otherwise, when killing dnsmasq it does not get respawned:

    dnsmasq[0x560dd7e43cf0]: dnsmasq exited normally
    dns-mgr: plugin dnsmasq child quit unexpectedly
    dns-mgr: update-dns: updating resolv.conf
    dns-mgr: config:      100 best    v4 enp0s25
    dns-mgr: config:      100 best    v6 enp0s25
    dns-mgr: config:      100 default v6 lo
    dns-mgr: config:      100 default v4 lo
    dns-mgr: update-dns: updating plugin dnsmasq
    dnsmasq[0x560dd7e43cf0]: adding nameserver '192.168.0.2@enp0s25'
    dnsmasq[0x560dd7e43cf0]: trying to update dnsmasq nameservers
    dns-mgr: update-resolv-conf: write internal file /var/run/NetworkManager/resolv.conf succeeded but don't update /etc/resolv.conf as it points to resolv.conf.nm
    dnsmasq[0x560dd7e43cf0]: dnsmasq disappeared

Previously, we would create priv->dnsmasq proxy only once,
and not respawn the process at all.

https://bugzilla.gnome.org/show_bug.cgi?id=766996
2016-06-01 12:12:17 +02:00
Thomas Haller
a64d70f0df dns: log when dnsmasq process exits normally 2016-06-01 12:12:17 +02:00
Beniamino Galvani
ec53ed2cba core: fix some memory leaks 2016-06-01 11:55:17 +02:00
Thomas Haller
aae89ab8bb contrib: update REQUIRED_PACKAGES list
Needed to build contrib/rpm.
2016-05-31 16:54:47 +02:00
Beniamino Galvani
f940428c65 dhcp: let users override FQDN dhclient options
When the ipv4.dhcp-fqdn property is set, NM adds the following options
to dhclient.conf:

  send fqdn.fqdn "foo.bar";
  send fqdn.encoded on;
  send fqdn.server-update on;

which enable the S (server-update) and E (encoded) flags in DHCP
option 81, since they are sensible default values and dhclient
requires a "send fqdn.server-update [on|off]" directive in order to
send the option.

Users may want to change these flags according to their server's
configuration, but this is not possible at the moment since NM options
are placed after user's ones, overriding them.

To fix this, collect user's fqdn options and add them after NM
configuration; note that the fqdn.fqdn option still can't be
overridden by users, as NM must control the FQDN sent to server.

Fixes: c3573ebf2b
2016-05-31 14:33:23 +02:00
Thomas Haller
d43a0459bc merge: merge branch systemd into master 2016-05-31 11:46:27 +02:00
Thomas Haller
3fd08cdce5 systemd: update code from upstream
This is a direct dump from systemd git on 2016-05-31, git commit
b76e4ebe1065ba56ab02b2356bf7680f54846aca.

======

SYSTEMD_DIR=../systemd
COMMIT=b76e4ebe1065ba56ab02b2356bf7680f54846aca

(
  cd "$SYSTEMD_DIR"
  git checkout "$COMMIT"
  git reset --hard
  git clean -fdx
)

git ls-files :/src/systemd/src/ | xargs -d '\n' rm -f

nm_copy_sd() {
    mkdir -p "./src/systemd/$(dirname "$1")"
    cp "$SYSTEMD_DIR/$1" "./src/systemd/$1"
}

nm_copy_sd "src/basic/alloc-util.c"
nm_copy_sd "src/basic/alloc-util.h"
nm_copy_sd "src/basic/async.h"
nm_copy_sd "src/basic/escape.c"
nm_copy_sd "src/basic/escape.h"
nm_copy_sd "src/basic/ether-addr-util.c"
nm_copy_sd "src/basic/ether-addr-util.h"
nm_copy_sd "src/basic/extract-word.c"
nm_copy_sd "src/basic/extract-word.h"
nm_copy_sd "src/basic/fileio.c"
nm_copy_sd "src/basic/fileio.h"
nm_copy_sd "src/basic/fd-util.c"
nm_copy_sd "src/basic/fd-util.h"
nm_copy_sd "src/basic/fs-util.c"
nm_copy_sd "src/basic/fs-util.h"
nm_copy_sd "src/basic/hash-funcs.c"
nm_copy_sd "src/basic/hash-funcs.h"
nm_copy_sd "src/basic/hashmap.c"
nm_copy_sd "src/basic/hashmap.h"
nm_copy_sd "src/basic/hexdecoct.c"
nm_copy_sd "src/basic/hexdecoct.h"
nm_copy_sd "src/basic/hostname-util.c"
nm_copy_sd "src/basic/hostname-util.h"
nm_copy_sd "src/basic/in-addr-util.c"
nm_copy_sd "src/basic/in-addr-util.h"
nm_copy_sd "src/basic/io-util.c"
nm_copy_sd "src/basic/io-util.h"
nm_copy_sd "src/basic/list.h"
nm_copy_sd "src/basic/log.h"
nm_copy_sd "src/basic/macro.h"
nm_copy_sd "src/basic/mempool.h"
nm_copy_sd "src/basic/mempool.c"
nm_copy_sd "src/basic/parse-util.c"
nm_copy_sd "src/basic/parse-util.h"
nm_copy_sd "src/basic/path-util.c"
nm_copy_sd "src/basic/path-util.h"
nm_copy_sd "src/basic/prioq.h"
nm_copy_sd "src/basic/prioq.c"
nm_copy_sd "src/basic/random-util.c"
nm_copy_sd "src/basic/random-util.h"
nm_copy_sd "src/basic/refcnt.h"
nm_copy_sd "src/basic/set.h"
nm_copy_sd "src/basic/signal-util.h"
nm_copy_sd "src/basic/siphash24.c"
nm_copy_sd "src/basic/siphash24.h"
nm_copy_sd "src/basic/socket-util.c"
nm_copy_sd "src/basic/socket-util.h"
nm_copy_sd "src/basic/sparse-endian.h"
nm_copy_sd "src/basic/stdio-util.h"
nm_copy_sd "src/basic/string-table.c"
nm_copy_sd "src/basic/string-table.h"
nm_copy_sd "src/basic/string-util.c"
nm_copy_sd "src/basic/string-util.h"
nm_copy_sd "src/basic/strv.c"
nm_copy_sd "src/basic/strv.h"
nm_copy_sd "src/basic/time-util.c"
nm_copy_sd "src/basic/time-util.h"
nm_copy_sd "src/basic/umask-util.h"
nm_copy_sd "src/basic/unaligned.h"
nm_copy_sd "src/basic/utf8.c"
nm_copy_sd "src/basic/utf8.h"
nm_copy_sd "src/basic/util.c"
nm_copy_sd "src/basic/util.h"
nm_copy_sd "src/libsystemd-network/arp-util.c"
nm_copy_sd "src/libsystemd-network/arp-util.h"
nm_copy_sd "src/libsystemd-network/dhcp6-internal.h"
nm_copy_sd "src/libsystemd-network/dhcp6-lease-internal.h"
nm_copy_sd "src/libsystemd-network/dhcp6-network.c"
nm_copy_sd "src/libsystemd-network/dhcp6-option.c"
nm_copy_sd "src/libsystemd-network/dhcp6-protocol.h"
nm_copy_sd "src/libsystemd-network/dhcp-identifier.c"
nm_copy_sd "src/libsystemd-network/dhcp-identifier.h"
nm_copy_sd "src/libsystemd-network/dhcp-internal.h"
nm_copy_sd "src/libsystemd-network/dhcp-lease-internal.h"
nm_copy_sd "src/libsystemd-network/dhcp-network.c"
nm_copy_sd "src/libsystemd-network/dhcp-option.c"
nm_copy_sd "src/libsystemd-network/dhcp-packet.c"
nm_copy_sd "src/libsystemd-network/dhcp-protocol.h"
nm_copy_sd "src/libsystemd-network/lldp-internal.h"
nm_copy_sd "src/libsystemd-network/lldp-neighbor.c"
nm_copy_sd "src/libsystemd-network/lldp-neighbor.h"
nm_copy_sd "src/libsystemd-network/lldp-network.c"
nm_copy_sd "src/libsystemd-network/lldp-network.h"
nm_copy_sd "src/libsystemd-network/network-internal.c"
nm_copy_sd "src/libsystemd-network/network-internal.h"
nm_copy_sd "src/libsystemd-network/sd-dhcp6-client.c"
nm_copy_sd "src/libsystemd-network/sd-dhcp6-lease.c"
nm_copy_sd "src/libsystemd-network/sd-dhcp-client.c"
nm_copy_sd "src/libsystemd-network/sd-dhcp-lease.c"
nm_copy_sd "src/libsystemd-network/sd-ipv4ll.c"
nm_copy_sd "src/libsystemd-network/sd-ipv4acd.c"
nm_copy_sd "src/libsystemd-network/sd-lldp.c"
nm_copy_sd "src/libsystemd/sd-event/sd-event.c"
nm_copy_sd "src/libsystemd/sd-id128/sd-id128.c"
nm_copy_sd "src/shared/dns-domain.c"
nm_copy_sd "src/shared/dns-domain.h"
nm_copy_sd "src/systemd/_sd-common.h"
nm_copy_sd "src/systemd/sd-dhcp6-client.h"
nm_copy_sd "src/systemd/sd-dhcp6-lease.h"
nm_copy_sd "src/systemd/sd-dhcp-client.h"
nm_copy_sd "src/systemd/sd-dhcp-lease.h"
nm_copy_sd "src/systemd/sd-event.h"
nm_copy_sd "src/systemd/sd-ndisc.h"
nm_copy_sd "src/systemd/sd-id128.h"
nm_copy_sd "src/systemd/sd-ipv4acd.h"
nm_copy_sd "src/systemd/sd-ipv4ll.h"
nm_copy_sd "src/systemd/sd-lldp.h"
2016-05-31 11:10:30 +02:00
Beniamino Galvani
0dc999d80e libnm-core: fix comparison of team configuration
NMSettingTeam implements a custom compare_property() method in order
to perform a relaxed matching on team configurations when it is
necessary to assume a connection. However, the method is called also
when the core needs to check if a connection has changed before an
update. In that case it is better to use the default string comparison
on the property, otherwise the second of these commands would not have
effect:

 $ nmcli connection modify team0 team.config ''
 $ nmcli connection modify team0 team.config '{ }'

because compare_property() returns TRUE. Use the @flags argument to
distinguish the two cases.

Fixes: 82f8a54854
2016-05-31 10:59:43 +02:00
Beniamino Galvani
a2f5ba8e06 dhcp/dhclient: emit a warning if the DHCPv6 hostname is not a FQDN
RFC 4704 ("The DHCPv6 Client FQDN Option") allows both partial and
fully-qualified names in the FQDN option, however dhclient always
appends a terminating zero-length label to the name, so we ignore
unqualified hostnames to prevent a wrong configuration.

Emit a warning when the field is ignored so that users can clearly see
why the hostname is not being sent.
2016-05-31 10:49:46 +02:00
Beniamino Galvani
f97ffea82e libnm: export nm_setting_ip6_config_get_token() symbol
Fixes: 954d937b2f
2016-05-30 18:27:21 +02:00
Thomas Haller
63571b2666 device: reconfigure IP addressing after bringing up device
For changing the hardware address, we must bring the device down. When doing
that, IP addressing is lost and it must be re-configured after bringing the
device up again.

We already do something similar in device_link_changed(), but that might
not be sufficient, because device_link_changed() is run on an idle
handler, thus, while changing the hardware address it has no chance to
run (or notice that the device was shortly down).

https://bugzilla.redhat.com/show_bug.cgi?id=1309899
2016-05-30 18:11:55 +02:00
Lubomir Rintel
2edaf35f12 merge: branch 'lr/connection-token'
https://bugzilla.gnome.org/show_bug.cgi?id=765851
2016-05-30 16:40:41 +02:00
Thomas Haller
6fd1bf0749 device: accept failure to lookup link in get_ip_iface_identifier()
An assertion seems a bit harsh, especially, because the platform
cache cannot be always in sync with the device state.
2016-05-30 16:32:07 +02:00
Thomas Haller
6732e2a18b device: lookup platform data only once in get_ip_iface_identifier()
No need to perform multiple cache lookups.
2016-05-30 16:32:07 +02:00
Lubomir Rintel
9133dec2d9 device: set the iid to rdisc from connection's property
...as opposed to directly from the platform. If the token was set in
platform, it was picked up when generating a connection anyway.
2016-05-30 16:32:07 +02:00
Lubomir Rintel
6c018a283b device: use the token set in platform when generating a connection 2016-05-30 16:32:07 +02:00
Lubomir Rintel
60e2a3ea76 platform: add capability to set the tokenized interface identifier
We don't need the token set in platform for our address mode generation,
but having it set makes it possible to correctly generate and assume
connections that use tokens.
2016-05-30 16:32:07 +02:00
Lubomir Rintel
0bd51b41c3 cli: add ipv6.token support 2016-05-30 16:32:07 +02:00
Lubomir Rintel
954d937b2f setting-ip6-config: add token property 2016-05-30 16:32:06 +02:00
Lubomir Rintel
24f428f768 platform: use utility functionality to stringify link 2016-05-30 16:32:06 +02:00