Thomas Haller
aabb63e8b7
policy: refactor tracking registered signals to NMSettings's instance
2016-04-04 15:47:22 +02:00
Thomas Haller
6a08085d27
policy: embed pointer to private data into NMPolicy
...
Instead of a G_TYPE_INSTANCE_GET_PRIVATE() call every time,
fetching the private data becomes a pointer dereference.
As only one instance of NMPolicy exists, this costs us only
one additional pointer of memory.
2016-04-04 15:47:22 +02:00
Thomas Haller
7e3d090acb
policy: refactor tracking of registered devices
...
No need to track the signal id of the device. We unsubscribe
all devices together, hence we can just use
g_signal_handlers_disconnect_by_data().
2016-04-04 15:47:21 +02:00
Thomas Haller
47c6b6db07
device: remove ignored dummy variable
2016-04-04 15:47:21 +02:00
Thomas Haller
e42fe89242
device/trivial: fix indention with tabs vs. spaces and align "nm-device.h"
2016-04-04 15:47:21 +02:00
Thomas Haller
2716c7f115
device: merge branch 'th/unmanaged-external-down-bgo763236'
...
https://bugzilla.gnome.org/show_bug.cgi?id=761389
https://bugzilla.gnome.org/show_bug.cgi?id=763236
2016-04-04 15:35:10 +02:00
Beniamino Galvani
35059ed48e
device: allow NM-owned device to be assumed
...
Software devices created by NM should be kept up when quitting so that
they can be assumed upon restart. But now we consider devices created
by NM (those with the @is_nm_owned flag) not capable of assuming
connections and therefore we tear them down and deconfigure when
quitting.
Change this and ignore @is_nm_owned when deciding if a device can be
re-assumed.
2016-04-04 15:33:17 +02:00
Thomas Haller
e1edcda317
device: consider external devices as unmanaged until they have an IP address
2016-04-04 15:33:16 +02:00
Thomas Haller
207c0f5f81
platform: add nm_platform_link_can_assume()
2016-04-04 15:33:16 +02:00
Lubomir Rintel
a6fb37bae2
Revert "manager: don't remove the device before policy learns of ip config change"
...
This doesn't unexport the connection on disconnect (as opposed to device
removal).
This reverts commit f72816bf10 .
2016-04-04 12:52:56 +02:00
Lubomir Rintel
f72816bf10
manager: don't remove the device before policy learns of ip config change
...
First let the device know it's being removed soon so that it has a
chance to clean up the IP configuration early.
If the manager removes the device fist, the policy never learns of
config removal and doesn't unhook it from the DNS manager resulting in a
IPConfig leak and possible wrong DNS configuration in effect.
Also adjust the route manager to skip over devices without IP
configuration when determining the best connection; it is perhaps
just due to being removed.
https://bugzilla.gnome.org/show_bug.cgi?id=764483
2016-04-04 12:40:40 +02:00
Thomas Haller
c06289459f
rdisc: reject invalid prefix lengths from router advertisements
...
Later in NMDevice's rdisc_config_changed(), we already reject
routes with plen==0. Just do it earlier.
We would however not reject bogus routes with a prefix larger then 128.
That would later lead to an error when trying to add such a route to the
kernel.
2016-04-04 12:21:35 +02:00
Thomas Haller
c84d659b9b
rdisc: refactor receive_ra() to set data in initializer
...
Don't use memset() and set the fields afterwards. Instead use
designated initializers.
Also, move the temporary variables closer to where they are used.
2016-04-04 11:48:55 +02:00
Beniamino Galvani
d6d42e0825
libnm-core: add 'use-vc' DNS option
...
The option forces the use of TCP for DNS resolutions.
2016-04-03 23:08:38 +02:00
Thomas Haller
2b394d0092
dns-manager: use NM_IN_SET() in condition
2016-04-03 14:54:37 +02:00
Thomas Haller
fd496fd887
dns-manager: fix compute_hash() to skip over duplicate other configs
...
Fixes: f76aa4f77c
2016-04-03 14:54:34 +02:00
Thomas Haller
a6af426271
manager: fix memleak in error-path of _internal_enable()
2016-04-01 18:55:15 +02:00
Thomas Haller
7871a8fb06
manager: refactor handling GObject properties
...
Use NM_GOBJECT_PROPERTIES_DEFINE() and _notify() function.
2016-04-01 17:47:45 +02:00
Thomas Haller
4be28b3916
contrib/rpm: fix logic in build.sh about specifying source
...
When the user neither specifies SOURCE or SOURCE_FROM_GIT,
we first want to detect a tarball in the current directory,
and as second fallback to SOURCE_FROM_GIT=1.
If either SOURCE or SOURCE_FROM_GIT is set, we want to do
that and not detect anything.
The logic was wrong.
2016-04-01 15:54:06 +02:00
Thomas Haller
5617cd4e61
merge: merge branch 'systemd' into master
...
After merging https://github.com/systemd/systemd/pull/2898 ,
use the LLDP defines now from public systemd API.
2016-04-01 15:15:43 +02:00
Lubomir Rintel
ec542df4df
manager: don't the already activated devices shouldn't be considered added
...
The NMSettings shouldn't generate a new default wired connection for
devices that are being deactivated.
2016-04-01 14:35:38 +02:00
Thomas Haller
2fcd9f8bc7
systemd: update code from upstream
...
This is a direct dump from systemd git on 2016-03-31, git commit
1db30aeab10ca716aae877b298289fe1765f14fb.
======
SYSTEMD_DIR=../systemd
COMMIT=1db30aeab10ca716aae877b298289fe1765f14fb
(
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"
2016-04-01 13:31:10 +02:00
Lubomir Rintel
1ab89ecf85
man/nmcli-examples: specify a language for the listing
2016-04-01 12:29:42 +02:00
Lubomir Rintel
159c95cbe2
man/nmcli-examples: no extra breaks around listings
...
Looks bad in HTML.
2016-04-01 12:29:20 +02:00
Lubomir Rintel
f446afbfad
man/nmcli-examples: mark user input in editor
...
For the extra viewing pleasure.
2016-04-01 12:13:52 +02:00
Lubomir Rintel
529f744ec9
man/nmcli-examples: wrap screen output at column 75
...
This ensures it doesn't generate excessively long lines and roughly corresponds to what actually be on a screen.
Or a teletype typewriter. In 1969.
2016-04-01 12:13:52 +02:00
Lubomir Rintel
14421ac4aa
man/nmcli-examples: structure the screen examples better
...
The synopsis tag is not appropriate and doesn't look well in HTML and
inserts unnecessary line breaks in roff.
The <userinput> in <screen> suits this perfectly on the other hand.
2016-04-01 12:13:52 +02:00
Thomas Haller
6fb80e1060
contrib/rpm: improve build_clean.sh to explicitly set $SOURCE_FROM_GIT
...
Presiouvly, when there was a tarball file in the top git-tree, it would
have been choosen and no easy way to overwrite the decision to build
from a git-archive. Now you can safely build current HEAD by simply calling
./contrib/fedora/rpm/build_clean.sh -g
Contrary to the regular build which calls `make dist`, this doesn't
require a clean working copy and no need to purge it with git-clean.
2016-04-01 09:25:11 +02:00
Thomas Haller
5aba6db676
exported-object: merge branch 'th/exported-object-rework-interfaces'
2016-04-01 08:58:19 +02:00
Thomas Haller
603e6dc006
exported-object: reorder includes
2016-04-01 08:58:19 +02:00
Thomas Haller
8fd3a2b893
exported-object/trivial: move code
2016-04-01 08:58:19 +02:00
Thomas Haller
61f3c9890f
exported-object: static variable prefix_counters from global scope to _create_export_path()
2016-04-01 08:58:19 +02:00
Thomas Haller
d4d72e2bda
exported-object: inline find_dbus_property_type() in nm_exported_object_notify()
...
nm_exported_object_notify() is not that large of a function. Having it
all at one place makes it clearer what it does.
2016-04-01 08:58:19 +02:00
Thomas Haller
429cc30607
exported-object: allocate temporary buffer in nm_exported_object_signal_hook() using alloca
...
The size of GValue is about 24 bytes. The number of arguments
for a signal is also small. No problem allocating the temporary buffer
on the stack.
2016-04-01 08:58:19 +02:00
Thomas Haller
05d4faf334
exported-object: cache signal-id for "property-changed" in InterfaceData
...
Instead of looking up the signal-id every time, cache it.
g_signal_lookup() requires a g_quark_try_string() and a
lock a lock on a global mutex.
Downside is that the InterfaceData structure grows.
2016-04-01 08:58:19 +02:00
Thomas Haller
6a42e18d53
exported-object: refactor list of interfaces from GSList to an array
...
NMExportedObject is the center of every D-Bus exported object in
NetworkManager's core. It makes sense to optimize it.
Transform the GSList of interfaces to be a array. The array is still
allocated via the slice allocator (as we expect that there are only few
types in the list). This saves the overhead to allocate a GSList item
for each entry.
Another advantage is that the interfaces list is now strongly typed
instead of an opaque data pointer.
2016-04-01 08:58:18 +02:00
Thomas Haller
efae518e3c
exported-object: sort fields in emitted "property-changed" data variant
...
The fields of the variant should have a consistent sort order.
2016-04-01 08:58:18 +02:00
Thomas Haller
2b9462f172
exported-object: reorder fields in NMExportedObjectPrivate struct
...
For now, this doesn't change the overall size of the struct.
But with the next commits this ordering allows tighter packing.
2016-04-01 08:58:18 +02:00
Jan Alexander Steffens (heftig)
89f3f6ade0
docs: fix build without ifcfg-rh
2016-03-31 22:26:02 -05:00
Thomas Haller
05f17ace71
man: fix typo in NetworkManager.conf manual and 10-ifcfg-rh-routes.sh comment
2016-03-31 20:46:52 +02:00
Nikolay Martynov
28e9ec499a
device: renew dhcp leases on awake for software devices
...
This makes sure that devices like bond get their dhcp renewed
[thaller@redhat.com: original patch modified to rename
now-public function update_dynamic_ip_setup()]
https://bugzilla.gnome.org/show_bug.cgi?id=764398
2016-03-31 16:31:34 +02:00
Thomas Haller
4db69c5b52
man: discourage use of monitor-connection-files=yes in NetworkManager.conf manual
...
https://bugzilla.gnome.org/show_bug.cgi?id=764402
Related: https://bugzilla.redhat.com/show_bug.cgi?id=754677
Related: https://bugzilla.redhat.com/show_bug.cgi?id=1272617
2016-03-31 14:51:24 +02:00
Thomas Haller
05326c2051
device: merge branch 'th/unmanaged-external-down-bgo763236' (early part)
...
https://bugzilla.gnome.org/show_bug.cgi?id=761389
https://bugzilla.gnome.org/show_bug.cgi?id=763236
2016-03-31 10:45:11 +02:00
Thomas Haller
3c8ffa766c
device: refactor by adding set_unmanaged_external_down() function
...
No functional change.
2016-03-31 10:38:39 +02:00
Thomas Haller
f7523ae6e2
device: refactor setting unmanaged flag EXTERNAL_DOWN
...
This should not actually change how we handle EXTERNAL_DOWN
unmanaged devices.
2016-03-31 10:38:38 +02:00
Thomas Haller
2d472657bd
device: add nm_device_get_unmanaged_mask()
2016-03-31 10:38:38 +02:00
Thomas Haller
c1f58e9bb6
device: trival refactoring in can_unmanaged_external_down()
...
Swap order of operands so that the "cheaper" is evaluated first.
2016-03-30 18:50:52 +02:00
Thomas Haller
03fd18cde0
cli: fix setting 'slave-type' for nmcli connection add type *-slave
...
$ nmcli connection add type bond-slave ifname eth1 con-name bond0.0 master nm-bond
Error: Failed to add 'bond0.0' connection: connection.slave-type: Cannot set 'master' without 'slave-type'
Fixes: 8ad218e71c
2016-03-30 18:36:07 +02:00
Thomas Haller
6fa521b384
cli/trivial: fix indention and whitespace
2016-03-30 18:15:03 +02:00
Beniamino Galvani
1422ce0a6a
ifcfg-rh: don't chain up after failure of replace_and_commit()
...
If replace_and_commit() found existing route files (and the callback
has potentially already been invoked), it is wrong to chain up to
parent class and continue the update.
Fixes: f79d62692e
2016-03-30 18:12:32 +02:00