Commit Graph

13873 Commits

Author SHA1 Message Date
Pavel Šimerda
fd41c989d5 platform: fix software device handling when announcing links
The handling for announcing links was broken resulting in
duplicate link-added signals from platform.

Co-Authored-By: Thomas Haller <thaller@redhat.com>
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:57 +02:00
Pavel Šimerda
f008c9fbea platform/test: fix fake platform to emit signals synchronously (analog to Linux platform)
When adding a link, the Linux platform implementation raises the
link-changed signal synchronously. Fix the fake platform to behave identically
and also fix all the tests.

This also fixes the Linux platform tests for the most part because now the
test functions (and fake platform) behave like the Linux system
implementation.

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

Co-Authored-By: Thomas Haller <thaller@redhat.com>
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:57 +02:00
Pavel Šimerda
accd10b501 platform/test: disable bonding tests if no bonding module is available
Co-Authored-By: Thomas Haller <thaller@redhat.com>
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:57 +02:00
Thomas Haller
79a99613c2 platform/test: use nm-test-utils.h in test-common
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:57 +02:00
Thomas Haller
66e2e932b5 platform: add nm_platform_link_get()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:57 +02:00
Thomas Haller
ed868a388b core: add compatibility wrapper for g_test_skip() to nm-glib-compat.h
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:57 +02:00
Thomas Haller
284ef00d16 nmtst: call nm_utils_init() in nmtst_init()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:57 +02:00
Thomas Haller
5d3bef5d3f nmtst: add nmtst_spawn_sync()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:57 +02:00
Thomas Haller
7a7dd9203d nmtst: add nmtst_reexec_sudo() function
Interpret environment variable NMTST_DEBUG which allows
to specify 'sudo-cmd=CMD'. If the test program calls
nmtst_reexec_sudo(), it will `exec CMD "$0" "$@"`.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:57 +02:00
Thomas Haller
9df3a23d26 nmtst: add nmtst_free()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:57 +02:00
Thomas Haller
8af001eae4 nmtst: combine files nm-test-helpers.h and nm-test-utils.h
Move the content of nm-test-helpers.h to nm-test-utils.h
which completly replaces the older file.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
0e9cd4f6fc nmtst: add functions nmtst_platform_ip[46]_routes_equal
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
be56b26c7d nmtst: add functions nmtst_static_SIZE_NUM() to create a copy of a string returned from an internal buffer
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
5a58afcec9 nmtst: add nmtst_is_debug() and interpret environment NMTST_DEBUG
Also enable "DEBUG" logging conditionally depending on is_debug().

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
64d09e5afe nmtst: add nmtst_initialized()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
86693d2378 nmtst: add parameter to nmtst_init to setup nm-logging
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
17c300b816 nmtst: include missing header file glib-object.h
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
d29cd00d2b nmtst: return const address from nmtst_inet6_from_string()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
237ee05887 nmtst: make all test functions "inline static"
'inline' is needed to avoid compiler warnings about unused
functions.
Marking them only as 'inline' was simply wrong and leads to
linker errors when including the header in different translation
units.

By making them "inline static" we also don't need to foward declare the
function prototype to avoid another compiler warning.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
a268b825d7 nmtst: move header file to include/ directory
https://bugzilla.gnome.org/show_bug.cgi?id=706293

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
d2ac129d65 nmtst: g_type_init() has been deprecated in GLib 2.35.0
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:56 +02:00
Thomas Haller
cb023c57a7 platform: improve logging on error in delete_object()
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:55 +02:00
Thomas Haller
a895b58484 platform: don't log error for delete_object() if IPv6 address doesn't exist
This causes root platform tests to fail on rhel-7

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-05 18:12:55 +02:00
Jiří Klimeš
8b41e6e2ea libnm-glib: fix double unref() when object creation fails 2014-06-05 18:11:29 +02:00
Thomas Haller
f53a35e030 Merge branch 'th/bgo728791_vpn_SetConfig'
https://bugzilla.gnome.org/show_bug.cgi?id=728791

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 20:36:17 +02:00
Thomas Haller
0abe095f5d vpn: cleanup receiving VPN parameters and check for GValue types
https://bugzilla.gnome.org/show_bug.cgi?id=728791

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 20:30:45 +02:00
Thomas Haller
41ced630fb libnm-glib: fix resetting IP config during additional SetConfig() calls
When receiving updated VPN IP configuration from the helper after the
initial connect event, the library overwrites the already initialized
GValue fields by calling g_value_init() again. This is an error and causes
the following warning:

   (nm-openvpn-service:27645): GLib-GObject-WARNING **: gvalue.c:183: cannot initialize GValue with type gchararray, the value has already been initialized as gchararray

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 20:17:22 +02:00
Dan Winship
53857a3ef7 core: add debug logging to nm_utils_match_connection()
Related: rh#1086237
2014-06-04 11:24:05 -04:00
Dan Winship
d47b749a75 libnm-utils: remove INFERRABLE flag from properties we don't actually infer
ipv4.never-default, ipv4.may-fail, and ipv6.privacy were marked
INFERRABLE, but NMIP4Config / NMIP6Config didn't actually infer them,
so they could cause connections to not match themselves after a
restart.

(Found while debugging https://bugzilla.redhat.com/show_bug.cgi?id=1086237,
though this is not actually the problem there.)

Related: rh#1086237
2014-06-04 11:23:54 -04:00
Thomas Haller
43e4b1b6f7 firewall: merge branch 'th/rh1103782_firewall_zone_conflict'
https://bugzilla.redhat.com/show_bug.cgi?id=1103782

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 15:07:13 +02:00
Thomas Haller
c29388bf02 firewall: fix ZONE_CONFLICT when adding firewall interface to zone
Firewalld call addInterface() fails with ZONE_CONFLICT if the interface
is already part of another zone. This complicates the code in NM,
because we would have to keep better track of the zone in which the
interface currently is. Which might be quite difficult because
the zone might be changed from an external program (so we would have
to monitor the firewall configuration and work around potential races).

A better and simpler fix is to simply always use the changeZone() call.
This will do the right thing, regardless if the interface is already part
of a zone or not.

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

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 14:54:11 +02:00
Thomas Haller
c598336de8 firewall: fix ZONE_CONFLICT when removing interface from zone
The firewalld removeInterface call fails with ZONE_CONFLICT when
removing an interface from a wrong zone. This can happen, when the
connection gets modified, while being active (which is related to
bgo#724041).

By not specifying any zone, we remove the interface from the zone
where it currently is added. This behavior was introduced in upstream
firewalld with commit cc3101ab70a3997228be7bc9f45a069c7fccfa36, March 2012,
r0_2_3-1.
This is the behavior we actually want and we don't have to keep proper track
of the current zone.

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

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 14:54:11 +02:00
Thomas Haller
3bc38ad531 firewall: extend logging to show id for async dbus calls in NMFirewallManager
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 14:54:09 +02:00
Thomas Haller
e3605ab924 firewall: refactor allocation of CBInfo data in NMFirewallManager
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 14:45:08 +02:00
Thomas Haller
dde731f0ad firewall: refactor reentrancy for dispose() in NMFirewallManager
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 14:45:08 +02:00
Thomas Haller
69dc3f96c5 contrib/build: require readline library for nmcli in NetworkManager.spec
This is needed since commit 13b10607d4.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 12:05:03 +02:00
Thomas Haller
3b3e33f8ec core/logging: initialize level_names array with explicit array initilizer (trivial)
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 10:37:50 +02:00
Thomas Haller
6b5fb892e1 core/logging: when comparing glib log levels, ignore non-level flags
Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-06-04 10:37:50 +02:00
Jiří Klimeš
13b10607d4 Merge changes for readline support in nmcli (bgo #729846)
libreadline is now a build-time dependency.
We now use it throughout nmcli when asking for user input, not only in the
editor. That brings a better experience especially of 'nmcli --ask con add'
and also allows TAB completion usage.

https://bugzilla.gnome.org/show_bug.cgi?id=729846
https://bugzilla.redhat.com/show_bug.cgi?id=1007365
2014-06-04 10:11:12 +02:00
Jiří Klimeš
82db87a144 cli: use readline for quit confirmation in editor, and accept localized answer 2014-06-04 09:47:37 +02:00
Jiří Klimeš
00c700bf2c cli: implement TAB completion for connection and interface names
For commands like
nmcli -a dev disconnect
nmcli -a con up
...
2014-06-04 09:47:37 +02:00
Jiří Klimeš
bfb1200b4f cli: implement TAB completion for inputs in questionnaire mode
and also
- accept yes/no options as localized strings
- simplify some questionnaire code
2014-06-04 09:47:37 +02:00
Jiří Klimeš
480f69e23f cli: use readline also in other commands (besides interactive editor)
It is used for '--ask' option. The main use is for questionnaires
(nmcli -a con add).
2014-06-04 09:47:37 +02:00
Jiří Klimeš
b71af5b144 cli: make prompt argument a printf-like format string, remove history argument
for nmc_readline()
2014-06-04 09:47:37 +02:00
Jiří Klimeš
a3d89d65c4 cli: move readline related functions to common.h to be usable throughout nmcli
Renames
readline_x() to nmc_readline()
gen_func_basic() to nmc_rl_gen_func_basic()

The commit doesn't change functionality, only moves and renames the functions,
so that they can be used in other places too.
2014-06-04 09:47:37 +02:00
Jiří Klimeš
03be41d409 cli/build: make libreadline a build-time dependency (bgo #729846)
and link nmcli against it.

This simplifies code, makes sure that line editing capability is supported,
and will allow using readline on other places too.

https://bugzilla.gnome.org/show_bug.cgi?id=729846
https://bugzilla.redhat.com/show_bug.cgi?id=1007365
2014-06-04 09:47:37 +02:00
Jiří Klimeš
fd93fb9fb9 cli: don't leak 'str' returned by g_strdup_vprintf() 2014-06-04 08:55:35 +02:00
Jiří Klimeš
7a79a78a1b Merge tui fixes for IPv6 routes and MAC address (bgo #731160)
- fixes crash when editing IPv6 routes
- fixes editing of Cloned MAC address
2014-06-03 16:13:28 +02:00
Dan Winship
d57795d474 tui: fix NmtMacEntry validation/display
NmtMacEntry would allow you to input 1 character more than it should
have. Fix that.

Also, the code to insert ":"s automatically was bumping against some
weirdness in NmtNewtEntry that made it so that the ":" didn't get
displayed until you typed one more character after the one where it
got inserted. Hack around that by manually requesting a redraw.

https://bugzilla.gnome.org/show_bug.cgi?id=731160
2014-06-03 16:06:35 +02:00
Dan Winship
5ee85fe46e tui: fix setting Clone MAC Address properties
NmtMacEntry wasn't notifying its mac-address property when it changed,
so the change never got saved to the NMSetting.

https://bugzilla.gnome.org/show_bug.cgi?id=731160
2014-06-03 16:06:35 +02:00