NetworkManager.git
8 years agodns: always reload the dns configuration mode on SIGHUP
Thomas Haller [Tue, 22 Mar 2016 09:31:23 +0000 (10:31 +0100)]
dns: always reload the dns configuration mode on SIGHUP

8 years agodns: enable dns plugins also with immutable resolv.conf
Thomas Haller [Mon, 21 Mar 2016 21:12:25 +0000 (22:12 +0100)]
dns: enable dns plugins also with immutable resolv.conf

We check whether /etc/resolv.conf is set as immutable. But even then
we still want to support our dns plugins like dnsmasq and unbound.

8 years agodns: add new "rc-manager=file"
Thomas Haller [Mon, 21 Mar 2016 20:01:25 +0000 (21:01 +0100)]
dns: add new "rc-manager=file"

8 years agodns: split create_resolv_conf() out of write_resolv_conf()
Thomas Haller [Mon, 21 Mar 2016 15:34:05 +0000 (16:34 +0100)]
dns: split create_resolv_conf() out of write_resolv_conf()

8 years agodns: refactor NMDnsManagerResolvConfMode to string conversion
Thomas Haller [Mon, 21 Mar 2016 15:43:09 +0000 (16:43 +0100)]
dns: refactor NMDnsManagerResolvConfMode to string conversion

8 years agodns: fix _NMLOG() macro
Thomas Haller [Tue, 22 Mar 2016 10:00:54 +0000 (11:00 +0100)]
dns: fix _NMLOG() macro

The buffer was too small to contain _NMLOG_PREFIX_NAME and the pointer,
resulting in truncated messages like:

  dns-mgr[0x561d1183d: set resolv-conf-mode: none

8 years agodnsmasq: use _LOG() macros
Thomas Haller [Tue, 22 Mar 2016 15:41:22 +0000 (16:41 +0100)]
dnsmasq: use _LOG() macros

The _LOG*() macros based on _NMLOG() prefix each line with a
context. Since we no longer log the location of the logging line,
this is the more important.

8 years agodns: refactor kill_existing() to always unlink pidfile
Thomas Haller [Tue, 22 Mar 2016 15:22:31 +0000 (16:22 +0100)]
dns: refactor kill_existing() to always unlink pidfile

When a pidfile exists, it is always stale after this point
and kill_existing() should always unlink it.

Also, refactor kill_existing() to use nm_utils_kill_process_sync()
which waits for the process to be gone.

8 years agodns: cleanup disposing of NMDnsPlugin
Thomas Haller [Tue, 22 Mar 2016 15:08:07 +0000 (16:08 +0100)]
dns: cleanup disposing of NMDnsPlugin

8 years agodns: refactor cleanup and unlink of pidfile
Thomas Haller [Tue, 22 Mar 2016 15:06:55 +0000 (16:06 +0100)]
dns: refactor cleanup and unlink of pidfile

8 years agodns: cleanup pid file when dnsmasq process terminated
Mathieu Trudel-Lapierre [Tue, 22 Mar 2016 14:03:44 +0000 (10:03 -0400)]
dns: cleanup pid file when dnsmasq process terminated

[thaller@redhat.com: extracted the patch from a larger one]

https://mail.gnome.org/archives/networkmanager-list/2016-March/msg00144.html

Signed-off-by: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>
8 years agodns/trivial: fix indention
Thomas Haller [Tue, 22 Mar 2016 15:30:20 +0000 (16:30 +0100)]
dns/trivial: fix indention

8 years agosystemd: merge branch systemd into master
Thomas Haller [Tue, 22 Mar 2016 12:57:47 +0000 (13:57 +0100)]
systemd: merge branch systemd into master

Update systemd code from upstream. In the meantime, two
patches that we applied early in NetworkManager core were
applied in upstream systemd too. So, resync.

8 years agosystemd: update code from upstream
Thomas Haller [Tue, 22 Mar 2016 09:23:12 +0000 (10:23 +0100)]
systemd: update code from upstream

This is a direct dump from systemd git on 2016-03-22, git commit
99d91109a6ed7f8bcdeef164fe9497112128944a.

======

SYSTEMD_DIR=../systemd
COMMIT=99d91109a6ed7f8bcdeef164fe9497112128944a

(
  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/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/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.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"

8 years agodbus: fix a typo in the comment
Lubomir Rintel [Mon, 21 Mar 2016 13:05:49 +0000 (14:05 +0100)]
dbus: fix a typo in the comment

8 years agobuild: dist $(docbook_generated_man_pages)
Thomas Haller [Mon, 21 Mar 2016 10:55:52 +0000 (11:55 +0100)]
build: dist $(docbook_generated_man_pages)

Otherwise, the pre-generated manual pages from docbook
are not part of the source tarball.

8 years agomain: create parent directories of NMSTATEDIR with permissions 755
Thomas Haller [Mon, 21 Mar 2016 11:01:26 +0000 (12:01 +0100)]
main: create parent directories of NMSTATEDIR with permissions 755

In case, "$PREFIX/var/lib" does not exist, we want to create those
directories with permissions 755, not 700.

8 years agomain: create NMSTATEDIR with permissions 700
Thomas Haller [Mon, 21 Mar 2016 10:40:42 +0000 (11:40 +0100)]
main: create NMSTATEDIR with permissions 700

"NMSTATEDIR" is "nmstatedir" is "'${localstatedir}'/lib/$PACKAGE" is
usually "/var/lib/NetworkManager".

The "install-data-hook" in "src/Makefile.am" properly installs the
directory with permissions 700. When creating the directory at startup,
we must also use those permissions.

8 years agosrc/Makefile.am: create $rundir mode 0755 instead of 0700
Robby Workman [Mon, 21 Mar 2016 06:51:08 +0000 (01:51 -0500)]
src/Makefile.am: create $rundir mode 0755 instead of 0700

Otherwise, $NMRUNDIR/resolv.conf isn't readable by unprivileged
users.

https://mail.gnome.org/archives/networkmanager-list/2016-March/msg00124.html

8 years agosupplicant-config: fix misleading indentation
Lubomir Rintel [Sun, 20 Mar 2016 16:05:35 +0000 (17:05 +0100)]
supplicant-config: fix misleading indentation

8 years agodbus: don't do <deny send_interface="..." /> in dbus service file
Lubomir Rintel [Sun, 20 Mar 2016 11:06:42 +0000 (12:06 +0100)]
dbus: don't do <deny send_interface="..." /> in dbus service file

It does more than intended; apart from denying messages to that particular
interface it also denies all messages non-qualified with an
interface globally.
This blocks messages completely unrelated to wpa_supplicant, such as
NetworkManager communication with the VPN plugins.

From the dbus-daemon manual:

  Be careful with send_interface/receive_interface, because the
  interface field in messages is optional. In particular, do NOT
  specify <deny send_interface="org.foo.Bar"/>! This will cause
  no-interface messages to be blocked for all services, which is
  almost certainly not what you intended. Always use rules of the form:
  <deny send_interface="org.foo.Bar" send_destination="org.foo.Service"/>

We can just safely remove those rules, since we're sufficiently protected
by the send_destination matches and method calls are disallowed by default
anyway.

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

8 years agoman: document IPv4 subnet for "shared" method
Thomas Haller [Sun, 20 Mar 2016 10:15:24 +0000 (11:15 +0100)]
man: document IPv4 subnet for "shared" method

8 years agodevice: optimize hashtable usage for shared_ips
Thomas Haller [Sun, 20 Mar 2016 09:59:37 +0000 (10:59 +0100)]
device: optimize hashtable usage for shared_ips

No point ins storing "TRUE" as value in the @shared_ips hash
table. That forces glib to allocate a separate storage for the
value. Just use g_hash_table_add() instead.

8 years agovpn-connection: do not leak the connection if there's no timeout
Lubomir Rintel [Fri, 18 Mar 2016 16:41:00 +0000 (17:41 +0100)]
vpn-connection: do not leak the connection if there's no timeout

8 years agovpn-connection: don't dispose the proxy before we get the disconnect response
Lubomir Rintel [Fri, 18 Mar 2016 14:30:57 +0000 (15:30 +0100)]
vpn-connection: don't dispose the proxy before we get the disconnect response

The return_method would be rejected by the dbus-daemon when the NM drops
its match, resulting in an ugly message in the log:

  method call time=1458301860.187048 sender=:1.267 -> destination=:1.276
    serial=5302 path=/org/freedesktop/NetworkManager/VPN/Plugin;
    interface=org.freedesktop.NetworkManager.VPN.Plugin; member=Disconnect
  method call time=1458301860.187054 sender=:1.267 -> destination=org.freedesktop.DBus
    serial=5303 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus;
    member=RemoveMatch
     string "type='signal',sender='org.freedesktop.DBus',
                                   interface='org.freedesktop.DBus',
                                   member='NameOwnerChanged',
                                   path='/org/freedesktop/DBus',
                                   arg0='org.freedesktop.NetworkManager.libreswan.Connection_10'"
  method return time=1458301860.187061 sender=org.freedesktop.DBus -> destination=:1.267
    serial=1835 reply_serial=5303
  ...
  method return time=1458301860.195351 sender=:1.276 -> destination=:1.267
    serial=19 reply_serial=5302
  error time=1458301860.195361 sender=org.freedesktop.DBus -> destination=:1.276
    error_name=org.freedesktop.DBus.Error.AccessDenied reply_serial=19
     string "Rejected send message, 7 matched rules; type="method_return",
             sender=":1.276" (uid=0 pid=26915
             comm="/usr/libexec/nm-libreswan-service --bus-name org.f")
             interface="(unset)" member="(unset)" error name="(unset)"
             requested_reply="0" destination=":1.267" (uid=0 pid=25724
             comm="/usr/sbin/NetworkManager --no-daemon ")"

Also, refcount the connection instance. While the proxy is alive, it
invokes singal callbacks that get the object as a parameter.

8 years agodhcp: fix GBytes leak in nm_dhcp_client_start_ip4()
Francesco Giudici [Fri, 18 Mar 2016 09:46:16 +0000 (10:46 +0100)]
dhcp: fix GBytes leak in nm_dhcp_client_start_ip4()

8 years agodhcp: support _LOGx_ENABLED() macro in dhcp-client
Thomas Haller [Thu, 17 Mar 2016 16:55:25 +0000 (17:55 +0100)]
dhcp: support _LOGx_ENABLED() macro in dhcp-client

The macro _LOGx_ENABLED() is defined with a default implementation
that depends on _NMLOG_DOMAIN. Although that default does not
check for LOGD_DHCP4 vs. LOGD_DHCP6, still provide it.
Determining the correct domain might involve a larger performance
impact that what we would safe.

8 years agotest-nm-client: fix the remaining counter
Lubomir Rintel [Thu, 17 Mar 2016 16:12:30 +0000 (17:12 +0100)]
test-nm-client: fix the remaining counter

We're expecting four callbacks: a client::devices change,
client::active-connections change, client::activate callback,
and a device::active-connection change.

We only hook the second one in the callback to the first one, and
only if client::active-connections is not set already. If it is
(when running slowly in valgrind), we just decrement the counter.

However, as the counter is one less than it should be, it would
underflow and we wait forever* instead.

For the value of forever=20s, given that's the timeout of the
mockup service.

8 years agordisc: fix setting netns during consturction of NMRDisc
Thomas Haller [Thu, 17 Mar 2016 15:19:02 +0000 (16:19 +0100)]
rdisc: fix setting netns during consturction of NMRDisc

We obtain the netns from the platform instance that is passed
in. It's wrong to set the current netns in nm_rdisc_init().

Fixes: 3ba944472853d5221ed83c369a77f80ee7305648

8 years agolldp: merge branch 'th/lldp-bgo763499'
Thomas Haller [Thu, 17 Mar 2016 14:14:53 +0000 (15:14 +0100)]
lldp: merge branch 'th/lldp-bgo763499'

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

8 years agolldp: refactor keeping tlv data and order entries in neighbor GVariant
Thomas Haller [Wed, 16 Mar 2016 17:46:41 +0000 (18:46 +0100)]
lldp: refactor keeping tlv data and order entries in neighbor GVariant

The fields in the neighbor variant should have a defined order.

Instead of sorting the hash table entries while constructing the
variant in lldp_neighbor_to_variant(), refactor the management of
the TLV attributes.
As we only support known attributes, we can
store them in an array at a known index instead of putting them
in a hash table.
An alternative would be to have explict fields for every known
attribute. That would be even more efficient, but requires more
work when adding new attributes.

8 years agolldp: ensure stable order of variants in LLDP neighbor list
Thomas Haller [Wed, 16 Mar 2016 12:50:09 +0000 (13:50 +0100)]
lldp: ensure stable order of variants in LLDP neighbor list

8 years agolldp: drop process_lldp_neighbors()
Thomas Haller [Tue, 15 Mar 2016 12:05:07 +0000 (13:05 +0100)]
lldp: drop process_lldp_neighbors()

We register the callback early on, so we get notified about
every single neighbor as they show up. No need to iterate over
them explicitly -- and probably, at that early state, there are
no neighbors yet.

8 years agolldp: process one neighbor at a time
Thomas Haller [Fri, 11 Mar 2016 13:02:22 +0000 (14:02 +0100)]
lldp: process one neighbor at a time

The systemd event tells which neighbor changed. Make use
of this information and don't rebuild all the neighbors
all the time.

That means, we must also change our rate limiting. Instead of
rate limiting the processing of all neighbors, we process neighbors
right away but limit the notification that gobject property changed.

8 years agolldp: implement properties via NM_GOBJECT_PROPERTIES_DEFINE()
Thomas Haller [Fri, 11 Mar 2016 13:28:43 +0000 (14:28 +0100)]
lldp: implement properties via NM_GOBJECT_PROPERTIES_DEFINE()

8 years agolldp: improve logging
Thomas Haller [Fri, 11 Mar 2016 13:09:50 +0000 (14:09 +0100)]
lldp: improve logging

8 years agolldp: let lldp_neighbor_new() also create invalid objects
Thomas Haller [Fri, 11 Mar 2016 12:47:17 +0000 (13:47 +0100)]
lldp: let lldp_neighbor_new() also create invalid objects

When we receive an update for a certain neighbor, the update
might be invalid and we want to reject it. However, we still
must create an invalid object to compare whether the update
causes a remove of a previously valid neighbor.

Let lldp_neighbor_new() create an instance as long as the
id fields are present.

8 years agolldp: cache the GVariant in LldpNeighbor
Thomas Haller [Fri, 11 Mar 2016 11:48:43 +0000 (12:48 +0100)]
lldp: cache the GVariant in LldpNeighbor

8 years agolldp: factor out lldp_neighbor_to_variant()
Thomas Haller [Fri, 11 Mar 2016 11:40:10 +0000 (12:40 +0100)]
lldp: factor out lldp_neighbor_to_variant()

8 years agolldp: refactor processing all lldp-neighbors
Thomas Haller [Fri, 11 Mar 2016 11:34:30 +0000 (12:34 +0100)]
lldp: refactor processing all lldp-neighbors

Instead of replacing the whole hash with a new one (and all new by a new one,
LldpNeighbor instances), update the existing hash.

One point of this is that our process-all function requires less
comparisons and avoids duplicate work right earlier. E.g. if a neighbor
didn't change, we don't have to put it into a hash to compare later for
equality.

But more importantly, we preserve our LldpNeighbor instance instead
of recreating them all the time. Later, the LldpNeighbor will cache
the GVariant.

8 years agolldp: split out creation of LldpNeighbor instance
Thomas Haller [Fri, 11 Mar 2016 10:40:34 +0000 (11:40 +0100)]
lldp: split out creation of LldpNeighbor instance

8 years agolldp/trivial: rename internal type LLDPNeighbor to LldpNeighbor
Thomas Haller [Fri, 11 Mar 2016 10:16:31 +0000 (11:16 +0100)]
lldp/trivial: rename internal type LLDPNeighbor to LldpNeighbor

Our convention is to use camel case for abbreviations
that are longer then 2 charaters.

8 years agosystemd: lldp: fix starting ttl timer for lldp neighbor
Thomas Haller [Fri, 11 Mar 2016 14:54:07 +0000 (15:54 +0100)]
systemd: lldp: fix starting ttl timer for lldp neighbor

lldp_start_timer() was only called during sd_lldp_get_neighbors().
Ensure that the timer is (re-)started when a new neighbor appears.
Otherwise, the timer is not started when relying on the events alone.

https://github.com/systemd/systemd/pull/2826

8 years agologging: add new logging domain "SYSTEMD" for internal systemd logging
Thomas Haller [Fri, 11 Mar 2016 15:11:04 +0000 (16:11 +0100)]
logging: add new logging domain "SYSTEMD" for internal systemd logging

8 years agoshared: add nm_unauto() helper macro
Thomas Haller [Fri, 11 Mar 2016 12:38:30 +0000 (13:38 +0100)]
shared: add nm_unauto() helper macro

8 years agoshared: add nm_assert_not_reached()
Thomas Haller [Wed, 16 Mar 2016 13:50:23 +0000 (14:50 +0100)]
shared: add nm_assert_not_reached()

8 years agoutils/core: add NM_UTILS_NS_PER_MSEC macro
Thomas Haller [Fri, 11 Mar 2016 13:40:58 +0000 (14:40 +0100)]
utils/core: add NM_UTILS_NS_PER_MSEC macro

8 years agolibnm: declare internal function as static
Thomas Haller [Thu, 17 Mar 2016 10:23:05 +0000 (11:23 +0100)]
libnm: declare internal function as static

8 years agomerge: branch 'bg/8021x-domain-suffix-match-bgo341323'
Beniamino Galvani [Wed, 16 Mar 2016 16:34:52 +0000 (17:34 +0100)]
merge: branch 'bg/8021x-domain-suffix-match-bgo341323'

Add domain-suffix-match properties to NMSetting8021x.

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

8 years agolibnm-core: nm-setting-8021x: treat some empty properties as NULL
Beniamino Galvani [Tue, 8 Mar 2016 14:22:05 +0000 (15:22 +0100)]
libnm-core: nm-setting-8021x: treat some empty properties as NULL

For some properties as *subject-match and *domain-suffix-match an
empty string means that we don't want to do any filtering and should
be stored as NULL.

8 years agosupplicant: honor the domain-suffix-match properties
Beniamino Galvani [Fri, 4 Mar 2016 08:58:28 +0000 (09:58 +0100)]
supplicant: honor the domain-suffix-match properties

8 years agocli: add support for NMSetting8021x domain-suffix-match properties
Beniamino Galvani [Thu, 3 Mar 2016 21:47:56 +0000 (22:47 +0100)]
cli: add support for NMSetting8021x domain-suffix-match properties

8 years agoifcfg-rh: add support for domain-suffix-match properties
Beniamino Galvani [Fri, 4 Mar 2016 09:39:26 +0000 (10:39 +0100)]
ifcfg-rh: add support for domain-suffix-match properties

8 years agolibnm-core: add domain-suffix-match properties to NMSetting8021x
Beniamino Galvani [Thu, 3 Mar 2016 21:42:35 +0000 (22:42 +0100)]
libnm-core: add domain-suffix-match properties to NMSetting8021x

The new domain-suffix-match and phase2-domain-suffix-match properties
can be used to match against a given server domain suffix in the
dNSName elements or in the SubjectName CN of the server certificate.

Also, add a comment to the old subject-match properties documentation
to suggest that they are deprecated and should not be used anymore.

8 years agoNEWS: minor update referencing 1.0.10 release
Thomas Haller [Wed, 16 Mar 2016 11:29:26 +0000 (12:29 +0100)]
NEWS: minor update referencing 1.0.10 release

8 years agoethernet: set the connection type when generating the connection
Lubomir Rintel [Tue, 15 Mar 2016 19:07:45 +0000 (20:07 +0100)]
ethernet: set the connection type when generating the connection

Otherwise the connection wouldn't verify:

  <error> [1458066126.2270] device (eth10): Generated connection does not verify:
    connection.type: property type should be set to '802-3-ethernet'
  <debug> [1458066126.2271] manager: (eth10): can't assume; no connection

(cherry picked from commit 4b71939e9ac3df93bfe72af0eac42b4ebaf94e15)

8 years agolibnm-util: reword code comment
Thomas Haller [Tue, 15 Mar 2016 17:53:24 +0000 (18:53 +0100)]
libnm-util: reword code comment

8 years agolibnm-util: add comment for return value of nm_connection_replace_settings_from_conne...
Thomas Haller [Tue, 15 Mar 2016 17:44:31 +0000 (18:44 +0100)]
libnm-util: add comment for return value of nm_connection_replace_settings_from_connection()

nm_connection_replace_settings_from_connection() can safely be used
to copy an invalid connection. The return value only says, whether
the connection is valid after the fact.

8 years agoplatform: use gint32 for monotonic-timestamp seconds
Thomas Haller [Tue, 15 Mar 2016 16:40:43 +0000 (17:40 +0100)]
platform: use gint32 for monotonic-timestamp seconds

@now is obtained via nm_utils_get_monotonic_timestamp_s(),
which is gint32 (although it will never be negative).

Use the correct type.

8 years agoplatform: remove padding for IP address lifetimes
Thomas Haller [Tue, 15 Mar 2016 16:29:58 +0000 (17:29 +0100)]
platform: remove padding for IP address lifetimes

We used to pad the lifetime since the beginning (commit
f121995fad93eda886b2a34a8d79a45a5688b917).

However, there is not race involved, since our platform cache
is in sync with the messages from kernel (which didn't used to
be the case).

Also, when receiving a RA with a zero preferred time, we must
not extend the address lifetime by 5 seconds, but instead deprecate
the address immediately.

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

8 years agodevice: fix handling of available connections
Beniamino Galvani [Fri, 11 Mar 2016 14:36:35 +0000 (15:36 +0100)]
device: fix handling of available connections

The prune list is for elements that must be deleted from the list of
available connections. So, when processing all the existing
connections an element must be deleted from the prune list iff it's
available.

Fixes: 8b2abe0e2c8f162544a2562fc18a7becbc55d233

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

8 years agoplatform: merge branch 'th/netns-aware-bgo763323'
Thomas Haller [Tue, 15 Mar 2016 11:52:35 +0000 (12:52 +0100)]
platform: merge branch 'th/netns-aware-bgo763323'

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

8 years agoplatform: add nmp_netns_bind_to_path() helper function
Thomas Haller [Tue, 8 Mar 2016 12:08:21 +0000 (13:08 +0100)]
platform: add nmp_netns_bind_to_path() helper function

Based-on-patch-by: Stjepan Gros <stjepan.gros@gmail.com>
8 years agoplatform: support switching partial namespaces
Thomas Haller [Mon, 14 Mar 2016 13:20:33 +0000 (14:20 +0100)]
platform: support switching partial namespaces

Previously, the push/pop API to switch between namespaces would always
switch both the net and mount namespace together.

There are situations, where we want to only switch one namespace.
For example, the function nmp_netns_bind_to_path() introduced next
only wants to switch the net namespace to get /proc/self/ns/net,
but must not switch the mount namespace as it bind-mounds in the
namespace of the caller.

8 years agoplatform/tests: add test for nm_platform_link_set_netns()
Thomas Haller [Mon, 14 Mar 2016 14:44:01 +0000 (15:44 +0100)]
platform/tests: add test for nm_platform_link_set_netns()

8 years agoplatform/tests: pass platform argument to nmtstp helper functions
Thomas Haller [Mon, 14 Mar 2016 14:23:05 +0000 (15:23 +0100)]
platform/tests: pass platform argument to nmtstp helper functions

Make the test helper independent from the platform singleton instance.
That way, we can also use them for other platform instances (e.g. in a
different namespace).

8 years agoplatform: add nm_platform_link_set_netns() function
Stjepan Gros [Tue, 8 Mar 2016 12:02:58 +0000 (13:02 +0100)]
platform: add nm_platform_link_set_netns() function

[thaller@redhat.com: cherry-picked original patch and modified
  slightly]

8 years agoplatform/tests: refactor creation of test_netns_general()
Thomas Haller [Mon, 14 Mar 2016 14:08:42 +0000 (15:08 +0100)]
platform/tests: refactor creation of test_netns_general()

Need to add more then one netns test.

8 years agoutils: inject platform into nm_utils_complete_generic()
Thomas Haller [Tue, 8 Mar 2016 12:57:20 +0000 (13:57 +0100)]
utils: inject platform into nm_utils_complete_generic()

8 years agoroute-manager: make NMRouteManager namespace aware
Thomas Haller [Tue, 8 Mar 2016 13:09:41 +0000 (14:09 +0100)]
route-manager: make NMRouteManager namespace aware

8 years agodefault-route-manager: make NMDefaultRouteManager namespace aware
Thomas Haller [Tue, 8 Mar 2016 12:43:40 +0000 (13:43 +0100)]
default-route-manager: make NMDefaultRouteManager namespace aware

8 years agodefault-route-manager: use explict platform instance instead of NM_PLATFORM_GET singleton
Thomas Haller [Tue, 8 Mar 2016 12:42:05 +0000 (13:42 +0100)]
default-route-manager: use explict platform instance instead of NM_PLATFORM_GET singleton

8 years agordisc: make NMRDisc namespace aware
Thomas Haller [Tue, 8 Mar 2016 12:11:36 +0000 (13:11 +0100)]
rdisc: make NMRDisc namespace aware

8 years agordisc/trivial: adjust indention in nm_rdisc_class_init()
Thomas Haller [Tue, 8 Mar 2016 12:15:28 +0000 (13:15 +0100)]
rdisc/trivial: adjust indention in nm_rdisc_class_init()

8 years agoplatform: add defines for "/proc/self/ns/" paths
Thomas Haller [Tue, 8 Mar 2016 12:07:59 +0000 (13:07 +0100)]
platform: add defines for "/proc/self/ns/" paths

8 years agoplatform: properly change netns in do_change_link()
Thomas Haller [Tue, 8 Mar 2016 12:02:09 +0000 (13:02 +0100)]
platform: properly change netns in do_change_link()

8 years agonmtst: add NMTST_DEBUG option "D"
Thomas Haller [Mon, 14 Mar 2016 13:23:30 +0000 (14:23 +0100)]
nmtst: add NMTST_DEBUG option "D"

8 years agosystemd: fall back to CLOCK_MONOTONIC
Lubomir Rintel [Tue, 15 Mar 2016 11:53:19 +0000 (12:53 +0100)]
systemd: fall back to CLOCK_MONOTONIC

https://github.com/systemd/systemd/pull/2843

8 years agoocd: style fix
Lubomir Rintel [Tue, 15 Mar 2016 08:18:16 +0000 (09:18 +0100)]
ocd: style fix

8 years agoifupdown: style fixes
Lubomir Rintel [Tue, 15 Mar 2016 08:18:01 +0000 (09:18 +0100)]
ifupdown: style fixes

8 years agoifnet: fix error handling
Lubomir Rintel [Mon, 14 Mar 2016 16:27:25 +0000 (17:27 +0100)]
ifnet: fix error handling

Oh my.

8 years agoifnet: fix a possible NULL dereference
Lubomir Rintel [Mon, 14 Mar 2016 16:19:38 +0000 (17:19 +0100)]
ifnet: fix a possible NULL dereference

CID 75367 (#1 of 1): Dereference null return value (NULL_RETURNS)
30. dereference: Incrementing a pointer which might be null: pos.

8 years agonmp-netns: fix error handling
Lubomir Rintel [Mon, 14 Mar 2016 16:09:11 +0000 (17:09 +0100)]
nmp-netns: fix error handling

GError is not used, the error branch would always result in NULL dereference.

Also, check for the result being zero for clarity -- it's the only allowed
success indication.

CID 75365 (#3 of 3): Explicit null dereferenced (FORWARD_NULL)
12. var_deref_op: Dereferencing null pointer error.

8 years agocli: fix memory leak in connection listing
Beniamino Galvani [Mon, 14 Mar 2016 14:05:28 +0000 (15:05 +0100)]
cli: fix memory leak in connection listing

8 years agoifupdown: fix up a bad rebase
Lubomir Rintel [Mon, 14 Mar 2016 15:39:43 +0000 (16:39 +0100)]
ifupdown: fix up a bad rebase

Fixes: 0cb45af97761e47d97c8f76346f7f1bef46ce2cb

8 years agonm-object: delay object property completion until the objects are initialized
Lubomir Rintel [Thu, 10 Mar 2016 18:22:20 +0000 (19:22 +0100)]
nm-object: delay object property completion until the objects are initialized

We don't want to update the properties until the objects referred are complete.
Otherwise the clients get confused. Very confused:

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

We already delay the notification signals. Let's replace that with delaying the
actual ObjectCreatedData processing instead.

8 years agoifupdown: set wireless mode
Lubomir Rintel [Mon, 14 Mar 2016 12:42:43 +0000 (13:42 +0100)]
ifupdown: set wireless mode

8 years agoifupdown: ssid is now GBytes for quite some time
Lubomir Rintel [Mon, 14 Mar 2016 12:14:12 +0000 (13:14 +0100)]
ifupdown: ssid is now GBytes for quite some time

Fixes: c43f88907be66f8f62a8edbe76ae2aec4ff61190

8 years agoifupdown: wireless-essid is good too
Lubomir Rintel [Mon, 14 Mar 2016 11:46:08 +0000 (12:46 +0100)]
ifupdown: wireless-essid is good too

8 years agoifupdown: don't remove the object in its constructor
Lubomir Rintel [Mon, 14 Mar 2016 11:36:54 +0000 (12:36 +0100)]
ifupdown: don't remove the object in its constructor

This is wrong an all the complexity of a property and associated bookkeeping is
completely unnecessary.

8 years agoifupdown: drop a bogus warning
Lubomir Rintel [Mon, 14 Mar 2016 12:48:47 +0000 (13:48 +0100)]
ifupdown: drop a bogus warning

The key might be a wireless setting that has already been processed, not a
wireless-security setting.

8 years agocontrib/rpm: with-udev-dir now has a sensible default
Lubomir Rintel [Mon, 14 Mar 2016 15:12:04 +0000 (16:12 +0100)]
contrib/rpm: with-udev-dir now has a sensible default

8 years agobuild: install udev files under prefix
Lubomir Rintel [Mon, 14 Mar 2016 12:49:58 +0000 (13:49 +0100)]
build: install udev files under prefix

It should really be in /usr/lib, not /lib. Not a real issue, since the two are
usually links, but the latter is supposably for compatibility only. This also
installs into correct place when configured with a different --prefix.

8 years agotests: fix test-networkmanager-service.py for Python 3 incompatibility
Jan Tojnar [Sun, 13 Mar 2016 12:11:07 +0000 (13:11 +0100)]
tests: fix test-networkmanager-service.py for Python 3 incompatibility

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

8 years agoshared: add nm_g_object_ref() and nm_g_object_unref() function
Thomas Haller [Sat, 12 Mar 2016 14:38:53 +0000 (15:38 +0100)]
shared: add nm_g_object_ref() and nm_g_object_unref() function

8 years agowifi: hack for wext devices reporting IW_MODE_AUTO configuration mode.
Francesco Giudici [Fri, 11 Mar 2016 08:55:39 +0000 (09:55 +0100)]
wifi: hack for wext devices reporting IW_MODE_AUTO configuration mode.

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

8 years agosession-monitor/trivial: rename local functions for unique prefix
Thomas Haller [Fri, 11 Mar 2016 10:11:58 +0000 (11:11 +0100)]
session-monitor/trivial: rename local functions for unique prefix

Don't use a "sd_" prefix for our local functions because
then it's not immediately clear which functions are ours
and which are from systemd-logind. Just rename them to have
a "st_sd_*" prefix ("st" like "session tracking").

8 years agosystemd: split "nm-sd.h" out of "nm-sd-adapt.h"
Thomas Haller [Fri, 11 Mar 2016 09:25:40 +0000 (10:25 +0100)]
systemd: split "nm-sd.h" out of "nm-sd-adapt.h"

Now we have:

"nm-sd.h" is a header file of NetworkManager with utilities
related to systemd. It can be used anywhere freely.

Also, systemd headers that are considered public API (like
"sd-event.h") can be used without restrictions.

When compiling the systemd sources, we always must include
"nm-sd-adapt.h" as first. Similarly, systemd headers must
not include "nm-sd-adapt.h", because they are either public
(in which case the adapter is not needed) or they are internal
(in which case they are themself included via a systemd source).

Sometimes, we must internal API (like "dhcp-lease-internal.h").
In this case, we also must include "nm-sd-adapt.h".

8 years agosystemd: merge branch 'th/systemd-lldp-bgo763384' into master
Thomas Haller [Tue, 26 Jan 2016 16:22:54 +0000 (17:22 +0100)]
systemd: merge branch 'th/systemd-lldp-bgo763384' into master

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

8 years agosystemd: integrate sd-event into glib main loop
Thomas Haller [Wed, 9 Mar 2016 11:27:56 +0000 (12:27 +0100)]
systemd: integrate sd-event into glib main loop

We should not try to reimplement sd-event based on glib,
instead we should hook sd-event into the glib mainloop.