Commit Graph

246 Commits

Author SHA1 Message Date
Thomas Haller
0cb1c20f93 cli: first validate all values in _set_fcn_multilist() before modifying the setting 2019-03-25 09:12:32 +01:00
Thomas Haller
b63620e67c cli: implement DNS property as multilist type 2019-03-25 09:12:32 +01:00
Thomas Haller
d9c8794338 cli: support validating multilist entries for remove-by-value 2019-03-25 09:12:32 +01:00
Thomas Haller
0bf55f097e cli: implement DNS option property as multilist type 2019-03-25 09:12:32 +01:00
Thomas Haller
3d1206e878 cli: make get_with_default property-type-data generally available
A property-info can only have one property-typ-data. That means,
all functions (get_fcn(), set_fcn()) need to either take not
property-typ-data, or they must all accept the same.

That made it hard to mix _get_fcn_nmc_with_default() with setters
that do require a certain property-typ-data. Instead, move the
is_default_func() to the general portion, and let _get_fcn_gobject()
handle it.
2019-03-25 09:12:32 +01:00
Thomas Haller
180925ff0c cli: implement DNS search property as multilist type 2019-03-25 09:12:32 +01:00
Thomas Haller
89cc1d1822 cli: add property type for 802-1x certificate properties (pt5) 2019-03-25 09:12:32 +01:00
Thomas Haller
8aa19e3f2c cli: add property type for 802-1x certificate properties (pt4) 2019-03-25 09:12:32 +01:00
Thomas Haller
fe390556ab cli: add property type for 802-1x certificate properties (pt3) 2019-03-25 09:12:32 +01:00
Thomas Haller
99711579ed cli: add property type for 802-1x certificate properties (pt2) 2019-03-25 09:12:32 +01:00
Thomas Haller
df0d5f8dee cli: add property type for 802-1x certificate properties (pt1) 2019-03-25 09:12:32 +01:00
Thomas Haller
cc2971a3d3 cli: merge mac_address_blacklist setters 2019-03-25 09:12:32 +01:00
Thomas Haller
c91e201689 cli: implement NM_SETTING_WIRED_S390_OPTIONS with the optionlist setter 2019-03-25 09:12:32 +01:00
Thomas Haller
0700815d63 cli: implement NM_SETTING_VPN_SECRETS with the optionlist setter 2019-03-25 09:12:32 +01:00
Thomas Haller
e58ec47d1b cli: implement NM_SETTING_VPN_DATA with the optionlist setter 2019-03-25 09:12:32 +01:00
Thomas Haller
bcee2d7cc9 cli: add optionlist setter for bond options 2019-03-25 09:12:32 +01:00
Thomas Haller
1b0ee63a18 cli: remove DEFINE_REMOVER_OPTION() macro
Instead of having a trivial macro that defines a function, define the
function directly.

Having such a macro would make sense if DEFINE_REMOVER_OPTION() would do
the right thing and we would reuse the (preferred) implementation.
That's not the case, because these remove_fcn() implementations don't
mirror the way how set_fcn() splits and sets options. They are
inconsistent (wrong), and should will later get merged with set_fcn().
2019-03-25 09:12:32 +01:00
Thomas Haller
8e7b23e11a cli: merge IPv4 and IPv6 implementation for NMSettingIPConfig (pt8) 2019-03-25 09:12:32 +01:00
Thomas Haller
0f3252e0da cli: merge IPv4 and IPv6 implementation for NMSettingIPConfig (pt7) 2019-03-25 09:12:32 +01:00
Thomas Haller
cecf110f63 cli: merge IPv4 and IPv6 implementation for NMSettingIPConfig (pt6) 2019-03-25 09:12:32 +01:00
Thomas Haller
9c83bf5593 cli: merge IPv4 and IPv6 implementation for NMSettingIPConfig (pt5) 2019-03-25 09:12:32 +01:00
Thomas Haller
46eb783fcd cli: merge IPv4 and IPv6 implementation for NMSettingIPConfig (pt4) 2019-03-25 09:12:32 +01:00
Thomas Haller
574f1cf1a4 cli: merge IPv4 and IPv6 implementation for NMSettingIPConfig (pt3) 2019-03-25 09:12:32 +01:00
Thomas Haller
9876c334f4 cli: merge IPv4 and IPv6 implementation for NMSettingIPConfig (pt2) 2019-03-25 09:12:32 +01:00
Thomas Haller
4f0a629c1e cli: merge IPv4 and IPv6 implementation for NMSettingIPConfig (pt1) 2019-03-25 09:12:32 +01:00
Thomas Haller
05080816f0 cli/dcb: merge DCB uint setters 2019-03-25 09:12:32 +01:00
Thomas Haller
1fa1b01546 cli/dcb: rework DCB uint getters 2019-03-25 09:12:32 +01:00
Thomas Haller
ca38ce95ee cli/dcb: merge handling NM_SETTING_DCB_PRIORITY_FLOW_CONTROL and NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH 2019-03-25 09:12:32 +01:00
Thomas Haller
fa4ed3ac0d cli/dcb: merge getter for dcb flags 2019-03-25 09:12:32 +01:00
Thomas Haller
d1016cfade cli/trivial: drop unused macro 2019-03-25 09:12:32 +01:00
Thomas Haller
da4648d48f cli: implement DEFINE_SETTER_STR_LIST() as _pt_multilist type 2019-03-25 09:12:32 +01:00
Thomas Haller
74f922b64f cli: implement str-list-multi properties as property type and not via macros
Instead of using a macro to define the individual set/remove functions,
add a new property type _pt_multilist.

This way, we have more the concept of a property having a type, instead
of a property having a set of handlers how to implement something.

Also, this is only the first step. There are several similar properties
that also can be implemented as the same type.
2019-03-25 09:12:32 +01:00
Thomas Haller
03502cf5bf cli/trivial: add code comment about nmc_value_transforms_register() 2019-03-25 09:12:32 +01:00
Thomas Haller
3c82db710f cli: reset default value of properties via set_fcn()
The property implementation must itself decide how to reset a value.
We must not rely on properties being plain GObject properties.

Let set_fcn() accept %NULL value to indicate resetting the default.
2019-03-25 09:12:32 +01:00
Thomas Haller
20afdeb19a cli: let DEFINE_REMOVER_INDEX_OR_VALUE_DIRECT handle static value list
Previously we had DEFINE_REMOVER_INDEX_OR_VALUE_DIRECT() and
DEFINE_REMOVER_INDEX_OR_VALUE_VALIDATING_STATIC().

Note that all property-infos of DEFINE_REMOVER_INDEX_OR_VALUE_VALIDATING_STATIC()
would also define values_static list, while DEFINE_REMOVER_INDEX_OR_VALUE_DIRECT()
would not.

Merge the two macros. The property-info should define how the
implementation behaves, we should not have two implementations.
2019-03-25 09:12:32 +01:00
Thomas Haller
f933fb3cfb cli: validate remove_fcn() for NM_SETTING_802_1X_EAP against allowed values
set_fcn() of NM_SETTING_802_1X_EAP is implemented via
DEFINE_SETTER_STR_LIST_MULTI() -- thus, considering valid values
from the static list.

The remove_fcn() should do that too, to be consistent.
2019-03-25 09:12:32 +01:00
Thomas Haller
18c22443f3 cli: reuse property info in DEFINE_REMOVER_INDEX_OR_VALUE_VALIDATING_STATIC()
The property-info already tracks the "values_static" list. No need to pass
it on redundantly.
2019-03-25 09:12:32 +01:00
Thomas Haller
10aa2fafab cli: directly define setter function via DEFINE_SETTER_STR_LIST_MULTI()
We don't need DEFINE_SETTER_STR_LIST_MULTI() to define a static function
that is called by the set_fcn() implementation. Instead, let the macro
define the actual set_fcn() function.
2019-03-25 09:12:32 +01:00
Thomas Haller
70c99d176b cli: merge property implementations for vlan.ingress-priority-map and egress-priority-map 2019-03-25 09:12:32 +01:00
Thomas Haller
67b64ce868 cli: minor cleanup parsing dcb priorities 2019-03-25 09:12:32 +01:00
Thomas Haller
d8043664eb cli: use cleanup attributes in "nm-meta-setting-desc.c" 2019-03-25 09:12:32 +01:00
Thomas Haller
2b20b13e27 cli: don't use bogus error domains for GError 2019-03-25 09:12:32 +01:00
Thomas Haller
2bc29453bd cli: avoid unnecessary string clones for stripping whitespace for property values 2019-03-25 09:12:32 +01:00
Thomas Haller
cb5a81399a cli: don't interpret value as index too early for nmc_setting_remove_property_option()
Not all implementations support having the value being an index.
For example, the implementations that are done via DEFINE_REMOVER_OPTION() macro.

The meaning of the "value" string must not be determined by
nmc_setting_remove_property_option(). It's up to the implementation
to decide whether to allow an index and how to interpret it.
2019-03-25 09:12:32 +01:00
Thomas Haller
d3cfe20598 cli: support removing multiple vlan ingress/egress priority mappings
$ nmcli connection add type vlan autoconnect no con-name v dev vlan.1 id 1
    $ nmcli connection modify v +vlan.ingress-priority-map 1:2,2:3
    $ nmcli connection modify v +vlan.ingress-priority-map 2:3,4:5
    $ nmcli connection modify v -vlan.ingress-priority-map 1:2,4:5
    Warning: only one mapping at a time is supported; taking the first one (1:2)
2019-03-25 09:12:32 +01:00
Thomas Haller
626aed64e7 cli: don't fail removing non-existing option (pt6)
Part 6, which addresses the issue for VLAN priority maps.
2019-03-25 09:12:32 +01:00
Thomas Haller
eff01cd256 cli: don't fail removing non-existing option (pt5)
Part 5, which addresses the issue for DEFINE_REMOVER_OPTION(),
which are simple properties.
2019-03-25 09:12:32 +01:00
Thomas Haller
6baaa20763 cli: don't fail removing non-existing option (pt4)
Part 4, which addresses the issue for properties that have
complex values.
2019-03-25 09:12:32 +01:00
Thomas Haller
936912cad0 cli: don't fail removing non-existing option (pt3)
Part 3, which addresses the issue for properties that have
a simple validation function.
2019-03-25 09:12:32 +01:00
Thomas Haller
83fb6bcb42 cli: don't fail removing non-existing option (pt2)
Part 2, which addresses the issue for properties with a static
list of valid values.
2019-03-25 09:12:32 +01:00