Commit graph

12734 commits

Author SHA1 Message Date
Thomas Haller
8d9e033ecd platform: ensure refetching routes when link goes down
It's not enough to consider IF_LOWER_UP flag. Instead,
the important flag is actually IF_UP.

Actually, I suspect that IF_LOWER_UP is not needed. But for
now leave it, in order not to break something.

(cherry picked from commit 02e84ba1e8)
(cherry picked from commit 11bfe8a881)
2016-05-12 16:19:28 +02:00
Thomas Haller
6fa2405997 device: restore IP configuration when link comes up
This is especially important, because changing MTU takes the
link down for a moment. Taking a link down deletes IP routes and
IPv6 addresses. Thus, when the link comes up again, we must restore
them.

Otherwise, we don't call merge_and_apply() until the next DHCP lease
(or possibly never in case of static addressing).

https://bugzilla.redhat.com/show_bug.cgi?id=1309899
(cherry picked from commit 35a7ea77b0)
(cherry picked from commit 5367eac814)
2016-05-12 16:19:28 +02:00
Thomas Haller
c3946c3d29 device: improve logging when changing IP configuration
nm_device_set_ip4_config() is called during cleanup and
from ip4_config_merge_and_apply(). The latter, has several
call sites.

It's not easy to track whether we called set_ip4_config with
or without commit (and if we call it without commit, we might
not see a logging line at all).

(same for nm_device_set_ip6_config()/ip6_config_merge_and_apply()).

(cherry picked from commit f50e39fc98)
(cherry picked from commit a3b3e17bf9)
2016-05-12 16:19:23 +02:00
Beniamino Galvani
46ef667de8 device: remove pending dhcp actions also in IP_DONE state
When the IP status is IP_DONE and a DHCP transaction succeeds the
'dhcp4' and 'dhcp6' pending actions must be removed. Without this, a
temporary link loss just after the activation would cause a DHCP
restart and those actions would remain set, blocking the startup.

https://bugzilla.redhat.com/show_bug.cgi?id=1330893
(cherry picked from commit 21ca2cf0f6)
2016-05-10 18:12:09 +02:00
Thomas Haller
a5fc83ad4e device: remove duplicate calls to get_generic_capabilities() during device construction
Fixes: 2236cc5eb8
2016-05-09 17:49:32 +02:00
Beniamino Galvani
fc6b8ba1bf device/ethernet: ignore s390 'portname' attribute when not set
The 'portname' sysfs attribute of s390 devices is deprecated since
kernel 4.4 and always set to 'no portname required'. But even on older
kernels such value must be interpreted as an unset portname and thus
ignored.

https://bugzilla.redhat.com/show_bug.cgi?id=1327204
(cherry picked from commit 0589e659ca)
2016-04-28 09:29:39 +02:00
Lubomir Rintel
ba77eb5f43 bluetooth: add a missing GError initializer
(cherry picked from commit 3ad7be3e6a)
(cherry picked from commit a57227914e)
2016-04-25 16:11:05 +02:00
Dan Williams
a6deb2b1f9 misc: update maintainers and authors 2016-04-21 13:39:38 -05:00
Beniamino Galvani
6aeec6860d examples: fix crash in add-connection-libnm
Reported-by: Ali Nematollahi <alirezan1@gmail.com>
(cherry picked from commit 76348adb8e)
2016-04-20 07:53:02 +02:00
Thomas Haller
868365180c rdisc: fix build failure due to lack of g_clear_pointer()
Fixes: 10c3e11804
2016-04-17 13:21:35 +02:00
Thomas Haller
645bf63e0b rdisc: backport rate-limiting failures to send router solicitations
https://bugzilla.gnome.org/show_bug.cgi?id=759596
2016-04-17 13:04:56 +02:00
Thomas Haller
d0c7a2bd82 rdisc: fix regression in send_rs() (cannot create router solicitation)
Fixes: 21efcfe6b5
(cherry picked from commit 793e985918)
2016-04-17 13:03:18 +02:00
Thomas Haller
10c3e11804 rdisc: downgrade logging severity and rate-limit logging for sending router solicitation
Downgrade the severity for failure to send router solicitations
to WARN level. Also, repeated (identical) lines will be further
downgraded to DEBUG level.

Also pass the error reason to the caller and combine the message with
the "sending router solicitation" message.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=775736
https://bugzilla.redhat.com/show_bug.cgi?id=1034443
https://bugzilla.redhat.com/show_bug.cgi?id=1010540
https://lists.launchpad.net/touch-packages/msg75697.html

https://bugzilla.gnome.org/show_bug.cgi?id=759596
(cherry picked from commit 21efcfe6b5)
2016-04-17 13:00:20 +02:00
Thomas Haller
9a127cd424 core: add NM_UTILS_ERROR 2016-04-17 12:57:49 +02:00
Beniamino Galvani
383997306d device/vlan: update hw address also during prepare phase
The hardware address of a VLAN must be kept aligned with the one of
its parent device, and we already used a signal in NMDeviceVlan to
catch changes in parent address and update the VLAN device
accordingly.

But this didn't work in all cases because the change might happen
after the VLAN gets created but before we register the signal, so it
is necessary to add further checks to enforce the alignment during the
device activation.

https://bugzilla.redhat.com/show_bug.cgi?id=1325752
(cherry picked from commit 8e405e99f0)
2016-04-14 14:24:48 +02:00
Francesco Giudici
a5dc355d4d wifi: merge branch 'fg/nm-1-0_wifi_segfault_rh1325631'
https://bugzilla.redhat.com/show_bug.cgi?id=1325631
2016-04-13 18:51:28 +02:00
Francesco Giudici
a08b23ec35 device: minor logging change in platform_link_added()
Show ignored devices in debug level.

(cherry picked from commit 7796c489fd)
2016-04-13 12:03:44 +02:00
Francesco Giudici
5f8ae4e1e5 device: ensure @error always set by nm_device_factory_new_link
https://bugzilla.redhat.com/show_bug.cgi?id=1325631
(backported from commit c5d827057e)
2016-04-13 12:03:12 +02:00
Thomas Haller
a72dd80a94 macros: add NM_SET_OUT() macro
(cherry picked from commit d4d2e65eb7)
2016-04-11 15:32:48 +02:00
Francesco Giudici
70c0defe75 wifi: hack for wext devices reporting IW_MODE_AUTO configuration mode.
https://bugzilla.gnome.org/show_bug.cgi?id=763388
(cherry picked from commit 0f6febc6fb)
2016-04-11 11:12:41 +02:00
Lubomir Rintel
13eb842d7e release: bump version to 1.0.13 (development) 2016-04-02 00:34:51 +02:00
Lubomir Rintel
5fea022c0e release: bump version to 1.0.12 2016-04-02 00:26:17 +02:00
Lubomir Rintel
077d4cbe04 release: update NEWS 2016-04-02 00:19:47 +02:00
Lubomir Rintel
747c4dff2f device: check may_fail when progressing to IP_CHECK
Don't let the device progress to check and then in turn to activated unless all
the required IP configuration is in place.

(cherry picked from commit 7d1709d7f6)
2016-04-01 23:48:22 +02:00
Lubomir Rintel
21c98f5da9 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.

(cherry picked from commit ec542df4df)
2016-04-01 15:09:55 +02:00
Nikolay Martynov
5476ea5c45 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
(cherry picked from commit 28e9ec499a)
2016-03-31 16:47:34 +02:00
Lubomir Rintel
ab5a81021d wifi: avoid autoconnecting Ad-Hoc networks with method=auto
This fixes the issue where all Ad-Hoc networks try to connect one after one on
NM startup instead of the managed network that has AP available.

Fixes: e2637760f1
(cherry picked from commit f6d0fc3341)
2016-03-24 14:48:28 +01:00
Lubomir Rintel
6772259630 supplicant-config: fix misleading indentation
(cherry picked from commit 357a1c61a0)
2016-03-20 17:06:24 +01:00
Francesco Giudici
79127634e5 dhcp: fix GBytes leak in nm_dhcp_client_start_ip4()
(cherry picked from commit 99ad9df342)
2016-03-18 14:51:15 +01:00
Lubomir Rintel
058dfebf7b ifupdown: fix up a bad rebase
Fixes: 0cb45af977
(cherry picked from commit e4aaa48b82)
2016-03-14 16:40:46 +01:00
Lubomir Rintel
b2acf82276 ifupdown: set wireless mode
(cherry picked from commit 1b826d9dd9)
2016-03-14 16:36:59 +01:00
Lubomir Rintel
7d1b0fa835 ifupdown: ssid is now GBytes for quite some time
Fixes: c43f88907b
(cherry picked from commit b6bbf3df1e)
2016-03-14 16:36:59 +01:00
Lubomir Rintel
1fc6495552 ifupdown: wireless-essid is good too
(cherry picked from commit 5b14492b0b)
2016-03-14 16:36:59 +01:00
Lubomir Rintel
b97560bc1f 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.

(cherry picked from commit 0cb45af977)
2016-03-14 16:36:53 +01:00
Lubomir Rintel
0a112e12ce ifupdown: drop a bogus warning
The key might be a wireless setting that has already been processed, not a
wireless-security setting.

(cherry picked from commit a5c204a69a)
2016-03-14 16:36:23 +01:00
Thomas Haller
1fe054d319 wifi: merge branch 'th/supplicant-manager-fix-ref-count-rh1298007'
https://bugzilla.redhat.com/show_bug.cgi?id=1298007
https://bugzilla.redhat.com/show_bug.cgi?id=1241198
https://mail.gnome.org/archives/networkmanager-list/2016-February/msg00094.html

(cherry picked from commit de19bc20d0)
2016-03-02 16:44:17 +01:00
Thomas Haller
3c612f9d54 wifi: fix crash due to wrong ownership handling in nm_supplicant_manager_iface_release()
nm_supplicant_manager_iface_get() would cache and reuse the supplicant
interface. But no ref-counting was in place so that the first user returning
the interface via nm_supplicant_manager_iface_release() would destroy the
instance for others.

This is broken for a very long time. Which shows that we hardly ever
have a cache-hit and usually create a new instance. So, instead of
letting nm_supplicant_manager_create_interface() check for existing
supplicant interface, always create a new instance. This also makes
sense, because we would expect that per ifname only one instance is
requested at a time. Also add an assertion that we don't return
multiple supplicant interface instances for the same ifname.

Drop nm_supplicant_manager_iface_release() in favor of requiring users
to unref the returned instance.

Also, use a GSList instead of a GHashTable for the cache.

Also, previously callers would pass @is_wireless to nm_supplicant_manager_iface_get(),
but the cache lookup did not consider that value. That doesn't matter
now as we always create a new instance.

https://bugzilla.redhat.com/show_bug.cgi?id=1298007
(cherry picked from commit f1fba3eb02)
2016-03-02 16:43:54 +01:00
Thomas Haller
dd6239bdf6 supplicant: don't pass start_now argument to nm_supplicant_interface_new()
Also, don't only consider the @die_count whether to start the supplicant,
but check for is_available() -- which already considers @die_count and
@running.

(cherry picked from commit 063f9185b9)
2016-03-02 16:43:54 +01:00
Thomas Haller
7944c5f8ac supplicant: drop is_wireless argument from NMSupplicantInterface's interface_add()
(cherry picked from commit 5d64da1da2)
2016-03-02 16:43:54 +01:00
Thomas Haller
b9ee515dc9 supplicant: remove check for iface instance after nm_supplicant_interface_new()
A plain constructor for a GObject cannot fail.

(cherry picked from commit a8165611a8)
2016-03-02 16:43:54 +01:00
Thomas Haller
213c20142c wifi/supplicant: take object reference during availability_changed()
If the list is expected to be modified, it also means that possibly
instances will be unrefed. Probably, not yet visited instances will
not be unrefed so there is no real problem.

Just be extra cautious and take a reference to all instances first.

(cherry picked from commit 004edecc81)
2016-03-02 16:43:54 +01:00
Thomas Haller
91bdabc808 device/wifi: remove unnecessary call to remove_supplicant_interface_error_handler()
remove_supplicant_interface_error_handler() is not needed as we later disconnect
all handlers for @self.

(cherry picked from commit 8dcf4d32e9)
2016-03-02 16:43:54 +01:00
Thomas Haller
9345900f28 device/wifi: replace cancel_pending_scan() with nm_clear_g_source()
(cherry picked from commit 84828960ff)
2016-03-02 16:43:54 +01:00
Thomas Haller
2c007671c9 device/ethernet: cleanup clearing handlers registered to supplicant interface
(cherry picked from commit 0a2ff1d16d)
2016-03-02 16:43:54 +01:00
Thomas Haller
83bf1a7c86 device/ethernet: use nm_clear_g*() function in remove_supplicant_interface_error_handler()
(cherry picked from commit 30f72c2753)
2016-03-02 16:43:54 +01:00
Thomas Haller
3822c7d6cc supplicant: remove unused function nm_supplicant_interface_get_device()
(cherry picked from commit 2505911ad5)
2016-03-02 16:43:54 +01:00
Beniamino Galvani
236d23c9a2 build: fix travis file syntax
Fixes: 46819838e7
2016-03-02 15:39:42 +01:00
Dan Williams
ba7359441b libnm-glib/libnm/vpn: fix handling of ConnectInteractive() failure (rh #1298732)
If the plugin supports interactive mode, but the VPN binary (like vpnc
or openvpn) doesn't support it, then the plugin should return
NM_VPN_PLUGIN_ERROR_INTERACTIVE_NOT_SUPPORTED from its connect_interactive()
hook.  This lets NetworkManager know to fall back to plain Connect().

Since this notification is done through an error return, the VPN service
plugin code sees the failure and moves the plugin state back to
STOPPED.  NetworkManager sees that state change, and terminates the
connection attempt while waiting for a reply to the Connect() method.

(VPN service plugins that don't support interactive mode at all don't
have this problem because that error is returned before the plugin's
state is moved to STARTING.)

To fix this, do two things:

1) if the connect_interactive() hook fails and returns the error
NM_VPN_PLUGIN_ERROR_INTERACTIVE_NOT_SUPPORTED, postpone the STOPPED
state change for a few seconds to allow NM time to fall back to
plain Connect().  We still want to move the plugin state back to
STOPPED eventually, because otherwise it could stay in STARTING
forever.

2) change state to STARTING only if the connect/connect_interactive
plugin hooks were successful.  Otherwise the plugin would still be
in STARTING state, and it's not valid to call Connect()/ConnectInteractive()
during the STARTING state.

https://mail.gnome.org/archives/networkmanager-list/2016-February/msg00091.html
https://bugzilla.redhat.com/show_bug.cgi?id=1298732
(cherry picked from commit abc700c5c7)
2016-03-02 11:28:27 +01:00
Thomas Haller
cd6ee5786a platform/tests: workaround test failure for kernel bug
Unenslaving from a bridge can cause a spurious RTM_DELLINK signal.
NMPlatform does raise those signals, but fixes the state of the
cache afterwards. Workaround the test failure.

Related: https://bugzilla.redhat.com/show_bug.cgi?id=1285719
(cherry picked from commit dec682f6d1)
2016-02-25 15:18:06 +01:00
Thomas Haller
46819838e7 travis: update .travis.yml not to run tests when build fails
When building fails, we should not run the tests. They clutter
the output.

(cherry picked from commit ad45d232fe)
2016-02-25 15:18:06 +01:00