Commit Graph

25641 Commits

Author SHA1 Message Date
Thomas Haller
20f5d8877b all: merge branch 'af/settings-add-matches'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/431
2020-05-07 00:07:15 +02:00
Thomas Haller
5beb42b942 device: style fixes 2020-05-06 17:10:31 +02:00
Thomas Haller
bdd0e89b9a device: handle match.driver also with unknown device driver
If the driver is unknown, that doesn't necessarily mean that the match
passes. Instead, the match passes if there is no positive match that
asks for the driver name.
2020-05-06 16:20:11 +02:00
Thomas Haller
623cf7c9a3 core: accept %NULL argument to nm_wildcard_match_check()
%NULL means that the string is unknown. The pattern should still match
if there are no positive matches that want to match against the string.

For example, the nm_device_get_driver() might return NULL. If we have
a match.driver setting, we still need to handle that somehow that it
makes sense.
2020-05-06 16:14:16 +02:00
Thomas Haller
ace437338d ifcfg-rh: minor cleanup of make_match_setting() 2020-05-06 16:01:13 +02:00
Thomas Haller
cf546ee789 ifcfg-rh: refactor write_match_setting()
- write_match_setting() never fails. Don't let it return a boolean
  error result.

- drop "if (!name || !name[0])" checks. It's not possibly to configure
  a name %NULL in NMSettingMatch (without triggering assertions). Also,
  an empty name "" is not valid, so we wouldn't expect it. There is one
  problem with the way how we concatenate the string list: it uses
  spaces as separator, while stripping spaces. That means, in the
  currenty format, an empty token "" cannot be expressed. On the other
  hand, serializing it would lead to duplicate spaces, that get dropped
  during re-read. So the empty name wasn't valid from the start, but it
  also cannot be encoded.

- use nm_gstring_add_space_delimiter() and nm_gstring_prepare().
2020-05-06 15:58:43 +02:00
Thomas Haller
8bb172ee2b cli: use default implementation of getter for NMSettingMatch properties
The default implementation should be good enough. Use it.
2020-05-06 15:44:29 +02:00
Thomas Haller
0ba444a084 libnm: allocate device and kernel_command_line arrays in NMSettingMatch lazy 2020-05-06 15:39:14 +02:00
Thomas Haller
7939c8e770 libnm: allocate interface_name array in NMSettingMatch lazy
Also track the interface_name in a GArray so that
nm_setting_match_get_interface_names() returns a NULL
terminated strv array.
2020-05-06 15:39:08 +02:00
Thomas Haller
5056e0d3c8 shared: add nm_strvarray_*() helper API
GPtrArray does not support NULL terminating the pointer array. That
makes it cumbersome to use it for tracking a strv array. Add a few
helper functions nm_strvarray_*() that help using a GArray instead.
2020-05-06 15:19:27 +02:00
Thomas Haller
8dd74fe364 shared: add nm_indirect_g_free() helper 2020-05-06 15:19:25 +02:00
Thomas Haller
070535c6f6 shared: add nm_g_array_len() helper 2020-05-06 15:19:24 +02:00
Thomas Haller
46bee5298b shared: add nm_g_ptr_array_len() helper 2020-05-06 15:19:23 +02:00
Thomas Haller
ef16dcaee4 libnm: cleanup NMSettingMatch.verify() 2020-05-06 15:19:22 +02:00
Thomas Haller
eaf3862075 libnm: fix gtk-doc annotations for nm_setting_match_get_{kernel_command_lines,drivers}()
Otherwise the function is not usable via generated bindings.
2020-05-06 15:07:09 +02:00
Thomas Haller
fa0913b5d2 libnm: sort entires in libnm.ver 2020-05-06 15:05:21 +02:00
Adrian Freihofer
369d858525 ifcfg-rh: support new match filters 2020-05-06 15:05:21 +02:00
Adrian Freihofer
d8a7f65ef4 ifcfg-rh-reader: match refactoring 2020-05-06 15:05:21 +02:00
Adrian Freihofer
e8885db046 po add libnm-core/nm-setting-match.c 2020-05-06 15:05:21 +02:00
Adrian Freihofer
214b31dcbc settings: add match for driver
Add a new "driver" match option to nm-settings. It allows to disable a
network connection configuration if a pattern is found or is not found
in the device driver name.
2020-05-06 15:05:21 +02:00
Adrian Freihofer
3a8e46f2a5 settings: add match for proc cmdline
Add a new "kernel-command-line" match option to nm-settings. It allows
to disable a network connection configuration if a pattern is found or
is not found in /proc/cmdline.
2020-05-06 15:05:20 +02:00
Adrian Freihofer
b42c3aa97a settings: add match verify function 2020-05-06 15:05:20 +02:00
Thomas Haller
180cda7632 libnm: fix gtk-doc annotations for nm_setting_match_get_interface_names()
Otherwise the function is not usable via generated bindings.

Fixes: 9b9dce9486 ('all: add 'match' setting')
2020-05-06 15:01:06 +02:00
Thomas Haller
fdba9200c0 device: avoid coverity warning about unused variable
This warning is from coverity against 1.18.6. But it applies
in a similar manner here.

  1. NetworkManager-1.18.6/src/devices/nm-device-macsec.c:811:25: warning: Value stored to 'priv' during its initialization is never read
  #         NMDeviceMacsecPrivate *priv = NM_DEVICE_MACSEC_GET_PRIVATE (self);
  #                                ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4. NetworkManager-1.18.6/src/devices/nm-device-macsec.c:811:25: note: Value stored to 'priv' during its initialization is never read
  #         NMDeviceMacsecPrivate *priv = NM_DEVICE_MACSEC_GET_PRIVATE (self);
  #                                ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  #   809|   {
  #   810|   	NMDeviceMacsec *self = NM_DEVICE_MACSEC (object);
  #   811|-> 	NMDeviceMacsecPrivate *priv = NM_DEVICE_MACSEC_GET_PRIVATE (self);
  #   812|
  #   813|   	macsec_secrets_cancel (self);
2020-05-06 11:50:15 +02:00
Yuri Chornoivan
9a7a66b7b2 po: update Ukrainian (uk) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/493
2020-05-06 11:00:15 +02:00
Beniamino Galvani
5ca44bc780 initrd: merge branch 'bg/initrd-hostname'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/419
2020-05-06 10:34:03 +02:00
Beniamino Galvani
2035353dab man: initrd: describe differences from network-legacy module 2020-05-06 10:33:42 +02:00
Beniamino Galvani
fbf54ab182 initrd: parse 'rd.net.timeout.dhcp' option 2020-05-06 10:32:25 +02:00
Beniamino Galvani
93d7a9b005 initrd: parse rd.peerdns early
Instead of generating connections and then apply the rd.peerdns to
them, parse the option early and set it when each connection is
created.
2020-05-06 10:32:25 +02:00
Beniamino Galvani
ff70adf873 initrd: save hostname to a file in /run
Save the hostname read from command line to a file in /run so that it
can be applied later by the NM dracut module.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/419
2020-05-06 10:32:25 +02:00
Beniamino Galvani
f14cc584d5 initrd: add command line option to specify initrd data directory 2020-05-06 10:32:25 +02:00
Thomas Haller
05fd2a9272 device: fix scope of variable in commit_option() 2020-05-04 18:01:38 +02:00
Antonio Cardace
4a293844b8 bridge: merge branch 'ac/bridge_options_2'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/473
2020-05-04 17:33:26 +02:00
Antonio Cardace
05d9381060 nm-setting-bridge: add 'multicast-startup-query-interval' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
2020-05-04 17:33:01 +02:00
Antonio Cardace
abe660f780 nm-setting-bridge: add 'multicast-startup-query-count' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
2020-05-04 17:33:00 +02:00
Antonio Cardace
62facc59e8 nm-setting-bridge: add 'multicast-query-response-interval' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
2020-05-04 17:33:00 +02:00
Antonio Cardace
9842c55503 nm-setting-bridge: add 'multicast-query-interval' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
2020-05-04 17:33:00 +02:00
Antonio Cardace
b9b9a95395 nm-setting-bridge: add 'multicast-querier-interval' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
2020-05-04 17:33:00 +02:00
Antonio Cardace
c1bc1570f3 nm-setting-bridge: add 'multicast-membership-interval' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
2020-05-04 17:33:00 +02:00
Antonio Cardace
1c437090ff nm-setting-bridge: add 'multicast-last-member-interval' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
2020-05-04 17:33:00 +02:00
Antonio Cardace
c49f20887a nm-setting-bridge: add 'multicast-last-member-count' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
2020-05-04 17:33:00 +02:00
Antonio Cardace
673d51bd5c nm-setting-bridge: add 'multicast-hash-max' bridge option
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
2020-05-04 17:32:59 +02:00
Antonio Cardace
8e945c8967 nm-setting-bridge: add missing 'Since: X.Y' comments to options
https://bugzilla.redhat.com/show_bug.cgi?id=1755768
2020-05-04 17:32:52 +02:00
Yuri Chornoivan
fd7136d80f po: update Ukrainian (uk) translation
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/489
2020-05-04 14:47:46 +02:00
Beniamino Galvani
211eb3ff8a platform: fix test failure when /proc is mounted read-only
Expect a failure when writing to /proc if the file system is mounted
read-only.
2020-05-04 13:59:18 +02:00
Thomas Haller
2f749963fb keyfile: merge branch 'th/keyfile-cleanup-accessors'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/483
2020-05-04 13:14:59 +02:00
Thomas Haller
3ebfb67df4 keyfile: implement nm_keyfile_plugin_kf_get_string_list() directly without macro
There is only one user of the macro left. Drop it.
2020-05-04 13:12:43 +02:00
Thomas Haller
dade5055fb keyfile: add nm_keyfile_plugin_kf_get_integer_list_uint() to parse a list of integers
We had three callers of nm_keyfile_plugin_kf_get_integer_list(). Two
only wanted to read values in range of guint8. One, wanted to read
unsigned integers (for which nm_keyfile_plugin_kf_get_integer_list()
was not suitable).

Instead, implement a integer list reader ourself.

One change is that g_key_file_get_integer_list() would accept list elements
with a number followed by a white space and garbage ([1]). We don't do that,
so there is a change in behavior here. That seems preferable, we don't
want to accept garbage.

The error reason text from the reader now also changes, and obviously we
no longer fail for integer values larger than G_MAXINT.

[1] c9bf247eb9/glib/gkeyfile.c (L4445)
2020-05-04 13:12:43 +02:00
Thomas Haller
bbdb47adaf keyfile: implement nm_keyfile_plugin_kf_set_string_list() directly without macro
There is only one user of the macro left. Drop it.
2020-05-04 13:12:43 +02:00
Thomas Haller
93285a465f keyfile: refactor writing of G_TYPE_ARRAY list of unsigned integers
Keyfile handles GObject properties of type G_TYPE_ARRAY as a GArray
of unsigned ints. That is correct, because all our properties of this
GType happen to be of this kind.

However, then the function was using nm_keyfile_plugin_kf_set_integer_list(),
which only can handle signed integers. There was thus an assertion that all
integers were non-negative. Which, probably was also correct, because NMSettingDcb
would validate that all values of such kind are in fact positive. Anyway, that
is an unexpected limitation (if not a bug).

Fix that by handling the array as unsigned list of integers.

Also, since glib doesn't provide an API for storing lists of unsigend
integers, we have to implement our own. but that is no loss. We probably
do it better anyway.
2020-05-04 12:47:11 +02:00