Commit Graph

15047 Commits

Author SHA1 Message Date
Thomas Haller
adb75b0fa6 ifnet/test: fix test breakage after refactoring tests
Remove fake platform.

This regression was introduced by commit 0140cdb73d).

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-23 20:05:42 +02:00
Dan Winship
8f4e39cdc4 all: clean up "make check" results (bgo #727764) 2014-04-23 10:29:34 -04:00
Dan Winship
0140cdb73d core: use g_test_expect_message() in test programs
Use g_test_expect_message() in the various daemon-side test programs,
to avoid spewing error messages when (successfully) running "make
check".

The ifnet and ifupdown plugins are extremely verbose, so they were
partially "fixed" by turning down the logging level from INFO to WARN
in those tests.

test-dhcp-options needed to be converted to gtestutils so that the
newly-added check in nm-dbus-manager would recognize it as a test
program and not try to create a private bus.
2014-04-23 10:29:20 -04:00
Dan Winship
e3fc25731e dbus-manager: don't try to create private bus in test programs
When running test programs, don't try to create a private bus, since
it will fail if the user isn't root or if NetworkManager is currently
running, and it isn't what we want anyway.
2014-04-23 10:19:17 -04:00
Dan Winship
8537db959c settings: use nm_log_info/warning() in settings plugins
Remove the PLUGIN_PRINT() and PLUGIN_WARN() macros and use the
standard NM logging functions instead.

Also changed PLUGIN_PRINT("error: ...") to nm_log_warn("...") in
places.
2014-04-23 10:19:17 -04:00
Dan Winship
a4b8645a60 logging: use GLib's logging functions if not using syslog
If nm_logging_syslog_openlog() isn't called (ie, in the test
programs), then route nm_log() messages to g_log() rather than just
using fprintf().
2014-04-23 10:19:17 -04:00
Dan Winship
4618a07304 libnm-util: use g_test_expect_message() in tests
Use g_test_expect_message(), to avoid spewing tons of error messages
when (successfully) running "make check".
2014-04-23 10:19:17 -04:00
Dan Winship
bea82ca98b all: set G_LOG_DOMAIN appropriately, for better g_log() messages 2014-04-23 10:19:17 -04:00
Jiří Klimeš
645f0204f9 nmcli: improve setting connection.secondaries property
- check if the values being set are existing connections
- also allow specifying connections by names, translating them transparently
   to UUIDs.
- nmcli-specific section for 'describe' command added

(We use a global nm_cli variable in nmc_property_connection_set_secondaries())
2014-04-22 12:40:40 +02:00
Thomas Haller
ab0c37d042 dispatcher/test: fix tests after adding PATH environment variable
These tests were broken by commit 45ed459ae3.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-22 12:24:25 +02:00
Thomas Haller
6fcbd20597 ifnet/test: fix test breakage after moving wifi-utils to platform
Need to initialize (fake) platform.

This regression was introduced by commit df435f4015.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-22 11:49:57 +02:00
Jiří Klimeš
0757e33e74 core: fix MTU handling while merging/subtracting IP configs (bgo #721420)
https://bugzilla.gnome.org/show_bug.cgi?id=721420
https://bugzilla.redhat.com/show_bug.cgi?id=1047083
2014-04-22 10:58:55 +02:00
Dan Winship
30a98f3149 dispatcher: multiple fixes
https://bugzilla.gnome.org/show_bug.cgi?id=727439
2014-04-18 11:33:53 -04:00
Dan Winship
bb1c46f66d man: updates to the dispatcher section
Mention that the dispatcher kills slow scripts
(https://bugzilla.redhat.com/show_bug.cgi?id=982734) and that it runs
all scripts that have been queued, even if later events make that
"wrong". (Mentioned in https://bugzilla.gnome.org/show_bug.cgi?id=721971,
although that bug proposes changing this behavior, not documenting it.)
2014-04-18 11:33:20 -04:00
Dan Winship
3b197de59f dispatcher: add better debugging
Add LOGD_DISPATCH, and if it's set to DEBUG, tell nm-dispatcher to log
additional information about each script it runs.
2014-04-18 11:33:15 -04:00
Dan Winship
45ed459ae3 dispatcher: Leave PATH set in the dispatcher script environment
https://bugzilla.gnome.org/show_bug.cgi?id=724657
2014-04-18 11:32:13 -04:00
Dan Winship
d53357f420 dispatcher: tell systemd to not kill dispatcher children
You're supposed to be able to use dispatcher scripts to spawn
long-running processes, but currently systemd will kill them when
nm-dispatcher exits. Fix that.

https://bugzilla.gnome.org/show_bug.cgi?id=725492
2014-04-18 11:32:12 -04:00
Dan Winship
731ca771f8 dispatcher: only dispatch one request at a time (rh #1061212)
The dispatcher only runs one script at a time for any given request,
but would dispatch multiple requests in parallel. So if a device was
brought up and then back down quickly, it could end up dispatching the
"down" scripts while the "up" scripts were still running. Or if two
devices came up at the same time, two instances of the same "up"
script might run at the same time, which could cause problems if they
both tried to modify the same file.

Fix this by only dispatching the scripts for a single request at a
time.
2014-04-18 11:32:09 -04:00
Dan Winship
d9334503d7 dispatcher: bump script timeout up to 20 seconds (rh #1048345)
The dispatcher would kill scripts after 3 seconds, but on
heavily-loaded machines, that was sometimes too short even for simple
scripts. Bump the timeout up to 20 seconds instead (and change the
10-second quit-on-idle timer to not run when a script is running).

Also change the D-Bus call timeout in the daemon to 30 seconds, so
that it only triggers if something goes really wrong and the action
timeout fails.
2014-04-18 11:29:14 -04:00
Dan Winship
1796aae751 ifcfg-rh: don't write out IP config on Team connections 2014-04-17 13:00:41 -04:00
Dan Winship
6b2579fcdf keyfile: don't g_return_if_fail() on bad user input
return-if-fail is only for programmer errors
2014-04-17 13:00:37 -04:00
Dan Winship
8d9ddbee17 core: don't break Wake-on-LAN
https://bugzilla.gnome.org/show_bug.cgi?id=712745
https://bugzilla.redhat.com/show_bug.cgi?id=826652
https://bugzilla.redhat.com/show_bug.cgi?id=1025009
2014-04-17 12:48:38 -04:00
Dan Winship
1218b7e0c7 core: leave wake-on-LAN devices up over suspend/resume
Taking down a wake-on-LAN device before suspending will effectively
disable wake-on-LAN. So don't do that.

Based on a patch from Stanislaw Gruszka.

https://bugzilla.gnome.org/show_bug.cgi?id=712745
https://bugzilla.redhat.com/show_bug.cgi?id=826652
https://bugzilla.redhat.com/show_bug.cgi?id=1025009
2014-04-17 12:48:20 -04:00
Dan Winship
ddb17bef81 platform: add link_get_wake_on_lan() 2014-04-17 12:48:20 -04:00
Stanislaw Gruszka
79675fc1c9 wifi: add wifi_utils_get_wowlan() 2014-04-17 12:48:20 -04:00
Dan Winship
2b9b26d19b wifi: move wifi-utils into platform
https://bugzilla.gnome.org/show_bug.cgi?id=724365
2014-04-17 12:47:12 -04:00
Dan Winship
df435f4015 wifi: move wifi-utils into platform
Move wifi-utils into NMPlatform, and update callers to use the new
NMPlatform wrappers
2014-04-17 12:45:32 -04:00
Dan Winship
090a52217c wifi: (trivial) style / indent / whitespace fixes 2014-04-17 12:45:32 -04:00
Thomas Haller
ef770ca450 core: refactor NMManager by adding function for converting NMState to string
This will be especially nice, with lazy evaluation for NM logging.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-15 18:12:14 +02:00
Jiří Klimeš
b911d663d8 cli/bash-completion: escape spaces in profile names (rh #1041901) (bgo #709426)
We need to escape spaces and quotes in connection names, so that a connection
name containing spaces (quotes) is regarded as a single argument by bash.
See e.g. http://stackoverflow.com/questions/1146098/properly-handling-spaces-and-quotes-in-bash-completion

https://bugzilla.redhat.com/show_bug.cgi?id=1041901
https://bugzilla.gnome.org/show_bug.cgi?id=709426
2014-04-15 16:32:02 +02:00
Thomas Haller
05b5577815 platform: be more resilient in init_link against missing name of the rtnl link
Now we use init_link to print the rtnllink object, so be more
resilient to incompletly initilized objects and just set the
fields to NULL.

This fixes the (non harmful) warning:

  <debug> [1397563880.690580] [platform/nm-linux-platform.c:1950] link_change_flags(): link: change 3: flags set 'up' (1)
  init_link: assertion 'rtnl_link_get_name (rtnllink)' failed
  file platform/nm-linux-platform.c: line 1021 (to_string_link): should not be reached
  <error> [1397563880.690632] [platform/nm-linux-platform.c:1836] link_change(): Netlink error changing link (invalid link 0x7f88b5cf93c0): Unspecific failure

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-15 14:42:14 +02:00
Jiří Klimeš
c54faa4801 policy: check device state before changing it for secondaries (rh #1055099)
We have to check the previous base device state in process_secondaries() when
making a state change. The device might got disconnected in the meantime and
thus the transition from DISCONNECTED to ACTIVATED or FAILED would have been
incorrect.

Logs showing the problem:
NetworkManager[2655]: <info> (eth0): disconnecting for new activation request.
NetworkManager[2655]: <info> (eth0): device state change: secondaries -> deactivating (reason 'none') [90 110 0]
NetworkManager[2655]: <info> (eth0): device state change: deactivating -> disconnected (reason 'none') [110 30 0]
NetworkManager[2655]: <info> (eth0): deactivating device (reason 'none') [0]
NetworkManager[2655]: <info> (eth0): canceled DHCP transaction, DHCP client pid 11409
NetworkManager[2655]: <info> NetworkManager state is now DISCONNECTED
NetworkManager[2655]: (devices/nm-device.c:6591):nm_device_state_changed: runtime check failed: (priv->in_state_changed == FALSE)
NetworkManager[2655]: <info> (eth0): device state change: disconnected -> failed (reason 'secondary-connection-failed') [30 120 54]
NetworkManager[2655]: <warn> Activation (eth0) failed for connection '<unknown>'
NetworkManager[2655]: <warn> (eth0): add_pending_action (4): 'queued state change to disconnected' already added
NetworkManager[2655]: file devices/nm-device.c: line 7682 (nm_device_add_pending_action): should not be reached
NetworkManager[2655]: <info> Activation (eth0) starting connection 'ethernet-12'
NetworkManager[2655]: <info> Activation (eth0) Stage 1 of 5 (Device Prepare) scheduled...
NetworkManager[2655]: <info> (eth0): device state change: failed -> disconnected (reason 'none') [120 30 0]
NetworkManager[2655]: <info> (eth0): deactivating device (reason 'none') [0]
NetworkManager[2655]: <warn> (eth0): remove_pending_action (2): 'queued state change to disconnected' never added
NetworkManager[2655]: file devices/nm-device.c: line 7733 (nm_device_remove_pending_action): should not be reached
NetworkManager[2655]: <info> VPN service 'openvpn' disappeared

https://bugzilla.redhat.com/show_bug.cgi?id=1055099
https://bugzilla.redhat.com/show_bug.cgi?id=1055101
2014-04-15 12:55:33 +02:00
Dan Winship
7955806a02 ppp-manager: don't use kernel pppoe (rh #1034860, rh #1061641)
The kernel PPPoE code disconnects when it receives a PADT frame, but
doesn't notify userland about it. So if the server sends a PPPoE PADT
without having sent the standard PPP LCP Termination request first,
then pppd (and thus NetworkManager) will not know that the connection
has been disconnected.

This should eventually be fixed in the kernel, but for now, work
around this by using the userland pppoe client rather than the kernel
code.
2014-04-14 10:11:05 -04:00
Dan Winship
ebc5ea0b80 ppp-manager: find pppd at build time, allow overriding
Add --with-pppd, just like --with-dnsmasq.

Also change "ppp" to "pppd" for clarity in a few places.
2014-04-14 10:11:05 -04:00
Dan Winship
3e58107fe0 ppp-manager: trivial: fix tabs/spaces 2014-04-14 10:11:05 -04:00
Dan Winship
b455d6996d ppp-manager: minor GObject boilerplate cleanups
Use constructed() rather than constructor(), and remove
priv->disposed, which isn't needed since dispose() was already
idempotent.
2014-04-14 10:11:05 -04:00
Jiří Klimeš
52dfc777bb Merge changes for connection matching on connection assumption (rh #1083196)
https://bugzilla.redhat.com/show_bug.cgi?id=1083196
2014-04-11 11:45:12 +02:00
Thomas Haller
542832eeb3 dhcp: merge branch 'th/bgo726278_div_refact_dhcp'
https://bugzilla.gnome.org/show_bug.cgi?id=726278

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-11 11:32:40 +02:00
Thomas Haller
0600fa0004 dhcp: refactor state to string conversion
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-11 11:31:34 +02:00
Thomas Haller
2941109d3b dhcp: refactor using named defines for signal names instead of plain string
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-11 11:31:34 +02:00
Thomas Haller
325d89fc85 dhcp: refactor not to pass on NMSettingIP4Config objects
These settings are mostly unused. Do not pass them when starting the client,
instead only pass the argument that is actually used (dhcp_client_id).

This simplifies the code later, when we delay starting of DHCP6 clients --
because there is no need to clone the setting.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-11 11:31:34 +02:00
Thomas Haller
d14ffbdb9c dhcp: refactor dhcp code to use @dhcp_anycast_addr as #GByteArray type
At a later point, we will have to make a copy of @dhcp_anycast_addr to start
the client asynchronously. Although the length of the guint8 array *should*
always be 6 byte (being a MAC address), it's nicer to just pass on the
GByteArray instance instead, which knows how many byte are actually
set.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-11 11:30:57 +02:00
Thomas Haller
e3eb7605be core: merge branch 'th/bgo726525_sort_ip6_addresses'
https://bugzilla.gnome.org/show_bug.cgi?id=726525

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-11 11:17:53 +02:00
Thomas Haller
86f8066177 core: sort IPv6 addresses (add nm_ip6_config_addresses_sort())
Clients such as gnome-control-center or nm-applet show
at some places only one (IPv6) address. They most likely
just pick the first address from the list of addresses,
so we should order them.

Sorting has the advantage to make the order deterministic --
contrary to before where the order depended on run time conditions.

Note, that it might be desirable to show the address that the kernel
will use as source address for new connections. However, this depends
on routing and cannot be easily determined in general. Still, the
ordering tries to account for this and sorts the addresses accordingly.

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

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-11 11:13:06 +02:00
Thomas Haller
65bc042e8f test: make use of new libnm-util/nm-test-utils.h header
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-11 11:09:10 +02:00
Thomas Haller
c65ed2dd6c libnm-util: add private header file nm-test-utils.h
This is intended to contain utility functions for tests. It will
be header only (containing inline functions).

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-04-11 11:09:10 +02:00
Jiří Klimeš
59c0b7258c device-ethernet: add finalize() method 2014-04-11 10:06:16 +02:00
Jiří Klimeš
ff2b655691 tests: improve tests for nm_utils_match_connection() function
nm_utils_match_connection() is the main function used to match connections
when assuming connections on startup.
2014-04-11 10:06:16 +02:00
Jiří Klimeš
7251e4ea22 utils: allow matching connections with no MAC (missing HWADDR) (rh #1083196) 2014-04-11 10:06:08 +02:00
Jiří Klimeš
1301995202 device: add s390 values to connection in update_connection() (rh #1083196) 2014-04-11 09:59:48 +02:00