[float-divide-by-zero] src:*/sc/source/core/tool/interpr1.cxx src:*/sc/source/core/tool/interpr2.cxx src:*/scaddins/source/analysis/analysis.cxx src:*/scaddins/source/analysis/financial.cxx [signed-integer-overflow] src:*/boost/boost/rational.hpp src:*/include/tools/gen.hxx src:*/tools/source/generic/gen.cxx [vptr] fun:_ZN4cppu14throwExceptionERKN3com3sun4star3uno3AnyE src:*/include/com/sun/star/uno/Reference.hxx _dummy' type='application/atom+xml'/>
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-05-10 15:11:57 +0200
committerThomas Haller <thaller@redhat.com>2017-11-13 14:12:12 +0100
commit75e79b2976f39e894c9395dc0b5acec68a3fc0af (patch)
tree6fa68fa62ad6e1c71df5f10d25745633c36c48e5
parent1193fb1b08fe45ce8713220132184581c4669362 (diff)
parent1e02ee4dc02cc7daf8acd4ba093f91b4cde8e2bb (diff)
release: bump version to 1.11.1-dev after 1.10.0 release1.11.1-dev
After 1.10.0 is released, merge it back into master so that 1.10.0 is part of the history of master. That means, $ git log --first-parent master will also traverse 1.10.0 and 1.10-rc*. Also bump the micro version to 1.11.1-dev to indicate that this is after 1.10.0 is out.
-rw-r--r--.gitignore3
-rw-r--r--.travis.yml2
-rw-r--r--Makefile.am31
-rw-r--r--Makefile.examples2
-rw-r--r--clients/common/nm-client-utils.c4
-rw-r--r--clients/common/nm-meta-setting-desc.c226
-rw-r--r--clients/common/settings-docs.c.in19
-rw-r--r--configure.ac40
-rwxr-xr-xexamples/js/get_ips.js184
-rw-r--r--examples/python/gi/checkpoint.py130
-rwxr-xr-xexamples/python/gi/vpn-import.py74
-rw-r--r--introspection/org.freedesktop.NetworkManager.xml7
-rw-r--r--libnm-core/nm-core-internal.h15
-rw-r--r--libnm-core/nm-dbus-interface.h3
-rw-r--r--libnm-core/nm-setting-ip-config.c1
-rw-r--r--libnm-core/nm-setting-ip-config.h1
-rw-r--r--libnm-core/nm-setting-team-port.c248
-rw-r--r--libnm-core/nm-setting-team-port.h18
-rw-r--r--libnm-core/nm-setting-team.c822
-rw-r--r--libnm-core/nm-setting-team.h77
-rw-r--r--libnm-core/nm-utils-private.h90
-rw-r--r--libnm-core/nm-utils.c326
-rw-r--r--libnm-core/nm-version.h14
-rw-r--r--libnm/fake-typelib/NMClient.gir9
-rw-r--r--libnm/fake-typelib/NetworkManager.gir10
-rw-r--r--libnm/fake-typelib/typelibs.gresource.xml7
-rw-r--r--libnm/libnm.ver38
-rw-r--r--libnm/nm-checkpoint.c219
-rw-r--r--libnm/nm-checkpoint.h53
-rw-r--r--libnm/nm-client.c312
-rw-r--r--libnm/nm-client.h39
-rw-r--r--libnm/nm-libnm-utils.c82
-rw-r--r--libnm/nm-manager.c335
-rw-r--r--libnm/nm-manager.h31
-rw-r--r--libnm/nm-types.h1
-rw-r--r--po/ar.po3868
-rw-r--r--po/as.po3926
-rw-r--r--po/be@latin.po3850
-rw-r--r--po/bg.po3975
-rw-r--r--po/bn_IN.po3937
-rw-r--r--po/bs.po3866
-rw-r--r--po/ca.po3940
-rw-r--r--po/cs.po3952
-rw-r--r--po/da.po3957
-rw-r--r--po/de.po3219
-rw-r--r--po/dz.po3872
-rw-r--r--po/el.po3935
-rw-r--r--po/en_CA.po3910
-rw-r--r--po/en_GB.po3935
-rw-r--r--po/eo.po3913
-rw-r--r--po/es.po3992
-rw-r--r--po/et.po3856
-rw-r--r--po/eu.po3950
-rw-r--r--po/fi.po3933
-rw-r--r--po/fr.po4020
-rw-r--r--po/gd.po3912
-rw-r--r--po/gl.po3920
-rw-r--r--po/gu.po3927
-rw-r--r--po/he.po3849
-rw-r--r--po/hi.po3926
-rw-r--r--po/hr.po3947
-rw-r--r--po/hu.po3934
-rw-r--r--po/id.po3930
-rw-r--r--po/it.po3941
-rw-r--r--po/ja.po3908
-rw-r--r--po/ka.po3901
-rw-r--r--po/kn.po3934
-rw-r--r--po/ko.po3926
-rw-r--r--po/ku.po3898
-rw-r--r--po/lt.po3929
-rw-r--r--po/lv.po3895
-rw-r--r--po/mk.po3850
-rw-r--r--po/ml.po3926
-rw-r--r--po/mr.po3922
-rw-r--r--po/nb.po3853
-rw-r--r--po/ne.po3868
-rw-r--r--po/nl.po3857
-rw-r--r--po/oc.po3902
-rw-r--r--po/or.po3923
-rw-r--r--po/pa.po3925
-rw-r--r--po/pl.po2187
-rw-r--r--po/pt.po3870
-rw-r--r--po/pt_BR.po3933
-rw-r--r--po/ru.po3936
-rw-r--r--po/rw.po3877
-rw-r--r--po/sk.po3896
-rw-r--r--po/sl.po3930
-rw-r--r--po/sq.po3861
-rw-r--r--po/sr.po3975
-rw-r--r--po/sr@latin.po3975
-rw-r--r--po/sv.po9
-rw-r--r--po/ta.po3936
-rw-r--r--po/te.po3925
-rw-r--r--po/th.po3901
-rw-r--r--po/tr.po3939
-rw-r--r--po/uk.po1219
-rw-r--r--po/vi.po3855
-rw-r--r--po/wa.po3869
-rw-r--r--po/zh_CN.po3918
-rw-r--r--po/zh_HK.po3905
-rw-r--r--po/zh_TW.po3922
-rw-r--r--shared/nm-utils/nm-jansson.h76
-rw-r--r--shared/nm-utils/nm-macros-internal.h168
-rw-r--r--shared/nm-utils/nm-shared-utils.c2
-rw-r--r--shared/nm-utils/nm-shared-utils.h47
-rw-r--r--shared/nm-version-macros.h.in5
-rw-r--r--src/devices/nm-device-vlan.c6
-rw-r--r--src/devices/nm-device.c19
-rw-r--r--src/devices/nm-device.h2
-rw-r--r--src/devices/ovs/nm-ovsdb.c25
-rw-r--r--src/devices/team/nm-device-team.c2
-rw-r--r--src/dns/nm-dns-dnsmasq.c6
-rw-r--r--src/dns/nm-dns-manager.c340
-rw-r--r--src/dns/nm-dns-manager.h19
-rw-r--r--src/dns/nm-dns-systemd-resolved.c5
-rw-r--r--src/nm-checkpoint-manager.c112
-rw-r--r--src/nm-checkpoint-manager.h4
-rw-r--r--src/nm-ip4-config.c118
-rw-r--r--src/nm-ip4-config.h137
-rw-r--r--src/nm-ip6-config.c64
-rw-r--r--src/nm-manager.c25
-rw-r--r--src/nm-manager.h1
-rw-r--r--src/nm-policy.c102
-rw-r--r--src/nm-types.h1
-rw-r--r--src/platform/nm-linux-platform.c20
-rw-r--r--src/platform/nm-platform.c67
-rw-r--r--src/platform/nm-platform.h39
-rw-r--r--src/platform/nmp-object.c3
-rw-r--r--src/platform/nmp-object.h18
-rw-r--r--src/platform/tests/test-route.c204
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c95
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c7
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Static_Routes.cexpected20
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/network-scripts/route-test-wired-static-routes6
-rw-r--r--src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c49
-rw-r--r--src/tests/config/test-config.c4
-rw-r--r--src/tests/test-ip4-config.c2
137 files changed, 117573 insertions, 137067 deletions
diff --git a/.gitignore b/.gitignore
index cd4fca45a9..c68d11f516 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,7 +6,7 @@
*.gcno
*.gcda
*.la
-*.gir
+*-*.gir
*.typelib
**.stamp
.dirstamp
@@ -177,6 +177,7 @@ test-*.trs
/libnm-util/tests/test-setting-8021x
/libnm-util/tests/test-setting-dcb
+/libnm/fake-typelib/typelibs.c
/libnm/nm-settings-ifcfg-rh-docs.xml
/libnm/nm-property-docs.xml
/libnm/nm-settings-docs.xml
diff --git a/.travis.yml b/.travis.yml
index 0bcda1ded9..77b623bdab 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,7 +26,7 @@ addons:
coverity_scan:
project:
name: NetworkManager/NetworkManager
- build_command_prepend: sh autogen.sh --with-systemd-logind=no --enable-more-warnings=no
+ build_command_prepend: sh autogen.sh --with-systemd-logind=no --enable-more-warnings=no --disable-ovs
build_command: make -j4
branch_pattern: .*coverity.*
diff --git a/Makefile.am b/Makefile.am
index 0cc4d7f19f..eafc8ca54d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -737,6 +737,7 @@ libnm_lib_h_pub_real = \
libnm/NetworkManager.h \
libnm/nm-access-point.h \
libnm/nm-active-connection.h \
+ libnm/nm-checkpoint.h \
libnm/nm-client.h \
libnm/nm-device-adsl.h \
libnm/nm-device-bond.h \
@@ -792,6 +793,7 @@ libnm_lib_h_priv = \
libnm_lib_c_real = \
libnm/nm-access-point.c \
libnm/nm-active-connection.c \
+ libnm/nm-checkpoint.c \
libnm/nm-client.c \
libnm/nm-dbus-helpers.c \
libnm/nm-device-adsl.c \
@@ -858,6 +860,7 @@ nodist_libnminclude_HEADERS += \
noinst_LTLIBRARIES += libnm/libnm-utils.la
libnm_libnm_utils_la_CPPFLAGS = \
+ $(INTROSPECTION_CFLAGS) \
$(libnm_lib_cppflags)
libnm_libnm_utils_la_SOURCES = \
@@ -956,8 +959,34 @@ libnm/libnm.typelib: libnm/libnm.gir
$(INTROSPECTION_COMPILER) --includedir=$(srcdir)/libnm-core --includedir=$(builddir)/libnm-core --includedir=$(srcdir)/libnm --includedir=$(builddir)/libnm $< -o $@
INTROSPECTION_GIRS += libnm/NM-1.0.gir
+
+if WITH_FAKE_TYPELIBS
+
+libnm/fake-typelib/NetworkManager.typelib: libnm/fake-typelib/NetworkManager.gir libnm/fake-typelib/.dirstamp
+ $(AM_V_GEN) $(INTROSPECTION_COMPILER) $< -o $@
+
+libnm/fake-typelib/NMClient.typelib: libnm/fake-typelib/NMClient.gir libnm/fake-typelib/.dirstamp
+ $(AM_V_GEN) $(INTROSPECTION_COMPILER) $< -o $@
+
+libnm/fake-typelib/typelibs.c: libnm/fake-typelib/typelibs.gresource.xml libnm/fake-typelib/NetworkManager.typelib libnm/fake-typelib/NMClient.typelib
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $< --target=$@ --sourcedir=$(builddir)/libnm/fake-typelib --generate-source --manual-register
+
+nodist_libnm_libnm_utils_la_SOURCES = \
+ libnm/fake-typelib/typelibs.c
+
+CLEANFILES += \
+ libnm/fake-typelib/typelibs.c \
+ libnm/fake-typelib/NMClient.typelib \
+ libnm/fake-typelib/NetworkManager.typelib
+endif
+
endif
+EXTRA_DIST += \
+ libnm/fake-typelib/NetworkManager.gir \
+ libnm/fake-typelib/NMClient.gir \
+ libnm/fake-typelib/typelibs.gresource.xml
+
if HAVE_INTROSPECTION
libnm_noinst_data = \
@@ -2075,6 +2104,7 @@ EXTRA_DIST += \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_LEAP.cexpected \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wifi_WEP_104_ASCII.cexpected \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Auto-Negotiate.cexpected \
+ src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Static_Routes.cexpected \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Test_Write_Wired_Wake-on-LAN.cexpected \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-Vlan_test-vlan-interface.cexpected \
src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-dcb-test.cexpected \
@@ -4537,6 +4567,7 @@ EXTRA_DIST += \
shared/nm-utils/c-list-util.h \
shared/nm-utils/gsystem-local-alloc.h \
shared/nm-utils/nm-glib.h \
+ shared/nm-utils/nm-jansson.h \
shared/nm-utils/nm-obj.h \
shared/nm-utils/nm-macros-internal.h \
shared/nm-utils/nm-shared-utils.c \
diff --git a/Makefile.examples b/Makefile.examples
index 63370e2cbc..fc08851ca6 100644
--- a/Makefile.examples
+++ b/Makefile.examples
@@ -133,6 +133,8 @@ EXTRA_DIST += \
examples/dispatcher/10-ifcfg-rh-routes.sh \
examples/dispatcher/70-wifi-wired-exclusive.sh \
\
+ examples/js/get_ips.js \
+ \
examples/lua/lgi/add-connection.lua \
examples/lua/lgi/list-connections.lua \
examples/lua/lgi/list-devices.lua \
diff --git a/clients/common/nm-client-utils.c b/clients/common/nm-client-utils.c
index bf4dcc77f3..8a28db2dd5 100644
--- a/clients/common/nm-client-utils.c
+++ b/clients/common/nm-client-utils.c
@@ -399,9 +399,11 @@ nmc_device_reason_to_string (NMDeviceStateReason reason)
return _("The device's parent changed");
case NM_DEVICE_STATE_REASON_PARENT_MANAGED_CHANGED:
return _("The device parent's management changed");
-
case NM_DEVICE_STATE_REASON_OVSDB_FAILED:
return _("OpenVSwitch database connection failed");
+ case NM_DEVICE_STATE_REASON_IP_ADDRESS_DUPLICATE:
+ return _("A duplicate IP address was detected");
+
}
/* TRANSLATORS: Unknown reason for a device state change (NMDeviceStateReason) */
diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c
index 1ed6b433d8..ea339dd62e 100644
--- a/clients/common/nm-meta-setting-desc.c
+++ b/clients/common/nm-meta-setting-desc.c
@@ -461,6 +461,7 @@ _get_text_hidden (NMMetaAccessorGetType get_type)
return NM_META_TEXT_HIDDEN;
}
+
/*****************************************************************************/
G_GNUC_PRINTF (4, 5)
@@ -3642,6 +3643,60 @@ _validate_fcn_team_config (const char *value, char **out_to_free, GError **error
RETURN_STR_TO_FREE (json);
}
+static gboolean
+_is_valid_team_runner_tx_hash_element (const char *tx_hash_element)
+{
+ const char *valid_tx_hashes[] = { "eth", "vlan", "ipv4", "ipv6", "ip",
+ "l3", "tcp", "udp", "sctp", "l4", NULL };
+ if (nmc_string_is_valid (tx_hash_element, valid_tx_hashes, NULL))
+ return TRUE;
+ return FALSE;
+}
+
+static gboolean
+_set_fcn_team_runner_tx_hash (ARGS_SET_FCN)
+{
+ char **strv = NULL;
+ guint i = 0;
+
+ g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+
+ strv = _nm_utils_strv_cleanup (g_strsplit_set (value, " \t,", 0),
+ TRUE, TRUE, TRUE);
+ if (!verify_string_list (strv, property_info->property_name,
+ _is_valid_team_runner_tx_hash_element,
+ error)) {
+ g_strfreev (strv);
+ return FALSE;
+ }
+
+ while (strv && strv[i])
+ nm_setting_team_add_runner_tx_hash (NM_SETTING_TEAM (setting), strv[i++]);
+ g_strfreev (strv);
+
+ return TRUE;
+}
+
+static gboolean
+_validate_and_remove_team_runner_tx_hash (NMSettingTeam *setting,
+ const char *tx_hash,
+ GError **error)
+{
+ if (!nm_setting_team_remove_runner_tx_hash_by_value (setting, tx_hash)) {
+ g_set_error (error, 1, 0,
+ _("the property doesn't contain string '%s'"),
+ tx_hash);
+ return FALSE;
+ }
+
+ return TRUE;
+}
+DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_team_runner_tx_hash,
+ NM_SETTING_TEAM,
+ nm_setting_team_get_num_runner_tx_hash,
+ nm_setting_team_remove_runner_tx_hash,
+ _validate_and_remove_team_runner_tx_hash)
+
static gconstpointer
_get_fcn_vlan_flags (ARGS_GET_FCN)
{
@@ -6000,6 +6055,130 @@ static const NMMetaPropertyInfo *const property_infos_TEAM[] = {
.validate_fcn = _validate_fcn_team_config,
),
),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_NOTIFY_PEERS_COUNT,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = 0,
+ .nick = "disabled",
+ }
+ ),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = 0,
+ .nick = "default",
+ }
+ ),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_MCAST_REJOIN_COUNT,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = 0,
+ .nick = "disabled",
+ }
+ ),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = 0,
+ .nick = "default",
+ }
+ ),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER,
+ .property_type = &_pt_gobject_string,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ .values_static = VALUES_STATIC (NM_SETTING_TEAM_RUNNER_BROADCAST,
+ NM_SETTING_TEAM_RUNNER_ROUNDROBIN,
+ NM_SETTING_TEAM_RUNNER_ACTIVEBACKUP,
+ NM_SETTING_TEAM_RUNNER_LOADBALANCE,
+ NM_SETTING_TEAM_RUNNER_LACP),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_HWADDR_POLICY,
+ .property_type = &_pt_gobject_string,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ .values_static = VALUES_STATIC (NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_SAME_ALL,
+ NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_BY_ACTIVE,
+ NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_ONLY_ACTIVE),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_TX_HASH,
+ .property_type = DEFINE_PROPERTY_TYPE (
+ .get_fcn = _get_fcn_gobject,
+ .set_fcn = _set_fcn_team_runner_tx_hash,
+ .remove_fcn = _remove_fcn_team_runner_tx_hash,
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_TX_BALANCER,
+ .property_type = &_pt_gobject_string,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ .values_static = VALUES_STATIC ("basic"),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = 50,
+ .nick = "default",
+ }
+ ),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_ACTIVE,
+ .property_type = & _pt_gobject_bool,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_FAST_RATE,
+ .property_type = & _pt_gobject_bool,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_SYS_PRIO,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = 255,
+ .nick = "default",
+ }
+ ),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_MIN_PORTS,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = 0,
+ .nick = "default",
+ }
+ ),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY,
+ .property_type = &_pt_gobject_string,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ .values_static = VALUES_STATIC (NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_LACP_PRIO,
+ NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_LACP_PRIO_STABLE,
+ NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_BANDWIDTH,
+ NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_COUNT,
+ NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_PORT_CONFIG),
+ ),
+ ),
NULL
};
@@ -6016,6 +6195,53 @@ static const NMMetaPropertyInfo *const property_infos_TEAM_PORT[] = {
.validate_fcn = _validate_fcn_team_config,
),
),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_QUEUE_ID,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = -1,
+ .nick = "default",
+ }
+ ),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_PRIO,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = 0,
+ .nick = "default",
+ }
+ ),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_STICKY,
+ .property_type = &_pt_gobject_bool,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_LACP_PRIO,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = 255,
+ .nick = "default",
+ }
+ ),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_TEAM_PORT_LACP_KEY,
+ .property_type = &_pt_gobject_int,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (gobject_int,
+ .value_infos = INT_VALUE_INFOS (
+ {
+ .value = 0,
+ .nick = "default",
+ }
+ ),
+ ),
+ ),
NULL
};
diff --git a/clients/common/settings-docs.c.in b/clients/common/settings-docs.c.in
index 3547c833a7..3d6f012bf7 100644
--- a/clients/common/settings-docs.c.in
+++ b/clients/common/settings-docs.c.in
@@ -316,9 +316,28 @@
#define DESCRIBE_DOC_NM_SETTING_SERIAL_SEND_DELAY N_("Time to delay between each byte sent to the modem, in microseconds.")
#define DESCRIBE_DOC_NM_SETTING_SERIAL_STOPBITS N_("Number of stop bits for communication on the serial port. Either 1 or 2. The 1 in \"8n1\" for example.")
#define DESCRIBE_DOC_NM_SETTING_TEAM_CONFIG N_("The JSON configuration for the team network interface. The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used. See man teamd.conf for the format details.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_MCAST_REJOIN_COUNT N_("Corresponds to the teamd mcast_rejoin.count.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL N_("Corresponds to the teamd mcast_rejoin.interval.")
#define DESCRIBE_DOC_NM_SETTING_TEAM_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_NOTIFY_PEERS_COUNT N_("Corresponds to the teamd notify_peers.count.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL N_("Corresponds to the teamd notify_peers.interval.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER N_("Corresponds to the teamd runner.name. Permitted values are: \"roundrobin\", \"broadcast\", \"activebackup\", \"loadbalance\", \"lacp\".")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_ACTIVE N_("Corresponds to the teamd runner.active.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY N_("Corresponds to the teamd runner.agg_select_policy.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_FAST_RATE N_("Corresponds to the teamd runner.fast_rate.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_HWADDR_POLICY N_("Corresponds to the teamd runner.hwaddr_policy.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_MIN_PORTS N_("Corresponds to the teamd runner.min_ports.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_SYS_PRIO N_("Corresponds to the teamd runner.sys_prio.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_BALANCER N_("Corresponds to the teamd runner.tx_balancer.name.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL N_("Corresponds to the teamd runner.tx_balancer.interval.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_RUNNER_TX_HASH N_("Corresponds to the teamd runner.tx_hash.")
#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_CONFIG N_("The JSON configuration for the team port. The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used. See man teamd.conf for the format details.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LACP_KEY N_("Corresponds to the teamd ports.PORTIFNAME.lacp_key.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_LACP_PRIO N_("Corresponds to the teamd ports.PORTIFNAME.lacp_prio.")
#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_NAME N_("The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example \"ppp\" or \"wireless\" or \"wired\".")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_PRIO N_("Corresponds to the teamd ports.PORTIFNAME.prio.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_QUEUE_ID N_("Corresponds to the teamd ports.PORTIFNAME.queue_id. When set to -1 means the parameter is skipped from the json config.")
+#define DESCRIBE_DOC_NM_SETTING_TEAM_PORT_STICKY N_("Corresponds to the teamd ports.PORTIFNAME.sticky.")
#define DESCRIBE_DOC_NM_SETTING_TUN_GROUP N_("The group ID which will own the device. If set to NULL everyone will be able to use the device.")
#define DESCRIBE_DOC_NM_SETTING_TUN_MODE N_("The operating mode of the virtual device. Allowed values are NM_SETTING_TUN_MODE_TUN (1) to create a layer 3 device and NM_SETTING_TUN_MODE_TAP (2) to create an Ethernet-like layer 2 one.")
#define DESCRIBE_DOC_NM_SETTING_TUN_MULTI_QUEUE N_("If the property is set to TRUE, the interface will support multiple file descriptors (queues) to parallelize packet sending or receiving. Otherwise, the interface will only support a single queue.")
diff --git a/configure.ac b/configure.ac
index f8dcd13f50..14227e1aac 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,8 +2,8 @@ AC_PREREQ([2.63])
dnl The NM version number
m4_define([nm_major_version], [1])
-m4_define([nm_minor_version], [10])
-m4_define([nm_micro_version], [0])
+m4_define([nm_minor_version], [11])
+m4_define([nm_micro_version], [1])
m4_define([nm_version],
[nm_major_version.nm_minor_version.nm_micro_version])
@@ -322,9 +322,12 @@ GLIB_CFLAGS="$GLIB_CFLAGS -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_32 -DGLIB_V
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
+GOBJECT_INTROSPECTION_CHECK([0.9.6])
+
AC_ARG_WITH(libnm-glib,
AS_HELP_STRING([--without-libnm-glib],
- [don't build legacy libraries]))
+ [don"'"t build legacy libraries]))
+fake_typelibs=no
if test "$with_libnm_glib" != "no"; then
PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.1 dbus-glib-1 >= 0.94, :,
[AC_MSG_FAILURE([$DBUS_PKG_ERRORS
@@ -333,13 +336,24 @@ Configure with --without-libnm-glib if you do not need the legacy libraries])
])
with_libnm_glib=yes
+
+ if test "${found_introspection}" = "yes"; then
+ AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources)
+ if ! test x"$GLIB_COMPILE_RESOURCES" = x""; then
+ fake_typelibs=yes
+ fi
+ fi
fi
AM_CONDITIONAL(WITH_LEGACY_LIBRARIES, test "$with_libnm_glib" != "no")
+if test "$fake_typelibs" = "yes"; then
+ AC_DEFINE(WITH_FAKE_TYPELIBS, 1, [Define for libnm to prevent GIR from loading libnm-glib])
+else
+ AC_DEFINE(WITH_FAKE_TYPELIBS, 0, [Define for libnm to prevent GIR from loading libnm-glib])
+fi
+AM_CONDITIONAL(WITH_FAKE_TYPELIBS, test "${fake_typelibs}" = "yes")
PKG_CHECK_MODULES([LIBUDEV], [libudev >= 175])
-GOBJECT_INTROSPECTION_CHECK([0.9.6])
-
# Qt4
PKG_CHECK_MODULES(QT, [QtCore >= 4 QtDBus QtNetwork], [have_qt=yes],[have_qt=no])
AC_ARG_ENABLE(qt,
@@ -1213,6 +1227,22 @@ fi
AC_SUBST(SANITIZERS, [$sanitizers])
+AC_MSG_CHECKING([CC support C11 _Generic()])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[int foo(void); int foo() { int a = 0; int b = _Generic (a, int: 4); return b + a; }]],
+ [[foo();]])],
+ [cc_support_generic=1],
+ [cc_support_generic=0])
+AC_MSG_RESULT($cc_support_generic)
+AC_DEFINE_UNQUOTED(_NM_CC_SUPPORT_GENERIC, $cc_support_generic, [Define whether the compiler supports C11 _Generic()])
+
+AC_MSG_CHECKING([CC support gcc __auto_type])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[int foo(void); int foo() { int a = 0; __auto_type b = a; return b + a; }]],
+ [[foo();]])],
+ [cc_support_auto_type=1],
+ [cc_support_auto_type=0])
+AC_MSG_RESULT($cc_support_auto_type)
+AC_DEFINE_UNQUOTED(_NM_CC_SUPPORT_AUTO_TYPE, $cc_support_auto_type, [Define whether the compiler support gcc __auto_type])
+
dnl -------------------------
dnl Vala bindings
dnl -------------------------
diff --git a/examples/js/get_ips.js b/examples/js/get_ips.js
new file mode 100755
index 0000000000..490ecb2a8a
--- /dev/null
+++ b/examples/js/get_ips.js
@@ -0,0 +1,184 @@
+#!/usr/bin/env gjs
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Copyright 2014,2017 Red Hat, Inc.
+ */
+
+const System = imports.system;
+const NM = imports.gi.NM;
+const GLib = imports.gi.GLib;
+
+/*
+ * This example shows how to get addresses, routes and DNS information
+ * from NMIP4Config and NMIP6Config (got out of NMDevice)
+ */
+
+function show_addresses (dev, family)
+{
+ let ip_cfg;
+ if (family == GLib.SYSDEF_AF_INET)
+ ip_cfg = dev.get_ip4_config ();
+ else
+ ip_cfg = dev.get_ip6_config ();
+
+ if (ip_cfg == null) {
+ print ("None");
+ return;
+ }
+
+ let nm_addresses = ip_cfg.get_addresses ();
+ if (nm_addresses.length == 0) {
+ print ("None");
+ return;
+ }
+
+ for (let nm_address of nm_addresses) {
+ let addr = nm_address.get_address ();
+ let prefix = nm_address.get_prefix ();
+
+ print (addr + "/" + prefix);
+ }
+}
+
+function show_gateway (dev, family)
+{
+ let ip_cfg;
+ if ((family == GLib.SYSDEF_AF_INET))
+ ip_cfg = dev.get_ip4_config ();
+ else
+ ip_cfg = dev.get_ip6_config ();
+
+ let gw;
+ if (ip_cfg == null)
+ gw = "None"
+ else {
+ gw = ip_cfg.get_gateway ();
+ if (gw == '')
+ gw = "None"
+ }
+
+ print (gw);
+}
+
+function show_routes (dev, family)
+{
+ let ip_cfg;
+ if ((family == GLib.SYSDEF_AF_INET))
+ ip_cfg = dev.get_ip4_config ();
+ else
+ ip_cfg = dev.get_ip6_config ();
+
+ if (ip_cfg == null) {
+ print ("None");
+ return;
+ }
+
+ let nm_routes = ip_cfg.get_routes ();
+ if (nm_routes.length == 0) {
+ print ("None");
+ return;
+ }
+
+ for (let nm_route of nm_routes) {
+ let dest = nm_route.get_dest ();
+ let prefix = nm_route.get_prefix ();
+ let next_hop = nm_route.get_next_hop ();
+ let metric = nm_route.get_metric ();
+
+ print (dest + "/" + prefix + " " + next_hop + " " + metric);
+ }
+}
+
+function show_dns (dev, family)
+{
+ let ip_cfg;
+ if ((family == GLib.SYSDEF_AF_INET))
+ ip_cfg = dev.get_ip4_config ();
+ else
+ ip_cfg = dev.get_ip6_config ();
+
+ if (ip_cfg == null) {
+ print ("None");
+ return;
+ }
+
+ print ("Nameservers: " + ip_cfg.get_nameservers ());
+ print ("Domains: " + ip_cfg.get_domains ());
+ print ("Searches: " + ip_cfg.get_searches ());
+ if ((family == GLib.SYSDEF_AF_INET))
+ print ("WINS: " + ip_cfg.get_wins_servers ());
+}
+
+if (ARGV.length != 1) {
+ print ("Usage: get_ips.js <interface>");
+ System.exit (1);
+}
+
+
+let dev_iface = ARGV[0];
+let c = NM.Client.new (null);
+
+let dev = c.get_device_by_iface (dev_iface);
+
+if (dev == null) {
+ print ("Device '%s' not found " + dev_iface);
+ System.exit (1);
+}
+
+print ("Device: " + dev_iface + " - " + dev.get_type_description ());
+print ("---------------------------------------");
+print ();
+
+print ("IPv4 addresses:");
+print ("---------------");
+show_addresses (dev, GLib.SYSDEF_AF_INET);
+print ();
+
+print ("IPv4 gateway:");
+print ("-------------");
+show_gateway (dev, GLib.SYSDEF_AF_INET);
+print ();
+
+print ("IPv4 routes:");
+print ("------------");
+show_routes (dev, GLib.SYSDEF_AF_INET);
+print ();
+
+print ("IPv6 addresses:");
+print ("---------------");
+show_addresses (dev, GLib.SYSDEF_AF_INET6);
+print ();
+
+print ("IPv6 gateway:");
+print ("-------------");
+show_gateway (dev, GLib.SYSDEF_AF_INET6);
+print ();
+
+print ("IPv6 routes:");
+print ("------------");
+show_routes (dev, GLib.SYSDEF_AF_INET6);
+print ();
+
+print ("IPv4 DNS:");
+print ("------------");
+show_dns (dev, GLib.SYSDEF_AF_INET);
+print ();
+
+print ("IPv6 DNS:");
+print ("------------");
+show_dns (dev, GLib.SYSDEF_AF_INET6);
+print ();
diff --git a/examples/python/gi/checkpoint.py b/examples/python/gi/checkpoint.py
new file mode 100644
index 0000000000..513e6c3a0a
--- /dev/null
+++ b/examples/python/gi/checkpoint.py
@@ -0,0 +1,130 @@
+#!/usr/bin/env python
+# -*- Mode: Python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+# vim: ft=python ts=4 sts=4 sw=4 et ai
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+# Copyright 2017 Red Hat, Inc.
+
+import sys
+
+import gi
+gi.require_version('NM', '1.0')
+from gi.repository import GLib, NM
+
+def usage():
+ print "Usage: %s [COMMAND [ARG]...]" % sys.argv[0]
+ print ""
+ print " COMMANDS: show"
+ print " create TIMEOUT [DEV]..."
+ print " destroy PATH|NUMBER"
+ print " rollback PATH|NUMBER"
+ print
+ sys.exit(1)
+
+def create_cb(client, result, data):
+ try:
+ checkpoint = client.checkpoint_create_finish(result)
+ print("%s" % checkpoint.get_path())
+ except Exception, e:
+ sys.stderr.write("Failed: %s\n" % e.message)
+ main_loop.quit()
+
+def do_create(client):
+ if len(sys.argv) < 3:
+ sys.exit("Failed: %s\n" % e.message)
+
+ timeout = int(sys.argv[2])
+ devices = []
+ for arg in sys.argv[3:]:
+ d = client.get_device_by_iface(arg)
+ if d is None:
+ sys.exit("Unknown device %s" % arg)
+ devices.append(d)
+
+ client.checkpoint_create_async(devices, timeout, 0, None, create_cb, None)
+
+def destroy_cb(client, result, data):
+ try:
+ if client.checkpoint_destroy_finish(result) == True:
+ print "Success"
+ except Exception, e:
+ sys.stderr.write("Failed: %s\n" % e.message)
+ main_loop.quit()
+
+def find_checkpoint(client, arg):
+ try:
+ num = int(arg)
+ path = "/org/freedesktop/NetworkManager/Checkpoint/%u" % num
+ except Exception, e:
+ path = arg
+
+ for c in client.get_checkpoints():
+ if c.get_path() == path:
+ return c
+ return None
+
+def do_destroy(client):
+ if len(sys.argv) < 3:
+ sys.exit("Missing checkpoint path")
+
+ checkpoint = find_checkpoint(client, sys.argv[2])
+ if checkpoint is None:
+ sys.exit("Uknown checkpoint %s" % sys.argv[2])
+
+ client.checkpoint_destroy_async(checkpoint, None, destroy_cb, None)
+
+def rollback_cb(client, result, data):
+ try:
+ res = client.checkpoint_rollback_finish(result)
+ for path in res:
+ d = client.get_device_by_path(path)
+ if d is None:
+ iface = path
+ else:
+ iface = d.get_iface()
+ print "%s => %s" % (iface, "OK" if res[path] == 0 else "ERROR")
+ except Exception, e:
+ sys.stderr.write("Failed: %s\n" % e.message)
+ main_loop.quit()
+
+def do_rollback(client):
+ if len(sys.argv) < 3:
+ sys.exit("Missing checkpoint path")
+
+ checkpoint = find_checkpoint(client, sys.argv[2])
+ if checkpoint is None:
+ sys.exit("Uknown checkpoint %s" % sys.argv[2])
+
+ client.checkpoint_rollback_async(checkpoint, None, rollback_cb, None)
+
+def do_show(client):
+ for c in client.get_checkpoints():
+ print "%s:" % c.get_path()
+ print " created: %u" % c.get_created()
+ print " timeout: %u seconds" % c.get_rollback_timeout()
+ print " devices:", ' '.join(sorted(map(lambda x: x.get_iface(), c.get_devices())))
+
+if __name__ == '__main__':
+ nm_client = NM.Client.new(None)
+ main_loop = GLib.MainLoop()
+
+ if len(sys.argv) < 2 or sys.argv[1] == 'show':
+ do_show(nm_client)
+ sys.exit(0)
+ elif sys.argv[1] == 'create':
+ do_create(nm_client)
+ elif sys.argv[1] == 'destroy':
+ do_destroy(nm_client)
+ elif sys.argv[1] == 'rollback':
+ do_rollback(nm_client)
+ else:
+ usage()
+
+ main_loop.run()
diff --git a/examples/python/gi/vpn-import.py b/examples/python/gi/vpn-import.py
new file mode 100755
index 0000000000..6210908aa5
--- /dev/null
+++ b/examples/python/gi/vpn-import.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# -*- Mode: Python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+# vim: ft=python ts=4 sts=4 sw=4 et ai
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Copyright 2014 Red Hat, Inc.
+#
+
+#
+# This example imports a VPN connection, by loading the glib based
+# VPN plugin.
+
+import gi
+gi.require_version('NM', '1.0')
+from gi.repository import GLib, NM
+
+import sys
+
+if len(sys.argv) != 2:
+ print("Expects one argument: the filename")
+ sys.exit(1)
+filename = sys.argv[1]
+
+connection = None
+for vpn_info in NM.VpnPluginInfo.list_load():
+ print("TRY: plugin %s" % (vpn_info.get_filename()))
+ try:
+ vpn_plugin = vpn_info.load_editor_plugin()
+ except Exception as e:
+ print("SKIP: cannot load plugin: %s" % (e))
+ continue
+ try:
+ connection = vpn_plugin.import_(filename)
+ except Exception as e:
+ print("SKIP: failure to import %s" % (e))
+ continue
+ break
+
+if connection is None:
+ print("None of the VPN plugins was able to import \"%s\"" % (filename))
+ sys.exit(1)
+
+connection.normalize()
+
+print("connection imported from \"%s\" using plugin \"%s\" (\"%s\", %s)" % (filename, vpn_info.get_filename(), connection.get_id(), connection.get_uuid()))
+
+client = NM.Client.new(None)
+
+main_loop = GLib.MainLoop()
+
+def added_cb(client, result, data):
+ try:
+ client.add_connection_finish(result)
+ print("The connection profile has been succesfully added to NetworkManager.")
+ except Exception, e:
+ print("ERROR: failed to add connection: %s\n" % e)
+ main_loop.quit()
+
+client.add_connection_async(connection, True, None, added_cb, None)
+
+main_loop.run()
diff --git a/introspection/org.freedesktop.NetworkManager.xml b/introspection/org.freedesktop.NetworkManager.xml
index dceea7f21f..26a618c1bf 100644
--- a/introspection/org.freedesktop.NetworkManager.xml
+++ b/introspection/org.freedesktop.NetworkManager.xml
@@ -270,6 +270,13 @@
<property name="AllDevices" type="ao" access="read"/>
<!--
+ Checkpoints:
+
+ The list of active checkpoints.
+ -->
+ <property name="Checkpoints" type="ao" access="read"/>
+
+ <!--
NetworkingEnabled:
Indicates if overall networking is currently enabled or not. See the
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h
index 59ebfcb132..5144a05077 100644
--- a/libnm-core/nm-core-internal.h
+++ b/libnm-core/nm-core-internal.h
@@ -429,11 +429,24 @@ NMSettingBluetooth *_nm_connection_get_setting_bluetooth_for_nap (NMConnection *
/*****************************************************************************/
+const char *nm_utils_inet_ntop (int addr_family, gconstpointer addr, char *dst);
+
gboolean _nm_utils_inet6_is_token (const struct in6_addr *in6addr);
/*****************************************************************************/
-gboolean _nm_utils_team_config_equal (const char *conf1, const char *conf2, gboolean port);
+gboolean _nm_utils_team_config_equal (const char *conf1, const char *conf2, gboolean port);
+GValue *_nm_utils_team_config_get (const char *conf,
+ const char *key,
+ const char *key2,
+ const char *key3,
+ gboolean port_config);
+
+gboolean _nm_utils_team_config_set (char **conf,
+ const char *key,
+ const char *key2,
+ const char *key3,
+ const GValue *value);
/*****************************************************************************/
diff --git a/libnm-core/nm-dbus-interface.h b/libnm-core/nm-dbus-interface.h
index 7f75c84955..6a0d3def2a 100644
--- a/libnm-core/nm-dbus-interface.h
+++ b/libnm-core/nm-dbus-interface.h
@@ -76,6 +76,7 @@
#define NM_DBUS_INTERFACE_DEVICE_GRE NM_DBUS_INTERFACE_DEVICE ".Gre"
#define NM_DBUS_INTERFACE_DEVICE_IP_TUNNEL NM_DBUS_INTERFACE_DEVICE ".IPTunnel"
#define NM_DBUS_INTERFACE_DEVICE_STATISTICS NM_DBUS_INTERFACE_DEVICE ".Statistics"
+#define NM_DBUS_INTERFACE_CHECKPOINT NM_DBUS_INTERFACE ".Checkpoint"
#define NM_DBUS_INTERFACE_SETTINGS "org.freedesktop.NetworkManager.Settings"
#define NM_DBUS_PATH_SETTINGS "/org/freedesktop/NetworkManager/Settings"
@@ -551,6 +552,7 @@ typedef enum {
* @NM_DEVICE_STATE_REASON_PARENT_CHANGED: the device's parent changed
* @NM_DEVICE_STATE_REASON_PARENT_MANAGED_CHANGED: the device parent's management changed
* @NM_DEVICE_STATE_REASON_OVSDB_FAILED: problem communicating with OpenVSwitch database
+ * @NM_DEVICE_STATE_REASON_IP_ADDRESS_DUPLICATE: a duplicate IP address was detected
*
* Device state change reason codes
*/
@@ -619,6 +621,7 @@ typedef enum {
NM_DEVICE_STATE_REASON_PARENT_CHANGED = 61,
NM_DEVICE_STATE_REASON_PARENT_MANAGED_CHANGED = 62,
NM_DEVICE_STATE_REASON_OVSDB_FAILED = 63,
+ NM_DEVICE_STATE_REASON_IP_ADDRESS_DUPLICATE = 64,
} NMDeviceStateReason;
/**
diff --git a/libnm-core/nm-setting-ip-config.c b/libnm-core/nm-setting-ip-config.c
index 7265fdc51e..41ae0993f6 100644
--- a/libnm-core/nm-setting-ip-config.c
+++ b/libnm-core/nm-setting-ip-config.c
@@ -1245,6 +1245,7 @@ static const NMVariantAttributeSpec * const ip_route_attribute_spec[] = {
ATTR_SPEC_PTR (NM_IP_ROUTE_ATTRIBUTE_SRC, G_VARIANT_TYPE_STRING, TRUE, TRUE, 'a'),
ATTR_SPEC_PTR (NM_IP_ROUTE_ATTRIBUTE_FROM, G_VARIANT_TYPE_STRING, FALSE, TRUE, 'p'),
ATTR_SPEC_PTR (NM_IP_ROUTE_ATTRIBUTE_TOS, G_VARIANT_TYPE_BYTE, TRUE, FALSE, 0 ),
+ ATTR_SPEC_PTR (NM_IP_ROUTE_ATTRIBUTE_ONLINK, G_VARIANT_TYPE_BOOLEAN, TRUE, FALSE, 0 ),
ATTR_SPEC_PTR (NM_IP_ROUTE_ATTRIBUTE_WINDOW, G_VARIANT_TYPE_UINT32, TRUE, TRUE, 0 ),
ATTR_SPEC_PTR (NM_IP_ROUTE_ATTRIBUTE_CWND, G_VARIANT_TYPE_UINT32, TRUE, TRUE, 0 ),
ATTR_SPEC_PTR (NM_IP_ROUTE_ATTRIBUTE_INITCWND, G_VARIANT_TYPE_UINT32, TRUE, TRUE, 0 ),
diff --git a/libnm-core/nm-setting-ip-config.h b/libnm-core/nm-setting-ip-config.h
index 84ce84657a..96e61bb5c9 100644
--- a/libnm-core/nm-setting-ip-config.h
+++ b/libnm-core/nm-setting-ip-config.h
@@ -146,6 +146,7 @@ gboolean nm_ip_route_attribute_validate (const char *name,
#define NM_IP_ROUTE_ATTRIBUTE_SRC "src"
#define NM_IP_ROUTE_ATTRIBUTE_FROM "from"
#define NM_IP_ROUTE_ATTRIBUTE_TOS "tos"
+#define NM_IP_ROUTE_ATTRIBUTE_ONLINK "onlink"
#define NM_IP_ROUTE_ATTRIBUTE_WINDOW "window"
#define NM_IP_ROUTE_ATTRIBUTE_CWND "cwnd"
#define NM_IP_ROUTE_ATTRIBUTE_INITCWND "initcwnd"
diff --git a/libnm-core/nm-setting-team-port.c b/libnm-core/nm-setting-team-port.c
index c030966579..87a96ec66b 100644
--- a/libnm-core/nm-setting-team-port.c
+++ b/libnm-core/nm-setting-team-port.c
@@ -47,14 +47,37 @@ NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_TEAM_PORT)
typedef struct {
char *config;
+ int queue_id;
+ int prio;
+ gboolean sticky;
+ int lacp_prio;
+ int lacp_key;
} NMSettingTeamPortPrivate;
+/* Keep aligned with _prop_to_keys[] */
enum {
PROP_0,
PROP_CONFIG,
+ PROP_QUEUE_ID,
+ PROP_PRIO,
+ PROP_STICKY,
+ PROP_LACP_PRIO,
+ PROP_LACP_KEY,
LAST_PROP
};
+/* Keep aligned with team-port properties enum */
+static const _NMUtilsTeamPropertyKeys _prop_to_keys[LAST_PROP] = {
+ [PROP_0] = { NULL, NULL, NULL, 0 },
+ [PROP_CONFIG] = { NULL, NULL, NULL, 0 },
+ [PROP_QUEUE_ID] = { "queue_id", NULL, NULL, NM_SETTING_TEAM_PORT_QUEUE_ID_DEFAULT },
+ [PROP_PRIO] = { "prio", NULL, NULL, 0 },
+ [PROP_STICKY] = { "sticky", NULL, NULL, 0 },
+ [PROP_LACP_PRIO] = { "lacp_prio", NULL, NULL, NM_SETTING_TEAM_PORT_LACP_PRIO_DEFAULT },
+ [PROP_LACP_KEY] = { "lacp_key", NULL, NULL, 0 },
+};
+
+
/**
* nm_setting_team_port_new:
*
@@ -82,6 +105,86 @@ nm_setting_team_port_get_config (NMSettingTeamPort *setting)
return NM_SETTING_TEAM_PORT_GET_PRIVATE (setting)->config;
}
+/**
+ * nm_setting_team_port_get_queue_id:
+ * @setting: the #NMSettingTeamPort
+ *
+ * Returns: the #NMSettingTeamPort:queue_id property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_port_get_queue_id (NMSettingTeamPort *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM_PORT (setting), -1);
+
+ return NM_SETTING_TEAM_PORT_GET_PRIVATE (setting)->queue_id;
+}
+
+/**
+ * nm_setting_team_port_get_prio:
+ * @setting: the #NMSettingTeamPort
+ *
+ * Returns: the #NMSettingTeamPort:prio property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_port_get_prio (NMSettingTeamPort *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM_PORT (setting), 0);
+
+ return NM_SETTING_TEAM_PORT_GET_PRIVATE (setting)->prio;
+}
+
+/**
+ * nm_setting_team_port_get_sticky:
+ * @setting: the #NMSettingTeamPort
+ *
+ * Returns: the #NMSettingTeamPort:sticky property of the setting
+ *
+ * Since: 1.12
+ **/
+gboolean
+nm_setting_team_port_get_sticky (NMSettingTeamPort *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM_PORT (setting), FALSE);
+
+ return NM_SETTING_TEAM_PORT_GET_PRIVATE (setting)->sticky;
+}
+
+/**
+ * nm_setting_team_port_get_lacp_prio:
+ * @setting: the #NMSettingTeamPort
+ *
+ * Returns: the #NMSettingTeamPort:lacp-prio property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_port_get_lacp_prio (NMSettingTeamPort *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM_PORT (setting), 0);
+
+ return NM_SETTING_TEAM_PORT_GET_PRIVATE (setting)->lacp_prio;
+}
+
+/**
+ * nm_setting_team_port_get_lacp_key:
+ * @setting: the #NMSettingTeamPort
+ *
+ * Returns: the #NMSettingTeamPort:lacp-key property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_port_get_lacp_key (NMSettingTeamPort *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM_PORT (setting), 0);
+
+ return NM_SETTING_TEAM_PORT_GET_PRIVATE (setting)->lacp_key;
+}
+
static gboolean
verify (NMSetting *setting, NMConnection *connection, GError **error)
{
@@ -171,23 +274,79 @@ compare_property (NMSetting *setting,
static void
nm_setting_team_port_init (NMSettingTeamPort *setting)
{
+ NMSettingTeamPortPrivate *priv = NM_SETTING_TEAM_PORT_GET_PRIVATE (setting);
+
+ priv->queue_id = NM_SETTING_TEAM_PORT_QUEUE_ID_DEFAULT;
+ priv->lacp_prio = NM_SETTING_TEAM_PORT_LACP_PRIO_DEFAULT;
}
+#define JSON_TO_VAL(typ, id) _nm_utils_json_extract_##typ (priv->config, _prop_to_keys[id], TRUE)
+
static void
set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
NMSettingTeamPortPrivate *priv = NM_SETTING_TEAM_PORT_GET_PRIVATE (object);
+ const GValue *align_value = NULL;
+ gboolean align_config = FALSE;
switch (prop_id) {
case PROP_CONFIG:
g_free (priv->config);
priv->config = g_value_dup_string (value);
+ priv->queue_id = JSON_TO_VAL (int, PROP_QUEUE_ID);
+ priv->prio = JSON_TO_VAL (int, PROP_PRIO);
+ priv->sticky = JSON_TO_VAL (boolean, PROP_STICKY);
+ priv->lacp_prio = JSON_TO_VAL (int, PROP_LACP_PRIO);
+ priv->lacp_key = JSON_TO_VAL (int, PROP_LACP_KEY);
+ break;
+ case PROP_QUEUE_ID:
+ if (priv->queue_id == g_value_get_int (value))
+ break;
+ priv->queue_id = g_value_get_int (value);
+ if (priv->queue_id != NM_SETTING_TEAM_PORT_QUEUE_ID_DEFAULT)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_PRIO:
+ if (priv->prio == g_value_get_int (value))
+ break;
+ priv->prio = g_value_get_int (value);
+ if (priv->prio)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_STICKY:
+ if (priv->sticky == g_value_get_boolean (value))
+ break;
+ priv->sticky = g_value_get_boolean (value);
+ if (priv->sticky)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_LACP_PRIO:
+ if (priv->lacp_prio == g_value_get_int (value))
+ break;
+ priv->lacp_prio = g_value_get_int (value);
+ /* from libteam sources: lacp_prio default value is 0xff */
+ if (priv->lacp_prio != NM_SETTING_TEAM_PORT_LACP_PRIO_DEFAULT)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_LACP_KEY:
+ if (priv->lacp_key == g_value_get_int (value))
+ break;
+ priv->lacp_key = g_value_get_int (value);
+ if (priv->lacp_key)
+ align_value = value;
+ align_config = TRUE;
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
+ if (align_config)
+ _nm_utils_json_append_gvalue (&priv->config, _prop_to_keys[prop_id], align_value);
}
static void
@@ -195,11 +354,27 @@ get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
NMSettingTeamPort *setting = NM_SETTING_TEAM_PORT (object);
+ NMSettingTeamPortPrivate *priv = NM_SETTING_TEAM_PORT_GET_PRIVATE (setting);
switch (prop_id) {
case PROP_CONFIG:
g_value_set_string (value, nm_setting_team_port_get_config (setting));
break;
+ case PROP_QUEUE_ID:
+ g_value_set_int (value, priv->queue_id);
+ break;
+ case PROP_PRIO:
+ g_value_set_int (value, priv->prio);
+ break;
+ case PROP_STICKY:
+ g_value_set_boolean (value, priv->sticky);
+ break;
+ case PROP_LACP_PRIO:
+ g_value_set_int (value, priv->lacp_prio);
+ break;
+ case PROP_LACP_KEY:
+ g_value_set_int (value, priv->lacp_key);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -253,4 +428,77 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *setting_class)
G_PARAM_READWRITE |
NM_SETTING_PARAM_INFERRABLE |
G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeamPort:queue-id:
+ *
+ * Corresponds to the teamd ports.PORTIFNAME.queue_id.
+ * When set to -1 means the parameter is skipped from the json config.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_QUEUE_ID,
+ g_param_spec_int (NM_SETTING_TEAM_PORT_QUEUE_ID, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeamPort:prio:
+ *
+ * Corresponds to the teamd ports.PORTIFNAME.prio.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_PRIO,
+ g_param_spec_int (NM_SETTING_TEAM_PORT_PRIO, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeamPort:sticky:
+ *
+ * Corresponds to the teamd ports.PORTIFNAME.sticky.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_STICKY,
+ g_param_spec_boolean (NM_SETTING_TEAM_PORT_STICKY, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeamPort:lacp-prio:
+ *
+ * Corresponds to the teamd ports.PORTIFNAME.lacp_prio.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_LACP_PRIO,
+ g_param_spec_int (NM_SETTING_TEAM_PORT_LACP_PRIO, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeamPort:lacp-key:
+ *
+ * Corresponds to the teamd ports.PORTIFNAME.lacp_key.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_LACP_KEY,
+ g_param_spec_int (NM_SETTING_TEAM_PORT_LACP_KEY, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+
}
diff --git a/libnm-core/nm-setting-team-port.h b/libnm-core/nm-setting-team-port.h
index 4fcc51083a..2643daba3c 100644
--- a/libnm-core/nm-setting-team-port.h
+++ b/libnm-core/nm-setting-team-port.h
@@ -39,6 +39,14 @@ G_BEGIN_DECLS
#define NM_SETTING_TEAM_PORT_SETTING_NAME "team-port"
#define NM_SETTING_TEAM_PORT_CONFIG "config"
+#define NM_SETTING_TEAM_PORT_QUEUE_ID "queue-id"
+#define NM_SETTING_TEAM_PORT_PRIO "prio"
+#define NM_SETTING_TEAM_PORT_STICKY "sticky"
+#define NM_SETTING_TEAM_PORT_LACP_PRIO "lacp-prio"
+#define NM_SETTING_TEAM_PORT_LACP_KEY "lacp-key"
+
+#define NM_SETTING_TEAM_PORT_QUEUE_ID_DEFAULT -1
+#define NM_SETTING_TEAM_PORT_LACP_PRIO_DEFAULT 255
/**
* NMSettingTeamPort:
@@ -61,6 +69,16 @@ GType nm_setting_team_port_get_type (void);
NMSetting * nm_setting_team_port_new (void);
const char * nm_setting_team_port_get_config (NMSettingTeamPort *setting);
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_port_get_queue_id (NMSettingTeamPort *setting);
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_port_get_prio (NMSettingTeamPort *setting);
+NM_AVAILABLE_IN_1_12
+gboolean nm_setting_team_port_get_sticky (NMSettingTeamPort *setting);
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_port_get_lacp_prio (NMSettingTeamPort *setting);
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_port_get_lacp_key (NMSettingTeamPort *setting);
G_END_DECLS
diff --git a/libnm-core/nm-setting-team.c b/libnm-core/nm-setting-team.c
index 0a09c4a677..8526eb5096 100644
--- a/libnm-core/nm-setting-team.c
+++ b/libnm-core/nm-setting-team.c
@@ -44,14 +44,67 @@ NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_TEAM)
typedef struct {
char *config;
+ gint notify_peers_count;
+ gint notify_peers_interval;
+ gint mcast_rejoin_count;
+ gint mcast_rejoin_interval;
+ char *runner;
+ char *runner_hwaddr_policy;
+ GPtrArray *runner_tx_hash;
+ char *runner_tx_balancer;
+ gint runner_tx_balancer_interval;
+ gboolean runner_active;
+ gboolean runner_fast_rate;
+ gint runner_sys_prio;
+ gint runner_min_ports;
+ char *runner_agg_select_policy;
} NMSettingTeamPrivate;
+/* Keep aligned with _prop_to_keys[] */
enum {
PROP_0,
PROP_CONFIG,
+ PROP_NOTIFY_PEERS_COUNT,
+ PROP_NOTIFY_PEERS_INTERVAL,
+ PROP_MCAST_REJOIN_COUNT,
+ PROP_MCAST_REJOIN_INTERVAL,
+ PROP_RUNNER,
+ PROP_RUNNER_HWADDR_POLICY,
+ PROP_RUNNER_TX_HASH,
+ PROP_RUNNER_TX_BALANCER,
+ PROP_RUNNER_TX_BALANCER_INTERVAL,
+ PROP_RUNNER_ACTIVE,
+ PROP_RUNNER_FAST_RATE,
+ PROP_RUNNER_SYS_PRIO,
+ PROP_RUNNER_MIN_PORTS,
+ PROP_RUNNER_AGG_SELECT_POLICY,
LAST_PROP
};
+/* Keep aligned with team properties enum */
+static const _NMUtilsTeamPropertyKeys _prop_to_keys[LAST_PROP] = {
+ [PROP_0] = { NULL, NULL, NULL, 0 },
+ [PROP_CONFIG] = { NULL, NULL, NULL, 0 },
+ [PROP_NOTIFY_PEERS_COUNT] = { "notify_peers", "count", NULL, 0 },
+ [PROP_NOTIFY_PEERS_INTERVAL] = { "notify_peers", "interval", NULL, 0 },
+ [PROP_MCAST_REJOIN_COUNT] = { "mcast_rejoin", "count", NULL, 0 },
+ [PROP_MCAST_REJOIN_INTERVAL] = { "mcast_rejoin", "interval", NULL, 0 },
+ [PROP_RUNNER] = { "runner", "name", NULL,
+ {.default_str = NM_SETTING_TEAM_RUNNER_DEFAULT} },
+ [PROP_RUNNER_HWADDR_POLICY] = { "runner", "hwaddr_policy", NULL, 0 },
+ [PROP_RUNNER_TX_HASH] = { "runner", "tx_hash", NULL, 0 },
+ [PROP_RUNNER_TX_BALANCER] = { "runner", "tx_balancer", "name", 0 },
+ [PROP_RUNNER_TX_BALANCER_INTERVAL] = { "runner", "tx_balancer", "interval",
+ NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL_DEFAULT },
+ [PROP_RUNNER_ACTIVE] = { "runner", "active", NULL, 0 },
+ [PROP_RUNNER_FAST_RATE] = { "runner", "fast_rate", NULL, 0 },
+ [PROP_RUNNER_SYS_PRIO] = { "runner", "sys_prio", NULL,
+ NM_SETTING_TEAM_RUNNER_SYS_PRIO_DEFAULT },
+ [PROP_RUNNER_MIN_PORTS] = { "runner", "min_ports", NULL, 0 },
+ [PROP_RUNNER_AGG_SELECT_POLICY] = { "runner", "agg_select_policy", NULL,
+ {.default_str = NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_DEFAULT} },
+};
+
/**
* nm_setting_team_new:
*
@@ -79,6 +132,339 @@ nm_setting_team_get_config (NMSettingTeam *setting)
return NM_SETTING_TEAM_GET_PRIVATE (setting)->config;
}
+/**
+ * nm_setting_team_get_notify_peers_count:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:notify-peers-count property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_get_notify_peers_count (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), 0);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->notify_peers_count;
+}
+
+/**
+ * nm_setting_team_get_notify_peers_interval:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:notify-peers-interval property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_get_notify_peers_interval (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), 0);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->notify_peers_interval;
+}
+
+/**
+ * nm_setting_team_get_mcast_rejoin_count:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:mcast-rejoin-count property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_get_mcast_rejoin_count (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), 0);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->mcast_rejoin_count;
+}
+
+/**
+ * nm_setting_team_get_mcast_rejoin_interval:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:mcast-rejoin-interval property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_get_mcast_rejoin_interval (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), 0);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->mcast_rejoin_interval;
+}
+
+/**
+ * nm_setting_team_get_runner:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:runner property of the setting
+ *
+ * Since: 1.12
+ **/
+const char *
+nm_setting_team_get_runner (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), NULL);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->runner;
+}
+
+/**
+ * nm_setting_team_get_runner_hwaddr_policy:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:runner-hwaddr-policy property of the setting
+ *
+ * Since: 1.12
+ **/
+const char *
+nm_setting_team_get_runner_hwaddr_policy (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), NULL);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->runner_hwaddr_policy;
+}
+
+/**
+ * nm_setting_team_get_runner_tx_balancer:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:runner-tx-balancer property of the setting
+ *
+ * Since: 1.12
+ **/
+const char *
+nm_setting_team_get_runner_tx_balancer (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), NULL);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->runner_tx_balancer;
+}
+
+/**
+ * nm_setting_team_get_runner_tx_balancer_interval:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:runner-tx-balancer_interval property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_get_runner_tx_balancer_interval (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), 0);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->runner_tx_balancer_interval;
+}
+
+/**
+ * nm_setting_team_get_runner_active:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:runner_active property of the setting
+ *
+ * Since: 1.12
+ **/
+gboolean
+nm_setting_team_get_runner_active (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), FALSE);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->runner_active;
+}
+
+/**
+ * nm_setting_team_get_runner_fast_rate:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:runner-fast-rate property of the setting
+ *
+ * Since: 1.12
+ **/
+gboolean
+nm_setting_team_get_runner_fast_rate (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), FALSE);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->runner_fast_rate;
+}
+
+/**
+ * nm_setting_team_get_runner_sys_prio:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:runner-sys-prio property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_get_runner_sys_prio (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), 0);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->runner_sys_prio;
+}
+
+/**
+ * nm_setting_team_get_runner_min_ports:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:runner-min-ports property of the setting
+ *
+ * Since: 1.12
+ **/
+gint
+nm_setting_team_get_runner_min_ports (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), 0);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->runner_min_ports;
+}
+
+/**
+ * nm_setting_team_get_runner_agg_select_policy:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the ##NMSettingTeam:runner-agg-select-policy property of the setting
+ *
+ * Since: 1.12
+ **/
+const char *
+nm_setting_team_get_runner_agg_select_policy (NMSettingTeam *setting)
+{
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), NULL);
+
+ return NM_SETTING_TEAM_GET_PRIVATE (setting)->runner_agg_select_policy;
+}
+
+/**
+ * nm_setting_team_remove_runner_tx_hash_by_value:
+ * @setting: the #NMSetetingTeam
+ * @txhash: the txhash element to remove
+ *
+ * Removes the txhash element #txhash
+ *
+ * Returns: %TRUE if the txhash element was found and removed; %FALSE if it was not.
+ *
+ * Since: 1.12
+ **/
+gboolean
+nm_setting_team_remove_runner_tx_hash_by_value (NMSettingTeam *setting,
+ const char *txhash)
+{
+ NMSettingTeamPrivate *priv = NM_SETTING_TEAM_GET_PRIVATE (setting);
+ guint i;
+
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), FALSE);
+ g_return_val_if_fail (txhash != NULL, FALSE);
+ g_return_val_if_fail (txhash[0] != '\0', FALSE);
+
+ for (i = 0; i < priv->runner_tx_hash->len; i++) {
+ if (nm_streq (txhash, priv->runner_tx_hash->pdata[i])) {
+ g_ptr_array_remove_index (priv->runner_tx_hash, i);
+ g_object_notify (G_OBJECT (setting), NM_SETTING_TEAM_RUNNER_TX_HASH);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+/**
+ * nm_setting_team_get_num_runner_tx_hash:
+ * @setting: the #NMSettingTeam
+ *
+ * Returns: the number of elements in txhash
+ *
+ * Since: 1.12
+ **/
+guint
+nm_setting_team_get_num_runner_tx_hash (NMSettingTeam *setting)
+{
+ NMSettingTeamPrivate *priv = NM_SETTING_TEAM_GET_PRIVATE (setting);
+
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), 0);
+
+ return priv->runner_tx_hash ? priv->runner_tx_hash->len : 0;
+}
+
+/**
+ * nm_setting_team_get_runner_tx_hash
+ * @setting: the #NMSettingTeam
+ * @idx: index number of the txhash element to return
+ *
+ * Returns: the txhash element at index @idx
+ *
+ * Since: 1.12
+ **/
+const char *
+nm_setting_team_get_runner_tx_hash (NMSettingTeam *setting, int idx)
+{
+ NMSettingTeamPrivate *priv = NM_SETTING_TEAM_GET_PRIVATE (setting);
+
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), NULL);
+ g_return_val_if_fail (idx >= 0 && idx < priv->runner_tx_hash->len, NULL);
+
+ return priv->runner_tx_hash->pdata[idx];
+}
+
+/**
+ * nm_setting_team_remove_runner_tx_hash:
+ * @setting: the #NMSettingTeam
+ * @idx: index number of the element to remove from txhash
+ *
+ * Removes the txhash element at index @idx.
+ *
+ * Since: 1.12
+ **/
+void
+nm_setting_team_remove_runner_tx_hash (NMSettingTeam *setting, int idx)
+{
+ NMSettingTeamPrivate *priv = NM_SETTING_TEAM_GET_PRIVATE (setting);
+
+ g_return_if_fail (NM_IS_SETTING_TEAM (setting));
+ g_return_if_fail (idx >= 0 && idx < priv->runner_tx_hash->len);
+
+ g_ptr_array_remove_index (priv->runner_tx_hash, idx);
+ g_object_notify (G_OBJECT (setting), NM_SETTING_TEAM_RUNNER_TX_HASH);
+}
+
+/**
+ * nm_setting_team_add_runner_tx_hash:
+ * @setting: the #NMSettingTeam
+ * @txhash: the element to add to txhash
+ *
+ * Adds a new txhash element to the setting.
+ *
+ * Returns: %TRUE if the txhash element was added; %FALSE if the element
+ * was already knnown.
+ *
+ * Since: 1.12
+ **/
+gboolean
+nm_setting_team_add_runner_tx_hash (NMSettingTeam *setting, const char *txhash)
+{
+ NMSettingTeamPrivate *priv = NM_SETTING_TEAM_GET_PRIVATE (setting);
+ guint i;
+
+ g_return_val_if_fail (NM_IS_SETTING_TEAM (setting), FALSE);
+ g_return_val_if_fail (txhash != NULL, FALSE);
+ g_return_val_if_fail (txhash[0] != '\0', FALSE);
+
+ if (!priv->runner_tx_hash)
+ priv->runner_tx_hash = g_ptr_array_new_with_free_func (g_free);
+ for (i = 0; i < priv->runner_tx_hash->len; i++) {
+ if (nm_streq (txhash, priv->runner_tx_hash->pdata[i]))
+ return FALSE;
+ }
+
+ g_ptr_array_add (priv->runner_tx_hash, g_strdup (txhash));
+ g_object_notify (G_OBJECT (setting), NM_SETTING_TEAM_RUNNER_TX_HASH);
+ return TRUE;
+}
+
static gboolean
verify (NMSetting *setting, NMConnection *connection, GError **error)
{
@@ -108,6 +494,19 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
}
}
+ if ( priv->runner
+ && g_ascii_strcasecmp (priv->runner, NM_SETTING_TEAM_RUNNER_BROADCAST)
+ && g_ascii_strcasecmp (priv->runner, NM_SETTING_TEAM_RUNNER_ROUNDROBIN)
+ && g_ascii_strcasecmp (priv->runner, NM_SETTING_TEAM_RUNNER_ACTIVEBACKUP)
+ && g_ascii_strcasecmp (priv->runner, NM_SETTING_TEAM_RUNNER_LOADBALANCE)
+ && g_ascii_strcasecmp (priv->runner, NM_SETTING_TEAM_RUNNER_LACP)) {
+ g_set_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_SETTING,
+ _("invalid runner \"%s\""), priv->runner);
+
+ g_prefix_error (error, "%s.%s: ", nm_setting_get_name (setting), NM_SETTING_TEAM_RUNNER);
+ return FALSE;
+ }
+
/* NOTE: normalizable/normalizable-errors must appear at the end with decreasing severity.
* Take care to properly order statements with priv->config above. */
@@ -142,6 +541,11 @@ compare_property (NMSetting *setting,
static void
nm_setting_team_init (NMSettingTeam *setting)
{
+ NMSettingTeamPrivate *priv = NM_SETTING_TEAM_GET_PRIVATE (setting);
+
+ priv->runner = g_strdup (NM_SETTING_TEAM_RUNNER_ROUNDROBIN);
+ priv->runner_sys_prio = NM_SETTING_TEAM_RUNNER_SYS_PRIO_DEFAULT;
+ priv->runner_tx_balancer_interval = NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL_DEFAULT;
}
static void
@@ -150,25 +554,200 @@ finalize (GObject *object)
NMSettingTeamPrivate *priv = NM_SETTING_TEAM_GET_PRIVATE (object);
g_free (priv->config);
+ g_free (priv->runner);
+ g_free (priv->runner_hwaddr_policy);
+ g_free (priv->runner_tx_balancer);
+ g_free (priv->runner_agg_select_policy);
+ if (priv->runner_tx_hash)
+ g_ptr_array_unref (priv->runner_tx_hash);
G_OBJECT_CLASS (nm_setting_team_parent_class)->finalize (object);
}
+
+#define JSON_TO_VAL(typ, id) _nm_utils_json_extract_##typ (priv->config, _prop_to_keys[id], FALSE)
+
+static void
+_align_team_properties (NMSettingTeam *setting)
+{
+ NMSettingTeamPrivate *priv = NM_SETTING_TEAM_GET_PRIVATE (setting);
+ char **strv;
+ int i;
+
+ priv->notify_peers_count = JSON_TO_VAL (int, PROP_NOTIFY_PEERS_COUNT);
+ priv->notify_peers_interval = JSON_TO_VAL (int, PROP_NOTIFY_PEERS_INTERVAL);
+ priv->mcast_rejoin_count = JSON_TO_VAL (int, PROP_MCAST_REJOIN_COUNT);
+ priv->mcast_rejoin_interval = JSON_TO_VAL (int, PROP_MCAST_REJOIN_INTERVAL);
+ priv->runner_tx_balancer_interval = JSON_TO_VAL (int, PROP_RUNNER_TX_BALANCER_INTERVAL);
+ priv->runner_sys_prio = JSON_TO_VAL (int, PROP_RUNNER_SYS_PRIO);
+ priv->runner_min_ports = JSON_TO_VAL (int, PROP_RUNNER_MIN_PORTS);
+
+ priv->runner_active = JSON_TO_VAL (boolean, PROP_RUNNER_ACTIVE);
+ priv->runner_fast_rate = JSON_TO_VAL (boolean, PROP_RUNNER_FAST_RATE);
+
+ g_free (priv->runner);
+ g_free (priv->runner_hwaddr_policy);
+ g_free (priv->runner_tx_balancer);
+ g_free (priv->runner_agg_select_policy);
+ priv->runner = JSON_TO_VAL (string, PROP_RUNNER);
+ priv->runner_hwaddr_policy = JSON_TO_VAL (string, PROP_RUNNER_HWADDR_POLICY);
+ priv->runner_tx_balancer = JSON_TO_VAL (string, PROP_RUNNER_TX_BALANCER);
+ priv->runner_agg_select_policy = JSON_TO_VAL (string, PROP_RUNNER_AGG_SELECT_POLICY);
+
+ if (priv->runner_tx_hash) {
+ g_ptr_array_unref (priv->runner_tx_hash);
+ priv->runner_tx_hash = NULL;
+ }
+ strv = JSON_TO_VAL (strv, PROP_RUNNER_TX_HASH);
+ if (strv) {
+ for (i = 0; strv[i]; i++)
+ nm_setting_team_add_runner_tx_hash (setting, strv[i]);
+ g_strfreev (strv);
+ }
+}
+
static void
set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec)
{
+ NMSettingTeam *setting = NM_SETTING_TEAM (object);
NMSettingTeamPrivate *priv = NM_SETTING_TEAM_GET_PRIVATE (object);
+ const GValue *align_value = NULL;
+ gboolean align_config = FALSE;
+ char **strv;
switch (prop_id) {
case PROP_CONFIG:
g_free (priv->config);
priv->config = g_value_dup_string (value);
+ _align_team_properties (setting);
+ break;
+ case PROP_NOTIFY_PEERS_COUNT:
+ if (priv->notify_peers_count == g_value_get_int (value))
+ break;
+ priv->notify_peers_count = g_value_get_int (value);
+ if (priv->notify_peers_count)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_NOTIFY_PEERS_INTERVAL:
+ if (priv->notify_peers_interval == g_value_get_int (value))
+ break;
+ priv->notify_peers_interval = g_value_get_int (value);
+ if (priv->notify_peers_interval)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_MCAST_REJOIN_COUNT:
+ if (priv->mcast_rejoin_count == g_value_get_int (value))
+ break;
+ priv->mcast_rejoin_count = g_value_get_int (value);
+ if (priv->mcast_rejoin_count)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_MCAST_REJOIN_INTERVAL:
+ if (priv->mcast_rejoin_interval == g_value_get_int (value))
+ break;
+ priv->mcast_rejoin_interval = g_value_get_int (value);
+ if (priv->mcast_rejoin_interval)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_RUNNER:
+ g_free (priv->runner);
+ priv->runner = g_value_dup_string (value);
+ if ( priv->runner
+ && !nm_streq (priv->runner,
+ NM_SETTING_TEAM_RUNNER_DEFAULT))
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_RUNNER_HWADDR_POLICY:
+ g_free (priv->runner_hwaddr_policy);
+ priv->runner_hwaddr_policy = g_value_dup_string (value);
+ if ( priv->runner_hwaddr_policy
+ && !nm_streq (priv->runner_hwaddr_policy,
+ NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_SAME_ALL)) {
+ align_value = value;
+ }
+ align_config = TRUE;
+ break;
+ case PROP_RUNNER_TX_HASH:
+ if (priv->runner_tx_hash)
+ g_ptr_array_unref (priv->runner_tx_hash);
+ strv = g_value_get_boxed (value);
+ if (strv && strv[0]) {
+ priv->runner_tx_hash = _nm_utils_strv_to_ptrarray (strv);
+ align_value = value;
+ } else
+ priv->runner_tx_hash = NULL;
+ align_config = TRUE;
+ break;
+ case PROP_RUNNER_TX_BALANCER:
+ g_free (priv->runner_tx_balancer);
+ priv->runner_tx_balancer = g_value_dup_string (value);
+ if (priv->runner_tx_balancer)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_RUNNER_TX_BALANCER_INTERVAL:
+ if (priv->runner_tx_balancer_interval == g_value_get_int (value))
+ break;
+ priv->runner_tx_balancer_interval = g_value_get_int (value);
+ if (priv->runner_tx_balancer_interval !=
+ NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL_DEFAULT)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_RUNNER_ACTIVE:
+ if (priv->runner_active == g_value_get_boolean (value))
+ break;
+ priv->runner_active = g_value_get_boolean (value);
+ if (priv->runner_active)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_RUNNER_FAST_RATE:
+ if (priv->runner_fast_rate == g_value_get_boolean (value))
+ break;
+ priv->runner_fast_rate = g_value_get_boolean (value);
+ if (priv->runner_fast_rate)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_RUNNER_SYS_PRIO:
+ if (priv->runner_sys_prio == g_value_get_int (value))
+ break;
+ priv->runner_sys_prio = g_value_get_int (value);
+ if (priv->runner_sys_prio != NM_SETTING_TEAM_RUNNER_SYS_PRIO_DEFAULT)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_RUNNER_MIN_PORTS:
+ if (priv->runner_min_ports == g_value_get_int (value))
+ break;
+ priv->runner_min_ports = g_value_get_int (value);
+ if (priv->runner_min_ports)
+ align_value = value;
+ align_config = TRUE;
+ break;
+ case PROP_RUNNER_AGG_SELECT_POLICY:
+ g_free (priv->runner_agg_select_policy);
+ priv->runner_agg_select_policy = g_value_dup_string (value);
+ if ( priv->runner_agg_select_policy
+ && !nm_streq (priv->runner_agg_select_policy,
+ NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_LACP_PRIO))
+ align_value = value;
+ align_config = TRUE;
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
+
+ if (align_config)
+ _nm_utils_json_append_gvalue (&priv->config, _prop_to_keys[prop_id], align_value);
}
static void
@@ -176,11 +755,55 @@ get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
NMSettingTeam *setting = NM_SETTING_TEAM (object);
+ NMSettingTeamPrivate *priv = NM_SETTING_TEAM_GET_PRIVATE (setting);
switch (prop_id) {
case PROP_CONFIG:
g_value_set_string (value, nm_setting_team_get_config (setting));
break;
+ case PROP_NOTIFY_PEERS_COUNT:
+ g_value_set_int (value, priv->notify_peers_count);
+ break;
+ case PROP_NOTIFY_PEERS_INTERVAL:
+ g_value_set_int (value, priv->notify_peers_interval);
+ break;
+ case PROP_MCAST_REJOIN_COUNT:
+ g_value_set_int (value, priv->mcast_rejoin_count);
+ break;
+ case PROP_MCAST_REJOIN_INTERVAL:
+ g_value_set_int (value, priv->mcast_rejoin_interval);
+ break;
+ case PROP_RUNNER:
+ g_value_set_string (value, nm_setting_team_get_runner (setting));
+ break;
+ case PROP_RUNNER_HWADDR_POLICY:
+ g_value_set_string (value, nm_setting_team_get_runner_hwaddr_policy (setting));
+ break;
+ case PROP_RUNNER_TX_HASH:
+ g_value_take_boxed (value, priv->runner_tx_hash ?
+ _nm_utils_ptrarray_to_strv (priv->runner_tx_hash): NULL);
+ break;
+ case PROP_RUNNER_TX_BALANCER:
+ g_value_set_string (value, nm_setting_team_get_runner_tx_balancer (setting));
+ break;
+ case PROP_RUNNER_TX_BALANCER_INTERVAL:
+ g_value_set_int (value, priv->runner_tx_balancer_interval);
+ break;
+ case PROP_RUNNER_ACTIVE:
+ g_value_set_boolean (value, nm_setting_team_get_runner_active (setting));
+ break;
+ case PROP_RUNNER_FAST_RATE:
+ g_value_set_boolean (value, nm_setting_team_get_runner_fast_rate (setting));
+ break;
+ case PROP_RUNNER_SYS_PRIO:
+ g_value_set_int (value, priv->runner_sys_prio);
+ break;
+ case PROP_RUNNER_MIN_PORTS:
+ g_value_set_int (value, priv->runner_min_ports);
+ break;
+ case PROP_RUNNER_AGG_SELECT_POLICY:
+ g_value_set_string (value, nm_setting_team_get_runner_agg_select_policy (setting));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -225,6 +848,205 @@ nm_setting_team_class_init (NMSettingTeamClass *setting_class)
NM_SETTING_PARAM_INFERRABLE |
G_PARAM_STATIC_STRINGS));
+ /**
+ * NMSettingTeam:notify-peers-count:
+ *
+ * Corresponds to the teamd notify_peers.count.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_NOTIFY_PEERS_COUNT,
+ g_param_spec_int (NM_SETTING_TEAM_NOTIFY_PEERS_COUNT, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:notify-peers-interval:
+ *
+ * Corresponds to the teamd notify_peers.interval.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_NOTIFY_PEERS_INTERVAL,
+ g_param_spec_int (NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:mcast-rejoin-count:
+ *
+ * Corresponds to the teamd mcast_rejoin.count.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_MCAST_REJOIN_COUNT,
+ g_param_spec_int (NM_SETTING_TEAM_MCAST_REJOIN_COUNT, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:mcast-rejoin-interval:
+ *
+ * Corresponds to the teamd mcast_rejoin.interval.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_MCAST_REJOIN_INTERVAL,
+ g_param_spec_int (NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:runner:
+ *
+ * Corresponds to the teamd runner.name.
+ * Permitted values are: "roundrobin", "broadcast", "activebackup",
+ * "loadbalance", "lacp".
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_RUNNER,
+ g_param_spec_string (NM_SETTING_TEAM_RUNNER, "", "",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:runner-hwaddr-policy:
+ *
+ * Corresponds to the teamd runner.hwaddr_policy.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_RUNNER_HWADDR_POLICY,
+ g_param_spec_string (NM_SETTING_TEAM_RUNNER_HWADDR_POLICY, "", "",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:runner-tx-hash:
+ *
+ * Corresponds to the teamd runner.tx_hash.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_RUNNER_TX_HASH,
+ g_param_spec_boxed (NM_SETTING_TEAM_RUNNER_TX_HASH, "", "",
+ G_TYPE_STRV,
+ G_PARAM_READWRITE |
+ NM_SETTING_PARAM_INFERRABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:runner-tx-balancer:
+ *
+ * Corresponds to the teamd runner.tx_balancer.name.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_RUNNER_TX_BALANCER,
+ g_param_spec_string (NM_SETTING_TEAM_RUNNER_TX_BALANCER, "", "",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:runner-tx-balancer-interval:
+ *
+ * Corresponds to the teamd runner.tx_balancer.interval.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_RUNNER_TX_BALANCER_INTERVAL,
+ g_param_spec_int (NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:runner-active:
+ *
+ * Corresponds to the teamd runner.active.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_RUNNER_ACTIVE,
+ g_param_spec_boolean (NM_SETTING_TEAM_RUNNER_ACTIVE, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:runner-fast-rate:
+ *
+ * Corresponds to the teamd runner.fast_rate.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_RUNNER_FAST_RATE,
+ g_param_spec_boolean (NM_SETTING_TEAM_RUNNER_FAST_RATE, "", "",
+ FALSE,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:runner-sys-prio:
+ *
+ * Corresponds to the teamd runner.sys_prio.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_RUNNER_SYS_PRIO,
+ g_param_spec_int (NM_SETTING_TEAM_RUNNER_SYS_PRIO, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:runner-min-ports:
+ *
+ * Corresponds to the teamd runner.min_ports.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_RUNNER_MIN_PORTS,
+ g_param_spec_int (NM_SETTING_TEAM_RUNNER_MIN_PORTS, "", "",
+ G_MININT32, G_MAXINT32, 0,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMSettingTeam:runner-agg-select-policy:
+ *
+ * Corresponds to the teamd runner.agg_select_policy.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_RUNNER_AGG_SELECT_POLICY,
+ g_param_spec_string (NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY, "", "",
+ NULL,
+ G_PARAM_READWRITE |
+ G_PARAM_STATIC_STRINGS));
+
/* ---dbus---
* property: interface-name
* format: string
diff --git a/libnm-core/nm-setting-team.h b/libnm-core/nm-setting-team.h
index 532963aacb..18811374d0 100644
--- a/libnm-core/nm-setting-team.h
+++ b/libnm-core/nm-setting-team.h
@@ -38,7 +38,45 @@ G_BEGIN_DECLS
#define NM_SETTING_TEAM_SETTING_NAME "team"
-#define NM_SETTING_TEAM_CONFIG "config"
+#define NM_SETTING_TEAM_CONFIG "config"
+#define NM_SETTING_TEAM_NOTIFY_PEERS_COUNT "notify-peers-count"
+#define NM_SETTING_TEAM_NOTIFY_PEERS_INTERVAL "notify-peers-interval"
+#define NM_SETTING_TEAM_MCAST_REJOIN_COUNT "mcast-rejoin-count"
+#define NM_SETTING_TEAM_MCAST_REJOIN_INTERVAL "mcast-rejoin-interval"
+#define NM_SETTING_TEAM_RUNNER "runner"
+#define NM_SETTING_TEAM_RUNNER_HWADDR_POLICY "runner-hwaddr-policy"
+#define NM_SETTING_TEAM_RUNNER_TX_HASH "runner-tx-hash"
+#define NM_SETTING_TEAM_RUNNER_TX_BALANCER "runner-tx-balancer"
+#define NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL "runner-tx-balancer-interval"
+#define NM_SETTING_TEAM_RUNNER_ACTIVE "runner-active"
+#define NM_SETTING_TEAM_RUNNER_FAST_RATE "runner-fast-rate"
+#define NM_SETTING_TEAM_RUNNER_SYS_PRIO "runner-sys-prio"
+#define NM_SETTING_TEAM_RUNNER_MIN_PORTS "runner-min-ports"
+#define NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY "runner-agg-select-policy"
+
+#define NM_SETTING_TEAM_RUNNER_BROADCAST "broadcast"
+#define NM_SETTING_TEAM_RUNNER_ROUNDROBIN "roundrobin"
+#define NM_SETTING_TEAM_RUNNER_ACTIVEBACKUP "activebackup"
+#define NM_SETTING_TEAM_RUNNER_LOADBALANCE "loadbalance"
+#define NM_SETTING_TEAM_RUNNER_LACP "lacp"
+
+#define NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_SAME_ALL "same_all"
+#define NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_BY_ACTIVE "by_active"
+#define NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_ONLY_ACTIVE "only_active"
+
+#define NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_LACP_PRIO "lacp_prio"
+#define NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_LACP_PRIO_STABLE "lacp_prio_stable"
+#define NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_BANDWIDTH "bandwidth"
+#define NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_COUNT "count"
+#define NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_PORT_CONFIG "port_config"
+
+#define NM_SETTING_TEAM_NOTIFY_PEERS_COUNT_ACTIVEBACKUP_DEFAULT 1
+#define NM_SETTING_TEAM_NOTIFY_MCAST_COUNT_ACTIVEBACKUP_DEFAULT 1
+#define NM_SETTING_TEAM_RUNNER_DEFAULT NM_SETTING_TEAM_RUNNER_ROUNDROBIN
+#define NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_DEFAULT NM_SETTING_TEAM_RUNNER_HWADDR_POLICY_SAME_ALL
+#define NM_SETTING_TEAM_RUNNER_TX_BALANCER_INTERVAL_DEFAULT 50
+#define NM_SETTING_TEAM_RUNNER_SYS_PRIO_DEFAULT 255
+#define NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_DEFAULT NM_SETTING_TEAM_RUNNER_AGG_SELECT_POLICY_LACP_PRIO
/**
* NMSettingTeam:
@@ -61,7 +99,42 @@ GType nm_setting_team_get_type (void);
NMSetting * nm_setting_team_new (void);
const char * nm_setting_team_get_config (NMSettingTeam *setting);
-
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_get_notify_peers_count (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_get_notify_peers_interval (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_get_mcast_rejoin_count (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_get_mcast_rejoin_interval (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+const char * nm_setting_team_get_runner (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+const char * nm_setting_team_get_runner_hwaddr_policy (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+const char * nm_setting_team_get_runner_tx_balancer (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_get_runner_tx_balancer_interval (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+gboolean nm_setting_team_get_runner_active (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+gboolean nm_setting_team_get_runner_fast_rate (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_get_runner_sys_prio (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+gint nm_setting_team_get_runner_min_ports (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+const char * nm_setting_team_get_runner_agg_select_policy (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+gboolean nm_setting_team_remove_runner_tx_hash_by_value (NMSettingTeam *setting, const char *txhash);
+NM_AVAILABLE_IN_1_12
+guint nm_setting_team_get_num_runner_tx_hash (NMSettingTeam *setting);
+NM_AVAILABLE_IN_1_12
+const char *nm_setting_team_get_runner_tx_hash (NMSettingTeam *setting, int idx);
+NM_AVAILABLE_IN_1_12
+void nm_setting_team_remove_runner_tx_hash (NMSettingTeam *setting, int idx);
+NM_AVAILABLE_IN_1_12
+gboolean nm_setting_team_add_runner_tx_hash (NMSettingTeam *setting, const char *txhash);
G_END_DECLS
#endif /* __NM_SETTING_TEAM_H__ */
diff --git a/libnm-core/nm-utils-private.h b/libnm-core/nm-utils-private.h
index 03c8790764..6b8d58726a 100644
--- a/libnm-core/nm-utils-private.h
+++ b/libnm-core/nm-utils-private.h
@@ -78,4 +78,94 @@ void _nm_utils_bytes_from_dbus (GVariant *dbus_value,
char * _nm_utils_hwaddr_canonical_or_invalid (const char *mac, gssize length);
+
+/* JSON to GValue conversion macros */
+
+typedef struct {
+ const char *key1;
+ const char *key2;
+ const char *key3;
+ union {
+ int default_int;
+ gboolean default_bool;
+ const char *default_str;
+ };
+} _NMUtilsTeamPropertyKeys;
+
+static inline int
+_nm_utils_json_extract_int (char *conf,
+ _NMUtilsTeamPropertyKeys key,
+ gboolean is_port)
+{
+ gs_free GValue *t_value = NULL;
+ int ret;
+
+ t_value = _nm_utils_team_config_get (conf, key.key1, key.key2, key.key3, is_port);
+ if (!t_value)
+ return key.default_int;
+
+ ret = g_value_get_int (t_value);
+ g_value_unset (t_value);
+ return ret;
+}
+
+static inline gboolean
+_nm_utils_json_extract_boolean (char *conf,
+ _NMUtilsTeamPropertyKeys key,
+ gboolean is_port)
+{
+ gs_free GValue *t_value = NULL;
+ gboolean ret;
+
+ t_value = _nm_utils_team_config_get (conf, key.key1, key.key2, key.key3, is_port);
+ if (!t_value)
+ return key.default_bool;
+
+ ret = g_value_get_boolean (t_value);
+ g_value_unset (t_value);
+ return ret;
+}
+
+static inline char *
+_nm_utils_json_extract_string (char *conf,
+ _NMUtilsTeamPropertyKeys key,
+ gboolean is_port)
+{
+ gs_free GValue *t_value = NULL;
+ char *ret;
+
+ t_value = _nm_utils_team_config_get (conf, key.key1, key.key2, key.key3, is_port);
+ if (!t_value)
+ return g_strdup (key.default_str);
+
+ ret = g_value_dup_string (t_value);
+ g_value_unset (t_value);
+ return ret;
+}
+
+static inline char **
+_nm_utils_json_extract_strv (char *conf,
+ _NMUtilsTeamPropertyKeys key,
+ gboolean is_port)
+{
+ gs_free GValue *t_value = NULL;
+ char **ret;
+
+ t_value = _nm_utils_team_config_get (conf, key.key1, key.key2, key.key3, is_port);
+ if (!t_value)
+ return NULL;
+
+ ret = g_strdupv (g_value_get_boxed (t_value));
+ g_value_unset (t_value);
+ return ret;
+}
+
+static inline void
+_nm_utils_json_append_gvalue (char **conf,
+ _NMUtilsTeamPropertyKeys key,
+ const GValue *val)
+{
+ _nm_utils_team_config_set (conf, key.key1, key.key2, key.key3, val);
+}
+
#endif
diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c
index bc9558347c..6c8436cc5d 100644
--- a/libnm-core/nm-utils.c
+++ b/libnm-core/nm-utils.c
@@ -34,10 +34,7 @@
#include <sys/stat.h>
#include <net/if.h>
-#if WITH_JANSSON
-#include <jansson.h>
-#endif
-
+#include "nm-utils/nm-jansson.h"
#include "nm-utils/nm-enum-utils.h"
#include "nm-utils/nm-hash-utils.h"
#include "nm-common-macros.h"
@@ -3762,6 +3759,22 @@ nm_utils_is_uuid (const char *str)
static char _nm_utils_inet_ntop_buffer[NM_UTILS_INET_ADDRSTRLEN];
+const char *
+nm_utils_inet_ntop (int addr_family, gconstpointer addr, char *dst)
+{
+ const char *s;
+
+ nm_assert_addr_family (addr_family);
+ nm_assert (addr);
+
+ s = inet_ntop (addr_family,
+ addr,
+ dst ? dst : _nm_utils_inet_ntop_buffer,
+ addr_family == AF_INET6 ? INET6_ADDRSTRLEN : INET_ADDRSTRLEN);
+ nm_assert (s);
+ return s;
+}
+
/**
* nm_utils_inet4_ntop: (skip)
* @inaddr: the address that should be converted to string.
@@ -4345,15 +4358,6 @@ nm_utils_is_json_object (const char *str, GError **error)
return TRUE;
}
-/* json_object_foreach_safe() is only available since Jansson 2.8,
- * reimplement it */
-#define _json_object_foreach_safe(object, n, key, value) \
- for (key = json_object_iter_key (json_object_iter (object)), \
- n = json_object_iter_next (object, json_object_iter_at (object, key)); \
- key && (value = json_object_iter_value (json_object_iter_at (object, key))); \
- key = json_object_iter_key (n), \
- n = json_object_iter_next (object, json_object_iter_at (object, key)))
-
gboolean
_nm_utils_team_config_equal (const char *conf1,
const char *conf2,
@@ -4417,7 +4421,7 @@ _nm_utils_team_config_equal (const char *conf1,
/* Only consider a given subset of nodes, others can change depending on
* current state */
for (i = 0, json = json1; i < 2; i++, json = json2) {
- _json_object_foreach_safe (json, tmp, key, value) {
+ json_object_foreach_safe (json, tmp, key, value) {
if (!NM_IN_STRSET (key, "runner", "link_watch"))
json_object_del (json, key);
}
@@ -4437,6 +4441,280 @@ out:
return ret;
}
+
+
+static void
+_json_add_object (json_t *json,
+ const char *key1,
+ const char *key2,
+ const char *key3,
+ json_t *value)
+{
+ json_t *json_element, *json_link;
+
+ json_element = json_object_get (json, key1);
+ if (!json_element) {
+ json_element = value;
+ if (key2) {
+ if (key3) {
+ json_element = json_object ();
+ json_object_set_new (json_element, key3, value);
+ }
+ json_link = json_object ();
+ json_object_set_new (json_link, key2, json_element);
+ json_element = json_link;
+ }
+ json_object_set_new (json, key1, json_element);
+ return;
+ }
+
+ if (!key2)
+ goto key_already_there;
+
+ json_link = json_element;
+ json_element = json_object_get (json_element, key2);
+ if (!json_element) {
+ json_element = value;
+ if (key3) {
+ json_element = json_object ();
+ json_object_set_new (json_element, key3, value);
+ }
+ json_object_set_new (json_link, key2, json_element);
+ return;
+ }
+
+ if (!key3)
+ goto key_already_there;
+
+ json_link = json_element;
+ json_element = json_object_get (json_element, key3);
+ if (!json_element) {
+ json_object_set_new (json_link, key3, value);
+ return;
+ }
+
+key_already_there:
+ json_decref (value);
+}
+
+GValue *
+_nm_utils_team_config_get (const char *conf,
+ const char *key,
+ const char *key2,
+ const char *key3,
+ gboolean port_config)
+{
+ json_t *json;
+ json_t *json_element;
+ GValue *value = NULL;
+ json_error_t jerror;
+ const char *runner = NULL;
+
+ if (!key)
+ return NULL;
+
+ json = json_loads (conf ?: "{}", JSON_REJECT_DUPLICATES, &jerror);
+
+ /* Invalid json in conf */
+ if (!json)
+ return NULL;
+
+ /* Some properties are added by teamd when missing from the initial
+ * configuration. Add them with the default value if necessary, depending
+ * on the configuration type.
+ */
+ if (port_config) {
+ _json_add_object (json, "link_watch", "name", NULL, json_string ("ethtool"));
+ } else {
+ /* Retrieve runner or add default one */
+ json_element = json_object_get (json, "runner");
+ if (json_element) {
+ runner = json_string_value (json_object_get (json_element, "name"));
+ } else {
+ json_element = json_object ();
+ json_object_set_new (json, "runner", json_element);
+ }
+ if (!runner) {
+ runner = NM_SETTING_TEAM_RUNNER_DEFAULT;
+ json_object_set_new (json_element, "name", json_string (runner));
+ }
+
+
+ if (nm_streq (runner, NM_SETTING_TEAM_RUNNER_ACTIVEBACKUP)) {
+ _json_add_object (json, "notify_peers", "count", NULL,
+ json_integer (NM_SETTING_TEAM_NOTIFY_PEERS_COUNT_ACTIVEBACKUP_DEFAULT));
+ _json_add_object (json, "mcast_rejoin", "count", NULL,
+ json_integer (NM_SETTING_TEAM_NOTIFY_MCAST_COUNT_ACTIVEBACKUP_DEFAULT));
+ } else if ( nm_streq (runner, NM_SETTING_TEAM_RUNNER_LOADBALANCE)
+ || nm_streq (runner, NM_SETTING_TEAM_RUNNER_LACP)) {
+ json_element = json_array ();
+ json_array_append_new (json_element, json_string ("eth"));
+ json_array_append_new (json_element, json_string ("ipv4"));
+ json_array_append_new (json_element, json_string ("ipv6"));
+ _json_add_object (json, "runner", "tx_hash", NULL, json_element);
+ }
+ }
+ json_element = json_object_get (json, key);
+ if (json_element && key2)
+ json_element = json_object_get (json_element, key2);
+ if (json_element && key3)
+ json_element = json_object_get (json_element, key3);
+
+ if (json_element) {
+ value = g_new0 (GValue, 1);
+ if (json_is_string (json_element)) {
+ g_value_init (value, G_TYPE_STRING);
+ g_value_set_string (value, json_string_value (json_element));
+ } else if (json_is_integer (json_element)) {
+ g_value_init (value, G_TYPE_INT);
+ g_value_set_int (value, json_integer_value (json_element));
+ } else if (json_is_boolean (json_element)) {
+ g_value_init (value, G_TYPE_BOOLEAN);
+ g_value_set_boolean (value, json_boolean_value (json_element));
+ } else if (json_is_array (json_element)) {
+ GPtrArray *data = g_ptr_array_new_with_free_func ((GDestroyNotify) g_free);
+ json_t *str_element;
+ int index;
+
+ json_array_foreach (json_element, index, str_element) {
+ if (json_is_string (str_element))
+ g_ptr_array_add (data, g_strdup (json_string_value (str_element)));
+ }
+ if (data->len) {
+ g_value_init (value, G_TYPE_STRV);
+ g_value_take_boxed (value, _nm_utils_ptrarray_to_strv (data));
+ }
+ g_ptr_array_free (data, TRUE);
+ } else {
+ g_assert_not_reached ();
+ g_free (value);
+ value = NULL;
+ }
+ }
+
+ if (json)
+ json_decref (json);
+
+ return value;
+}
+
+/* if conf is updated in place returns TRUE */
+gboolean
+_nm_utils_team_config_set (char **conf,
+ const char *key,
+ const char *key2,
+ const char *key3,
+ const GValue *value)
+{
+ json_t *json, *json_element, *json_link, *json_value = NULL;
+ json_error_t jerror;
+ gboolean updated = FALSE;
+ char **strv;
+ const char *iter_key = key;
+ int i;
+
+ json = json_loads (*conf?: "{}", JSON_REJECT_DUPLICATES, &jerror);
+ if (!json)
+ return FALSE;
+
+ /* no new value? delete element */
+ if (!value) {
+ json_element = json;
+ json_link = NULL;
+
+ if (key2) {
+ json_link = json;
+ json_element = json_object_get (json, key);
+ if (!json_element)
+ goto done;
+ iter_key = key2;
+ }
+ if (key3) {
+ json_link = json_element;
+ json_element = json_object_get (json_element, key2);
+ if (!json_element)
+ goto done;
+ iter_key = key3;
+ }
+ if (json_object_del (json_element, iter_key) != 0)
+ goto done;
+
+ updated = TRUE;
+
+ /* 1st level key only */
+ if (!json_link)
+ goto done;
+
+ if (json_object_size (json_element) == 0)
+ json_object_del (json_link, (key3 ? key2 : key));
+
+ if (key3 && json_object_size (json_link) == 0)
+ json_object_del (json, key);
+
+ goto done;
+ }
+
+ /* insert new value */
+ updated = TRUE;
+ if (G_VALUE_HOLDS_STRING (value))
+ json_value = json_string (g_value_get_string (value));
+ else if (G_VALUE_HOLDS_INT (value))
+ json_value = json_integer (g_value_get_int (value));
+ else if (G_VALUE_HOLDS_BOOLEAN (value))
+ json_value = json_boolean (g_value_get_boolean (value));
+ else if (G_VALUE_HOLDS_BOXED (value)) {
+ strv = g_value_get_boxed (value);
+ if (strv) {
+ json_value = json_array ();
+ for (i = 0; strv[i]; i++)
+ json_array_append_new (json_value, json_string (strv[i]));
+ } else
+ return FALSE;
+ } else {
+ g_assert_not_reached ();
+ updated = FALSE;
+ goto done;
+ }
+
+ /* Simplest case: first level key only */
+ json_element = json;
+ json_link = NULL;
+
+ if (key2) {
+ json_link = json;
+ json_element = json_object_get (json, iter_key);
+ if (!json_element) {
+ json_element = json_object ();
+ json_object_set_new (json_link, iter_key, json_element);
+ }
+ iter_key = key2;
+ }
+ if (key3) {
+ json_link = json_element;
+ json_element = json_object_get (json_link, iter_key);
+ if (!json_element) {
+ json_element = json_object ();
+ json_object_set_new (json_link, iter_key, json_element);
+ }
+ iter_key = key3;
+ }
+
+ json_object_set_new (json_element, iter_key, json_value);
+
+done:
+ if (updated) {
+ g_free (*conf);
+ *conf = json_dumps (json, 0);
+ /* Don't save an empty config */
+ if (nm_streq0 (*conf, "{}")) {
+ g_free (*conf);
+ *conf = NULL;
+ }
+ }
+ json_decref (json);
+ return updated;
+}
+
#else /* WITH_JANSSON */
gboolean
@@ -4491,6 +4769,26 @@ _nm_utils_team_config_equal (const char *conf1,
{
return nm_streq0 (conf1, conf2);
}
+
+GValue *
+_nm_utils_team_config_get (const char *conf,
+ const char *key,
+ const char *key2,
+ const char *key3,
+ gboolean port_config)
+{
+ return NULL;
+}
+
+gboolean
+_nm_utils_team_config_set (char **conf,
+ const char *key,
+ const char *key2,
+ const char *key3,
+ const GValue *value)
+{
+ return FALSE;
+}
#endif
static char *
diff --git a/libnm-core/nm-version.h b/libnm-core/nm-version.h
index f6bfaf720c..968fa66384 100644
--- a/libnm-core/nm-version.h
+++ b/libnm-core/nm-version.h
@@ -146,4 +146,18 @@
# define NM_AVAILABLE_IN_1_10
#endif
+#if NM_VERSION_MIN_REQUIRED >= NM_VERSION_1_12
+# define NM_DEPRECATED_IN_1_12 G_DEPRECATED
+# define NM_DEPRECATED_IN_1_12_FOR(f) G_DEPRECATED_FOR(f)
+#else
+# define NM_DEPRECATED_IN_1_12
+# define NM_DEPRECATED_IN_1_12_FOR(f)
+#endif
+
+#if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_12
+# define NM_AVAILABLE_IN_1_12 G_UNAVAILABLE(1,12)
+#else
+# define NM_AVAILABLE_IN_1_12
+#endif
+
#endif /* NM_VERSION_H */
diff --git a/libnm/fake-typelib/NMClient.gir b/libnm/fake-typelib/NMClient.gir
new file mode 100644
index 0000000000..3002f8d630
--- /dev/null
+++ b/libnm/fake-typelib/NMClient.gir
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!-- A lame duck typelib which prevents GIR from loading the
+ real one (which would crash due to conflict with libnm) -->
+<repository version="1.2"
+ xmlns="http://www.gtk.org/introspection/core/1.0"
+ xmlns:c="http://www.gtk.org/introspection/c/1.0"
+ xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+ <namespace name="NMClient" version="0.0" />
+</repository>
diff --git a/libnm/fake-typelib/NetworkManager.gir b/libnm/fake-typelib/NetworkManager.gir
new file mode 100644
index 0000000000..d15d29afc7
--- /dev/null
+++ b/libnm/fake-typelib/NetworkManager.gir
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<!-- A lame duck typelib which prevents GIR from loading the
+ real one (which would crash due to conflict with libnm) -->
+<repository version="1.2"
+ xmlns="http://www.gtk.org/introspection/core/1.0"
+ xmlns:c="http://www.gtk.org/introspection/c/1.0"
+ xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+ <namespace name="NetworkManager" version="0.0">
+ </namespace>
+</repository>
diff --git a/libnm/fake-typelib/typelibs.gresource.xml b/libnm/fake-typelib/typelibs.gresource.xml
new file mode 100644
index 0000000000..9a71d97544
--- /dev/null
+++ b/libnm/fake-typelib/typelibs.gresource.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/freedesktop/libnm/fake-typelib">
+ <file>NetworkManager.typelib</file>
+ <file>NMClient.typelib</file>
+ </gresource>
+</gresources>
diff --git a/libnm/libnm.ver b/libnm/libnm.ver
index 18ff993de4..5e9feaffc8 100644
--- a/libnm/libnm.ver
+++ b/libnm/libnm.ver
@@ -1221,3 +1221,41 @@ global:
nm_setting_wireless_security_pmf_get_type;
nm_setting_wireless_security_wps_method_get_type;
} libnm_1_8_0;
+
+libnm_1_12_0 {
+global:
+ nm_checkpoint_get_created;
+ nm_checkpoint_get_devices;
+ nm_checkpoint_get_rollback_timeout;
+ nm_checkpoint_get_type;
+ nm_client_checkpoint_create_async;
+ nm_client_checkpoint_create_finish;
+ nm_client_checkpoint_destroy_async;
+ nm_client_checkpoint_destroy_finish;
+ nm_client_checkpoint_rollback_async;
+ nm_client_checkpoint_rollback_finish;
+ nm_client_get_checkpoints;
+ nm_setting_team_add_runner_tx_hash;
+ nm_setting_team_get_mcast_rejoin_count;
+ nm_setting_team_get_mcast_rejoin_interval;
+ nm_setting_team_get_notify_peers_count;
+ nm_setting_team_get_notify_peers_interval;
+ nm_setting_team_get_num_runner_tx_hash;
+ nm_setting_team_get_runner;
+ nm_setting_team_get_runner_hwaddr_policy;
+ nm_setting_team_get_runner_tx_balancer;
+ nm_setting_team_get_runner_tx_balancer_interval;
+ nm_setting_team_get_runner_tx_hash;
+ nm_setting_team_get_runner_active;
+ nm_setting_team_get_runner_fast_rate;
+ nm_setting_team_get_runner_sys_prio;
+ nm_setting_team_get_runner_min_ports;
+ nm_setting_team_get_runner_agg_select_policy;
+ nm_setting_team_port_get_queue_id;
+ nm_setting_team_port_get_prio;
+ nm_setting_team_port_get_sticky;
+ nm_setting_team_port_get_lacp_prio;
+ nm_setting_team_port_get_lacp_key;
+ nm_setting_team_remove_runner_tx_hash;
+ nm_setting_team_remove_runner_tx_hash_by_value;
+} libnm_1_10_0;
diff --git a/libnm/nm-checkpoint.c b/libnm/nm-checkpoint.c
new file mode 100644
index 0000000000..264c819538
--- /dev/null
+++ b/libnm/nm-checkpoint.c
@@ -0,0 +1,219 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Copyright 2017 Red Hat, Inc.
+ */
+
+#include "nm-default.h"
+
+#include "nm-checkpoint.h"
+#include "nm-core-internal.h"
+#include "nm-dbus-interface.h"
+#include "nm-device.h"
+#include "nm-object-private.h"
+
+typedef struct {
+ GPtrArray *devices;
+ gint64 created;
+ guint32 rollback_timeout;
+} NMCheckpointPrivate;
+
+struct _NMCheckpoint {
+ NMObject parent;
+ NMCheckpointPrivate _priv;
+};
+
+struct _NMCheckpointClass {
+ NMObjectClass parent;
+};
+
+G_DEFINE_TYPE (NMCheckpoint, nm_checkpoint, NM_TYPE_OBJECT)
+
+#define NM_CHECKPOINT_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMCheckpoint, NM_IS_CHECKPOINT)
+
+enum {
+ PROP_0,
+ PROP_DEVICES,
+ PROP_CREATED,
+ PROP_ROLLBACK_TIMEOUT,
+
+ LAST_PROP
+};
+
+/**
+ * nm_checkpoint_get_devices:
+ * @checkpoint: a #NMCheckpoint
+ *
+ * The devices that are part of this checkpoint.
+ *
+ * Returns: (element-type NMDevice): the devices list.
+ *
+ * Since: 1.12
+ **/
+const GPtrArray *
+nm_checkpoint_get_devices (NMCheckpoint *checkpoint)
+{
+ g_return_val_if_fail (NM_IS_CHECKPOINT (checkpoint), NULL);
+
+ return NM_CHECKPOINT_GET_PRIVATE (checkpoint)->devices;
+}
+
+/**
+ * nm_checkpoint_get_created:
+ * @checkpoint: a #NMCheckpoint
+ *
+ * Gets the timestamp (in CLOCK_BOOTTIME milliseconds)
+ * of checkpoint creation.
+ *
+ * Returns: the timestamp of checkpoint creation.
+ *
+ * Since: 1.12
+ **/
+gint64
+nm_checkpoint_get_created (NMCheckpoint *checkpoint)
+{
+ g_return_val_if_fail (NM_IS_CHECKPOINT (checkpoint), 0);
+
+ return NM_CHECKPOINT_GET_PRIVATE (checkpoint)->created;
+}
+
+/**
+ * nm_checkpoint_get_rollback_timeout:
+ * @checkpoint: a #NMCheckpoint
+ *
+ * Gets the the timeout in seconds for automatic rollback.
+ *
+ * Returns: the rollback timeout.
+ *
+ * Since: 1.12
+ **/
+guint32
+nm_checkpoint_get_rollback_timeout (NMCheckpoint *checkpoint)
+{
+ g_return_val_if_fail (NM_IS_CHECKPOINT (checkpoint), 0);
+
+ return NM_CHECKPOINT_GET_PRIVATE (checkpoint)->rollback_timeout;
+}
+
+/*****************************************************************************/
+
+static void
+nm_checkpoint_init (NMCheckpoint *checkpoint)
+{
+}
+
+static void
+finalize (GObject *object)
+{
+ NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (NM_CHECKPOINT (object));
+
+ g_ptr_array_unref (priv->devices);
+
+ G_OBJECT_CLASS (nm_checkpoint_parent_class)->finalize (object);
+}
+
+static void
+get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ NMCheckpoint *checkpoint = NM_CHECKPOINT (object);
+ NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (checkpoint);
+
+ switch (prop_id) {
+ case PROP_DEVICES:
+ g_value_take_boxed (value, _nm_utils_copy_object_array (priv->devices));
+ break;
+ case PROP_CREATED:
+ g_value_set_int64 (value, priv->created);
+ break;
+ case PROP_ROLLBACK_TIMEOUT:
+ g_value_set_uint (value, priv->rollback_timeout);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+init_dbus (NMObject *object)
+{
+ NMCheckpointPrivate *priv = NM_CHECKPOINT_GET_PRIVATE (NM_CHECKPOINT (object));
+ const NMPropertiesInfo property_info[] = {
+ { NM_CHECKPOINT_DEVICES, &priv->devices, NULL, NM_TYPE_DEVICE },
+ { NM_CHECKPOINT_CREATED, &priv->created },
+ { NM_CHECKPOINT_ROLLBACK_TIMEOUT, &priv->rollback_timeout },
+ { NULL },
+ };
+
+ NM_OBJECT_CLASS (nm_checkpoint_parent_class)->init_dbus (object);
+
+ _nm_object_register_properties (object,
+ NM_DBUS_INTERFACE_CHECKPOINT,
+ property_info);
+}
+
+
+static void
+nm_checkpoint_class_init (NMCheckpointClass *checkpoint_class)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (checkpoint_class);
+ NMObjectClass *nm_object_class = NM_OBJECT_CLASS (checkpoint_class);
+
+ object_class->get_property = get_property;
+ object_class->finalize = finalize;
+
+ nm_object_class->init_dbus = init_dbus;
+
+ /**
+ * NMCheckpoint:devices:
+ *
+ * The devices that are part of this checkpoint.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_DEVICES,
+ g_param_spec_boxed (NM_CHECKPOINT_DEVICES, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMCheckpoint:created:
+ *
+ * The timestamp (in CLOCK_BOOTTIME milliseconds) of checkpoint creation.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_CREATED,
+ g_param_spec_int64 (NM_CHECKPOINT_CREATED, "", "",
+ G_MININT64, G_MAXINT64, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ /**
+ * NMCheckpoint:rollback-timeout:
+ *
+ * Timeout in seconds for automatic rollback, or zero.
+ *
+ * Since: 1.12
+ **/
+ g_object_class_install_property
+ (object_class, PROP_ROLLBACK_TIMEOUT,
+ g_param_spec_uint (NM_CHECKPOINT_ROLLBACK_TIMEOUT, "", "",
+ 0, G_MAXUINT32, 0,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+}
diff --git a/libnm/nm-checkpoint.h b/libnm/nm-checkpoint.h
new file mode 100644
index 0000000000..a0c9d722c5
--- /dev/null
+++ b/libnm/nm-checkpoint.h
@@ -0,0 +1,53 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Copyright 2017 Red Hat, Inc.
+ */
+
+#ifndef __NM_CHECKPOINT_H__
+#define __NM_CHECKPOINT_H__
+
+#if !defined (__NETWORKMANAGER_H_INSIDE__) && !defined (NETWORKMANAGER_COMPILATION)
+#error "Only <NetworkManager.h> can be included directly."
+#endif
+
+#include "nm-object.h"
+
+G_BEGIN_DECLS
+
+#define NM_TYPE_CHECKPOINT (nm_checkpoint_get_type ())
+#define NM_CHECKPOINT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_CHECKPOINT, NMCheckpoint))
+#define NM_CHECKPOINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_CHECKPOINT, NMCheckpointClass))
+#define NM_IS_CHECKPOINT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_CHECKPOINT))
+#define NM_IS_CHECKPOINT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_CHECKPOINT))
+#define NM_CHECKPOINT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_CHECKPOINT, NMCheckpointClass))
+
+#define NM_CHECKPOINT_DEVICES "devices"
+#define NM_CHECKPOINT_CREATED "created"
+#define NM_CHECKPOINT_ROLLBACK_TIMEOUT "rollback-timeout"
+
+/**
+ * NMCheckpoint:
+ */
+typedef struct _NMCheckpointClass NMCheckpointClass;
+
+GType nm_checkpoint_get_type (void);
+
+NM_AVAILABLE_IN_1_12
+const GPtrArray *nm_checkpoint_get_devices (NMCheckpoint *checkpoint);
+NM_AVAILABLE_IN_1_12
+gint64 nm_checkpoint_get_created (NMCheckpoint *checkpoint);
+NM_AVAILABLE_IN_1_12
+guint32 nm_checkpoint_get_rollback_timeout (NMCheckpoint *checkpoint);
+
+G_END_DECLS
+
+#endif /* __NM_CHECKPOINT_H__ */
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index 8f9c50e9f7..0cf4d4361c 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -50,6 +50,7 @@
#include "nm-access-point.h"
#include "nm-active-connection.h"
+#include "nm-checkpoint.h"
#include "nm-device-adsl.h"
#include "nm-device-bond.h"
#include "nm-device-bridge.h"
@@ -139,6 +140,7 @@ enum {
PROP_DNS_MODE,
PROP_DNS_RC_MANAGER,
PROP_DNS_CONFIGURATION,
+ PROP_CHECKPOINTS,
LAST_PROP
};
@@ -2058,6 +2060,294 @@ dns_notify (GObject *object,
}
}
+static void
+checkpoint_create_cb (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple = user_data;
+ NMCheckpoint *checkpoint;
+ GError *error = NULL;
+
+ checkpoint = nm_manager_checkpoint_create_finish (NM_MANAGER (object), result, &error);
+ if (checkpoint)
+ g_simple_async_result_set_op_res_gpointer (simple, checkpoint, g_object_unref);
+ else
+ g_simple_async_result_take_error (simple, error);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+/**
+ * nm_client_get_checkpoints:
+ * @client: a #NMClient
+ *
+ * Gets all the active checkpoints.
+ *
+ * Returns: (transfer none) (element-type NMCheckpoint): a #GPtrArray
+ * containing all the #NMCheckpoint. The returned array is owned by the
+ * #NMClient object and should not be modified.
+ *
+ * Since: 1.12
+ **/
+const GPtrArray *
+nm_client_get_checkpoints (NMClient *client)
+{
+ g_return_val_if_fail (NM_IS_CLIENT (client), NULL);
+
+ if (!nm_client_get_nm_running (client))
+ return &empty;
+
+ return nm_manager_get_checkpoints (NM_CLIENT_GET_PRIVATE (client)->manager);
+}
+
+/**
+ * nm_client_checkpoint_create_async:
+ * @client: the %NMClient
+ * @devices: (element-type NMDevice): a list of devices for which a
+ * checkpoint should be created.
+ * @rollback_timeout: the rollback timeout in seconds
+ * @flags: creation flags
+ * @cancellable: a #GCancellable, or %NULL
+ * @callback: (scope async): callback to be called when the add operation completes
+ * @user_data: (closure): caller-specific data passed to @callback
+ *
+ * Creates a checkpoint of the current networking configuration
+ * for given interfaces. An empty @devices argument means all
+ * devices. If @rollback_timeout is not zero, a rollback is
+ * automatically performed after the given timeout.
+ *
+ * Since: 1.12
+ **/
+void
+nm_client_checkpoint_create_async (NMClient *client,
+ const GPtrArray *devices,
+ guint32 rollback_timeout,
+ NMCheckpointCreateFlags flags,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple;
+ GError *error = NULL;
+
+ g_return_if_fail (NM_IS_CLIENT (client));
+
+ if (!_nm_client_check_nm_running (client, &error)) {
+ g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error);
+ return;
+ }
+
+ simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data,
+ nm_client_checkpoint_create_async);
+ nm_manager_checkpoint_create_async (NM_CLIENT_GET_PRIVATE (client)->manager,
+ devices, rollback_timeout, flags,
+ cancellable, checkpoint_create_cb, simple);
+}
+
+/**
+ * nm_client_checkpoint_create_finish:
+ * @client: the #NMClient
+ * @result: the result passed to the #GAsyncReadyCallback
+ * @error: location for a #GError, or %NULL
+ *
+ * Gets the result of a call to nm_client_checkpoint_create_async().
+ *
+ * Returns: (transfer full): the new #NMCheckpoint on success, %NULL on
+ * failure, in which case @error will be set.
+ *
+ * Since: 1.12
+ **/
+NMCheckpoint *
+nm_client_checkpoint_create_finish (NMClient *client,
+ GAsyncResult *result,
+ GError **error)
+{
+ GSimpleAsyncResult *simple;
+
+ g_return_val_if_fail (NM_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL);
+
+ simple = G_SIMPLE_ASYNC_RESULT (result);
+ if (g_simple_async_result_propagate_error (simple, error))
+ return NULL;
+ else
+ return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple));
+}
+
+static void
+checkpoint_destroy_cb (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple = user_data;
+ GError *error = NULL;
+
+ if (nm_manager_checkpoint_destroy_finish (NM_MANAGER (object), result, &error))
+ g_simple_async_result_set_op_res_gboolean (simple, TRUE);
+ else
+ g_simple_async_result_take_error (simple, error);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+/**
+ * nm_client_checkpoint_destroy_async:
+ * @client: the %NMClient
+ * @checkpoint: a checkpoint
+ * @cancellable: a #GCancellable, or %NULL
+ * @callback: (scope async): callback to be called when the add operation completes
+ * @user_data: (closure): caller-specific data passed to @callback
+ *
+ * Destroys an existing checkpoint without performing a rollback.
+ *
+ * Since: 1.12
+ **/
+void
+nm_client_checkpoint_destroy_async (NMClient *client,
+ NMCheckpoint *checkpoint,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple;
+ GError *error = NULL;
+
+ g_return_if_fail (NM_IS_CLIENT (client));
+
+ if (!_nm_client_check_nm_running (client, &error)) {
+ g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error);
+ return;
+ }
+
+ simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data,
+ nm_client_checkpoint_destroy_async);
+ nm_manager_checkpoint_destroy_async (NM_CLIENT_GET_PRIVATE (client)->manager,
+ checkpoint,
+ cancellable, checkpoint_destroy_cb, simple);
+}
+
+/**
+ * nm_client_checkpoint_destroy_finish:
+ * @client: an #NMClient
+ * @result: the result passed to the #GAsyncReadyCallback
+ * @error: location for a #GError, or %NULL
+ *
+ * Gets the result of a call to nm_client_checkpoint_destroy_async().
+ *
+ * Returns: %TRUE on success or %FALSE on failure, in which case
+ * @error will be set.
+ *
+ * Since: 1.12
+ **/
+gboolean
+nm_client_checkpoint_destroy_finish (NMClient *client,
+ GAsyncResult *result,
+ GError **error)
+{
+ GSimpleAsyncResult *simple;
+
+ g_return_val_if_fail (NM_IS_CLIENT (client), FALSE);
+ g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE);
+
+ simple = G_SIMPLE_ASYNC_RESULT (result);
+ if (g_simple_async_result_propagate_error (simple, error))
+ return FALSE;
+ else
+ return g_simple_async_result_get_op_res_gboolean (simple);
+}
+
+static void
+checkpoint_rollback_cb (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple = user_data;
+ GHashTable *hash;
+ GError *error = NULL;
+
+ hash = nm_manager_checkpoint_rollback_finish (NM_MANAGER (object), result, &error);
+ if (hash)
+ g_simple_async_result_set_op_res_gpointer (simple, hash, (GDestroyNotify) g_hash_table_unref);
+ else
+ g_simple_async_result_take_error (simple, error);
+
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+/**
+ * nm_client_checkpoint_rollback_async:
+ * @client: the %NMClient
+ * @checkpoint: a checkpoint
+ * @cancellable: a #GCancellable, or %NULL
+ * @callback: (scope async): callback to be called when the add operation completes
+ * @user_data: (closure): caller-specific data passed to @callback
+ *
+ * Performs the rollback of a checkpoint before the timeout is reached.
+ *
+ * Since: 1.12
+ **/
+void
+nm_client_checkpoint_rollback_async (NMClient *client,
+ NMCheckpoint *checkpoint,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple;
+ GError *error = NULL;
+
+ g_return_if_fail (NM_IS_CLIENT (client));
+
+ if (!_nm_client_check_nm_running (client, &error)) {
+ g_simple_async_report_take_gerror_in_idle (G_OBJECT (client), callback, user_data, error);
+ return;
+ }
+
+ simple = g_simple_async_result_new (G_OBJECT (client), callback, user_data,
+ nm_client_checkpoint_rollback_async);
+ nm_manager_checkpoint_rollback_async (NM_CLIENT_GET_PRIVATE (client)->manager,
+ checkpoint,
+ cancellable, checkpoint_rollback_cb, simple);
+}
+
+/**
+ * nm_client_checkpoint_rollback_finish:
+ * @client: an #NMClient
+ * @result: the result passed to the #GAsyncReadyCallback
+ * @error: location for a #GError, or %NULL
+ *
+ * Gets the result of a call to nm_client_checkpoint_rollback_async().
+ *
+ * Returns: (transfer full) (element-type utf8 guint32): an hash table of
+ * devices and results. Devices are represented by their original
+ * D-Bus path; each result is a #NMRollbackResult.
+ *
+ * Since: 1.12
+ **/
+GHashTable *
+nm_client_checkpoint_rollback_finish (NMClient *client,
+ GAsyncResult *result,
+ GError **error)
+{
+ GSimpleAsyncResult *simple;
+ GHashTable *hash;
+
+ g_return_val_if_fail (NM_IS_CLIENT (client), NULL);
+ g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL);
+
+ simple = G_SIMPLE_ASYNC_RESULT (result);
+ if (g_simple_async_result_propagate_error (simple, error))
+ return NULL;
+ else {
+ hash = g_simple_async_result_get_op_res_gpointer (simple);
+ return g_hash_table_ref (hash);
+ }
+}
+
/****************************************************************/
/* Object Initialization */
/****************************************************************/
@@ -2188,6 +2478,8 @@ obj_nm_for_gdbus_object (NMClient *self, GDBusObject *object, GDBusObjectManager
type = NM_TYPE_VPN_CONNECTION;
else if (strcmp (ifname, NM_DBUS_INTERFACE_WIMAX_NSP) == 0)
type = NM_TYPE_WIMAX_NSP;
+ else if (strcmp (ifname, NM_DBUS_INTERFACE_CHECKPOINT) == 0)
+ type = NM_TYPE_CHECKPOINT;
if (type != G_TYPE_INVALID)
break;
@@ -2763,6 +3055,12 @@ get_property (GObject *object, guint prop_id,
case PROP_ALL_DEVICES:
g_value_take_boxed (value, _nm_utils_copy_object_array (nm_client_get_all_devices (self)));
break;
+ case PROP_CHECKPOINTS:
+ if (priv->manager)
+ g_object_get_property (G_OBJECT (priv->manager), pspec->name, value);
+ else
+ g_value_take_boxed (value, g_ptr_array_new ());
+ break;
/* Settings properties. */
case PROP_CONNECTIONS:
@@ -3169,6 +3467,20 @@ nm_client_class_init (NMClientClass *client_class)
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS));
+ /**
+ * NMClient::checkpoints
+ *
+ * The list of active checkpoints.
+ *
+ * Since: 1.12
+ */
+ g_object_class_install_property
+ (object_class, PROP_CHECKPOINTS,
+ g_param_spec_boxed (NM_MANAGER_CHECKPOINTS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
/* signals */
/**
diff --git a/libnm/nm-client.h b/libnm/nm-client.h
index 3b37b55a10..9833f48294 100644
--- a/libnm/nm-client.h
+++ b/libnm/nm-client.h
@@ -403,6 +403,45 @@ const char *nm_client_get_dns_rc_manager (NMClient *client);
NM_AVAILABLE_IN_1_6
const GPtrArray *nm_client_get_dns_configuration (NMClient *client);
+
+NM_AVAILABLE_IN_1_12
+const GPtrArray *nm_client_get_checkpoints (NMClient *client);
+
+NM_AVAILABLE_IN_1_12
+void nm_client_checkpoint_create_async (NMClient *client,
+ const GPtrArray *devices,
+ guint32 rollback_timeout,
+ NMCheckpointCreateFlags flags,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+NM_AVAILABLE_IN_1_12
+NMCheckpoint *nm_client_checkpoint_create_finish (NMClient *client,
+ GAsyncResult *result,
+ GError **error);
+
+NM_AVAILABLE_IN_1_12
+void nm_client_checkpoint_destroy_async (NMClient *client,
+ NMCheckpoint *checkpoint,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+NM_AVAILABLE_IN_1_12
+gboolean nm_client_checkpoint_destroy_finish (NMClient *client,
+ GAsyncResult *result,
+ GError **error);
+
+NM_AVAILABLE_IN_1_12
+void nm_client_checkpoint_rollback_async (NMClient *client,
+ NMCheckpoint *checkpoint,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+NM_AVAILABLE_IN_1_12
+GHashTable *nm_client_checkpoint_rollback_finish (NMClient *client,
+ GAsyncResult *result,
+ GError **error);
+
G_END_DECLS
#endif /* __NM_CLIENT_H__ */
diff --git a/libnm/nm-libnm-utils.c b/libnm/nm-libnm-utils.c
index fbbfe2c552..a01228d5bb 100644
--- a/libnm/nm-libnm-utils.c
+++ b/libnm/nm-libnm-utils.c
@@ -23,6 +23,8 @@
#include "nm-libnm-utils.h"
+#include <girepository.h>
+
/*****************************************************************************/
char *
@@ -160,3 +162,83 @@ next:
nm_assert (g_utf8_validate (desc_full, -1, NULL));
return desc_full;
}
+
+#if WITH_FAKE_TYPELIBS
+
+/*
+ * Here we register empty "NMClient" and "NetworkManager" GIR modules as soon
+ * as we are loaded (if gnome-introspection is being used). This prevents the
+ * real modules from being loaded because they would in turn load libnm-glib
+ * and abort() and crash.
+ *
+ * For the high level languages that utilize GIR the crash is highly inconvenient
+ * while the inability to resolve any methods and attributes is potentially
+ * recoverable.
+ */
+
+GResource *typelibs_get_resource (void);
+void typelibs_register_resource (void);
+
+static void __attribute__((constructor))
+_nm_libnm_utils_init (void)
+{
+ GITypelib *typelib;
+ GBytes *data;
+ const char *namespace;
+ GModule *self;
+ GITypelib *(*_g_typelib_new_from_const_memory) (const guint8 *memory,
+ gsize len,
+ GError **error) = NULL;
+ const char *(*_g_irepository_load_typelib) (GIRepository *repository,
+ GITypelib *typelib,
+ GIRepositoryLoadFlags flags,
+ GError **error) = NULL;
+ const char *names[] = { "/org/freedesktop/libnm/fake-typelib/NetworkManager.typelib",
+ "/org/freedesktop/libnm/fake-typelib/NMClient.typelib" };
+ int i;
+
+ self = g_module_open (NULL, 0);
+ if (!self)
+ return;
+ g_module_symbol (self, "g_typelib_new_from_const_memory",
+ (gpointer *) &_g_typelib_new_from_const_memory);
+ if (_g_typelib_new_from_const_memory) {
+ g_module_symbol (self, "g_irepository_load_typelib",
+ (gpointer *) &_g_irepository_load_typelib);
+ }
+ g_module_close (self);
+
+ if (!_g_typelib_new_from_const_memory || !_g_irepository_load_typelib)
+ return;
+
+ typelibs_register_resource ();
+
+ for (i = 0; i < 2; i++) {
+ gs_free_error GError *error = NULL;
+
+ data = g_resource_lookup_data (typelibs_get_resource (),
+ names[i],
+ G_RESOURCE_LOOKUP_FLAGS_NONE,
+ &error);
+ if (!data) {
+ g_warning ("Fake typelib %s could not be loaded: %s", names[i], error->message);
+ return;
+ }
+
+ typelib = _g_typelib_new_from_const_memory (g_bytes_get_data (data, NULL),
+ g_bytes_get_size (data),
+ &error);
+ if (!typelib) {
+ g_warning ("Could not create fake typelib instance %s: %s", names[i], error->message);
+ return;
+ }
+
+ namespace = _g_irepository_load_typelib (NULL, typelib, 0, &error);
+ if (!namespace) {
+ g_warning ("Could not load fake typelib %s: %s", names[i], error->message);
+ return;
+ }
+ }
+}
+
+#endif /* WITH_FAKE_TYPELIBS */
diff --git a/libnm/nm-manager.c b/libnm/nm-manager.c
index e664b71072..aa749232be 100644
--- a/libnm/nm-manager.c
+++ b/libnm/nm-manager.c
@@ -26,6 +26,7 @@
#include <string.h>
#include "nm-utils.h"
+#include "nm-checkpoint.h"
#include "nm-common-macros.h"
#include "nm-device-ethernet.h"
#include "nm-device-wifi.h"
@@ -61,6 +62,8 @@ typedef struct {
GPtrArray *devices;
GPtrArray *all_devices;
GPtrArray *active_connections;
+ GPtrArray *checkpoints;
+ GSList *added_checkpoints;
NMConnectivityState connectivity;
NMActiveConnection *primary_connection;
NMActiveConnection *activating_connection;
@@ -107,6 +110,7 @@ enum {
PROP_PRIMARY_CONNECTION,
PROP_ACTIVATING_CONNECTION,
PROP_DEVICES,
+ PROP_CHECKPOINTS,
PROP_METERED,
PROP_ALL_DEVICES,
@@ -120,6 +124,8 @@ enum {
ANY_DEVICE_REMOVED,
ACTIVE_CONNECTION_ADDED,
ACTIVE_CONNECTION_REMOVED,
+ CHECKPOINT_ADDED,
+ CHECKPOINT_REMOVED,
PERMISSION_CHANGED,
LAST_SIGNAL
@@ -129,6 +135,53 @@ static guint signals[LAST_SIGNAL] = { 0 };
/*****************************************************************************/
+typedef struct {
+ NMManager *manager;
+ GSimpleAsyncResult *simple;
+ char *path;
+} CheckpointInfo;
+
+static CheckpointInfo *
+find_checkpoint_info (NMManager *manager, const char *path)
+{
+ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager);
+ CheckpointInfo *info;
+ GSList *iter;
+
+ for (iter = priv->added_checkpoints; iter; iter = g_slist_next (iter)) {
+ info = iter->data;
+ if (nm_streq (path, info->path))
+ return info;
+ }
+
+ return NULL;
+}
+
+static void
+checkpoint_info_complete (NMManager *self,
+ CheckpointInfo *info,
+ NMCheckpoint *checkpoint,
+ GError *error)
+{
+ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
+
+ g_return_if_fail (info);
+
+ if (checkpoint) {
+ g_simple_async_result_set_op_res_gpointer (info->simple,
+ g_object_ref (checkpoint),
+ g_object_unref);
+ } else
+ g_simple_async_result_set_from_error (info->simple, error);
+ g_simple_async_result_complete (info->simple);
+
+ g_object_unref (info->simple);
+ priv->added_checkpoints = g_slist_remove (priv->added_checkpoints, info);
+
+ g_free (info->path);
+ g_slice_free (CheckpointInfo, info);
+}
+
static void
nm_manager_init (NMManager *manager)
{
@@ -189,6 +242,7 @@ init_dbus (NMObject *object)
{ NM_MANAGER_PRIMARY_CONNECTION, &priv->primary_connection, NULL, NM_TYPE_ACTIVE_CONNECTION },
{ NM_MANAGER_ACTIVATING_CONNECTION, &priv->activating_connection, NULL, NM_TYPE_ACTIVE_CONNECTION },
{ NM_MANAGER_DEVICES, &priv->devices, NULL, NM_TYPE_DEVICE, "device" },
+ { NM_MANAGER_CHECKPOINTS, &priv->checkpoints, NULL, NM_TYPE_CHECKPOINT, "checkpoint" },
{ NM_MANAGER_METERED, &priv->metered },
{ NM_MANAGER_ALL_DEVICES, &priv->all_devices, NULL, NM_TYPE_DEVICE, "any-device" },
{ NULL },
@@ -206,6 +260,23 @@ init_dbus (NMObject *object)
G_CALLBACK (manager_recheck_permissions), object, 0);
}
+static void
+object_creation_failed (NMObject *object, const char *failed_path)
+{
+ NMManager *self = NM_MANAGER (object);
+ CheckpointInfo *info;
+ GError *add_error;
+
+ info = find_checkpoint_info (self, failed_path);
+ if (info) {
+ add_error = g_error_new_literal (NM_CLIENT_ERROR,
+ NM_CLIENT_ERROR_OBJECT_CREATION_FAILED,
+ _("Checkpoint was removed before it was initialized"));
+ checkpoint_info_complete (self, info, NULL, add_error);
+ g_error_free (add_error);
+ }
+}
+
static NMClientPermission
nm_permission_to_client (const char *nm)
{
@@ -1109,6 +1180,21 @@ active_connection_removed (NMManager *self, NMActiveConnection *ac)
recheck_pending_activations (self);
}
+static void
+checkpoint_added (NMManager *manager, NMCheckpoint *checkpoint)
+{
+ CheckpointInfo *info;
+
+ info = find_checkpoint_info (manager, nm_object_get_path (NM_OBJECT (checkpoint)));
+ if (info)
+ checkpoint_info_complete (manager, info, checkpoint, NULL);
+}
+
+static void
+checkpoint_removed (NMManager *manager, NMCheckpoint *checkpoint)
+{
+}
+
gboolean
nm_manager_deactivate_connection (NMManager *manager,
NMActiveConnection *active,
@@ -1208,6 +1294,226 @@ free_active_connections (NMManager *manager)
/*****************************************************************************/
+static const char **
+get_device_paths (const GPtrArray *devices)
+{
+ const char **array;
+ guint i;
+
+ array = g_new (const char *, devices->len + 1);
+ for (i = 0; i < devices->len; i++)
+ array[i] = nm_object_get_path (NM_OBJECT (devices->pdata[i]));
+
+ array[i] = NULL;
+
+ return array;
+}
+
+const GPtrArray *
+nm_manager_get_checkpoints (NMManager *manager)
+{
+ g_return_val_if_fail (NM_IS_MANAGER (manager), NULL);
+
+ return NM_MANAGER_GET_PRIVATE (manager)->checkpoints;
+}
+
+static void
+checkpoint_created_cb (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ CheckpointInfo *info = user_data;
+ GError *error = NULL;
+
+ nmdbus_manager_call_checkpoint_create_finish (NMDBUS_MANAGER (object),
+ &info->path, result, &error);
+ if (error) {
+ g_dbus_error_strip_remote_error (error);
+ checkpoint_info_complete (info->manager, info, NULL, error);
+ g_clear_error (&error);
+ }
+}
+
+void
+nm_manager_checkpoint_create_async (NMManager *manager,
+ const GPtrArray *devices,
+ guint32 rollback_timeout,
+ NMCheckpointCreateFlags flags,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager);
+ gs_free const char **paths = NULL;
+ CheckpointInfo *info;
+
+ g_return_if_fail (NM_IS_MANAGER (manager));
+
+ info = g_slice_new0 (CheckpointInfo);
+ info->manager = manager;
+ info->simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data,
+ nm_manager_checkpoint_create_async);
+ paths = get_device_paths (devices);
+ nmdbus_manager_call_checkpoint_create (NM_MANAGER_GET_PRIVATE (manager)->proxy,
+ paths,
+ rollback_timeout,
+ flags,
+ cancellable,
+ checkpoint_created_cb,
+ info);
+ priv->added_checkpoints = g_slist_append (priv->added_checkpoints, info);
+}
+
+NMCheckpoint *
+nm_manager_checkpoint_create_finish (NMManager *manager,
+ GAsyncResult *result,
+ GError **error)
+{
+ GSimpleAsyncResult *simple;
+
+ g_return_val_if_fail (NM_IS_MANAGER (manager), NULL);
+ g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), NULL);
+
+ simple = G_SIMPLE_ASYNC_RESULT (result);
+ if (g_simple_async_result_propagate_error (simple, error))
+ return NULL;
+ else
+ return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple));
+}
+
+static void
+checkpoint_destroy_cb (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple = user_data;
+ GError *error = NULL;
+
+ if (nmdbus_manager_call_checkpoint_destroy_finish (NMDBUS_MANAGER (object),
+ result, &error))
+ g_simple_async_result_set_op_res_gboolean (simple, TRUE);
+ else {
+ g_dbus_error_strip_remote_error (error);
+ g_simple_async_result_take_error (simple, error);
+ }
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+void
+nm_manager_checkpoint_destroy_async (NMManager *manager,
+ NMCheckpoint *checkpoint,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ const char *path;
+ GSimpleAsyncResult *simple;
+
+ g_return_if_fail (NM_IS_MANAGER (manager));
+ g_return_if_fail (NM_IS_CHECKPOINT (checkpoint));
+
+ simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data,
+ nm_manager_checkpoint_destroy_async);
+
+ path = nm_object_get_path (NM_OBJECT (checkpoint));
+ nmdbus_manager_call_checkpoint_destroy (NM_MANAGER_GET_PRIVATE (manager)->proxy,
+ path,
+ cancellable,
+ checkpoint_destroy_cb, simple);
+}
+
+gboolean
+nm_manager_checkpoint_destroy_finish (NMManager *manager,
+ GAsyncResult *result,
+ GError **error)
+{
+ GSimpleAsyncResult *simple;
+
+ g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (manager),
+ nm_manager_checkpoint_destroy_async),
+ FALSE);
+
+ simple = G_SIMPLE_ASYNC_RESULT (result);
+ if (g_simple_async_result_propagate_error (simple, error))
+ return FALSE;
+ else
+ return g_simple_async_result_get_op_res_gboolean (simple);
+}
+
+static void
+checkpoint_rollback_cb (GObject *object,
+ GAsyncResult *result,
+ gpointer user_data)
+{
+ GSimpleAsyncResult *simple = user_data;
+ GError *error = NULL;
+ GVariant *variant = NULL;
+ GVariantIter iter;
+ GHashTable *hash;
+ const char *path;
+ guint r;
+
+ if (nmdbus_manager_call_checkpoint_rollback_finish (NMDBUS_MANAGER (object),
+ &variant,
+ result,
+ &error)) {
+ hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ g_variant_iter_init (&iter, variant);
+ while (g_variant_iter_next (&iter, "{&su}", &path, &r))
+ g_hash_table_insert (hash, g_strdup (path), GUINT_TO_POINTER (r));
+ g_simple_async_result_set_op_res_gpointer (simple, hash, (GDestroyNotify) g_hash_table_unref);
+ } else {
+ g_dbus_error_strip_remote_error (error);
+ g_simple_async_result_take_error (simple, error);
+ }
+ g_simple_async_result_complete (simple);
+ g_object_unref (simple);
+}
+
+void
+nm_manager_checkpoint_rollback_async (NMManager *manager,
+ NMCheckpoint *checkpoint,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data)
+{
+ const char *path;
+ GSimpleAsyncResult *simple;
+
+ g_return_if_fail (NM_IS_MANAGER (manager));
+ g_return_if_fail (NM_IS_CHECKPOINT (checkpoint));
+
+ simple = g_simple_async_result_new (G_OBJECT (manager), callback, user_data,
+ nm_manager_checkpoint_rollback_async);
+
+ path = nm_object_get_path (NM_OBJECT (checkpoint));
+ nmdbus_manager_call_checkpoint_rollback (NM_MANAGER_GET_PRIVATE (manager)->proxy,
+ path,
+ cancellable,
+ checkpoint_rollback_cb, simple);
+}
+
+GHashTable *
+nm_manager_checkpoint_rollback_finish (NMManager *manager,
+ GAsyncResult *result,
+ GError **error)
+{
+ GSimpleAsyncResult *simple;
+
+ g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (manager),
+ nm_manager_checkpoint_rollback_async),
+ NULL);
+
+ simple = G_SIMPLE_ASYNC_RESULT (result);
+ if (g_simple_async_result_propagate_error (simple, error))
+ return NULL;
+ else
+ return g_simple_async_result_get_op_res_gpointer (simple);
+}
+
+/*****************************************************************************/
+
static void
constructed (GObject *object)
{
@@ -1472,6 +1778,9 @@ get_property (GObject *object,
case PROP_DEVICES:
g_value_take_boxed (value, _nm_utils_copy_object_array (nm_manager_get_devices (self)));
break;
+ case PROP_CHECKPOINTS:
+ g_value_take_boxed (value, _nm_utils_copy_object_array (nm_manager_get_checkpoints (self)));
+ break;
case PROP_METERED:
g_value_set_uint (value, priv->metered);
break;
@@ -1500,11 +1809,14 @@ nm_manager_class_init (NMManagerClass *manager_class)
object_class->finalize = finalize;
nm_object_class->init_dbus = init_dbus;
+ nm_object_class->object_creation_failed = object_creation_failed;
manager_class->device_added = device_added;
manager_class->device_removed = device_removed;
manager_class->active_connection_added = active_connection_added;
manager_class->active_connection_removed = active_connection_removed;
+ manager_class->checkpoint_added = checkpoint_added;
+ manager_class->checkpoint_removed = checkpoint_removed;
/* properties */
@@ -1612,6 +1924,12 @@ nm_manager_class_init (NMManagerClass *manager_class)
G_TYPE_PTR_ARRAY,
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property
+ (object_class, PROP_CHECKPOINTS,
+ g_param_spec_boxed (NM_MANAGER_CHECKPOINTS, "", "",
+ G_TYPE_PTR_ARRAY,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
/**
* NMManager:metered:
*
@@ -1683,6 +2001,23 @@ nm_manager_class_init (NMManagerClass *manager_class)
NULL, NULL, NULL,
G_TYPE_NONE, 1,
G_TYPE_OBJECT);
+ signals[CHECKPOINT_ADDED] =
+ g_signal_new ("checkpoint-added",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMManagerClass, checkpoint_added),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
+ signals[CHECKPOINT_REMOVED] =
+ g_signal_new ("checkpoint-removed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (NMManagerClass, checkpoint_removed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
+
signals[PERMISSION_CHANGED] =
g_signal_new ("permission-changed",
G_OBJECT_CLASS_TYPE (object_class),
diff --git a/libnm/nm-manager.h b/libnm/nm-manager.h
index 209a99a00c..852a088972 100644
--- a/libnm/nm-manager.h
+++ b/libnm/nm-manager.h
@@ -51,6 +51,7 @@ G_BEGIN_DECLS
#define NM_MANAGER_PRIMARY_CONNECTION "primary-connection"
#define NM_MANAGER_ACTIVATING_CONNECTION "activating-connection"
#define NM_MANAGER_DEVICES "devices"
+#define NM_MANAGER_CHECKPOINTS "checkpoints"
#define NM_MANAGER_METERED "metered"
#define NM_MANAGER_ALL_DEVICES "all-devices"
@@ -69,6 +70,8 @@ typedef struct {
void (*device_removed) (NMManager *manager, NMDevice *device);
void (*active_connection_added) (NMManager *manager, NMActiveConnection *ac);
void (*active_connection_removed) (NMManager *manager, NMActiveConnection *ac);
+ void (*checkpoint_added) (NMManager *manager, NMCheckpoint *checkpoint);
+ void (*checkpoint_removed) (NMManager *manager, NMCheckpoint *checkpoint);
void (*permission_changed) (NMManager *manager,
NMClientPermission permission,
NMClientPermissionResult result);
@@ -184,6 +187,34 @@ gboolean nm_manager_deactivate_connection_finish (NMManager *manager,
GAsyncResult *result,
GError **error);
+const GPtrArray *nm_manager_get_checkpoints (NMManager *manager);
+void nm_manager_checkpoint_create_async (NMManager *manager,
+ const GPtrArray *devices,
+ guint32 rollback_timeout,
+ NMCheckpointCreateFlags flags,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+NMCheckpoint *nm_manager_checkpoint_create_finish (NMManager *manager,
+ GAsyncResult *result,
+ GError **error);
+void nm_manager_checkpoint_destroy_async (NMManager *manager,
+ NMCheckpoint *checkpoint,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+gboolean nm_manager_checkpoint_destroy_finish (NMManager *manager,
+ GAsyncResult *result,
+ GError **error);
+void nm_manager_checkpoint_rollback_async (NMManager *manager,
+ NMCheckpoint *checkpoint,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+GHashTable *nm_manager_checkpoint_rollback_finish (NMManager *manager,
+ GAsyncResult *result,
+ GError **error);
+
G_END_DECLS
#endif /* __NM_MANAGER_H__ */
diff --git a/libnm/nm-types.h b/libnm/nm-types.h
index 4310120fec..dff8cb901f 100644
--- a/libnm/nm-types.h
+++ b/libnm/nm-types.h
@@ -28,6 +28,7 @@
typedef struct _NMAccessPoint NMAccessPoint;
typedef struct _NMActiveConnection NMActiveConnection;
+typedef struct _NMCheckpoint NMCheckpoint;
typedef struct _NMClient NMClient;
typedef struct _NMDevice NMDevice;
typedef struct _NMDeviceAdsl NMDeviceAdsl;
diff --git a/po/ar.po b/po/ar.po
index d281fff00f..7dcc7bbe69 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-11-10 15:29+0100\n"
+"POT-Creation-Date: 2017-05-29 17:44+0200\n"
"PO-Revision-Date: 2017-04-21 05:04-0400\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n"
@@ -87,88 +87,459 @@ msgstr ""
msgid "nmcli successfully registered as a polkit agent.\n"
msgstr ""
-#: ../clients/cli/common.c:263 ../clients/cli/common.c:278
+#: ../clients/cli/common.c:149
msgid "GROUP"
msgstr ""
-#: ../clients/cli/common.c:561
+#: ../clients/cli/common.c:381
+msgid "unmanaged"
+msgstr ""
+
+#: ../clients/cli/common.c:383
+msgid "unavailable"
+msgstr ""
+
+#: ../clients/cli/common.c:385 ../clients/cli/general.c:48
+msgid "disconnected"
+msgstr ""
+
+#: ../clients/cli/common.c:387
+msgid "connecting (prepare)"
+msgstr ""
+
+#: ../clients/cli/common.c:389
+msgid "connecting (configuring)"
+msgstr ""
+
+#: ../clients/cli/common.c:391
+msgid "connecting (need authentication)"
+msgstr ""
+
+#: ../clients/cli/common.c:393
+msgid "connecting (getting IP configuration)"
+msgstr ""
+
+#: ../clients/cli/common.c:395
+msgid "connecting (checking IP connectivity)"
+msgstr ""
+
+#: ../clients/cli/common.c:397
+msgid "connecting (starting secondary connections)"
+msgstr ""
+
+#: ../clients/cli/common.c:399 ../clients/cli/general.c:46
+msgid "connected"
+msgstr ""
+
+#: ../clients/cli/common.c:401 ../clients/cli/connections.c:528
+msgid "deactivating"
+msgstr ""
+
+#: ../clients/cli/common.c:403
+msgid "connection failed"
+msgstr ""
+
+#: ../clients/cli/common.c:405 ../clients/cli/common.c:422
+#: ../clients/cli/connections.c:533 ../clients/cli/connections.c:556
+#: ../clients/cli/devices.c:1153 ../clients/cli/devices.c:1197
+#: ../clients/cli/devices.c:1199 ../clients/cli/general.c:41
+#: ../clients/cli/general.c:79 ../clients/cli/general.c:144
+#: ../clients/cli/general.c:149 ../clients/common/nm-meta-setting-desc.c:1368
+#: ../clients/common/nm-meta-setting-desc.c:1436
+#: ../clients/common/nm-meta-setting-desc.c:2593
+#: ../clients/common/nm-meta-setting-desc.c:2647
+msgid "unknown"
+msgstr ""
+
+#. "CAPABILITIES"
+#: ../clients/cli/common.c:414 ../clients/cli/connections.c:876
+#: ../clients/cli/connections.c:878 ../clients/cli/connections.c:880
+#: ../clients/cli/connections.c:913 ../clients/cli/connections.c:980
+#: ../clients/cli/connections.c:981 ../clients/cli/connections.c:983
+#: ../clients/cli/connections.c:4496 ../clients/cli/connections.c:6375
+#: ../clients/cli/connections.c:6376 ../clients/cli/devices.c:827
+#: ../clients/cli/devices.c:1116 ../clients/cli/devices.c:1117
+#: ../clients/cli/devices.c:1118 ../clients/cli/devices.c:1119
+#: ../clients/cli/devices.c:1120 ../clients/cli/devices.c:1157
+#: ../clients/cli/devices.c:1159 ../clients/cli/devices.c:1160
+#: ../clients/cli/devices.c:1190 ../clients/cli/devices.c:1191
+#: ../clients/cli/devices.c:1192 ../clients/cli/devices.c:1193
+#: ../clients/cli/devices.c:1194 ../clients/cli/devices.c:1195
+#: ../clients/cli/devices.c:1196 ../clients/cli/devices.c:1198
+#: ../clients/cli/devices.c:1200 ../clients/cli/general.c:150
+#: ../clients/common/nm-meta-setting-desc.c:574
+#: ../clients/common/nm-meta-setting-desc.c:2586
+msgid "yes"
+msgstr ""
+
+#: ../clients/cli/common.c:416 ../clients/cli/connections.c:876
+#: ../clients/cli/connections.c:878 ../clients/cli/connections.c:880
+#: ../clients/cli/connections.c:980 ../clients/cli/connections.c:981
+#: ../clients/cli/connections.c:983 ../clients/cli/connections.c:4495
+#: ../clients/cli/connections.c:6375 ../clients/cli/connections.c:6376
+#: ../clients/cli/devices.c:827 ../clients/cli/devices.c:1116
+#: ../clients/cli/devices.c:1117 ../clients/cli/devices.c:1118
+#: ../clients/cli/devices.c:1119 ../clients/cli/devices.c:1120
+#: ../clients/cli/devices.c:1157 ../clients/cli/devices.c:1159
+#: ../clients/cli/devices.c:1160 ../clients/cli/devices.c:1190
+#: ../clients/cli/devices.c:1191 ../clients/cli/devices.c:1192
+#: ../clients/cli/devices.c:1193 ../clients/cli/devices.c:1194
+#: ../clients/cli/devices.c:1195 ../clients/cli/devices.c:1196
+#: ../clients/cli/devices.c:1198 ../clients/cli/devices.c:1200
+#: ../clients/cli/general.c:151 ../clients/common/nm-meta-setting-desc.c:574
+#: ../clients/common/nm-meta-setting-desc.c:2589
+#, fuzzy
+msgid "no"
+msgstr "بلا"
+
+#: ../clients/cli/common.c:418
+msgid "yes (guessed)"
+msgstr ""
+
+#: ../clients/cli/common.c:420
+msgid "no (guessed)"
+msgstr ""
+
+#: ../clients/cli/common.c:431
+msgid "No reason given"
+msgstr ""
+
+#. We should not really come here
+#: ../clients/cli/common.c:434 ../clients/cli/connections.c:3095
+#: ../clients/cli/connections.c:3155
+#, c-format
+msgid "Unknown error"
+msgstr ""
+
+#: ../clients/cli/common.c:437
+msgid "Device is now managed"
+msgstr ""
+
+#: ../clients/cli/common.c:440
+msgid "Device is now unmanaged"
+msgstr ""
+
+#: ../clients/cli/common.c:443
+msgid "The device could not be readied for configuration"
+msgstr ""
+
+#: ../clients/cli/common.c:446
+msgid ""
+"IP configuration could not be reserved (no available address, timeout, etc.)"
+msgstr ""
+
+#: ../clients/cli/common.c:449
+msgid "The IP configuration is no longer valid"
+msgstr ""
+
+#: ../clients/cli/common.c:452
+msgid "Secrets were required, but not provided"
+msgstr ""
+
+#: ../clients/cli/common.c:455
+msgid "802.1X supplicant disconnected"
+msgstr ""
+
+#: ../clients/cli/common.c:458
+msgid "802.1X supplicant configuration failed"
+msgstr ""
+
+#: ../clients/cli/common.c:461
+msgid "802.1X supplicant failed"
+msgstr ""
+
+#: ../clients/cli/common.c:464
+msgid "802.1X supplicant took too long to authenticate"
+msgstr ""
+
+#: ../clients/cli/common.c:467
+msgid "PPP service failed to start"
+msgstr ""
+
+#: ../clients/cli/common.c:470
+msgid "PPP service disconnected"
+msgstr ""
+
+#: ../clients/cli/common.c:473
+msgid "PPP failed"
+msgstr ""
+
+#: ../clients/cli/common.c:476
+msgid "DHCP client failed to start"
+msgstr ""
+
+#: ../clients/cli/common.c:479
+msgid "DHCP client error"
+msgstr ""
+
+#: ../clients/cli/common.c:482
+msgid "DHCP client failed"
+msgstr ""
+
+#: ../clients/cli/common.c:485
+msgid "Shared connection service failed to start"
+msgstr ""
+
+#: ../clients/cli/common.c:488
+msgid "Shared connection service failed"
+msgstr ""
+
+#: ../clients/cli/common.c:491
+msgid "AutoIP service failed to start"
+msgstr ""
+
+#: ../clients/cli/common.c:494
+msgid "AutoIP service error"
+msgstr ""
+
+#: ../clients/cli/common.c:497
+msgid "AutoIP service failed"
+msgstr ""
+
+#: ../clients/cli/common.c:500
+msgid "The line is busy"
+msgstr ""
+
+#: ../clients/cli/common.c:503
+msgid "No dial tone"
+msgstr ""
+
+#: ../clients/cli/common.c:506
+msgid "No carrier could be established"
+msgstr ""
+
+#: ../clients/cli/common.c:509
+msgid "The dialing request timed out"
+msgstr ""
+
+#: ../clients/cli/common.c:512
+msgid "The dialing attempt failed"
+msgstr ""
+
+#: ../clients/cli/common.c:515
+msgid "Modem initialization failed"
+msgstr ""
+
+#: ../clients/cli/common.c:518
+msgid "Failed to select the specified APN"
+msgstr ""
+
+#: ../clients/cli/common.c:521
+msgid "Not searching for networks"
+msgstr ""
+
+#: ../clients/cli/common.c:524
+msgid "Network registration denied"
+msgstr ""
+
+#: ../clients/cli/common.c:527
+msgid "Network registration timed out"
+msgstr ""
+
+#: ../clients/cli/common.c:530
+msgid "Failed to register with the requested network"
+msgstr ""
+
+#: ../clients/cli/common.c:533
+msgid "PIN check failed"
+msgstr ""
+
+#: ../clients/cli/common.c:536
+msgid "Necessary firmware for the device may be missing"
+msgstr ""
+
+#: ../clients/cli/common.c:539
+msgid "The device was removed"
+msgstr ""
+
+#: ../clients/cli/common.c:542
+msgid "NetworkManager went to sleep"
+msgstr ""
+
+#: ../clients/cli/common.c:545
+msgid "The device's active connection disappeared"
+msgstr ""
+
+#: ../clients/cli/common.c:548
+msgid "Device disconnected by user or client"
+msgstr ""
+
+#: ../clients/cli/common.c:551
+msgid "Carrier/link changed"
+msgstr ""
+
+#: ../clients/cli/common.c:554
+msgid "The device's existing connection was assumed"
+msgstr ""
+
+#: ../clients/cli/common.c:557
+msgid "The supplicant is now available"
+msgstr ""
+
+#: ../clients/cli/common.c:560
+msgid "The modem could not be found"
+msgstr ""
+
+#: ../clients/cli/common.c:563
+msgid "The Bluetooth connection failed or timed out"
+msgstr ""
+
+#: ../clients/cli/common.c:566
+msgid "GSM Modem's SIM card not inserted"
+msgstr ""
+
+#: ../clients/cli/common.c:569
+msgid "GSM Modem's SIM PIN required"
+msgstr ""
+
+#: ../clients/cli/common.c:572
+msgid "GSM Modem's SIM PUK required"
+msgstr ""
+
+#: ../clients/cli/common.c:575
+msgid "GSM Modem's SIM wrong"
+msgstr ""
+
+#: ../clients/cli/common.c:578
+msgid "InfiniBand device does not support connected mode"
+msgstr ""
+
+#: ../clients/cli/common.c:581
+msgid "A dependency of the connection failed"
+msgstr ""
+
+#: ../clients/cli/common.c:584
+msgid "A problem with the RFC 2684 Ethernet over ADSL bridge"
+msgstr ""
+
+#: ../clients/cli/common.c:587
+msgid "ModemManager is unavailable"
+msgstr ""
+
+#: ../clients/cli/common.c:590
+msgid "The Wi-Fi network could not be found"
+msgstr ""
+
+#: ../clients/cli/common.c:593
+msgid "A secondary connection of the base connection failed"
+msgstr ""
+
+#: ../clients/cli/common.c:596
+msgid "DCB or FCoE setup failed"
+msgstr ""
+
+#: ../clients/cli/common.c:599
+msgid "teamd control failed"
+msgstr ""
+
+#: ../clients/cli/common.c:602
+msgid "Modem failed or no longer available"
+msgstr ""
+
+#: ../clients/cli/common.c:605
+msgid "Modem now ready and available"
+msgstr ""
+
+#: ../clients/cli/common.c:608
+msgid "SIM PIN was incorrect"
+msgstr ""
+
+#: ../clients/cli/common.c:611
+msgid "New connection activation was enqueued"
+msgstr ""
+
+#: ../clients/cli/common.c:614
+msgid "The device's parent changed"
+msgstr ""
+
+#: ../clients/cli/common.c:617
+msgid "The device parent's management changed"
+msgstr ""
+
+#. TRANSLATORS: Unknown reason for a device state change (NMDeviceStateReason)
+#: ../clients/cli/common.c:621 ../libnm-glib/nm-device.c:1860
+#: ../libnm/nm-device.c:1560
+msgid "Unknown"
+msgstr ""
+
+#: ../clients/cli/common.c:737
#, c-format
msgid "Error: openconnect failed: %s\n"
msgstr ""
-#: ../clients/cli/common.c:568
+#: ../clients/cli/common.c:744
#, c-format
msgid "Error: openconnect failed with status %d\n"
msgstr ""
-#: ../clients/cli/common.c:570
+#: ../clients/cli/common.c:746
#, c-format
msgid "Error: openconnect failed with signal %d\n"
msgstr ""
-#: ../clients/cli/common.c:651
+#: ../clients/cli/common.c:827
#, c-format
msgid ""
"Warning: password for '%s' not given in 'passwd-file' and nmcli cannot ask "
"without '--ask' option.\n"
msgstr ""
-#: ../clients/cli/common.c:1117
+#: ../clients/cli/common.c:1291
#, c-format
msgid "Error: Could not create NMClient object: %s."
msgstr ""
-#: ../clients/cli/common.c:1137
+#: ../clients/cli/common.c:1311
msgid "Error: NetworkManager is not running."
msgstr ""
-#: ../clients/cli/common.c:1234
+#: ../clients/cli/common.c:1408
#, c-format
msgid "Error: argument '%s' not understood. Try passing --help instead."
msgstr ""
-#: ../clients/cli/common.c:1244
+#: ../clients/cli/common.c:1418
msgid "Error: missing argument. Try passing --help."
msgstr ""
-#: ../clients/cli/common.c:1297
+#: ../clients/cli/common.c:1471
msgid "access denied"
msgstr ""
#. define some prompts for connection editor
-#: ../clients/cli/connections.c:66
+#: ../clients/cli/connections.c:64
msgid "Setting name? "
msgstr ""
-#: ../clients/cli/connections.c:67
+#: ../clients/cli/connections.c:65
msgid "Property name? "
msgstr ""
-#: ../clients/cli/connections.c:68
+#: ../clients/cli/connections.c:66
msgid "Enter connection type: "
msgstr ""
#. define some other prompts
-#: ../clients/cli/connections.c:72
+#: ../clients/cli/connections.c:70
#, fuzzy
msgid "Connection (name, UUID, or path)"
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:73
+#: ../clients/cli/connections.c:71
#, fuzzy
msgid "VPN connection (name, UUID, or path)"
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:74
+#: ../clients/cli/connections.c:72
#, fuzzy
msgid "Connection(s) (name, UUID, or path)"
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:75
+#: ../clients/cli/connections.c:73
msgid "Connection(s) (name, UUID, path or apath)"
msgstr ""
-#: ../clients/cli/connections.c:196
+#: ../clients/cli/connections.c:190
#, c-format
msgid ""
"Usage: nmcli connection { COMMAND | help }\n"
@@ -209,7 +580,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:218
+#: ../clients/cli/connections.c:212
#, c-format
msgid ""
"Usage: nmcli connection show { ARGUMENTS | help }\n"
@@ -236,7 +607,7 @@ msgid ""
"well.\n"
msgstr ""
-#: ../clients/cli/connections.c:239
+#: ../clients/cli/connections.c:233
#, c-format
msgid ""
"Usage: nmcli connection up { ARGUMENTS | help }\n"
@@ -261,7 +632,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:260
+#: ../clients/cli/connections.c:254
#, c-format
msgid ""
"Usage: nmcli connection down { ARGUMENTS | help }\n"
@@ -275,7 +646,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:272
+#: ../clients/cli/connections.c:266
#, c-format
msgid ""
"Usage: nmcli connection add { ARGUMENTS | help }\n"
@@ -326,7 +697,7 @@ msgid ""
" [p-key <IPoIB P_Key>]\n"
"\n"
" bluetooth: [addr <bluetooth address>]\n"
-" [bt-type panu|nap|dun-gsm|dun-cdma]\n"
+" [bt-type panu|dun-gsm|dun-cdma]\n"
"\n"
" vlan: dev <parent device (connection UUID, ifname, or MAC)>\n"
" id <VLAN ID>\n"
@@ -427,7 +798,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:390
+#: ../clients/cli/connections.c:384
#, c-format
msgid ""
"Usage: nmcli connection modify { ARGUMENTS | help }\n"
@@ -452,7 +823,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:413
+#: ../clients/cli/connections.c:407
#, c-format
msgid ""
"Usage: nmcli connection clone { ARGUMENTS | help }\n"
@@ -466,7 +837,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:425
+#: ../clients/cli/connections.c:419
#, c-format
msgid ""
"Usage: nmcli connection edit { ARGUMENTS | help }\n"
@@ -482,7 +853,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:440
+#: ../clients/cli/connections.c:434
#, c-format
msgid ""
"Usage: nmcli connection delete { ARGUMENTS | help }\n"
@@ -494,7 +865,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:451
+#: ../clients/cli/connections.c:445
#, c-format
msgid ""
"Usage: nmcli connection monitor { ARGUMENTS | help }\n"
@@ -507,7 +878,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:463
+#: ../clients/cli/connections.c:457
#, c-format
msgid ""
"Usage: nmcli connection reload { help }\n"
@@ -516,7 +887,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:471
+#: ../clients/cli/connections.c:465
#, c-format
msgid ""
"Usage: nmcli connection load { ARGUMENTS | help }\n"
@@ -530,7 +901,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:483
+#: ../clients/cli/connections.c:477
#, c-format
msgid ""
"Usage: nmcli connection import { ARGUMENTS | help }\n"
@@ -545,7 +916,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:496
+#: ../clients/cli/connections.c:490
#, c-format
msgid ""
"Usage: nmcli connection export { ARGUMENTS | help }\n"
@@ -557,467 +928,457 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:530
+#: ../clients/cli/connections.c:524
msgid "activating"
msgstr ""
-#: ../clients/cli/connections.c:532
+#: ../clients/cli/connections.c:526
msgid "activated"
msgstr ""
-#: ../clients/cli/connections.c:534 ../clients/common/nm-client-utils.c:243
-msgid "deactivating"
-msgstr ""
-
-#: ../clients/cli/connections.c:536
+#: ../clients/cli/connections.c:530
msgid "deactivated"
msgstr ""
-#: ../clients/cli/connections.c:539 ../clients/cli/connections.c:562
-#: ../clients/cli/devices.c:1210 ../clients/cli/devices.c:1254
-#: ../clients/cli/devices.c:1256 ../clients/cli/general.c:41
-#: ../clients/cli/general.c:79 ../clients/cli/general.c:146
-#: ../clients/cli/general.c:151 ../clients/common/nm-client-utils.c:247
-#: ../clients/common/nm-client-utils.c:250
-#: ../clients/common/nm-client-utils.c:266
-#: ../clients/common/nm-client-utils.c:269
-#: ../clients/common/nm-meta-setting-desc.c:1335
-#: ../clients/common/nm-meta-setting-desc.c:1403
-#: ../clients/common/nm-meta-setting-desc.c:2545
-#: ../clients/common/nm-meta-setting-desc.c:2599
-msgid "unknown"
-msgstr ""
-
-#: ../clients/cli/connections.c:548
+#: ../clients/cli/connections.c:542
#, fuzzy
msgid "VPN connecting (prepare)"
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:550
+#: ../clients/cli/connections.c:544
msgid "VPN connecting (need authentication)"
msgstr ""
-#: ../clients/cli/connections.c:552
+#: ../clients/cli/connections.c:546
#, fuzzy
msgid "VPN connecting"
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:554
+#: ../clients/cli/connections.c:548
msgid "VPN connecting (getting IP configuration)"
msgstr ""
-#: ../clients/cli/connections.c:556
+#: ../clients/cli/connections.c:550
#, fuzzy
msgid "VPN connected"
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:558
+#: ../clients/cli/connections.c:552
#, fuzzy
msgid "VPN connection failed"
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:560
+#: ../clients/cli/connections.c:554
#, fuzzy
msgid "VPN disconnected"
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:630
+#: ../clients/cli/connections.c:624
#, c-format
msgid "Error updating secrets for %s: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:650
+#: ../clients/cli/connections.c:644
msgid "Connection profile details"
msgstr ""
-#: ../clients/cli/connections.c:663 ../clients/cli/connections.c:1113
+#: ../clients/cli/connections.c:657 ../clients/cli/connections.c:1107
#, fuzzy, c-format
msgid "Error: 'connection show': %s"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:881
+#: ../clients/cli/connections.c:875
msgid "never"
msgstr ""
-#. "CAPABILITIES"
-#: ../clients/cli/connections.c:882 ../clients/cli/connections.c:884
-#: ../clients/cli/connections.c:886 ../clients/cli/connections.c:919
-#: ../clients/cli/connections.c:986 ../clients/cli/connections.c:987
-#: ../clients/cli/connections.c:989 ../clients/cli/connections.c:4432
-#: ../clients/cli/connections.c:6370 ../clients/cli/connections.c:6371
-#: ../clients/cli/devices.c:884 ../clients/cli/devices.c:1173
-#: ../clients/cli/devices.c:1174 ../clients/cli/devices.c:1175
-#: ../clients/cli/devices.c:1176 ../clients/cli/devices.c:1177
-#: ../clients/cli/devices.c:1214 ../clients/cli/devices.c:1216
-#: ../clients/cli/devices.c:1217 ../clients/cli/devices.c:1247
-#: ../clients/cli/devices.c:1248 ../clients/cli/devices.c:1249
-#: ../clients/cli/devices.c:1250 ../clients/cli/devices.c:1251
-#: ../clients/cli/devices.c:1252 ../clients/cli/devices.c:1253
-#: ../clients/cli/devices.c:1255 ../clients/cli/devices.c:1257
-#: ../clients/cli/general.c:152 ../clients/common/nm-client-utils.c:258
-#: ../clients/common/nm-meta-setting-desc.c:575
-#: ../clients/common/nm-meta-setting-desc.c:2538
-msgid "yes"
-msgstr ""
-
-#: ../clients/cli/connections.c:882 ../clients/cli/connections.c:884
-#: ../clients/cli/connections.c:886 ../clients/cli/connections.c:986
-#: ../clients/cli/connections.c:987 ../clients/cli/connections.c:989
-#: ../clients/cli/connections.c:4431 ../clients/cli/connections.c:6370
-#: ../clients/cli/connections.c:6371 ../clients/cli/devices.c:884
-#: ../clients/cli/devices.c:1173 ../clients/cli/devices.c:1174
-#: ../clients/cli/devices.c:1175 ../clients/cli/devices.c:1176
-#: ../clients/cli/devices.c:1177 ../clients/cli/devices.c:1214
-#: ../clients/cli/devices.c:1216 ../clients/cli/devices.c:1217
-#: ../clients/cli/devices.c:1247 ../clients/cli/devices.c:1248
-#: ../clients/cli/devices.c:1249 ../clients/cli/devices.c:1250
-#: ../clients/cli/devices.c:1251 ../clients/cli/devices.c:1252
-#: ../clients/cli/devices.c:1253 ../clients/cli/devices.c:1255
-#: ../clients/cli/devices.c:1257 ../clients/cli/general.c:153
-#: ../clients/common/nm-client-utils.c:260
-#: ../clients/common/nm-meta-setting-desc.c:575
-#: ../clients/common/nm-meta-setting-desc.c:2541
-#, fuzzy
-msgid "no"
-msgstr "بلا"
-
-#: ../clients/cli/connections.c:1103
+#: ../clients/cli/connections.c:1097
msgid "Activate connection details"
msgstr ""
-#: ../clients/cli/connections.c:1350
+#: ../clients/cli/connections.c:1344
#, c-format
msgid "invalid field '%s'; allowed fields: %s and %s, or %s,%s"
msgstr ""
-#: ../clients/cli/connections.c:1365 ../clients/cli/connections.c:1373
+#: ../clients/cli/connections.c:1359 ../clients/cli/connections.c:1367
#, c-format
msgid "'%s' has to be alone"
msgstr ""
-#: ../clients/cli/connections.c:1573
+#: ../clients/cli/connections.c:1567
#, c-format
msgid "incorrect string '%s' of '--order' option"
msgstr ""
-#: ../clients/cli/connections.c:1599
+#: ../clients/cli/connections.c:1593
#, c-format
msgid "incorrect item '%s' in '--order' option"
msgstr ""
-#: ../clients/cli/connections.c:1629
+#: ../clients/cli/connections.c:1623
#, fuzzy
msgid "No connection specified"
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:1644
+#: ../clients/cli/connections.c:1638
#, c-format
msgid "%s argument is missing"
msgstr ""
-#: ../clients/cli/connections.c:1654
+#: ../clients/cli/connections.c:1648
#, fuzzy, c-format
msgid "unknown connection '%s'"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:1687
+#: ../clients/cli/connections.c:1681
msgid "'--order' argument is missing"
msgstr ""
-#: ../clients/cli/connections.c:1742
+#: ../clients/cli/connections.c:1736
msgid "NetworkManager active profiles"
msgstr ""
-#: ../clients/cli/connections.c:1743
+#: ../clients/cli/connections.c:1737
msgid "NetworkManager connection profiles"
msgstr ""
-#: ../clients/cli/connections.c:1796 ../clients/cli/connections.c:2471
-#: ../clients/cli/connections.c:2483 ../clients/cli/connections.c:2495
-#: ../clients/cli/connections.c:2671 ../clients/cli/connections.c:8431
-#: ../clients/cli/connections.c:8448 ../clients/cli/devices.c:2681
-#: ../clients/cli/devices.c:2692 ../clients/cli/devices.c:2934
+#: ../clients/cli/connections.c:1790 ../clients/cli/connections.c:2558
+#: ../clients/cli/connections.c:2570 ../clients/cli/connections.c:2582
+#: ../clients/cli/connections.c:2758 ../clients/cli/connections.c:8446
+#: ../clients/cli/connections.c:8463 ../clients/cli/devices.c:2624
+#: ../clients/cli/devices.c:2634 ../clients/cli/devices.c:2876
+#: ../clients/cli/devices.c:2886 ../clients/cli/devices.c:2904
+#: ../clients/cli/devices.c:2913 ../clients/cli/devices.c:2934
#: ../clients/cli/devices.c:2945 ../clients/cli/devices.c:2963
-#: ../clients/cli/devices.c:2972 ../clients/cli/devices.c:2993
-#: ../clients/cli/devices.c:3004 ../clients/cli/devices.c:3022
-#: ../clients/cli/devices.c:3400 ../clients/cli/devices.c:3410
-#: ../clients/cli/devices.c:3418 ../clients/cli/devices.c:3430
-#: ../clients/cli/devices.c:3445 ../clients/cli/devices.c:3453
-#: ../clients/cli/devices.c:3627 ../clients/cli/devices.c:3638
-#: ../clients/cli/devices.c:3810
+#: ../clients/cli/devices.c:3341 ../clients/cli/devices.c:3351
+#: ../clients/cli/devices.c:3359 ../clients/cli/devices.c:3371
+#: ../clients/cli/devices.c:3386 ../clients/cli/devices.c:3394
+#: ../clients/cli/devices.c:3568 ../clients/cli/devices.c:3579
+#: ../clients/cli/devices.c:3751
#, c-format
msgid "Error: %s argument is missing."
msgstr ""
-#: ../clients/cli/connections.c:1815
+#: ../clients/cli/connections.c:1809
#, c-format
msgid "Error: %s - no such connection profile."
msgstr ""
-#: ../clients/cli/connections.c:1879 ../clients/cli/connections.c:2458
-#: ../clients/cli/connections.c:2522 ../clients/cli/connections.c:7941
-#: ../clients/cli/connections.c:8052 ../clients/cli/connections.c:8562
-#: ../clients/cli/devices.c:1582 ../clients/cli/devices.c:1868
-#: ../clients/cli/devices.c:2037 ../clients/cli/devices.c:2145
-#: ../clients/cli/devices.c:2334 ../clients/cli/devices.c:3590
-#: ../clients/cli/devices.c:3816 ../clients/cli/general.c:928
+#: ../clients/cli/connections.c:1873 ../clients/cli/connections.c:2545
+#: ../clients/cli/connections.c:2609 ../clients/cli/connections.c:7956
+#: ../clients/cli/connections.c:8067 ../clients/cli/connections.c:8577
+#: ../clients/cli/devices.c:1525 ../clients/cli/devices.c:1811
+#: ../clients/cli/devices.c:1980 ../clients/cli/devices.c:2088
+#: ../clients/cli/devices.c:2277 ../clients/cli/devices.c:3531
+#: ../clients/cli/devices.c:3757 ../clients/cli/general.c:926
#, c-format
msgid "Error: %s."
msgstr ""
-#: ../clients/cli/connections.c:1977
+#: ../clients/cli/connections.c:1971
#, c-format
msgid "no active connection on device '%s'"
msgstr ""
-#: ../clients/cli/connections.c:1985
+#: ../clients/cli/connections.c:1979
msgid "no active connection or device"
msgstr ""
-#: ../clients/cli/connections.c:2005
+#: ../clients/cli/connections.c:1999
#, fuzzy, c-format
msgid "device '%s' not compatible with connection '%s':"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:2041
+#: ../clients/cli/connections.c:2035
#, c-format
msgid "device '%s' not compatible with connection '%s'"
msgstr ""
-#: ../clients/cli/connections.c:2044
+#: ../clients/cli/connections.c:2038
#, fuzzy, c-format
msgid "no device found for connection '%s'"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
+#: ../clients/cli/connections.c:2058
+msgid "Unknown reason"
+msgstr ""
+
+#: ../clients/cli/connections.c:2060
+#, fuzzy
+msgid "The connection was disconnected"
+msgstr "لا يمكن إضافة اتصال VPN"
+
+#: ../clients/cli/connections.c:2062
+#, fuzzy
+msgid "Disconnected by user"
+msgstr "إتّصالات VPN"
+
+#: ../clients/cli/connections.c:2064
+msgid "The base network connection was interrupted"
+msgstr ""
+
+#: ../clients/cli/connections.c:2066
+msgid "The VPN service stopped unexpectedly"
+msgstr ""
+
+#: ../clients/cli/connections.c:2068
+msgid "The VPN service returned invalid configuration"
+msgstr ""
+
+#: ../clients/cli/connections.c:2070
+#, fuzzy
+msgid "The connection attempt timed out"
+msgstr "إتّصالات VPN"
+
#: ../clients/cli/connections.c:2072
-#, c-format
-msgid "Connection successfully activated (%s) (D-Bus active path: %s)\n"
+msgid "The VPN service did not start in time"
+msgstr ""
+
+#: ../clients/cli/connections.c:2074
+msgid "The VPN service failed to start"
+msgstr ""
+
+#: ../clients/cli/connections.c:2076
+msgid "No valid secrets"
+msgstr ""
+
+#: ../clients/cli/connections.c:2078
+msgid "Invalid secrets"
+msgstr ""
+
+#: ../clients/cli/connections.c:2080
+#, fuzzy
+msgid "The connection was removed"
+msgstr "حذف اتصال VPN \"%s\"؟"
+
+#: ../clients/cli/connections.c:2082
+#, fuzzy
+msgid "Master connection failed"
+msgstr "إتّصالات VPN"
+
+#: ../clients/cli/connections.c:2084
+msgid "Could not create a software link"
+msgstr ""
+
+#: ../clients/cli/connections.c:2086
+msgid "The device disappeared"
+msgstr ""
+
+#: ../clients/cli/connections.c:2089
+msgid "Invalid reason"
msgstr ""
-#: ../clients/cli/connections.c:2076 ../clients/cli/connections.c:2224
-#: ../clients/cli/connections.c:6249
+#: ../clients/cli/connections.c:2115 ../clients/cli/connections.c:2307
+#: ../clients/cli/connections.c:6263
#, c-format
msgid "Connection successfully activated (D-Bus active path: %s)\n"
msgstr ""
-#: ../clients/cli/connections.c:2083 ../clients/cli/connections.c:2204
+#: ../clients/cli/connections.c:2146 ../clients/cli/connections.c:2287
#, c-format
msgid "Error: Connection activation failed: %s"
msgstr ""
-#: ../clients/cli/connections.c:2119
+#: ../clients/cli/connections.c:2173
+#, c-format
+msgid ""
+"Connection successfully activated (master waiting for slaves) (D-Bus active "
+"path: %s)\n"
+msgstr ""
+
+#: ../clients/cli/connections.c:2202
#, c-format
msgid "Error: Timeout expired (%d seconds)"
msgstr ""
-#: ../clients/cli/connections.c:2285
+#: ../clients/cli/connections.c:2368
#, c-format
msgid "failed to read passwd-file '%s': %s"
msgstr ""
-#: ../clients/cli/connections.c:2297
+#: ../clients/cli/connections.c:2380
#, c-format
msgid "missing colon in 'password' entry '%s'"
msgstr ""
-#: ../clients/cli/connections.c:2305
+#: ../clients/cli/connections.c:2388
#, c-format
msgid "missing dot in 'password' entry '%s'"
msgstr ""
-#: ../clients/cli/connections.c:2318
+#: ../clients/cli/connections.c:2401
#, c-format
msgid "invalid setting name in 'password' entry '%s'"
msgstr ""
-#: ../clients/cli/connections.c:2374
+#: ../clients/cli/connections.c:2457
#, c-format
msgid "unknown device '%s'."
msgstr ""
-#: ../clients/cli/connections.c:2379
+#: ../clients/cli/connections.c:2462
msgid "neither a valid connection nor device given"
msgstr ""
-#: ../clients/cli/connections.c:2505 ../clients/cli/devices.c:1533
-#: ../clients/cli/devices.c:2699 ../clients/cli/devices.c:3035
-#: ../clients/cli/devices.c:3644
+#: ../clients/cli/connections.c:2592 ../clients/cli/devices.c:1476
+#: ../clients/cli/devices.c:2641 ../clients/cli/devices.c:2976
+#: ../clients/cli/devices.c:3585
#, c-format
msgid "Unknown parameter: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:2530
+#: ../clients/cli/connections.c:2617
msgid "preparing"
msgstr ""
-#: ../clients/cli/connections.c:2550
+#: ../clients/cli/connections.c:2637
#, c-format
msgid "Connection '%s' (%s) successfully deleted.\n"
msgstr ""
-#: ../clients/cli/connections.c:2566
+#: ../clients/cli/connections.c:2653
#, c-format
msgid "Connection '%s' successfully deactivated (D-Bus active path: %s)\n"
msgstr ""
-#: ../clients/cli/connections.c:2647 ../clients/cli/connections.c:8167
-#: ../clients/cli/connections.c:8199 ../clients/cli/connections.c:8356
+#: ../clients/cli/connections.c:2734 ../clients/cli/connections.c:8182
+#: ../clients/cli/connections.c:8214 ../clients/cli/connections.c:8371
#, c-format
msgid "Error: No connection specified."
msgstr ""
-#: ../clients/cli/connections.c:2688
+#: ../clients/cli/connections.c:2775
#, c-format
msgid "Error: '%s' is not an active connection.\n"
msgstr ""
-#: ../clients/cli/connections.c:2689
+#: ../clients/cli/connections.c:2776
#, c-format
msgid "Error: not all active connections found."
msgstr ""
-#: ../clients/cli/connections.c:2698
+#: ../clients/cli/connections.c:2785
#, c-format
msgid "Error: no active connection provided."
msgstr ""
-#: ../clients/cli/connections.c:2732
+#: ../clients/cli/connections.c:2819
#, c-format
msgid "Connection '%s' deactivation failed: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:2988 ../clients/cli/connections.c:3045
-#: ../clients/common/nm-client-utils.c:169
+#: ../clients/cli/connections.c:3075 ../clients/cli/connections.c:3132
+#: ../clients/common/nm-client-utils.c:165
#, c-format
msgid "'%s' not among [%s]"
msgstr ""
-#. We should not really come here
-#: ../clients/cli/connections.c:3008 ../clients/cli/connections.c:3068
-#: ../clients/common/nm-client-utils.c:279
-#, c-format
-msgid "Unknown error"
-msgstr ""
-
-#: ../clients/cli/connections.c:3202
+#: ../clients/cli/connections.c:3289
#, c-format
msgid "Warning: master='%s' doesn't refer to any existing profile.\n"
msgstr ""
-#: ../clients/cli/connections.c:3539
+#: ../clients/cli/connections.c:3626
#, c-format
msgid "Error: invalid property '%s': %s."
msgstr ""
-#: ../clients/cli/connections.c:3556
+#: ../clients/cli/connections.c:3643
#, c-format
msgid "Error: failed to modify %s.%s: %s."
msgstr ""
-#: ../clients/cli/connections.c:3575
+#: ../clients/cli/connections.c:3662
#, c-format
msgid "Error: failed to remove a value from %s.%s: %s."
msgstr ""
-#: ../clients/cli/connections.c:3609
+#: ../clients/cli/connections.c:3696
#, c-format
msgid "Error: '%s' is mandatory."
msgstr ""
-#: ../clients/cli/connections.c:3636
+#: ../clients/cli/connections.c:3723
#, fuzzy, c-format
msgid "Error: invalid slave type; %s."
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:3644
+#: ../clients/cli/connections.c:3733
#, fuzzy, c-format
msgid "Error: invalid connection type; %s."
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:3721
+#: ../clients/cli/connections.c:3810
#, fuzzy, c-format
msgid "Error: bad connection type: %s"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:3767
+#: ../clients/cli/connections.c:3856
#, fuzzy, c-format
msgid "Error: '%s': %s"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:3788
+#: ../clients/cli/connections.c:3877
msgid "Error: master is required"
msgstr ""
-#: ../clients/cli/connections.c:3847
+#: ../clients/cli/connections.c:3936
#, fuzzy, c-format
msgid "Error: error adding bond option '%s=%s'."
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:3878
+#: ../clients/cli/connections.c:3967
#, c-format
msgid "Error: '%s' is not a valid monitoring mode; use '%s' or '%s'.\n"
msgstr ""
-#: ../clients/cli/connections.c:3909
+#: ../clients/cli/connections.c:3998
#, c-format
-msgid "Error: 'bt-type': '%s' not valid; use [%s, %s, %s (%s), %s]."
+msgid "Error: 'bt-type': '%s' not valid; use [%s, %s (%s), %s]."
msgstr ""
-#: ../clients/cli/connections.c:4158
+#: ../clients/cli/connections.c:4246
#, c-format
msgid "Error: value for '%s' is missing."
msgstr ""
-#: ../clients/cli/connections.c:4204
+#: ../clients/cli/connections.c:4292
msgid "Error: <setting>.<property> argument is missing."
msgstr ""
-#: ../clients/cli/connections.c:4227
+#: ../clients/cli/connections.c:4315
#, c-format
msgid "Error: invalid or not allowed setting '%s': %s."
msgstr ""
-#: ../clients/cli/connections.c:4273 ../clients/cli/connections.c:4289
+#: ../clients/cli/connections.c:4361 ../clients/cli/connections.c:4377
#, c-format
msgid "Error: '%s' is ambiguous (%s.%s or %s.%s)."
msgstr ""
-#: ../clients/cli/connections.c:4307
+#: ../clients/cli/connections.c:4395
#, c-format
msgid "Error: invalid <setting>.<property> '%s'."
msgstr ""
-#: ../clients/cli/connections.c:4351 ../clients/cli/connections.c:7992
+#: ../clients/cli/connections.c:4437 ../clients/cli/connections.c:8007
#, fuzzy, c-format
msgid "Error: Failed to add '%s' connection: %s"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:4369
-#, c-format
-msgid ""
-"Warning: There is another connection with the name '%1$s'. Reference the "
-"connection by its uuid '%2$s'\n"
-msgid_plural ""
-"Warning: There are %3$u other connections with the name '%1$s'. Reference "
-"the connection by its uuid '%2$s'\n"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-msgstr[3] ""
-
-#: ../clients/cli/connections.c:4378
+#: ../clients/cli/connections.c:4442
#, c-format
msgid "Connection '%s' (%s) successfully added.\n"
msgstr ""
-#: ../clients/cli/connections.c:4516
+#: ../clients/cli/connections.c:4580
#, c-format
msgid ""
"You can specify this option more than once. Press <Enter> when you're done.\n"
msgstr ""
#. Ask for optional arguments.
-#: ../clients/cli/connections.c:4615
+#: ../clients/cli/connections.c:4645
#, c-format
msgid "There is %d optional setting for %s.\n"
msgid_plural "There are %d optional settings for %s.\n"
@@ -1026,7 +1387,7 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: ../clients/cli/connections.c:4618
+#: ../clients/cli/connections.c:4648
#, c-format
msgid "Do you want to provide it? %s"
msgid_plural "Do you want to provide them? %s"
@@ -1035,22 +1396,22 @@ msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
-#: ../clients/cli/connections.c:4754 ../clients/cli/utils.c:303
+#: ../clients/cli/connections.c:4773 ../clients/cli/utils.c:302
#, c-format
msgid "Error: value for '%s' argument is required."
msgstr ""
-#: ../clients/cli/connections.c:4760
+#: ../clients/cli/connections.c:4779
#, c-format
msgid "Error: 'save': %s."
msgstr ""
-#: ../clients/cli/connections.c:4848 ../clients/cli/connections.c:4859
+#: ../clients/cli/connections.c:4867 ../clients/cli/connections.c:4878
#, c-format
msgid "Error: '%s' argument is required."
msgstr ""
-#: ../clients/cli/connections.c:5837
+#: ../clients/cli/connections.c:5852
#, c-format
msgid "['%s' setting values]\n"
msgstr ""
@@ -1058,7 +1419,7 @@ msgstr ""
#. TRANSLATORS: do not translate command names and keywords before ::
#. * However, you should translate terms enclosed in <>.
#.
-#: ../clients/cli/connections.c:5916
+#: ../clients/cli/connections.c:5931
#, c-format
msgid ""
"---[ Main menu ]---\n"
@@ -1077,7 +1438,7 @@ msgid ""
"quit :: exit nmcli\n"
msgstr ""
-#: ../clients/cli/connections.c:5943
+#: ../clients/cli/connections.c:5958
#, c-format
msgid ""
"goto <setting>[.<prop>] | <prop> :: enter setting/property for editing\n"
@@ -1089,7 +1450,7 @@ msgid ""
" nmcli> goto ipv4.addresses\n"
msgstr ""
-#: ../clients/cli/connections.c:5950
+#: ../clients/cli/connections.c:5965
#, c-format
msgid ""
"remove <setting>[.<prop>] :: remove setting or reset property value\n"
@@ -1102,7 +1463,7 @@ msgid ""
" nmcli> remove eth.mtu\n"
msgstr ""
-#: ../clients/cli/connections.c:5957
+#: ../clients/cli/connections.c:5972
#, c-format
msgid ""
"set [<setting>.<prop> <value>] :: set property value\n"
@@ -1112,7 +1473,7 @@ msgid ""
"Example: nmcli> set con.id My connection\n"
msgstr ""
-#: ../clients/cli/connections.c:5962
+#: ../clients/cli/connections.c:5977
#, c-format
msgid ""
"describe [<setting>.<prop>] :: describe property\n"
@@ -1121,7 +1482,7 @@ msgid ""
"see all NM settings and properties.\n"
msgstr ""
-#: ../clients/cli/connections.c:5967
+#: ../clients/cli/connections.c:5982
#, c-format
msgid ""
"print [all] :: print setting or connection values\n"
@@ -1131,7 +1492,7 @@ msgid ""
"Example: nmcli ipv4> print all\n"
msgstr ""
-#: ../clients/cli/connections.c:5972
+#: ../clients/cli/connections.c:5987
#, c-format
msgid ""
"verify [all | fix] :: verify setting or connection validity\n"
@@ -1146,7 +1507,7 @@ msgid ""
" nmcli bond> verify\n"
msgstr ""
-#: ../clients/cli/connections.c:5981
+#: ../clients/cli/connections.c:5996
#, c-format
msgid ""
"save [persistent|temporary] :: save the connection\n"
@@ -1162,7 +1523,7 @@ msgid ""
"profile must be deleted.\n"
msgstr ""
-#: ../clients/cli/connections.c:5992
+#: ../clients/cli/connections.c:6007
#, c-format
msgid ""
"activate [<ifname>] [/<ap>|<nsp>] :: activate the connection\n"
@@ -1175,21 +1536,21 @@ msgid ""
"specified)\n"
msgstr ""
-#: ../clients/cli/connections.c:5999 ../clients/cli/connections.c:6158
+#: ../clients/cli/connections.c:6014 ../clients/cli/connections.c:6173
#, c-format
msgid ""
"back :: go to upper menu level\n"
"\n"
msgstr ""
-#: ../clients/cli/connections.c:6002
+#: ../clients/cli/connections.c:6017
#, c-format
msgid ""
"help/? [<command>] :: help for the nmcli commands\n"
"\n"
msgstr ""
-#: ../clients/cli/connections.c:6005
+#: ../clients/cli/connections.c:6020
#, c-format
msgid ""
"nmcli [<conf-option> <value>] :: nmcli configuration\n"
@@ -1205,7 +1566,7 @@ msgid ""
" nmcli> nmcli prompt-color 3\n"
msgstr ""
-#: ../clients/cli/connections.c:6027 ../clients/cli/connections.c:6164
+#: ../clients/cli/connections.c:6042 ../clients/cli/connections.c:6179
#, c-format
msgid ""
"quit :: exit nmcli\n"
@@ -1214,8 +1575,8 @@ msgid ""
"user is asked to confirm the action.\n"
msgstr ""
-#: ../clients/cli/connections.c:6032 ../clients/cli/connections.c:6169
-#: ../clients/cli/connections.c:6605 ../clients/cli/connections.c:7562
+#: ../clients/cli/connections.c:6047 ../clients/cli/connections.c:6184
+#: ../clients/cli/connections.c:6610 ../clients/cli/connections.c:7569
#, c-format
msgid "Unknown command: '%s'\n"
msgstr ""
@@ -1223,7 +1584,7 @@ msgstr ""
#. TRANSLATORS: do not translate command names and keywords before ::
#. * However, you should translate terms enclosed in <>.
#.
-#: ../clients/cli/connections.c:6098
+#: ../clients/cli/connections.c:6113
#, c-format
msgid ""
"---[ Property menu ]---\n"
@@ -1239,7 +1600,7 @@ msgid ""
"quit :: exit nmcli\n"
msgstr ""
-#: ../clients/cli/connections.c:6123
+#: ../clients/cli/connections.c:6138
#, c-format
msgid ""
"set [<value>] :: set new value\n"
@@ -1247,7 +1608,7 @@ msgid ""
"This command sets provided <value> to this property\n"
msgstr ""
-#: ../clients/cli/connections.c:6127
+#: ../clients/cli/connections.c:6142
#, c-format
msgid ""
"add [<value>] :: append new value to the property\n"
@@ -1257,7 +1618,7 @@ msgid ""
"(same as 'set').\n"
msgstr ""
-#: ../clients/cli/connections.c:6133
+#: ../clients/cli/connections.c:6148
#, c-format
msgid ""
"change :: change current value\n"
@@ -1265,7 +1626,7 @@ msgid ""
"Displays current value and allows editing it.\n"
msgstr ""
-#: ../clients/cli/connections.c:6137
+#: ../clients/cli/connections.c:6152
#, c-format
msgid ""
"remove [<value>|<index>|<option name>] :: delete the value\n"
@@ -1285,7 +1646,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/connections.c:6148
+#: ../clients/cli/connections.c:6163
#, c-format
msgid ""
"describe :: describe property\n"
@@ -1294,7 +1655,7 @@ msgid ""
"see all NM settings and properties.\n"
msgstr ""
-#: ../clients/cli/connections.c:6153
+#: ../clients/cli/connections.c:6168
#, c-format
msgid ""
"print [property|setting|connection] :: print property (setting, connection) "
@@ -1304,101 +1665,101 @@ msgid ""
"the whole setting or connection.\n"
msgstr ""
-#: ../clients/cli/connections.c:6161
+#: ../clients/cli/connections.c:6176
#, c-format
msgid ""
"help/? [<command>] :: help for nmcli commands\n"
"\n"
msgstr ""
-#: ../clients/cli/connections.c:6255
+#: ../clients/cli/connections.c:6269
#, c-format
msgid "Error: Connection activation failed.\n"
msgstr ""
-#: ../clients/cli/connections.c:6350
+#: ../clients/cli/connections.c:6355
#, c-format
msgid "Error: setting '%s' is mandatory and cannot be removed.\n"
msgstr ""
#. TRANSLATORS: status line in nmcli connection editor
-#: ../clients/cli/connections.c:6368
+#: ../clients/cli/connections.c:6373
#, c-format
msgid "[ Type: %s | Name: %s | UUID: %s | Dirty: %s | Temp: %s ]\n"
msgstr ""
-#: ../clients/cli/connections.c:6404
+#: ../clients/cli/connections.c:6409
#, c-format
msgid "The connection is not saved. Do you really want to quit? %s"
msgstr ""
-#: ../clients/cli/connections.c:6453
+#: ../clients/cli/connections.c:6458
#, c-format
msgid ""
"The connection profile has been removed from another client. You may type "
"'save' in the main menu to restore it.\n"
msgstr ""
-#: ../clients/cli/connections.c:6483 ../clients/cli/connections.c:6897
-#: ../clients/cli/connections.c:6955
+#: ../clients/cli/connections.c:6488 ../clients/cli/connections.c:6906
+#: ../clients/cli/connections.c:6968
#, c-format
msgid "Allowed values for '%s' property: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:6486 ../clients/cli/connections.c:6900
-#: ../clients/cli/connections.c:6958
+#: ../clients/cli/connections.c:6491 ../clients/cli/connections.c:6909
+#: ../clients/cli/connections.c:6971
#, c-format
msgid "Enter '%s' value: "
msgstr ""
-#: ../clients/cli/connections.c:6501 ../clients/cli/connections.c:6523
-#: ../clients/cli/connections.c:6904 ../clients/cli/connections.c:6963
+#: ../clients/cli/connections.c:6506 ../clients/cli/connections.c:6528
+#: ../clients/cli/connections.c:6913 ../clients/cli/connections.c:6976
#, c-format
msgid "Error: failed to set '%s' property: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:6517
+#: ../clients/cli/connections.c:6522
#, c-format
msgid "Edit '%s' value: "
msgstr ""
-#: ../clients/cli/connections.c:6546 ../clients/cli/settings.c:388
+#: ../clients/cli/connections.c:6551 ../clients/cli/settings.c:388
#, c-format
msgid "Error: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:6552 ../clients/cli/connections.c:7058
-#: ../clients/cli/connections.c:7109
+#: ../clients/cli/connections.c:6557 ../clients/cli/connections.c:7072
+#: ../clients/cli/connections.c:7121
#, c-format
msgid "Error: failed to remove value of '%s': %s\n"
msgstr ""
-#: ../clients/cli/connections.c:6573
+#: ../clients/cli/connections.c:6578
#, c-format
msgid "Unknown command argument: '%s'\n"
msgstr ""
-#: ../clients/cli/connections.c:6676
+#: ../clients/cli/connections.c:6681
#, c-format
msgid "Available settings: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:6688
+#: ../clients/cli/connections.c:6693
#, c-format
msgid "Error: invalid setting name; %s\n"
msgstr ""
-#: ../clients/cli/connections.c:6705
+#: ../clients/cli/connections.c:6710
#, c-format
msgid "Available properties: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:6713
+#: ../clients/cli/connections.c:6718
#, c-format
msgid "Error: property %s\n"
msgstr ""
-#: ../clients/cli/connections.c:6754
+#: ../clients/cli/connections.c:6759
#, c-format
msgid ""
"Saving the connection with 'autoconnect=yes'. That might result in an "
@@ -1406,418 +1767,417 @@ msgid ""
"Do you still want to save? %s"
msgstr ""
-#: ../clients/cli/connections.c:6837
+#: ../clients/cli/connections.c:6845
#, c-format
msgid "You may edit the following settings: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:6867
+#: ../clients/cli/connections.c:6873
#, c-format
msgid ""
"The connection profile has been removed from another client. You may type "
"'save' to restore it.\n"
msgstr ""
-#: ../clients/cli/connections.c:6908 ../clients/cli/connections.c:7153
-#: ../clients/cli/connections.c:7185
+#: ../clients/cli/connections.c:6917 ../clients/cli/connections.c:7166
#, c-format
msgid "Error: no setting selected; valid are [%s]\n"
msgstr ""
-#: ../clients/cli/connections.c:6909
+#: ../clients/cli/connections.c:6918
#, c-format
msgid "use 'goto <setting>' first, or 'set <setting>.<property>'\n"
msgstr ""
-#: ../clients/cli/connections.c:6924 ../clients/cli/connections.c:7085
-#: ../clients/cli/connections.c:7175
+#: ../clients/cli/connections.c:6932 ../clients/cli/connections.c:7099
+#: ../clients/cli/connections.c:7188
#, c-format
msgid "Error: invalid setting argument '%s'; valid are [%s]\n"
msgstr ""
-#: ../clients/cli/connections.c:6933
+#: ../clients/cli/connections.c:6942
#, c-format
msgid "Error: missing setting for '%s' property\n"
msgstr ""
-#: ../clients/cli/connections.c:6940
+#: ../clients/cli/connections.c:6949
#, c-format
msgid "Error: invalid property: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:6994
+#: ../clients/cli/connections.c:7008
#, c-format
msgid "Error: unknown setting '%s'\n"
msgstr ""
-#: ../clients/cli/connections.c:7019
+#: ../clients/cli/connections.c:7033
#, c-format
msgid "You may edit the following properties: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7063
+#: ../clients/cli/connections.c:7077
#, c-format
msgid "Error: no argument given; valid are [%s]\n"
msgstr ""
-#: ../clients/cli/connections.c:7082
+#: ../clients/cli/connections.c:7096
#, c-format
msgid "Setting '%s' is not present in the connection.\n"
msgstr ""
-#: ../clients/cli/connections.c:7130
+#: ../clients/cli/connections.c:7142
#, c-format
msgid "Error: %s properties, nor it is a setting name.\n"
msgstr ""
-#: ../clients/cli/connections.c:7154 ../clients/cli/connections.c:7186
+#: ../clients/cli/connections.c:7167
#, c-format
msgid "use 'goto <setting>' first, or 'describe <setting>.<property>'\n"
msgstr ""
-#: ../clients/cli/connections.c:7209
+#: ../clients/cli/connections.c:7216
#, c-format
msgid "Error: invalid property: %s, neither a valid setting name.\n"
msgstr ""
-#: ../clients/cli/connections.c:7239
+#: ../clients/cli/connections.c:7249
#, c-format
msgid "Error: unknown setting: '%s'\n"
msgstr ""
-#: ../clients/cli/connections.c:7244
+#: ../clients/cli/connections.c:7254
#, c-format
msgid "Error: '%s' setting not present in the connection\n"
msgstr ""
-#: ../clients/cli/connections.c:7275
+#: ../clients/cli/connections.c:7282
#, c-format
msgid "Error: invalid property: %s%s\n"
msgstr ""
-#: ../clients/cli/connections.c:7277
+#: ../clients/cli/connections.c:7284
msgid ", neither a valid setting name"
msgstr ""
-#: ../clients/cli/connections.c:7293
+#: ../clients/cli/connections.c:7301
#, c-format
msgid "Invalid verify option: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7301
+#: ../clients/cli/connections.c:7309
#, c-format
msgid "Verify setting '%s': %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7316
+#: ../clients/cli/connections.c:7324
#, fuzzy, c-format
msgid "Verify connection: %s\n"
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:7319
+#: ../clients/cli/connections.c:7327
#, c-format
msgid "The error cannot be fixed automatically.\n"
msgstr ""
-#: ../clients/cli/connections.c:7336
+#: ../clients/cli/connections.c:7344
#, c-format
msgid "Error: invalid argument '%s'\n"
msgstr ""
-#: ../clients/cli/connections.c:7368
+#: ../clients/cli/connections.c:7376
#, c-format
msgid "Error: Failed to save '%s' (%s) connection: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7375
+#: ../clients/cli/connections.c:7383
#, c-format
msgid "Connection '%s' (%s) successfully saved.\n"
msgstr ""
-#: ../clients/cli/connections.c:7376
+#: ../clients/cli/connections.c:7384
#, c-format
msgid "Connection '%s' (%s) successfully updated.\n"
msgstr ""
-#: ../clients/cli/connections.c:7408
+#: ../clients/cli/connections.c:7416
#, c-format
msgid "Error: connection verification failed: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7409
+#: ../clients/cli/connections.c:7417
msgid "(unknown error)"
msgstr ""
-#: ../clients/cli/connections.c:7410
+#: ../clients/cli/connections.c:7418
#, c-format
msgid "You may try running 'verify fix' to fix errors.\n"
msgstr ""
-#: ../clients/cli/connections.c:7432
+#: ../clients/cli/connections.c:7440
#, c-format
msgid "Error: connection is not saved. Type 'save' first.\n"
msgstr ""
-#: ../clients/cli/connections.c:7436
+#: ../clients/cli/connections.c:7444
#, c-format
msgid "Error: connection is not valid: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7446
+#: ../clients/cli/connections.c:7454
#, fuzzy, c-format
msgid "Error: Cannot activate connection: %s.\n"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:7455
+#: ../clients/cli/connections.c:7463
#, c-format
msgid "Error: Failed to activate '%s' (%s) connection: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7461
+#: ../clients/cli/connections.c:7469
msgid "Monitoring connection activation (press any key to continue)\n"
msgstr ""
-#: ../clients/cli/connections.c:7497
+#: ../clients/cli/connections.c:7505
#, c-format
msgid "Error: status-line: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7505
+#: ../clients/cli/connections.c:7513
#, c-format
msgid "Error: save-confirmation: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7513
+#: ../clients/cli/connections.c:7521
#, c-format
msgid "Error: show-secrets: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7522
+#: ../clients/cli/connections.c:7530
#, c-format
msgid "Error: bad color: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7537
+#: ../clients/cli/connections.c:7544
#, c-format
msgid "Current nmcli configuration:\n"
msgstr ""
-#: ../clients/cli/connections.c:7547
+#: ../clients/cli/connections.c:7554
#, c-format
msgid "Invalid configuration option '%s'; allowed [%s]\n"
msgstr ""
-#: ../clients/cli/connections.c:7765
+#: ../clients/cli/connections.c:7780
#, c-format
msgid "Error: only one of 'id', uuid, or 'path' can be provided."
msgstr ""
-#: ../clients/cli/connections.c:7780 ../clients/cli/connections.c:7949
+#: ../clients/cli/connections.c:7795 ../clients/cli/connections.c:7964
#, fuzzy, c-format
msgid "Error: Unknown connection '%s'."
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:7798
+#: ../clients/cli/connections.c:7813
#, c-format
msgid "Warning: editing existing connection '%s'; 'type' argument is ignored\n"
msgstr ""
-#: ../clients/cli/connections.c:7801
+#: ../clients/cli/connections.c:7816
#, c-format
msgid ""
"Warning: editing existing connection '%s'; 'con-name' argument is ignored\n"
msgstr ""
-#: ../clients/cli/connections.c:7823
+#: ../clients/cli/connections.c:7838
#, c-format
msgid "Valid connection types: %s\n"
msgstr ""
-#: ../clients/cli/connections.c:7825
+#: ../clients/cli/connections.c:7840
#, fuzzy, c-format
msgid "Error: invalid connection type; %s\n"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:7865
+#: ../clients/cli/connections.c:7880
#, c-format
msgid "===| nmcli interactive connection editor |==="
msgstr ""
-#: ../clients/cli/connections.c:7868
+#: ../clients/cli/connections.c:7883
#, fuzzy, c-format
msgid "Editing existing '%s' connection: '%s'"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:7870
+#: ../clients/cli/connections.c:7885
#, fuzzy, c-format
msgid "Adding a new '%s' connection"
msgstr "أضف اتصال VPN جديد"
-#: ../clients/cli/connections.c:7872
+#: ../clients/cli/connections.c:7887
#, c-format
msgid "Type 'help' or '?' for available commands."
msgstr ""
-#: ../clients/cli/connections.c:7874
+#: ../clients/cli/connections.c:7889
#, c-format
msgid "Type 'describe [<setting>.<prop>]' for detailed property description."
msgstr ""
-#: ../clients/cli/connections.c:7909
+#: ../clients/cli/connections.c:7924
#, fuzzy, c-format
msgid "Error: Failed to modify connection '%s': %s"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:7916
+#: ../clients/cli/connections.c:7931
#, c-format
msgid "Connection '%s' (%s) successfully modified.\n"
msgstr ""
-#: ../clients/cli/connections.c:7997
+#: ../clients/cli/connections.c:8012
#, c-format
msgid "%s (%s) cloned as %s (%s).\n"
msgstr ""
-#: ../clients/cli/connections.c:8063
+#: ../clients/cli/connections.c:8078
#, fuzzy
msgid "New connection name: "
msgstr "إتّصالات VPN"
-#: ../clients/cli/connections.c:8065
+#: ../clients/cli/connections.c:8080
#, c-format
msgid "Error: <new name> argument is missing."
msgstr ""
-#: ../clients/cli/connections.c:8071 ../clients/cli/connections.c:8573
+#: ../clients/cli/connections.c:8086 ../clients/cli/connections.c:8588
#, c-format
msgid "Error: unknown extra argument: '%s'."
msgstr ""
-#: ../clients/cli/connections.c:8122
+#: ../clients/cli/connections.c:8137
#, c-format
msgid "Error: not all connections deleted."
msgstr ""
-#: ../clients/cli/connections.c:8123
+#: ../clients/cli/connections.c:8138
#, c-format
msgid "Error: Connection deletion failed: %s"
msgstr ""
-#: ../clients/cli/connections.c:8184 ../clients/cli/connections.c:8309
+#: ../clients/cli/connections.c:8199 ../clients/cli/connections.c:8324
#, c-format
msgid "Error: %s.\n"
msgstr ""
-#: ../clients/cli/connections.c:8185 ../clients/cli/connections.c:8310
+#: ../clients/cli/connections.c:8200 ../clients/cli/connections.c:8325
#, c-format
msgid "Error: not all connections found."
msgstr ""
#. truncate trailing ", "
-#: ../clients/cli/connections.c:8228
+#: ../clients/cli/connections.c:8243
#, c-format
msgid "Error: cannot delete unknown connection(s): %s."
msgstr ""
-#: ../clients/cli/connections.c:8240
+#: ../clients/cli/connections.c:8255
#, c-format
msgid "%s: connection profile changed\n"
msgstr ""
-#: ../clients/cli/connections.c:8266
+#: ../clients/cli/connections.c:8281
#, c-format
msgid "%s: connection profile created\n"
msgstr ""
-#: ../clients/cli/connections.c:8275
+#: ../clients/cli/connections.c:8290
#, c-format
msgid "%s: connection profile removed\n"
msgstr ""
-#: ../clients/cli/connections.c:8338
+#: ../clients/cli/connections.c:8353
#, fuzzy, c-format
msgid "Error: failed to reload connections: %s."
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:8371
+#: ../clients/cli/connections.c:8386
#, fuzzy, c-format
msgid "Error: failed to load connection: %s."
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:8379
+#: ../clients/cli/connections.c:8394
#, c-format
msgid "Could not load file '%s'\n"
msgstr ""
-#: ../clients/cli/connections.c:8386
+#: ../clients/cli/connections.c:8401
msgid "File to import: "
msgstr ""
-#: ../clients/cli/connections.c:8417
+#: ../clients/cli/connections.c:8432
#, c-format
msgid "Error: No arguments provided."
msgstr ""
-#: ../clients/cli/connections.c:8442
+#: ../clients/cli/connections.c:8457
#, c-format
msgid "Warning: 'type' already specified, ignoring extra one.\n"
msgstr ""
-#: ../clients/cli/connections.c:8457
+#: ../clients/cli/connections.c:8472
#, c-format
msgid "Warning: 'file' already specified, ignoring extra one.\n"
msgstr ""
-#: ../clients/cli/connections.c:8459
+#: ../clients/cli/connections.c:8474
#, c-format
msgid "Unknown parameter: %s"
msgstr ""
-#: ../clients/cli/connections.c:8471
+#: ../clients/cli/connections.c:8486
#, c-format
msgid "Error: 'type' argument is required."
msgstr ""
-#: ../clients/cli/connections.c:8476
+#: ../clients/cli/connections.c:8491
#, c-format
msgid "Error: 'file' argument is required."
msgstr ""
-#: ../clients/cli/connections.c:8483
+#: ../clients/cli/connections.c:8498
#, fuzzy, c-format
msgid "Error: failed to find VPN plugin for %s."
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:8491 ../clients/cli/connections.c:8592
+#: ../clients/cli/connections.c:8506 ../clients/cli/connections.c:8607
#, c-format
msgid "Error: failed to load VPN plugin: %s."
msgstr ""
-#: ../clients/cli/connections.c:8499
+#: ../clients/cli/connections.c:8514
#, c-format
msgid "Error: failed to import '%s': %s."
msgstr ""
-#: ../clients/cli/connections.c:8579
+#: ../clients/cli/connections.c:8594
msgid "Output file name: "
msgstr ""
-#: ../clients/cli/connections.c:8583
+#: ../clients/cli/connections.c:8598
#, fuzzy, c-format
msgid "Error: the connection is not VPN."
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/connections.c:8604
+#: ../clients/cli/connections.c:8619
#, c-format
msgid "Error: failed to create temporary file %s."
msgstr ""
-#: ../clients/cli/connections.c:8613
+#: ../clients/cli/connections.c:8628
#, c-format
msgid "Error: failed to export '%s': %s."
msgstr ""
-#: ../clients/cli/connections.c:8624
+#: ../clients/cli/connections.c:8639
#, c-format
msgid "Error: failed to read temporary file '%s': %s."
msgstr ""
@@ -2071,432 +2431,432 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/devices.c:600
+#: ../clients/cli/devices.c:543
#, c-format
msgid "Error: No interface specified."
msgstr ""
-#: ../clients/cli/devices.c:623
+#: ../clients/cli/devices.c:566
#, c-format
msgid "Warning: argument '%s' is duplicated.\n"
msgstr ""
-#: ../clients/cli/devices.c:626
+#: ../clients/cli/devices.c:569
#, c-format
msgid "Error: Device '%s' not found.\n"
msgstr ""
-#: ../clients/cli/devices.c:627
+#: ../clients/cli/devices.c:570
#, c-format
msgid "Error: not all devices found."
msgstr ""
-#: ../clients/cli/devices.c:656
+#: ../clients/cli/devices.c:599
msgid "No interface specified"
msgstr ""
-#: ../clients/cli/devices.c:675
+#: ../clients/cli/devices.c:618
#, c-format
msgid "Device '%s' not found"
msgstr ""
-#: ../clients/cli/devices.c:761 ../clients/cli/devices.c:913
+#: ../clients/cli/devices.c:704 ../clients/cli/devices.c:856
#, fuzzy
msgid "(none)"
msgstr "بلا"
-#: ../clients/cli/devices.c:832
+#: ../clients/cli/devices.c:775
#, c-format
msgid "%u MHz"
msgstr ""
-#: ../clients/cli/devices.c:833
+#: ../clients/cli/devices.c:776
#, c-format
msgid "%u Mbit/s"
msgstr ""
-#: ../clients/cli/devices.c:844
+#: ../clients/cli/devices.c:787
msgid "WEP"
msgstr ""
-#: ../clients/cli/devices.c:848
+#: ../clients/cli/devices.c:791
msgid "WPA1"
msgstr ""
-#: ../clients/cli/devices.c:852
+#: ../clients/cli/devices.c:795
#, fuzzy
msgid "WPA2"
msgstr "WPA2 TKIP"
-#: ../clients/cli/devices.c:857
+#: ../clients/cli/devices.c:800
msgid "802.1X"
msgstr ""
-#: ../clients/cli/devices.c:872
+#: ../clients/cli/devices.c:815
msgid "Ad-Hoc"
msgstr ""
-#: ../clients/cli/devices.c:873
+#: ../clients/cli/devices.c:816
msgid "Infra"
msgstr ""
-#: ../clients/cli/devices.c:874
+#: ../clients/cli/devices.c:817
msgid "N/A"
msgstr ""
-#: ../clients/cli/devices.c:1088
+#: ../clients/cli/devices.c:1031
msgid "Device details"
msgstr ""
-#: ../clients/cli/devices.c:1099
+#: ../clients/cli/devices.c:1042
#, c-format
msgid "Error: 'device show': %s"
msgstr ""
-#: ../clients/cli/devices.c:1164 ../clients/cli/devices.c:1167
+#: ../clients/cli/devices.c:1107 ../clients/cli/devices.c:1110
msgid "(unknown)"
msgstr ""
-#: ../clients/cli/devices.c:1210
+#: ../clients/cli/devices.c:1153
#, c-format
msgid "%u Mb/s"
msgstr ""
-#: ../clients/cli/devices.c:1313
+#: ../clients/cli/devices.c:1256
#, fuzzy
msgid "on"
msgstr "بلا"
-#: ../clients/cli/devices.c:1313
+#: ../clients/cli/devices.c:1256
msgid "off"
msgstr ""
-#: ../clients/cli/devices.c:1547
+#: ../clients/cli/devices.c:1490
#, c-format
msgid "Error: 'device status': %s"
msgstr ""
-#: ../clients/cli/devices.c:1561
+#: ../clients/cli/devices.c:1504
msgid "Status of devices"
msgstr ""
-#: ../clients/cli/devices.c:1587 ../clients/cli/devices.c:2042
-#: ../clients/cli/devices.c:3820
+#: ../clients/cli/devices.c:1530 ../clients/cli/devices.c:1985
+#: ../clients/cli/devices.c:3761
#, c-format
msgid "Error: invalid extra argument '%s'."
msgstr ""
-#: ../clients/cli/devices.c:1623 ../clients/cli/general.c:555
+#: ../clients/cli/devices.c:1566 ../clients/cli/general.c:553
#, c-format
msgid "Error: Timeout %d sec expired."
msgstr ""
-#: ../clients/cli/devices.c:1672
+#: ../clients/cli/devices.c:1615
#, c-format
msgid "Device '%s' successfully activated with '%s'.\n"
msgstr ""
-#: ../clients/cli/devices.c:1678
+#: ../clients/cli/devices.c:1621
#, c-format
msgid "Error: Connection activation failed: (%d) %s.\n"
msgstr ""
-#: ../clients/cli/devices.c:1714
+#: ../clients/cli/devices.c:1657
#, c-format
msgid "Error: Failed to setup a Wi-Fi hotspot: %s"
msgstr ""
-#: ../clients/cli/devices.c:1717
+#: ../clients/cli/devices.c:1660
#, c-format
msgid "Error: Failed to add/activate new connection: %s"
msgstr ""
-#: ../clients/cli/devices.c:1727
+#: ../clients/cli/devices.c:1670
#, c-format
msgid "Error: Failed to setup a Wi-Fi hotspot"
msgstr ""
-#: ../clients/cli/devices.c:1729
+#: ../clients/cli/devices.c:1672
#, c-format
msgid "Error: Failed to add/activate new connection: Unknown error"
msgstr ""
-#: ../clients/cli/devices.c:1741
+#: ../clients/cli/devices.c:1684
#, c-format
msgid "Connection with UUID '%s' created and activated on device '%s'\n"
msgstr ""
-#: ../clients/cli/devices.c:1744
+#: ../clients/cli/devices.c:1687
#, c-format
msgid "Hotspot '%s' activated on device '%s'\n"
msgstr ""
-#: ../clients/cli/devices.c:1808
+#: ../clients/cli/devices.c:1751
#, c-format
msgid "Error: Device activation failed: %s"
msgstr ""
-#: ../clients/cli/devices.c:1817
+#: ../clients/cli/devices.c:1760
#, c-format
msgid "Error: Device activation failed: device was disconnected"
msgstr ""
-#: ../clients/cli/devices.c:1832
+#: ../clients/cli/devices.c:1775
#, c-format
msgid "Device '%s' has been connected.\n"
msgstr ""
-#: ../clients/cli/devices.c:1873
+#: ../clients/cli/devices.c:1816
#, c-format
msgid "Error: extra argument not allowed: '%s'."
msgstr ""
-#: ../clients/cli/devices.c:1945 ../clients/cli/devices.c:1960
-#: ../clients/cli/devices.c:2190
+#: ../clients/cli/devices.c:1888 ../clients/cli/devices.c:1903
+#: ../clients/cli/devices.c:2133
#, c-format
msgid "Device '%s' successfully disconnected.\n"
msgstr ""
-#: ../clients/cli/devices.c:1948
+#: ../clients/cli/devices.c:1891
#, c-format
msgid "Device '%s' successfully removed.\n"
msgstr ""
-#: ../clients/cli/devices.c:2007 ../clients/cli/devices.c:2077
+#: ../clients/cli/devices.c:1950 ../clients/cli/devices.c:2020
#, c-format
msgid "Error: Reapplying connection to device '%s' (%s) failed: %s"
msgstr ""
-#: ../clients/cli/devices.c:2017 ../clients/cli/devices.c:2086
+#: ../clients/cli/devices.c:1960 ../clients/cli/devices.c:2029
#, c-format
msgid "Connection successfully reapplied to device '%s'.\n"
msgstr ""
-#: ../clients/cli/devices.c:2111
+#: ../clients/cli/devices.c:2054
#, c-format
msgid "Error: Reading applied connection from device '%s' (%s) failed: %s"
msgstr ""
-#: ../clients/cli/devices.c:2175
+#: ../clients/cli/devices.c:2118
#, c-format
msgid "Error: not all devices disconnected."
msgstr ""
-#: ../clients/cli/devices.c:2176
+#: ../clients/cli/devices.c:2119
#, c-format
msgid "Error: Device '%s' (%s) disconnecting failed: %s\n"
msgstr ""
-#: ../clients/cli/devices.c:2254
+#: ../clients/cli/devices.c:2197
#, c-format
msgid "Error: not all devices deleted."
msgstr ""
-#: ../clients/cli/devices.c:2255
+#: ../clients/cli/devices.c:2198
#, c-format
msgid "Error: Device '%s' (%s) deletion failed: %s\n"
msgstr ""
-#: ../clients/cli/devices.c:2339
+#: ../clients/cli/devices.c:2282
#, c-format
msgid "Error: No property specified."
msgstr ""
-#: ../clients/cli/devices.c:2354 ../clients/cli/devices.c:2371
-#: ../clients/cli/general.c:724 ../clients/cli/general.c:736
+#: ../clients/cli/devices.c:2297 ../clients/cli/devices.c:2314
+#: ../clients/cli/general.c:722 ../clients/cli/general.c:734
#, c-format
msgid "Error: '%s' argument is missing."
msgstr ""
-#: ../clients/cli/devices.c:2360
+#: ../clients/cli/devices.c:2303
#, c-format
msgid "Error: 'managed': %s."
msgstr ""
-#: ../clients/cli/devices.c:2377
+#: ../clients/cli/devices.c:2320
#, c-format
msgid "Error: 'autoconnect': %s."
msgstr ""
-#: ../clients/cli/devices.c:2385 ../clients/cli/general.c:750
+#: ../clients/cli/devices.c:2328 ../clients/cli/general.c:748
#, c-format
msgid "Error: property '%s' is not known."
msgstr ""
-#: ../clients/cli/devices.c:2435
+#: ../clients/cli/devices.c:2378
#, fuzzy, c-format
msgid "%s: using connection '%s'\n"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/cli/devices.c:2461
+#: ../clients/cli/devices.c:2404
#, c-format
msgid "%s: device created\n"
msgstr ""
-#: ../clients/cli/devices.c:2468
+#: ../clients/cli/devices.c:2411
#, c-format
msgid "%s: device removed\n"
msgstr ""
-#: ../clients/cli/devices.c:2666
+#: ../clients/cli/devices.c:2609
msgid "Wi-Fi scan list"
msgstr ""
-#: ../clients/cli/devices.c:2715
+#: ../clients/cli/devices.c:2657
#, c-format
msgid "Error: 'device wifi': %s"
msgstr ""
-#: ../clients/cli/devices.c:2727
+#: ../clients/cli/devices.c:2669
#, c-format
msgid "Error: Device '%s' not found."
msgstr ""
-#: ../clients/cli/devices.c:2748 ../clients/cli/devices.c:2834
+#: ../clients/cli/devices.c:2690 ../clients/cli/devices.c:2776
#, c-format
msgid "Error: Access point with bssid '%s' not found."
msgstr ""
-#: ../clients/cli/devices.c:2776
+#: ../clients/cli/devices.c:2718
#, c-format
msgid ""
"Error: Device '%s' was not recognized as a Wi-Fi device, check "
"NetworkManager Wi-Fi plugin."
msgstr ""
-#: ../clients/cli/devices.c:2780 ../clients/cli/devices.c:3063
-#: ../clients/cli/devices.c:3498 ../clients/cli/devices.c:3657
+#: ../clients/cli/devices.c:2722 ../clients/cli/devices.c:3004
+#: ../clients/cli/devices.c:3439 ../clients/cli/devices.c:3598
#, c-format
msgid "Error: Device '%s' is not a Wi-Fi device."
msgstr ""
-#: ../clients/cli/devices.c:2912
+#: ../clients/cli/devices.c:2854
msgid "SSID or BSSID: "
msgstr ""
-#: ../clients/cli/devices.c:2917
+#: ../clients/cli/devices.c:2859
#, c-format
msgid "Error: SSID or BSSID are missing."
msgstr ""
-#: ../clients/cli/devices.c:2954
+#: ../clients/cli/devices.c:2895
#, c-format
msgid "Error: bssid argument value '%s' is not a valid BSSID."
msgstr ""
-#: ../clients/cli/devices.c:2984
+#: ../clients/cli/devices.c:2925
#, c-format
msgid ""
"Error: wep-key-type argument value '%s' is invalid, use 'key' or 'phrase'."
msgstr ""
-#: ../clients/cli/devices.c:3011 ../clients/cli/devices.c:3029
+#: ../clients/cli/devices.c:2952 ../clients/cli/devices.c:2970
#, c-format
msgid "Error: %s: %s."
msgstr ""
-#: ../clients/cli/devices.c:3046
+#: ../clients/cli/devices.c:2987
#, c-format
msgid "Error: BSSID to connect to (%s) differs from bssid argument (%s)."
msgstr ""
-#: ../clients/cli/devices.c:3052
+#: ../clients/cli/devices.c:2993
#, c-format
msgid "Error: Parameter '%s' is neither SSID nor BSSID."
msgstr ""
-#: ../clients/cli/devices.c:3065 ../clients/cli/devices.c:3500
-#: ../clients/cli/devices.c:3659
+#: ../clients/cli/devices.c:3006 ../clients/cli/devices.c:3441
+#: ../clients/cli/devices.c:3600
#, c-format
msgid "Error: No Wi-Fi device found."
msgstr ""
-#: ../clients/cli/devices.c:3085
+#: ../clients/cli/devices.c:3026
#, c-format
msgid "Error: Failed to scan hidden SSID: %s."
msgstr ""
-#: ../clients/cli/devices.c:3112
+#: ../clients/cli/devices.c:3053
#, c-format
msgid "Error: No network with SSID '%s' found."
msgstr ""
-#: ../clients/cli/devices.c:3114
+#: ../clients/cli/devices.c:3055
#, c-format
msgid "Error: No access point with BSSID '%s' found."
msgstr ""
-#: ../clients/cli/devices.c:3156
+#: ../clients/cli/devices.c:3097
#, c-format
msgid ""
"Warning: '%s' should be SSID for hidden APs; but it looks like a BSSID.\n"
msgstr ""
-#: ../clients/cli/devices.c:3170
+#: ../clients/cli/devices.c:3111
msgid "Password: "
msgstr ""
-#: ../clients/cli/devices.c:3319
+#: ../clients/cli/devices.c:3260
#, c-format
msgid "'%s' is not valid WPA PSK"
msgstr ""
-#: ../clients/cli/devices.c:3336
+#: ../clients/cli/devices.c:3277
#, c-format
msgid "'%s' is not valid WEP key (it should be 5 or 13 ASCII chars)"
msgstr ""
-#: ../clients/cli/devices.c:3352
+#: ../clients/cli/devices.c:3293
#, c-format
msgid "Hotspot password: %s\n"
msgstr ""
-#: ../clients/cli/devices.c:3423
+#: ../clients/cli/devices.c:3364
#, c-format
msgid "Error: ssid is too long."
msgstr ""
-#: ../clients/cli/devices.c:3437
+#: ../clients/cli/devices.c:3378
#, c-format
msgid "Error: band argument value '%s' is invalid; use 'a' or 'bg'."
msgstr ""
-#: ../clients/cli/devices.c:3462
+#: ../clients/cli/devices.c:3403
#, c-format
msgid "Error: Unknown parameter %s."
msgstr ""
-#: ../clients/cli/devices.c:3482
+#: ../clients/cli/devices.c:3423
#, c-format
msgid "Error: channel requires band too."
msgstr ""
-#: ../clients/cli/devices.c:3487
+#: ../clients/cli/devices.c:3428
#, c-format
msgid "Error: channel '%s' not valid for band '%s'."
msgstr ""
-#: ../clients/cli/devices.c:3511
+#: ../clients/cli/devices.c:3452
#, c-format
msgid "Error: Device '%s' supports neither AP nor Ad-Hoc mode."
msgstr ""
-#: ../clients/cli/devices.c:3545
+#: ../clients/cli/devices.c:3486
#, c-format
msgid "Error: Invalid 'password': %s."
msgstr ""
-#: ../clients/cli/devices.c:3620
+#: ../clients/cli/devices.c:3561
#, c-format
msgid "Error: '%s' cannot repeat."
msgstr ""
#. Main header name
-#: ../clients/cli/devices.c:3726
+#: ../clients/cli/devices.c:3667
msgid "Device LLDP neighbors"
msgstr ""
-#: ../clients/cli/devices.c:3836
+#: ../clients/cli/devices.c:3777
#, c-format
msgid "Error: 'device lldp list': %s"
msgstr ""
@@ -2518,19 +2878,11 @@ msgstr ""
msgid "connected (site only)"
msgstr ""
-#: ../clients/cli/general.c:46 ../clients/common/nm-client-utils.c:241
-msgid "connected"
-msgstr ""
-
#: ../clients/cli/general.c:47
#, fuzzy
msgid "disconnecting"
msgstr "حرر اتصال VPN"
-#: ../clients/cli/general.c:48 ../clients/common/nm-client-utils.c:227
-msgid "disconnected"
-msgstr ""
-
#: ../clients/cli/general.c:80
msgid "none"
msgstr "بلا"
@@ -2548,31 +2900,31 @@ msgstr ""
msgid "full"
msgstr ""
-#: ../clients/cli/general.c:154
+#: ../clients/cli/general.c:152
msgid "auth"
msgstr ""
-#: ../clients/cli/general.c:189
+#: ../clients/cli/general.c:187
msgid "running"
msgstr ""
-#: ../clients/cli/general.c:203
+#: ../clients/cli/general.c:201
msgid "starting"
msgstr ""
-#: ../clients/cli/general.c:203
+#: ../clients/cli/general.c:201
msgid "started"
msgstr ""
-#: ../clients/cli/general.c:237
+#: ../clients/cli/general.c:235
msgid "enabled"
msgstr ""
-#: ../clients/cli/general.c:237
+#: ../clients/cli/general.c:235
msgid "disabled"
msgstr ""
-#: ../clients/cli/general.c:369
+#: ../clients/cli/general.c:367
#, c-format
msgid ""
"Usage: nmcli general { COMMAND | help }\n"
@@ -2589,7 +2941,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:380
+#: ../clients/cli/general.c:378
#, c-format
msgid ""
"Usage: nmcli general status { help }\n"
@@ -2600,7 +2952,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:389
+#: ../clients/cli/general.c:387
#, c-format
msgid ""
"Usage: nmcli general hostname { ARGUMENTS | help }\n"
@@ -2614,7 +2966,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:401
+#: ../clients/cli/general.c:399
#, c-format
msgid ""
"Usage: nmcli general permissions { help }\n"
@@ -2623,7 +2975,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:409
+#: ../clients/cli/general.c:407
#, c-format
msgid ""
"Usage: nmcli general logging { ARGUMENTS | help }\n"
@@ -2639,7 +2991,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:422
+#: ../clients/cli/general.c:420
#, c-format
msgid ""
"Usage: nmcli networking { COMMAND | help }\n"
@@ -2654,7 +3006,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:432
+#: ../clients/cli/general.c:430
#, c-format
msgid ""
"Usage: nmcli networking on { help }\n"
@@ -2663,7 +3015,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:440
+#: ../clients/cli/general.c:438
#, c-format
msgid ""
"Usage: nmcli networking off { help }\n"
@@ -2672,7 +3024,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:448
+#: ../clients/cli/general.c:446
#, c-format
msgid ""
"Usage: nmcli networking connectivity { ARGUMENTS | help }\n"
@@ -2685,7 +3037,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:460
+#: ../clients/cli/general.c:458
#, c-format
msgid ""
"Usage: nmcli radio { COMMAND | help }\n"
@@ -2696,7 +3048,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:469
+#: ../clients/cli/general.c:467
#, c-format
msgid ""
"Usage: nmcli radio all { ARGUMENTS | help }\n"
@@ -2707,7 +3059,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:479
+#: ../clients/cli/general.c:477
#, c-format
msgid ""
"Usage: nmcli radio wifi { ARGUMENTS | help }\n"
@@ -2718,7 +3070,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:489
+#: ../clients/cli/general.c:487
#, c-format
msgid ""
"Usage: nmcli radio wwan { ARGUMENTS | help }\n"
@@ -2729,7 +3081,7 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:499
+#: ../clients/cli/general.c:497
#, c-format
msgid ""
"Usage: nmcli monitor\n"
@@ -2739,182 +3091,182 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/general.c:528
+#: ../clients/cli/general.c:526
msgid "NetworkManager status"
msgstr ""
-#: ../clients/cli/general.c:532
+#: ../clients/cli/general.c:530
#, c-format
msgid "Error: only these fields are allowed: %s"
msgstr ""
-#: ../clients/cli/general.c:582
+#: ../clients/cli/general.c:580
msgid "NetworkManager permissions"
msgstr ""
-#: ../clients/cli/general.c:586
+#: ../clients/cli/general.c:584
#, c-format
msgid "Error: 'general permissions': %s"
msgstr ""
-#: ../clients/cli/general.c:674
+#: ../clients/cli/general.c:672
msgid "NetworkManager logging"
msgstr ""
-#: ../clients/cli/general.c:678
+#: ../clients/cli/general.c:676
#, c-format
msgid "Error: 'general logging': %s"
msgstr ""
-#: ../clients/cli/general.c:760
+#: ../clients/cli/general.c:758
#, c-format
msgid "Error: failed to set logging: %s"
msgstr ""
-#: ../clients/cli/general.c:777
+#: ../clients/cli/general.c:775
#, c-format
msgid "Error: failed to set hostname: %s"
msgstr ""
-#: ../clients/cli/general.c:846
+#: ../clients/cli/general.c:844
#, c-format
msgid "Error: '--fields' value '%s' is not valid here (allowed field: %s)"
msgstr ""
-#: ../clients/cli/general.c:871
+#: ../clients/cli/general.c:869
#, c-format
msgid "Error: invalid '%s' argument: '%s' (use on/off)."
msgstr ""
#. no arguments -> get current state
-#: ../clients/cli/general.c:919 ../clients/cli/general.c:931
+#: ../clients/cli/general.c:917 ../clients/cli/general.c:929
msgid "Connectivity"
msgstr ""
-#: ../clients/cli/general.c:934
+#: ../clients/cli/general.c:932
#, c-format
msgid "Error: 'networking' command '%s' is not valid."
msgstr ""
-#: ../clients/cli/general.c:948
+#: ../clients/cli/general.c:946
msgid "Networking"
msgstr ""
#. no argument, show all radio switches
-#: ../clients/cli/general.c:983
+#: ../clients/cli/general.c:981
msgid "Radio switches"
msgstr ""
#. no argument, show current WiFi state
-#: ../clients/cli/general.c:1013
+#: ../clients/cli/general.c:1011
msgid "Wi-Fi radio switch"
msgstr ""
#. no argument, show current WWAN (mobile broadband) state
-#: ../clients/cli/general.c:1040
+#: ../clients/cli/general.c:1038
msgid "WWAN radio switch"
msgstr ""
-#: ../clients/cli/general.c:1089
+#: ../clients/cli/general.c:1087
msgid "NetworkManager has started"
msgstr ""
-#: ../clients/cli/general.c:1089
+#: ../clients/cli/general.c:1087
msgid "NetworkManager has stopped"
msgstr ""
-#: ../clients/cli/general.c:1100
+#: ../clients/cli/general.c:1098
#, c-format
msgid "Hostname set to '%s'\n"
msgstr ""
-#: ../clients/cli/general.c:1115
+#: ../clients/cli/general.c:1113
#, c-format
msgid "'%s' is now the primary connection\n"
msgstr ""
-#: ../clients/cli/general.c:1117
+#: ../clients/cli/general.c:1115
#, c-format
msgid "There's no primary connection\n"
msgstr ""
-#: ../clients/cli/general.c:1129
+#: ../clients/cli/general.c:1127
#, c-format
msgid "Connectivity is now '%s'\n"
msgstr ""
-#: ../clients/cli/general.c:1142
+#: ../clients/cli/general.c:1140
#, c-format
msgid "Networkmanager is now in the '%s' state\n"
msgstr ""
-#: ../clients/cli/general.c:1163
+#: ../clients/cli/general.c:1161
#, fuzzy
msgid "connection available"
msgstr "إتّصالات VPN"
-#: ../clients/cli/general.c:1165
+#: ../clients/cli/general.c:1163
#, fuzzy
msgid "connections available"
msgstr "إتّصالات VPN"
-#: ../clients/cli/general.c:1183
+#: ../clients/cli/general.c:1181
#, fuzzy
msgid "autoconnect"
msgstr "إتّصالات VPN"
-#: ../clients/cli/general.c:1185
+#: ../clients/cli/general.c:1183
msgid "fw missing"
msgstr ""
-#: ../clients/cli/general.c:1190
+#: ../clients/cli/general.c:1188
msgid "plugin missing"
msgstr ""
-#: ../clients/cli/general.c:1195
+#: ../clients/cli/general.c:1193
msgid "sw"
msgstr ""
-#: ../clients/cli/general.c:1197
+#: ../clients/cli/general.c:1195
msgid "hw"
msgstr ""
-#: ../clients/cli/general.c:1202
+#: ../clients/cli/general.c:1200
msgid "iface"
msgstr ""
-#: ../clients/cli/general.c:1205
+#: ../clients/cli/general.c:1203
#, fuzzy
msgid "port"
msgstr "_صدِّر"
-#: ../clients/cli/general.c:1208
+#: ../clients/cli/general.c:1206
msgid "mtu"
msgstr ""
-#: ../clients/cli/general.c:1225
+#: ../clients/cli/general.c:1223
msgid "master"
msgstr ""
-#: ../clients/cli/general.c:1229 ../clients/tui/nm-editor-utils.c:241
-#: ../clients/tui/nmt-connect-connection-list.c:410
+#: ../clients/cli/general.c:1227 ../clients/tui/nm-editor-utils.c:241
+#: ../clients/tui/nmt-connect-connection-list.c:406
msgid "VPN"
msgstr ""
-#: ../clients/cli/general.c:1231
+#: ../clients/cli/general.c:1229
msgid "ip4 default"
msgstr ""
-#: ../clients/cli/general.c:1233
+#: ../clients/cli/general.c:1231
msgid "ip6 default"
msgstr ""
-#: ../clients/cli/general.c:1316
+#: ../clients/cli/general.c:1314
#, fuzzy, c-format
msgid "%s VPN connection"
msgstr "إتّصالات VPN"
-#: ../clients/cli/general.c:1386
+#: ../clients/cli/general.c:1384
#, c-format
msgid ""
"Use \"nmcli device show\" to get complete information about known devices "
@@ -2925,16 +3277,16 @@ msgid ""
"details.\n"
msgstr ""
-#: ../clients/cli/general.c:1407
+#: ../clients/cli/general.c:1405
#, c-format
msgid "Error: 'monitor' command '%s' is not valid."
msgstr ""
-#: ../clients/cli/general.c:1419
+#: ../clients/cli/general.c:1417
msgid "Networkmanager is not running (waiting for it)\n"
msgstr ""
-#: ../clients/cli/nmcli.c:186
+#: ../clients/cli/nmcli.c:184
#, c-format
msgid ""
"Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }\n"
@@ -2968,62 +3320,62 @@ msgid ""
"\n"
msgstr ""
-#: ../clients/cli/nmcli.c:265
+#: ../clients/cli/nmcli.c:263
#, c-format
msgid "Error: missing argument for '%s' option."
msgstr ""
-#: ../clients/cli/nmcli.c:313
+#: ../clients/cli/nmcli.c:311
#, c-format
msgid "Error: Option '--terse' is specified the second time."
msgstr ""
-#: ../clients/cli/nmcli.c:318
+#: ../clients/cli/nmcli.c:316
#, c-format
msgid "Error: Option '--terse' is mutually exclusive with '--pretty'."
msgstr ""
-#: ../clients/cli/nmcli.c:326
+#: ../clients/cli/nmcli.c:324
#, c-format
msgid "Error: Option '--pretty' is specified the second time."
msgstr ""
-#: ../clients/cli/nmcli.c:331
+#: ../clients/cli/nmcli.c:329
#, c-format
msgid "Error: Option '--pretty' is mutually exclusive with '--terse'."
msgstr ""
-#: ../clients/cli/nmcli.c:346
+#: ../clients/cli/nmcli.c:344
#, c-format
msgid "Error: '%s' is not a valid argument for '%s' option."
msgstr ""
-#: ../clients/cli/nmcli.c:360 ../clients/cli/nmcli.c:372
+#: ../clients/cli/nmcli.c:358 ../clients/cli/nmcli.c:370
#, c-format
msgid "Error: '%s' is not valid argument for '%s' option."
msgstr ""
-#: ../clients/cli/nmcli.c:396
+#: ../clients/cli/nmcli.c:394
#, c-format
msgid "Error: '%s' is not a valid timeout."
msgstr ""
-#: ../clients/cli/nmcli.c:403
+#: ../clients/cli/nmcli.c:401
#, c-format
msgid "nmcli tool, version %s\n"
msgstr ""
-#: ../clients/cli/nmcli.c:411
+#: ../clients/cli/nmcli.c:409
#, c-format
msgid "Error: Option '%s' is unknown, try 'nmcli -help'."
msgstr ""
-#: ../clients/cli/nmcli.c:457 ../clients/cli/nmcli.c:464
+#: ../clients/cli/nmcli.c:455 ../clients/cli/nmcli.c:462
#, c-format
msgid "Error: nmcli terminated by signal %s (%d)\n"
msgstr ""
-#: ../clients/cli/nmcli.c:562
+#: ../clients/cli/nmcli.c:560
msgid "Success"
msgstr ""
@@ -3108,52 +3460,52 @@ msgstr ""
msgid "[nmcli specific description]"
msgstr ""
-#: ../clients/cli/utils.c:328
+#: ../clients/cli/utils.c:327
#, c-format
msgid "Error: Argument '%s' was expected, but '%s' provided."
msgstr ""
-#: ../clients/cli/utils.c:331
+#: ../clients/cli/utils.c:330
#, c-format
msgid "Error: Unexpected argument '%s'"
msgstr ""
-#: ../clients/cli/utils.c:804
+#: ../clients/cli/utils.c:803
#, c-format
msgid "invalid field '%s%s%s'; no such field"
msgstr ""
-#: ../clients/cli/utils.c:808
+#: ../clients/cli/utils.c:807
#, c-format
msgid "invalid field '%s%s%s'; allowed fields: [%s]"
msgstr ""
-#: ../clients/cli/utils.c:881
+#: ../clients/cli/utils.c:880
#, c-format
msgid "failure to select field"
msgstr ""
-#: ../clients/cli/utils.c:1469
+#: ../clients/cli/utils.c:1467
#, c-format
msgid "Error reading nmcli output: %s\n"
msgstr ""
-#: ../clients/cli/utils.c:1474
+#: ../clients/cli/utils.c:1472
#, c-format
msgid "Error writing nmcli output: %s\n"
msgstr ""
-#: ../clients/cli/utils.c:1498
+#: ../clients/cli/utils.c:1494
#, c-format
msgid "Failed to create pager pipe: %s\n"
msgstr ""
-#: ../clients/cli/utils.c:1506
+#: ../clients/cli/utils.c:1502
#, c-format
msgid "Failed to fork pager: %s\n"
msgstr ""
-#: ../clients/cli/utils.c:1552 ../clients/cli/utils.c:1554
+#: ../clients/cli/utils.c:1548 ../clients/cli/utils.c:1550
#, c-format
msgid "Failed to duplicate pager pipe: %s\n"
msgstr ""
@@ -3161,689 +3513,318 @@ msgstr ""
#. Translators: the first %s is the partial value entered by
#. * the user, the second %s a list of compatible values.
#.
-#: ../clients/common/nm-client-utils.c:75
-#: ../clients/common/nm-client-utils.c:106
+#: ../clients/common/nm-client-utils.c:71
+#: ../clients/common/nm-client-utils.c:102
#, c-format
msgid "'%s' is ambiguous (%s)"
msgstr ""
-#: ../clients/common/nm-client-utils.c:85
+#: ../clients/common/nm-client-utils.c:81
#, c-format
msgid "'%s' is not valid; use [%s] or [%s]"
msgstr ""
-#: ../clients/common/nm-client-utils.c:118
+#: ../clients/common/nm-client-utils.c:114
#, c-format
msgid "'%s' is not valid; use [%s], [%s] or [%s]"
msgstr ""
-#: ../clients/common/nm-client-utils.c:155
+#: ../clients/common/nm-client-utils.c:151
#, c-format
msgid "'%s' is ambiguous (%s x %s)"
msgstr ""
-#: ../clients/common/nm-client-utils.c:167
+#: ../clients/common/nm-client-utils.c:163
#, c-format
msgid "missing name, try one of [%s]"
msgstr ""
-#: ../clients/common/nm-client-utils.c:223
-msgid "unmanaged"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:225
-msgid "unavailable"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:229
-msgid "connecting (prepare)"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:231
-msgid "connecting (configuring)"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:233
-msgid "connecting (need authentication)"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:235
-msgid "connecting (getting IP configuration)"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:237
-msgid "connecting (checking IP connectivity)"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:239
-msgid "connecting (starting secondary connections)"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:245
-msgid "connection failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:262
-msgid "yes (guessed)"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:264
-msgid "no (guessed)"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:277
-msgid "No reason given"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:281
-msgid "Device is now managed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:283
-msgid "Device is now unmanaged"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:285
-msgid "The device could not be readied for configuration"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:287
-msgid ""
-"IP configuration could not be reserved (no available address, timeout, etc.)"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:289
-msgid "The IP configuration is no longer valid"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:291
-msgid "Secrets were required, but not provided"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:293
-msgid "802.1X supplicant disconnected"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:295
-msgid "802.1X supplicant configuration failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:297
-msgid "802.1X supplicant failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:299
-msgid "802.1X supplicant took too long to authenticate"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:301
-msgid "PPP service failed to start"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:303
-msgid "PPP service disconnected"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:305
-msgid "PPP failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:307
-msgid "DHCP client failed to start"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:309
-msgid "DHCP client error"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:311
-msgid "DHCP client failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:313
-msgid "Shared connection service failed to start"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:315
-msgid "Shared connection service failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:317
-msgid "AutoIP service failed to start"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:319
-msgid "AutoIP service error"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:321
-msgid "AutoIP service failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:323
-msgid "The line is busy"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:325
-msgid "No dial tone"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:327
-msgid "No carrier could be established"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:329
-msgid "The dialing request timed out"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:331
-msgid "The dialing attempt failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:333
-msgid "Modem initialization failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:335
-msgid "Failed to select the specified APN"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:337
-msgid "Not searching for networks"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:339
-msgid "Network registration denied"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:341
-msgid "Network registration timed out"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:343
-msgid "Failed to register with the requested network"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:345
-msgid "PIN check failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:347
-msgid "Necessary firmware for the device may be missing"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:349
-msgid "The device was removed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:351
-msgid "NetworkManager went to sleep"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:353
-msgid "The device's active connection disappeared"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:355
-msgid "Device disconnected by user or client"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:357
-msgid "Carrier/link changed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:359
-msgid "The device's existing connection was assumed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:361
-msgid "The supplicant is now available"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:363
-msgid "The modem could not be found"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:365
-msgid "The Bluetooth connection failed or timed out"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:367
-msgid "GSM Modem's SIM card not inserted"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:369
-msgid "GSM Modem's SIM PIN required"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:371
-msgid "GSM Modem's SIM PUK required"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:373
-msgid "GSM Modem's SIM wrong"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:375
-msgid "InfiniBand device does not support connected mode"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:377
-msgid "A dependency of the connection failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:379
-msgid "A problem with the RFC 2684 Ethernet over ADSL bridge"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:381
-msgid "ModemManager is unavailable"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:383
-msgid "The Wi-Fi network could not be found"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:385
-msgid "A secondary connection of the base connection failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:387
-msgid "DCB or FCoE setup failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:389
-msgid "teamd control failed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:391
-msgid "Modem failed or no longer available"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:393
-msgid "Modem now ready and available"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:395
-msgid "SIM PIN was incorrect"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:397
-msgid "New connection activation was enqueued"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:399
-msgid "The device's parent changed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:401
-msgid "The device parent's management changed"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:404
-#, fuzzy
-msgid "OpenVSwitch database connection failed"
-msgstr "إتّصالات VPN"
-
-#. TRANSLATORS: Unknown reason for a device state change (NMDeviceStateReason)
-#. TRANSLATORS: Unknown reason for a connection state change (NMActiveConnectionStateReason)
-#: ../clients/common/nm-client-utils.c:408
-#: ../clients/common/nm-client-utils.c:447 ../libnm-glib/nm-device.c:1860
-#: ../libnm/nm-device.c:1572
-msgid "Unknown"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:416
-msgid "Unknown reason"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:418
-#, fuzzy
-msgid "The connection was disconnected"
-msgstr "لا يمكن إضافة اتصال VPN"
-
-#: ../clients/common/nm-client-utils.c:420
-#, fuzzy
-msgid "Disconnected by user"
-msgstr "إتّصالات VPN"
-
-#: ../clients/common/nm-client-utils.c:422
-msgid "The base network connection was interrupted"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:424
-msgid "The VPN service stopped unexpectedly"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:426
-msgid "The VPN service returned invalid configuration"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:428
-#, fuzzy
-msgid "The connection attempt timed out"
-msgstr "إتّصالات VPN"
-
-#: ../clients/common/nm-client-utils.c:430
-msgid "The VPN service did not start in time"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:432
-msgid "The VPN service failed to start"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:434
-msgid "No valid secrets"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:436
-msgid "Invalid secrets"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:438
-#, fuzzy
-msgid "The connection was removed"
-msgstr "حذف اتصال VPN \"%s\"؟"
-
-#: ../clients/common/nm-client-utils.c:440
-#, fuzzy
-msgid "Master connection failed"
-msgstr "إتّصالات VPN"
-
-#: ../clients/common/nm-client-utils.c:442
-msgid "Could not create a software link"
-msgstr ""
-
-#: ../clients/common/nm-client-utils.c:444
-msgid "The device disappeared"
-msgstr ""
-
-#: ../clients/common/nm-meta-setting-access.c:501
+#: ../clients/common/nm-meta-setting-access.c:484
#, c-format
msgid "field '%s' has to be alone"
msgstr ""
-#: ../clients/common/nm-meta-setting-access.c:516
+#: ../clients/common/nm-meta-setting-access.c:499
#, c-format
msgid "invalid field '%s%s%s%s%s'; %s%s%s"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:101
-#: ../clients/common/nm-meta-setting-desc.c:157
+#: ../clients/common/nm-meta-setting-desc.c:100
+#: ../clients/common/nm-meta-setting-desc.c:156
#, c-format
msgid "invalid prefix '%s'; <1-%d> allowed"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:109
+#: ../clients/common/nm-meta-setting-desc.c:108
#, c-format
msgid "invalid IP address: %s"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:134
+#: ../clients/common/nm-meta-setting-desc.c:133
msgid ""
"The valid syntax is: 'ip[/prefix] [next-hop] [metric] [attribute=val]... [,"
"ip[/prefix] ...]'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:168
+#: ../clients/common/nm-meta-setting-desc.c:167
#, c-format
msgid "the next hop ('%s') must be first"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:174
+#: ../clients/common/nm-meta-setting-desc.c:173
#, c-format
msgid "the metric ('%s') must be before attributes"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:214
+#: ../clients/common/nm-meta-setting-desc.c:213
#, c-format
msgid "invalid route: %s. %s"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:226
+#: ../clients/common/nm-meta-setting-desc.c:225
msgid "default route cannot be added (NetworkManager handles it by itself)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:281
+#: ../clients/common/nm-meta-setting-desc.c:280
#, c-format
msgid "invalid priority map '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:288
-#: ../clients/common/nm-meta-setting-desc.c:294
+#: ../clients/common/nm-meta-setting-desc.c:287
+#: ../clients/common/nm-meta-setting-desc.c:293
#, c-format
msgid "priority '%s' is not valid (<0-%ld>)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:346
+#: ../clients/common/nm-meta-setting-desc.c:345
#, c-format
msgid "cannot read pac-script from file '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:353
+#: ../clients/common/nm-meta-setting-desc.c:352
#, c-format
msgid "file '%s' contains non-valid utf-8"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:366
+#: ../clients/common/nm-meta-setting-desc.c:365
#, c-format
msgid "'%s' does not contain a valid PAC Script"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:369
+#: ../clients/common/nm-meta-setting-desc.c:368
#, c-format
msgid "Not a valid PAC Script"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:423
+#: ../clients/common/nm-meta-setting-desc.c:422
#, c-format
msgid "cannot read team config from file '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:430
+#: ../clients/common/nm-meta-setting-desc.c:429
#, c-format
msgid "team config file '%s' contains non-valid utf-8"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:442
+#: ../clients/common/nm-meta-setting-desc.c:441
#, c-format
msgid "'%s' does not contain a valid team configuration"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:445
+#: ../clients/common/nm-meta-setting-desc.c:444
#, c-format
msgid "team configuration must be a JSON object"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:538
+#: ../clients/common/nm-meta-setting-desc.c:537
#: ../clients/tui/nmt-mtu-entry.c:84
msgid "(default)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:653
+#: ../clients/common/nm-meta-setting-desc.c:678
msgid "auto"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:801
+#: ../clients/common/nm-meta-setting-desc.c:826
#, c-format
msgid "%s (%s)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:925
+#: ../clients/common/nm-meta-setting-desc.c:953
#, c-format
msgid "'%s' is out of range [%lli, %lli]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:931
+#: ../clients/common/nm-meta-setting-desc.c:959
#, c-format
msgid "'%s' is not a valid number"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:981
+#: ../clients/common/nm-meta-setting-desc.c:1014
#, c-format
msgid "'%s' is out of range [0, %u]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1018
+#: ../clients/common/nm-meta-setting-desc.c:1051
#, c-format
msgid "'%s' is not a valid Ethernet MAC"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1037
+#: ../clients/common/nm-meta-setting-desc.c:1070
#, c-format
msgid "'%s' is not a valid flag number; use <0-%d>"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1051
+#: ../clients/common/nm-meta-setting-desc.c:1084
#, c-format
msgid "'%s' sum is higher than all flags => all flags set"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1155
+#: ../clients/common/nm-meta-setting-desc.c:1188
#, c-format
msgid "invalid option '%s', use a combination of [%s]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1160
-#: ../libnm-core/nm-keyfile-reader.c:622
+#: ../clients/common/nm-meta-setting-desc.c:1193
+#: ../libnm-core/nm-keyfile-reader.c:612
#, c-format
msgid "invalid option '%s', use one of [%s]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1283
+#: ../clients/common/nm-meta-setting-desc.c:1316
#, c-format
msgid "%d (key)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1285
+#: ../clients/common/nm-meta-setting-desc.c:1318
#, c-format
msgid "%d (passphrase)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1288
-#: ../clients/common/nm-meta-setting-desc.c:1377
+#: ../clients/common/nm-meta-setting-desc.c:1321
+#: ../clients/common/nm-meta-setting-desc.c:1410
#, c-format
msgid "%d (unknown)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1320
+#: ../clients/common/nm-meta-setting-desc.c:1353
msgid "0 (NONE)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1326
+#: ../clients/common/nm-meta-setting-desc.c:1359
msgid "REORDER_HEADERS, "
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1328
+#: ../clients/common/nm-meta-setting-desc.c:1361
msgid "GVRP, "
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1330
+#: ../clients/common/nm-meta-setting-desc.c:1363
msgid "LOOSE_BINDING, "
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1332
+#: ../clients/common/nm-meta-setting-desc.c:1365
msgid "MVRP, "
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1371
+#: ../clients/common/nm-meta-setting-desc.c:1404
#, c-format
msgid "%d (disabled)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1373
+#: ../clients/common/nm-meta-setting-desc.c:1406
#, c-format
msgid "%d (enabled, prefer public IP)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1375
+#: ../clients/common/nm-meta-setting-desc.c:1408
#, c-format
msgid "%d (enabled, prefer temporary IP)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1390
+#: ../clients/common/nm-meta-setting-desc.c:1423
#, fuzzy
msgid "0 (none)"
msgstr "بلا"
-#: ../clients/common/nm-meta-setting-desc.c:1396
+#: ../clients/common/nm-meta-setting-desc.c:1429
msgid "agent-owned, "
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1398
+#: ../clients/common/nm-meta-setting-desc.c:1431
msgid "not saved, "
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1400
+#: ../clients/common/nm-meta-setting-desc.c:1433
msgid "not required, "
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1462
+#: ../clients/common/nm-meta-setting-desc.c:1495
#, c-format
msgid "'%s' is not valid; use <option>=<value>"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1504
+#: ../clients/common/nm-meta-setting-desc.c:1537
msgid "no item to remove"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1508
+#: ../clients/common/nm-meta-setting-desc.c:1541
#, c-format
msgid "index '%d' is not in range <0-%d>"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1523
+#: ../clients/common/nm-meta-setting-desc.c:1556
#, c-format
msgid "invalid option '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1525
+#: ../clients/common/nm-meta-setting-desc.c:1558
msgid "missing option"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1549
+#: ../clients/common/nm-meta-setting-desc.c:1582
#, c-format
msgid "'%s' is not a valid MAC"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1579
-#: ../clients/common/nm-meta-setting-desc.c:1675
-#: ../clients/common/nm-meta-setting-desc.c:4163
+#: ../clients/common/nm-meta-setting-desc.c:1612
+#: ../clients/common/nm-meta-setting-desc.c:1708
+#: ../clients/common/nm-meta-setting-desc.c:4233
#, c-format
msgid "'%s' is not valid"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1619
+#: ../clients/common/nm-meta-setting-desc.c:1652
#, c-format
msgid "'%u' flags are not valid; use combination of %s"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1655
+#: ../clients/common/nm-meta-setting-desc.c:1688
#, c-format
msgid "'%s' is not a valid number (or out of range)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:1775
+#: ../clients/common/nm-meta-setting-desc.c:1803
#, c-format
msgid "'%s' is not a valid hex character"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2055
+#: ../clients/common/nm-meta-setting-desc.c:2083
#, c-format
msgid "the property doesn't contain EAP method '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2078
+#: ../clients/common/nm-meta-setting-desc.c:2106
#, c-format
msgid "the property doesn't contain alternative subject match '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2104
+#: ../clients/common/nm-meta-setting-desc.c:2132
#, c-format
msgid "the property doesn't contain \"phase2\" alternative subject match '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2225
+#: ../clients/common/nm-meta-setting-desc.c:2253
#, c-format
msgid ""
"Enter a list of bonding options formatted as:\n"
@@ -3861,6 +3842,17 @@ msgid ""
"Example: mode=2,miimon=120\n"
msgstr ""
+#: ../clients/common/nm-meta-setting-desc.c:2289
+#: ../clients/common/nm-meta-setting-desc.c:3132
+#, c-format
+msgid "%d (default)"
+msgstr ""
+
+#: ../clients/common/nm-meta-setting-desc.c:2292
+#, c-format
+msgid "%d (forever)"
+msgstr ""
+
#. Don't allow setting type unless the connection is brand new.
#. * Just because it's a bad idea and the user wouldn't probably want that.
#. * No technical reason, really.
@@ -3868,180 +3860,185 @@ msgstr ""
#. * hacky: we can not see if the type is already set, because
#. * nmc_setting_set_property() is called only after the property
#. * we're setting (type) has been removed.
-#: ../clients/common/nm-meta-setting-desc.c:2285
+#: ../clients/common/nm-meta-setting-desc.c:2342
#, fuzzy, c-format
msgid "Can not change the connection type"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/common/nm-meta-setting-desc.c:2392
+#: ../clients/common/nm-meta-setting-desc.c:2444
#, c-format
msgid "the property doesn't contain permission '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2413
+#: ../clients/common/nm-meta-setting-desc.c:2465
#, c-format
msgid "'%s' is not valid master; use ifname or connection UUID"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2512
+#: ../clients/common/nm-meta-setting-desc.c:2560
#, c-format
msgid "the value '%s' is not a valid UUID"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2519
+#: ../clients/common/nm-meta-setting-desc.c:2567
#, c-format
msgid "the property doesn't contain UUID '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2586
+#: ../clients/common/nm-meta-setting-desc.c:2634
msgid "0 (disabled)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2592
+#: ../clients/common/nm-meta-setting-desc.c:2640
msgid "enabled, "
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2594
+#: ../clients/common/nm-meta-setting-desc.c:2642
msgid "advertise, "
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2596
+#: ../clients/common/nm-meta-setting-desc.c:2644
msgid "willing, "
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2716
+#: ../clients/common/nm-meta-setting-desc.c:2764
#, c-format
msgid "'%s' is not a valid DCB flag"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2746
+#: ../clients/common/nm-meta-setting-desc.c:2794
msgid "must contain 8 comma-separated numbers"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2762
+#: ../clients/common/nm-meta-setting-desc.c:2810
#, c-format
msgid "'%s' not a number between 0 and %u (inclusive) or %u"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2765
+#: ../clients/common/nm-meta-setting-desc.c:2813
#, c-format
msgid "'%s' not a number between 0 and %u (inclusive)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2786
+#: ../clients/common/nm-meta-setting-desc.c:2834
#, c-format
msgid "changes will have no effect until '%s' includes 1 (enabled)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2841
+#: ../clients/common/nm-meta-setting-desc.c:2889
#, c-format
msgid "bandwidth percentages must total 100%%"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2914
-#: ../clients/common/nm-meta-setting-desc.c:2920
+#: ../clients/common/nm-meta-setting-desc.c:2962
+#: ../clients/common/nm-meta-setting-desc.c:2968
msgid "SIM operator ID must be a 5 or 6 number MCCMNC code"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2944
+#: ../clients/common/nm-meta-setting-desc.c:2992
#, c-format
msgid "'%s' is not a valid IBoIP P_Key"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:2967
+#: ../clients/common/nm-meta-setting-desc.c:3015
msgid "default"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3101
-#: ../clients/common/nm-meta-setting-desc.c:3120
+#: ../clients/common/nm-meta-setting-desc.c:3134
+#, c-format
+msgid "%d (off)"
+msgstr ""
+
+#: ../clients/common/nm-meta-setting-desc.c:3171
+#: ../clients/common/nm-meta-setting-desc.c:3190
#, c-format
msgid "invalid IPv4 address '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3126
-#: ../clients/common/nm-meta-setting-desc.c:3380
+#: ../clients/common/nm-meta-setting-desc.c:3196
+#: ../clients/common/nm-meta-setting-desc.c:3450
#, c-format
msgid "the property doesn't contain DNS server '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3166
-#: ../clients/common/nm-meta-setting-desc.c:3420
+#: ../clients/common/nm-meta-setting-desc.c:3236
+#: ../clients/common/nm-meta-setting-desc.c:3490
#, c-format
msgid "the property doesn't contain DNS search domain '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3203
-#: ../clients/common/nm-meta-setting-desc.c:3457
+#: ../clients/common/nm-meta-setting-desc.c:3273
+#: ../clients/common/nm-meta-setting-desc.c:3527
#, c-format
msgid "the property doesn't contain DNS option '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3246
-#: ../clients/common/nm-meta-setting-desc.c:3499
+#: ../clients/common/nm-meta-setting-desc.c:3316
+#: ../clients/common/nm-meta-setting-desc.c:3569
#, c-format
msgid "the property doesn't contain IP address '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3266
-#: ../clients/common/nm-meta-setting-desc.c:3518
+#: ../clients/common/nm-meta-setting-desc.c:3336
+#: ../clients/common/nm-meta-setting-desc.c:3588
#, c-format
msgid "invalid gateway address '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3305
-#: ../clients/common/nm-meta-setting-desc.c:3559
+#: ../clients/common/nm-meta-setting-desc.c:3375
+#: ../clients/common/nm-meta-setting-desc.c:3629
#, c-format
msgid "the property doesn't contain route '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3355
-#: ../clients/common/nm-meta-setting-desc.c:3374
+#: ../clients/common/nm-meta-setting-desc.c:3425
+#: ../clients/common/nm-meta-setting-desc.c:3444
#, c-format
msgid "invalid IPv6 address '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3577
+#: ../clients/common/nm-meta-setting-desc.c:3647
#: ../libnm-core/nm-setting-gsm.c:381 ../libnm-util/nm-setting-gsm.c:364
#, c-format
msgid "'%s' is not a number"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3584
+#: ../clients/common/nm-meta-setting-desc.c:3654
#, c-format
msgid "'%s' is not valid; use 0, 1, or 2"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3618
+#: ../clients/common/nm-meta-setting-desc.c:3688
#, c-format
msgid "'%s' is not a valid channel; use <1-13>"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3724
+#: ../clients/common/nm-meta-setting-desc.c:3794
#, c-format
msgid "only one mapping at a time is supported; taking the first one (%s)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3732
+#: ../clients/common/nm-meta-setting-desc.c:3802
#, c-format
msgid "the property doesn't contain mapping '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3740
+#: ../clients/common/nm-meta-setting-desc.c:3810
msgid "no priority to remove"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3744
+#: ../clients/common/nm-meta-setting-desc.c:3814
#, c-format
msgid "index '%d' is not in the range of <0-%d>"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3813
+#: ../clients/common/nm-meta-setting-desc.c:3883
#, c-format
msgid "'%s' cannot be empty"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3852
-#: ../clients/common/nm-meta-setting-desc.c:3985
+#: ../clients/common/nm-meta-setting-desc.c:3922
+#: ../clients/common/nm-meta-setting-desc.c:4055
#: ../libnm-core/nm-setting-wired.c:664 ../libnm-core/nm-setting-wireless.c:857
#: ../libnm-core/nm-setting-wireless.c:869 ../libnm-util/nm-setting-wired.c:646
#: ../libnm-util/nm-setting-wireless.c:859
@@ -4050,23 +4047,23 @@ msgstr ""
msgid "'%s' is not a valid MAC address"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3858
-#: ../clients/common/nm-meta-setting-desc.c:3991
+#: ../clients/common/nm-meta-setting-desc.c:3928
+#: ../clients/common/nm-meta-setting-desc.c:4061
#, c-format
msgid "the property doesn't contain MAC address '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3876
+#: ../clients/common/nm-meta-setting-desc.c:3946
#, c-format
msgid "'%s' is not valid; 2 or 3 strings should be provided"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3892
+#: ../clients/common/nm-meta-setting-desc.c:3962
#, c-format
msgid "'%s' string value should consist of 1 - 199 characters"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3924
+#: ../clients/common/nm-meta-setting-desc.c:3994
#, c-format
msgid ""
"Enter a list of S/390 options formatted as:\n"
@@ -4074,80 +4071,80 @@ msgid ""
"Valid options are: %s\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3958
+#: ../clients/common/nm-meta-setting-desc.c:4028
#, c-format
msgid "'%s' is not a valid channel"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:3964
+#: ../clients/common/nm-meta-setting-desc.c:4034
#, c-format
msgid "'%ld' is not a valid channel"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4063
-#: ../clients/common/nm-meta-setting-desc.c:4099
-#: ../clients/common/nm-meta-setting-desc.c:4135
+#: ../clients/common/nm-meta-setting-desc.c:4133
+#: ../clients/common/nm-meta-setting-desc.c:4169
+#: ../clients/common/nm-meta-setting-desc.c:4205
#, c-format
msgid "the property doesn't contain protocol '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4172
+#: ../clients/common/nm-meta-setting-desc.c:4242
#, c-format
msgid ""
"'%s' not compatible with %s '%s', please change the key or set the right %s "
"first."
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4182
+#: ../clients/common/nm-meta-setting-desc.c:4252
#, c-format
msgid "WEP key is guessed to be of '%s'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4187
+#: ../clients/common/nm-meta-setting-desc.c:4257
#, c-format
msgid "WEP key index set to '%d'"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4226
+#: ../clients/common/nm-meta-setting-desc.c:4296
#, c-format
msgid "'%s' is not compatible with '%s' type, please change or delete the key."
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4236
+#: ../clients/common/nm-meta-setting-desc.c:4306
#, c-format
msgid "'%s' is not a valid PSK"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4268
+#: ../clients/common/nm-meta-setting-desc.c:4338
msgid "Bonding primary interface [none]"
msgstr ""
#. this is a virtual property, only needed during "ask" mode.
-#: ../clients/common/nm-meta-setting-desc.c:4275
+#: ../clients/common/nm-meta-setting-desc.c:4345
msgid "Bonding monitoring mode"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4284
+#: ../clients/common/nm-meta-setting-desc.c:4354
msgid "Bonding miimon [100]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4292
+#: ../clients/common/nm-meta-setting-desc.c:4362
msgid "Bonding downdelay [0]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4300
+#: ../clients/common/nm-meta-setting-desc.c:4370
msgid "Bonding updelay [0]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4308
+#: ../clients/common/nm-meta-setting-desc.c:4378
msgid "Bonding arp-interval [0]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4316
+#: ../clients/common/nm-meta-setting-desc.c:4386
msgid "Bonding arp-ip-target [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4324
+#: ../clients/common/nm-meta-setting-desc.c:4394
msgid "LACP rate ('slow' or 'fast') [slow]"
msgstr ""
@@ -4155,7 +4152,7 @@ msgstr ""
#. * that the actual type is (gboolean(*)(type *)).
#. macro that returns @func as const (guint32(*)(NMSetting*)) type, but checks
#. * that the actual type is (guint32(*)(type *)).
-#: ../clients/common/nm-meta-setting-desc.c:4436
+#: ../clients/common/nm-meta-setting-desc.c:4511
msgid ""
"nmcli can accepts both direct JSON configuration data and a file name "
"containing the configuration. In the latter case the file is read and the "
@@ -4166,7 +4163,7 @@ msgid ""
" set team.config /etc/my-team.conf\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4477
+#: ../clients/common/nm-meta-setting-desc.c:4541
msgid ""
"Enter file path to CA certificate (optionally prefixed with file://).\n"
" [file://]<file path>\n"
@@ -4174,7 +4171,7 @@ msgid ""
"Example: /home/cimrman/cacert.crt\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4511
+#: ../clients/common/nm-meta-setting-desc.c:4575
msgid ""
"Enter file path to client certificate (optionally prefixed with file://).\n"
" [file://]<file path>\n"
@@ -4182,7 +4179,7 @@ msgid ""
"Example: /home/cimrman/jara.crt\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4568
+#: ../clients/common/nm-meta-setting-desc.c:4632
msgid ""
"Enter file path to CA certificate for inner authentication (optionally "
"prefixed\n"
@@ -4192,7 +4189,7 @@ msgid ""
"Example: /home/cimrman/ca-zweite-phase.crt\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4603
+#: ../clients/common/nm-meta-setting-desc.c:4667
msgid ""
"Enter file path to client certificate for inner authentication (optionally "
"prefixed\n"
@@ -4202,7 +4199,7 @@ msgid ""
"Example: /home/cimrman/jara-zweite-phase.crt\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4630
+#: ../clients/common/nm-meta-setting-desc.c:4694
msgid ""
"Enter bytes as a list of hexadecimal values.\n"
"Two formats are accepted:\n"
@@ -4215,8 +4212,8 @@ msgid ""
" ab 4 55 0xa6 ea 3a 74 C2\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4647
-#: ../clients/common/nm-meta-setting-desc.c:4665
+#: ../clients/common/nm-meta-setting-desc.c:4711
+#: ../clients/common/nm-meta-setting-desc.c:4729
msgid ""
"Enter path to a private key and the key password (if not set yet):\n"
" [file://]<file path> [<password>]\n"
@@ -4228,83 +4225,79 @@ msgstr ""
#. * is not visible here since we only care about phase2 authentication
#. * (and don't even care of which one)
#.
-#: ../clients/common/nm-meta-setting-desc.c:4704
-#: ../clients/common/nm-secret-agent-simple.c:225
-#: ../clients/common/nm-secret-agent-simple.c:330
-#: ../clients/tui/nmt-page-dsl.c:66 ../clients/tui/nmt-page-wifi.c:320
+#: ../clients/common/nm-meta-setting-desc.c:4768
+#: ../clients/common/nm-secret-agent-simple.c:223
+#: ../clients/common/nm-secret-agent-simple.c:328
+#: ../clients/tui/nmt-page-dsl.c:66 ../clients/tui/nmt-page-wifi.c:321
msgid "Username"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4710
-#: ../clients/common/nm-meta-setting-desc.c:4894
-#: ../clients/common/nm-meta-setting-desc.c:5177
-#: ../clients/common/nm-meta-setting-desc.c:5801
+#: ../clients/common/nm-meta-setting-desc.c:4774
+#: ../clients/common/nm-meta-setting-desc.c:4952
+#: ../clients/common/nm-meta-setting-desc.c:5221
+#: ../clients/common/nm-meta-setting-desc.c:5788
msgid "Password [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4756
+#: ../clients/common/nm-meta-setting-desc.c:4821
msgid "Bluetooth device address"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4801
-#: ../clients/common/nm-meta-setting-desc.c:5231
-#: ../clients/common/nm-meta-setting-desc.c:6301
-#: ../clients/common/nm-meta-setting-desc.c:6339
-#: ../clients/common/nm-meta-setting-desc.c:6476
+#: ../clients/common/nm-meta-setting-desc.c:4865
+#: ../clients/common/nm-meta-setting-desc.c:5275
+#: ../clients/common/nm-meta-setting-desc.c:6213
+#: ../clients/common/nm-meta-setting-desc.c:6251
+#: ../clients/common/nm-meta-setting-desc.c:6388
msgid "MAC [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4807
+#: ../clients/common/nm-meta-setting-desc.c:4871
msgid "Enable STP [no]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4813
+#: ../clients/common/nm-meta-setting-desc.c:4877
msgid "STP priority [32768]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4819
+#: ../clients/common/nm-meta-setting-desc.c:4883
msgid "Forward delay [15]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4825
+#: ../clients/common/nm-meta-setting-desc.c:4889
msgid "Hello time [2]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4831
+#: ../clients/common/nm-meta-setting-desc.c:4895
msgid "Max age [20]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4837
+#: ../clients/common/nm-meta-setting-desc.c:4901
msgid "MAC address ageing time [300]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4843
-msgid "Group forward mask [0]"
-msgstr ""
-
-#: ../clients/common/nm-meta-setting-desc.c:4849
+#: ../clients/common/nm-meta-setting-desc.c:4907
msgid "Enable IGMP snooping [no]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4861
+#: ../clients/common/nm-meta-setting-desc.c:4919
msgid "Bridge port priority [32]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4867
+#: ../clients/common/nm-meta-setting-desc.c:4925
msgid "Bridge port STP path cost [100]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4873
+#: ../clients/common/nm-meta-setting-desc.c:4931
msgid "Hairpin [no]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4888
-#: ../clients/common/nm-meta-setting-desc.c:5171
-#: ../clients/common/nm-meta-setting-desc.c:6191
+#: ../clients/common/nm-meta-setting-desc.c:4946
+#: ../clients/common/nm-meta-setting-desc.c:5215
+#: ../clients/common/nm-meta-setting-desc.c:6103
msgid "Username [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:4983
+#: ../clients/common/nm-meta-setting-desc.c:5029
msgid ""
"Enter a list of user permissions. This is a list of user names formatted "
"as:\n"
@@ -4314,7 +4307,7 @@ msgid ""
"Example: alice bob charlie\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5025
+#: ../clients/common/nm-meta-setting-desc.c:5069
msgid ""
"Enter secondary connections that should be activated when this connection "
"is\n"
@@ -4327,7 +4320,7 @@ msgid ""
"Example: private-openvpn, fe6ba5d8-c2fc-4aae-b2e3-97efddd8d9a7\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5042
+#: ../clients/common/nm-meta-setting-desc.c:5086
msgid ""
"Enter a value which indicates whether the connection is subject to a data\n"
"quota, usage costs or other limitations. Accepted options are:\n"
@@ -4336,37 +4329,37 @@ msgid ""
"'unknown' to let NetworkManager choose a value using some heuristics\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5188
+#: ../clients/common/nm-meta-setting-desc.c:5232
#, fuzzy
msgid "APN"
msgstr "LEAP"
-#: ../clients/common/nm-meta-setting-desc.c:5240
-#: ../clients/common/nm-meta-setting-desc.c:6364
-#: ../clients/common/nm-meta-setting-desc.c:6510
+#: ../clients/common/nm-meta-setting-desc.c:5284
+#: ../clients/common/nm-meta-setting-desc.c:6276
+#: ../clients/common/nm-meta-setting-desc.c:6422
msgid "MTU [auto]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5259
+#: ../clients/common/nm-meta-setting-desc.c:5303
msgid "P_KEY [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5268
+#: ../clients/common/nm-meta-setting-desc.c:5312
msgid "Parent interface [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5291
+#: ../clients/common/nm-meta-setting-desc.c:5335
msgid ""
"Enter a list of IPv4 addresses of DNS servers.\n"
"\n"
"Example: 8.8.8.8, 8.8.4.4\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5323
+#: ../clients/common/nm-meta-setting-desc.c:5367
msgid "IPv4 address (IP[/plen]) [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5325
+#: ../clients/common/nm-meta-setting-desc.c:5369
msgid ""
"Enter a list of IPv4 addresses formatted as:\n"
" ip[/prefix], ip[/prefix],...\n"
@@ -4375,11 +4368,11 @@ msgid ""
"Example: 192.168.1.5/24, 10.0.0.11/24\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5338
+#: ../clients/common/nm-meta-setting-desc.c:5382
msgid "IPv4 gateway [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5346
+#: ../clients/common/nm-meta-setting-desc.c:5390
msgid ""
"Enter a list of IPv4 routes formatted as:\n"
" ip[/prefix] [next-hop] [metric],...\n"
@@ -4392,7 +4385,7 @@ msgid ""
" 10.1.2.0/24\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5448
+#: ../clients/common/nm-meta-setting-desc.c:5456
msgid ""
"Enter a list of IPv6 addresses of DNS servers. If the IPv6 configuration "
"method is 'auto' these DNS servers are appended to those (if any) returned "
@@ -4404,11 +4397,11 @@ msgid ""
"Example: 2607:f0d0:1002:51::4, 2607:f0d0:1002:51::1\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5486
+#: ../clients/common/nm-meta-setting-desc.c:5494
msgid "IPv6 address (IP[/plen]) [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5488
+#: ../clients/common/nm-meta-setting-desc.c:5496
msgid ""
"Enter a list of IPv6 addresses formatted as:\n"
" ip[/prefix], ip[/prefix],...\n"
@@ -4417,11 +4410,11 @@ msgid ""
"Example: 2607:f0d0:1002:51::4/64, 1050:0:0:0:5:600:300c:326b\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5501
+#: ../clients/common/nm-meta-setting-desc.c:5509
msgid "IPv6 gateway [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5509
+#: ../clients/common/nm-meta-setting-desc.c:5517
msgid ""
"Enter a list of IPv6 routes formatted as:\n"
" ip[/prefix] [next-hop] [metric],...\n"
@@ -4435,349 +4428,329 @@ msgid ""
" abbe::/64 55\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5602
-#: ../clients/common/nm-meta-setting-desc.c:6224
+#: ../clients/common/nm-meta-setting-desc.c:5595
+#: ../clients/common/nm-meta-setting-desc.c:6136
msgid "Parent device [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5608
+#: ../clients/common/nm-meta-setting-desc.c:5601
msgid "Local endpoint [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5615
-#: ../clients/common/nm-meta-setting-desc.c:6244
+#: ../clients/common/nm-meta-setting-desc.c:5608
+#: ../clients/common/nm-meta-setting-desc.c:6156
msgid "Remote"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5652
+#: ../clients/common/nm-meta-setting-desc.c:5645
msgid "MACsec parent device or connection UUID"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5673
+#: ../clients/common/nm-meta-setting-desc.c:5666
msgid "Enable encryption [yes]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5679
-#: ../clients/common/nm-secret-agent-simple.c:522
+#: ../clients/common/nm-meta-setting-desc.c:5672
+#: ../clients/common/nm-secret-agent-simple.c:520
msgid "MKA CAK"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5689
+#: ../clients/common/nm-meta-setting-desc.c:5682
msgid "MKA_CKN"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5695
+#: ../clients/common/nm-meta-setting-desc.c:5688
msgid "SCI port [1]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5718
+#: ../clients/common/nm-meta-setting-desc.c:5711
#, fuzzy
msgid "MACVLAN parent device or connection UUID"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:5739
+#: ../clients/common/nm-meta-setting-desc.c:5732
msgid "Tap [no]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5752
-#: ../clients/common/nm-meta-setting-desc.c:6431
-#: ../clients/tui/nmt-page-wifi.c:212
+#: ../clients/common/nm-meta-setting-desc.c:5745
+#: ../clients/common/nm-meta-setting-desc.c:6343
+#: ../clients/tui/nmt-page-wifi.c:213
msgid "SSID"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5761
+#: ../clients/common/nm-meta-setting-desc.c:5754
msgid "OLPC Mesh channel [1]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5770
+#: ../clients/common/nm-meta-setting-desc.c:5763
msgid "DHCP anycast MAC address [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5782
-msgid "PPPoE parent device"
-msgstr ""
-
-#: ../clients/common/nm-meta-setting-desc.c:5788
+#: ../clients/common/nm-meta-setting-desc.c:5775
msgid "Service [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5795
+#: ../clients/common/nm-meta-setting-desc.c:5782
msgid "PPPoE username"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5969
+#: ../clients/common/nm-meta-setting-desc.c:5881
msgid "Browser only [no]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5975
+#: ../clients/common/nm-meta-setting-desc.c:5887
msgid "PAC URL"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5981
+#: ../clients/common/nm-meta-setting-desc.c:5893
msgid "PAC script"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:5996
-#: ../clients/common/nm-meta-setting-desc.c:6012
+#: ../clients/common/nm-meta-setting-desc.c:5908
+#: ../clients/common/nm-meta-setting-desc.c:5924
msgid "Team JSON configuration [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6094
+#: ../clients/common/nm-meta-setting-desc.c:6006
msgid "User ID [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6100
+#: ../clients/common/nm-meta-setting-desc.c:6012
msgid "Group ID [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6106
+#: ../clients/common/nm-meta-setting-desc.c:6018
msgid "Enable PI [no]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6112
+#: ../clients/common/nm-meta-setting-desc.c:6024
msgid "Enable VNET header [no]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6118
+#: ../clients/common/nm-meta-setting-desc.c:6030
msgid "Enable multi queue [no]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6131
+#: ../clients/common/nm-meta-setting-desc.c:6043
#, fuzzy
msgid "VLAN parent device or connection UUID"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/common/nm-meta-setting-desc.c:6138
+#: ../clients/common/nm-meta-setting-desc.c:6050
msgid "VLAN ID (<0-4094>)"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6144
+#: ../clients/common/nm-meta-setting-desc.c:6056
msgid "VLAN flags (<0-7>) [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6153
+#: ../clients/common/nm-meta-setting-desc.c:6065
msgid "Ingress priority maps [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6163
+#: ../clients/common/nm-meta-setting-desc.c:6075
msgid "Egress priority maps [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6231
+#: ../clients/common/nm-meta-setting-desc.c:6143
msgid "VXLAN ID"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6237
+#: ../clients/common/nm-meta-setting-desc.c:6149
msgid "Local address [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6250
+#: ../clients/common/nm-meta-setting-desc.c:6162
msgid "Minimum source port [0]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6256
+#: ../clients/common/nm-meta-setting-desc.c:6168
msgid "Maximum source port [0]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6262
+#: ../clients/common/nm-meta-setting-desc.c:6174
msgid "Destination port [8472]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6308
+#: ../clients/common/nm-meta-setting-desc.c:6220
msgid "WiMAX NSP name"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6345
-#: ../clients/common/nm-meta-setting-desc.c:6481
+#: ../clients/common/nm-meta-setting-desc.c:6257
+#: ../clients/common/nm-meta-setting-desc.c:6393
msgid "Cloned MAC [none]"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6372
+#: ../clients/common/nm-meta-setting-desc.c:6284
msgid ""
"Enter a list of subchannels (comma or space separated).\n"
"\n"
"Example: 0.0.0e20 0.0.0e21 0.0.0e22\n"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6626
+#: ../clients/common/nm-meta-setting-desc.c:6538
msgid ""
"Enter the type of WEP keys. The accepted values are: 0 or unknown, 1 or key, "
"and 2 or passphrase.\n"
msgstr ""
#. ***************************************************************************
-#: ../clients/common/nm-meta-setting-desc.c:6786
+#: ../clients/common/nm-meta-setting-desc.c:6708
msgid "802-1x settings"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6787
+#: ../clients/common/nm-meta-setting-desc.c:6709
#: ../src/devices/adsl/nm-device-adsl.c:137
#, fuzzy
msgid "ADSL connection"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6788
+#: ../clients/common/nm-meta-setting-desc.c:6710
#, fuzzy
msgid "bluetooth connection"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6789
+#: ../clients/common/nm-meta-setting-desc.c:6711
msgid "Bond device"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6790
+#: ../clients/common/nm-meta-setting-desc.c:6712
#, fuzzy
msgid "Bridge device"
msgstr "أضف اتصال VPN جديد"
-#: ../clients/common/nm-meta-setting-desc.c:6791
+#: ../clients/common/nm-meta-setting-desc.c:6713
#, fuzzy
msgid "Bridge port"
msgstr "أضف اتصال VPN جديد"
-#: ../clients/common/nm-meta-setting-desc.c:6792
+#: ../clients/common/nm-meta-setting-desc.c:6714
#, fuzzy
msgid "CDMA mobile broadband connection"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6793
+#: ../clients/common/nm-meta-setting-desc.c:6715
msgid "General settings"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6794
+#: ../clients/common/nm-meta-setting-desc.c:6716
msgid "DCB settings"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6795
+#: ../clients/common/nm-meta-setting-desc.c:6717
msgid "Dummy settings"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6796
+#: ../clients/common/nm-meta-setting-desc.c:6718
msgid "Generic settings"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6797
+#: ../clients/common/nm-meta-setting-desc.c:6719
#, fuzzy
msgid "GSM mobile broadband connection"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6798
+#: ../clients/common/nm-meta-setting-desc.c:6720
#: ../src/devices/nm-device-infiniband.c:192
#, fuzzy
msgid "InfiniBand connection"
msgstr "لا يمكن إضافة اتصال VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6799
+#: ../clients/common/nm-meta-setting-desc.c:6721
msgid "IPv4 protocol"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6800
+#: ../clients/common/nm-meta-setting-desc.c:6722
msgid "IPv6 protocol"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6801
+#: ../clients/common/nm-meta-setting-desc.c:6723
msgid "IP-tunnel settings"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6802
+#: ../clients/common/nm-meta-setting-desc.c:6724
msgid "MACsec connection"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6803
+#: ../clients/common/nm-meta-setting-desc.c:6725
#, fuzzy
msgid "macvlan connection"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6804
+#: ../clients/common/nm-meta-setting-desc.c:6726
#, fuzzy
msgid "OLPC Mesh connection"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6805
-msgid "OpenVSwitch bridge settings"
-msgstr ""
-
-#: ../clients/common/nm-meta-setting-desc.c:6806
-msgid "OpenVSwitch interface settings"
-msgstr ""
-
-#: ../clients/common/nm-meta-setting-desc.c:6807
-msgid "OpenVSwitch patch interface settings"
-msgstr ""
-
-#: ../clients/common/nm-meta-setting-desc.c:6808
-msgid "OpenVSwitch port settings"
-msgstr ""
-
-#: ../clients/common/nm-meta-setting-desc.c:6809
+#: ../clients/common/nm-meta-setting-desc.c:6727
msgid "PPP settings"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6810
+#: ../clients/common/nm-meta-setting-desc.c:6728
msgid "PPPoE"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6811
+#: ../clients/common/nm-meta-setting-desc.c:6729
msgid "Proxy"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6812
+#: ../clients/common/nm-meta-setting-desc.c:6730
msgid "Serial settings"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6813
+#: ../clients/common/nm-meta-setting-desc.c:6731
msgid "Team device"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6814
+#: ../clients/common/nm-meta-setting-desc.c:6732
msgid "Team port"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6815
+#: ../clients/common/nm-meta-setting-desc.c:6733
msgid "Tun device"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6816
+#: ../clients/common/nm-meta-setting-desc.c:6734
msgid "User settings"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:6817
-#: ../src/devices/nm-device-vlan.c:394
+#: ../clients/common/nm-meta-setting-desc.c:6735
+#: ../src/devices/nm-device-vlan.c:433
#, fuzzy
msgid "VLAN connection"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6818 ../src/nm-manager.c:4191
+#: ../clients/common/nm-meta-setting-desc.c:6736 ../src/nm-manager.c:4079
#, fuzzy
msgid "VPN connection"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6819
-#: ../src/devices/nm-device-vxlan.c:331
+#: ../clients/common/nm-meta-setting-desc.c:6737
+#: ../src/devices/nm-device-vxlan.c:369
#, fuzzy
msgid "VXLAN connection"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6820
+#: ../clients/common/nm-meta-setting-desc.c:6738
#, fuzzy
msgid "WiMAX connection"
msgstr "إتّصالات VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6821
+#: ../clients/common/nm-meta-setting-desc.c:6739
#, fuzzy
msgid "Wired Ethernet"
msgstr "انشيء اتصال VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6822
+#: ../clients/common/nm-meta-setting-desc.c:6740
#, fuzzy
msgid "Wi-Fi connection"
msgstr "انشيء اتصال VPN"
-#: ../clients/common/nm-meta-setting-desc.c:6823
+#: ../clients/common/nm-meta-setting-desc.c:6741
msgid "Wi-Fi security settings"
msgstr ""
-#: ../clients/common/nm-meta-setting-desc.c:7138
+#: ../clients/common/nm-meta-setting-desc.c:7013
msgid "name"
msgstr ""
@@ -4785,109 +4758,109 @@ msgstr ""
msgid "An authentication session is already underway."
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:232
-#: ../clients/common/nm-secret-agent-simple.c:275
-#: ../clients/common/nm-secret-agent-simple.c:305
-#: ../clients/common/nm-secret-agent-simple.c:344
-#: ../clients/common/nm-secret-agent-simple.c:506
-#: ../clients/common/nm-secret-agent-simple.c:540
-#: ../clients/common/nm-secret-agent-simple.c:563
+#: ../clients/common/nm-secret-agent-simple.c:230
+#: ../clients/common/nm-secret-agent-simple.c:273
+#: ../clients/common/nm-secret-agent-simple.c:303
+#: ../clients/common/nm-secret-agent-simple.c:342
+#: ../clients/common/nm-secret-agent-simple.c:504
+#: ../clients/common/nm-secret-agent-simple.c:538
+#: ../clients/common/nm-secret-agent-simple.c:556
#: ../clients/common/nm-vpn-helpers.c:119
#: ../clients/common/nm-vpn-helpers.c:123
#: ../clients/common/nm-vpn-helpers.c:129
#: ../clients/common/nm-vpn-helpers.c:134 ../clients/tui/nmt-page-dsl.c:75
-#: ../clients/tui/nmt-page-wifi.c:265 ../clients/tui/nmt-page-wifi.c:296
-#: ../clients/tui/nmt-page-wifi.c:329
+#: ../clients/tui/nmt-page-wifi.c:266 ../clients/tui/nmt-page-wifi.c:297
+#: ../clients/tui/nmt-page-wifi.c:330
msgid "Password"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:243
+#: ../clients/common/nm-secret-agent-simple.c:241
msgid "Identity"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:250
+#: ../clients/common/nm-secret-agent-simple.c:248
msgid "Private key password"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:291
-#: ../clients/tui/nmt-page-wifi.c:277
+#: ../clients/common/nm-secret-agent-simple.c:289
+#: ../clients/tui/nmt-page-wifi.c:278
msgid "Key"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:337
+#: ../clients/common/nm-secret-agent-simple.c:335
#: ../clients/tui/nmt-page-dsl.c:78
msgid "Service"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:467
+#: ../clients/common/nm-secret-agent-simple.c:465
msgid "Authentication required by wireless network"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:468
+#: ../clients/common/nm-secret-agent-simple.c:466
#, c-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
"'%s'."
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:476
+#: ../clients/common/nm-secret-agent-simple.c:474
msgid "Wired 802.1X authentication"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:477
+#: ../clients/common/nm-secret-agent-simple.c:475
#, c-format
msgid "Secrets are required to access the wired network '%s'"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:482
+#: ../clients/common/nm-secret-agent-simple.c:480
msgid "DSL authentication"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:483
+#: ../clients/common/nm-secret-agent-simple.c:481
#, fuzzy, c-format
msgid "Secrets are required for the DSL connection '%s'"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../clients/common/nm-secret-agent-simple.c:491
+#: ../clients/common/nm-secret-agent-simple.c:489
msgid "PIN code required"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:492
+#: ../clients/common/nm-secret-agent-simple.c:490
msgid "PIN code is needed for the mobile broadband device"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:494
+#: ../clients/common/nm-secret-agent-simple.c:492
msgid "PIN"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:502
-#: ../clients/common/nm-secret-agent-simple.c:536
-#: ../clients/common/nm-secret-agent-simple.c:559
+#: ../clients/common/nm-secret-agent-simple.c:500
+#: ../clients/common/nm-secret-agent-simple.c:534
+#: ../clients/common/nm-secret-agent-simple.c:552
msgid "Mobile broadband network password"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:503
-#: ../clients/common/nm-secret-agent-simple.c:537
-#: ../clients/common/nm-secret-agent-simple.c:560
-#: ../clients/common/nm-secret-agent-simple.c:582
+#: ../clients/common/nm-secret-agent-simple.c:501
+#: ../clients/common/nm-secret-agent-simple.c:535
+#: ../clients/common/nm-secret-agent-simple.c:553
+#: ../clients/common/nm-secret-agent-simple.c:573
#, c-format
msgid "A password is required to connect to '%s'."
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:517
+#: ../clients/common/nm-secret-agent-simple.c:515
#, c-format
msgid "Secrets are required to access the MACsec network '%s'"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:521
+#: ../clients/common/nm-secret-agent-simple.c:519
msgid "MACsec PSK authentication"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:530
+#: ../clients/common/nm-secret-agent-simple.c:528
msgid "MACsec EAP authentication"
msgstr ""
-#: ../clients/common/nm-secret-agent-simple.c:577
+#: ../clients/common/nm-secret-agent-simple.c:568
msgid "VPN password required"
msgstr ""
@@ -4958,36 +4931,32 @@ msgstr ""
#: ../clients/common/settings-docs.c.in:105
#: ../clients/common/settings-docs.c.in:113
#: ../clients/common/settings-docs.c.in:115
-#: ../clients/common/settings-docs.c.in:124
-#: ../clients/common/settings-docs.c.in:128
-#: ../clients/common/settings-docs.c.in:132
-#: ../clients/common/settings-docs.c.in:148
-#: ../clients/common/settings-docs.c.in:165
-#: ../clients/common/settings-docs.c.in:174
-#: ../clients/common/settings-docs.c.in:175
-#: ../clients/common/settings-docs.c.in:180
-#: ../clients/common/settings-docs.c.in:192
-#: ../clients/common/settings-docs.c.in:202
-#: ../clients/common/settings-docs.c.in:225
-#: ../clients/common/settings-docs.c.in:246
-#: ../clients/common/settings-docs.c.in:257
-#: ../clients/common/settings-docs.c.in:262
-#: ../clients/common/settings-docs.c.in:268
-#: ../clients/common/settings-docs.c.in:271
-#: ../clients/common/settings-docs.c.in:273
-#: ../clients/common/settings-docs.c.in:279
-#: ../clients/common/settings-docs.c.in:289
-#: ../clients/common/settings-docs.c.in:301
+#: ../clients/common/settings-docs.c.in:123
+#: ../clients/common/settings-docs.c.in:127
+#: ../clients/common/settings-docs.c.in:131
+#: ../clients/common/settings-docs.c.in:146
+#: ../clients/common/settings-docs.c.in:163
+#: ../clients/common/settings-docs.c.in:172
+#: ../clients/common/settings-docs.c.in:173
+#: ../clients/common/settings-docs.c.in:178
+#: ../clients/common/settings-docs.c.in:190
+#: ../clients/common/settings-docs.c.in:200
+#: ../clients/common/settings-docs.c.in:223
+#: ../clients/common/settings-docs.c.in:243
+#: ../clients/common/settings-docs.c.in:253
+#: ../clients/common/settings-docs.c.in:258
+#: ../clients/common/settings-docs.c.in:269
+#: ../clients/common/settings-docs.c.in:281
+#: ../clients/common/settings-docs.c.in:288
+#: ../clients/common/settings-docs.c.in:293
+#: ../clients/common/settings-docs.c.in:298
+#: ../clients/common/settings-docs.c.in:300
+#: ../clients/common/settings-docs.c.in:304
#: ../clients/common/settings-docs.c.in:309
#: ../clients/common/settings-docs.c.in:314
-#: ../clients/common/settings-docs.c.in:319
-#: ../clients/common/settings-docs.c.in:321
-#: ../clients/common/settings-docs.c.in:325
-#: ../clients/common/settings-docs.c.in:330
-#: ../clients/common/settings-docs.c.in:335
-#: ../clients/common/settings-docs.c.in:338
-#: ../clients/common/settings-docs.c.in:352
-#: ../clients/common/settings-docs.c.in:362
+#: ../clients/common/settings-docs.c.in:317
+#: ../clients/common/settings-docs.c.in:331
+#: ../clients/common/settings-docs.c.in:341
msgid ""
"The setting's name, which uniquely identifies the setting within the "
"connection. Each setting type has a name unique to that type, for example "
@@ -5025,6 +4994,7 @@ msgid ""
msgstr ""
#: ../clients/common/settings-docs.c.in:10
+#: ../clients/common/settings-docs.c.in:90
msgid ""
"If specified, request that the device use this MAC address instead. This is "
"known as MAC cloning or spoofing. Beside explicitly specifying a MAC "
@@ -5062,7 +5032,7 @@ msgid ""
"address to 68:F7:28, while the lower bits are randomized. A value of "
"\"02:00:00:00:00:00 00:00:00:00:00:00\" will create a fully scrambled "
"globally-administered, burned-in MAC address. If the value contains more "
-"than one additional MAC addresses, one of them is chosen randomly. For "
+"then one additional MAC addresses, one of them is chosen randomly. For "
"example, \"02:00:00:00:00:00 00:00:00:00:00:00 02:00:00:00:00:00\" will "
"create a fully scrambled MAC address, randomly locally or globally "
"administered."
@@ -5286,7 +5256,7 @@ msgid ""
"Flags indicating which mode of WPS is to be used if any. There's little "
"point in changing the default setting as NetworkManager will automatically "
"determine whether it's feasible to start WPS enrollment from the Access "
-"Point capabilities. WPS can be disabled by setting this property to a value "
+"Point capabilities. WPS can by disabled by setting this property to a value "
"of 1."
msgstr ""
@@ -5400,9 +5370,9 @@ msgstr ""
#: ../clients/common/settings-docs.c.in:60
#: ../clients/common/settings-docs.c.in:107
-#: ../clients/common/settings-docs.c.in:135
-#: ../clients/common/settings-docs.c.in:184
-#: ../clients/common/settings-docs.c.in:304
+#: ../clients/common/settings-docs.c.in:134
+#: ../clients/common/settings-docs.c.in:182
+#: ../clients/common/settings-docs.c.in:283
msgid "Flags indicating how to handle the \"password\" property."
msgstr ""
@@ -5597,7 +5567,7 @@ msgid "PIN used for EAP authentication methods."
msgstr ""
#: ../clients/common/settings-docs.c.in:83
-#: ../clients/common/settings-docs.c.in:186
+#: ../clients/common/settings-docs.c.in:184
msgid "Flags indicating how to handle the \"pin\" property."
msgstr ""
@@ -5662,23 +5632,6 @@ msgid ""
"will be skipped."
msgstr ""
-#: ../clients/common/settings-docs.c.in:90
-msgid ""
-"If specified, request that the device use this MAC address instead. This is "
-"known as MAC cloning or spoofing. Beside explicitly specifying a MAC "
-"address, the special values \"preserve\", \"permanent\", \"random\" and "
-"\"stable\" are supported. \"preserve\" means not to touch the MAC address on "
-"activation. \"permanent\" means to use the permanent hardware address if the "
-"device has one (otherwise this is treated as \"preserve\"). \"random\" "
-"creates a random MAC address on each connect. \"stable\" creates a hashed "
-"MAC address based on connection.stable-id and a machine dependent key. If "
-"unspecified, the value can be overwritten via global defaults, see manual of "
-"NetworkManager.conf. If still unspecified, it defaults to \"preserve"
-"\" (older versions of NetworkManager may use a different default value). On "
-"D-Bus, this field is expressed as \"assigned-mac-address\" or the deprecated "
-"\"cloned-mac-address\"."
-msgstr ""
-
#: ../clients/common/settings-docs.c.in:91
msgid ""
"Can be specified only when \"auto-negotiate\" is \"off\". In that case, "
@@ -5703,10 +5656,10 @@ msgstr ""
#: ../clients/common/settings-docs.c.in:97
msgid ""
-"Specific port type to use if the device supports multiple attachment "
-"methods. One of \"tp\" (Twisted Pair), \"aui\" (Attachment Unit Interface), "
-"\"bnc\" (Thin Ethernet) or \"mii\" (Media Independent Interface). If the "
-"device supports only one port type, this setting is ignored."
+"Specific port type to use if multiple the device supports multiple "
+"attachment methods. One of \"tp\" (Twisted Pair), \"aui\" (Attachment Unit "
+"Interface), \"bnc\" (Thin Ethernet) or \"mii\" (Media Independent Interface. "
+"If the device supports only one port type, this setting is ignored."
msgstr ""
#: ../clients/common/settings-docs.c.in:98
@@ -5735,7 +5688,7 @@ msgstr ""
#: ../clients/common/settings-docs.c.in:101
msgid ""
-"Can be set to a value greater than zero only when \"auto-negotiate\" is \"off"
+"Can be set to a value grater than zero only when \"auto-negotiate\" is \"off"
"\". In that case, statically configures the device to use that specified "
"speed. In Mbit/s, ie 100 == 100Mbit/s. Must be set together with the \"duplex"
"\" property when non-zero. Before specifying a speed value be sure your "
@@ -5812,106 +5765,86 @@ msgid "The Spanning Tree Protocol (STP) forwarding delay, in seconds."
msgstr ""
#: ../clients/common/settings-docs.c.in:119
-msgid ""
-"A mask of group addresses to forward. Usually, group addresses in the range "
-"from 01:80:C2:00:00:00 to 01:80:C2:00:00:0F are not forwarded according to "
-"standards. This property is a mask of 16 bits, each corresponding to a group "
-"address in that range that must be forwarded. The mask can't have bits 0, 1 "
-"or 2 set because they are used for STP, MAC pause frames and LACP."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:120
msgid "The Spanning Tree Protocol (STP) hello time, in seconds."
msgstr ""
-#: ../clients/common/settings-docs.c.in:121
+#: ../clients/common/settings-docs.c.in:120
msgid ""
"If specified, the MAC address of bridge. When creating a new bridge, this "
-"MAC address will be set. If this field is left unspecified, the \"ethernet."
-"cloned-mac-address\" is referred instead to generate the initial MAC "
-"address. Note that setting \"ethernet.cloned-mac-address\" anyway overwrites "
-"the MAC address of the bridge later while activating the bridge. Hence, this "
-"property is deprecated."
+"MAC address will be set. When matching an existing (outside NetworkManager "
+"created) bridge, this MAC address must match."
msgstr ""
-#: ../clients/common/settings-docs.c.in:122
+#: ../clients/common/settings-docs.c.in:121
msgid "The Spanning Tree Protocol (STP) maximum message age, in seconds."
msgstr ""
-#: ../clients/common/settings-docs.c.in:123
+#: ../clients/common/settings-docs.c.in:122
msgid ""
"Controls whether IGMP snooping is enabled for this bridge. Note that if "
"snooping was automatically disabled due to hash collisions, the system may "
"refuse to enable the feature until the collisions are resolved."
msgstr ""
-#: ../clients/common/settings-docs.c.in:125
+#: ../clients/common/settings-docs.c.in:124
msgid ""
"Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower "
"values are \"better\"; the lowest priority bridge will be elected the root "
"bridge."
msgstr ""
-#: ../clients/common/settings-docs.c.in:126
+#: ../clients/common/settings-docs.c.in:125
msgid ""
"Controls whether Spanning Tree Protocol (STP) is enabled for this bridge."
msgstr ""
-#: ../clients/common/settings-docs.c.in:127
+#: ../clients/common/settings-docs.c.in:126
msgid ""
-"Enables or disables \"hairpin mode\" for the port, which allows frames to be "
+"Enables or disabled \"hairpin mode\" for the port, which allows frames to be "
"sent back out through the port the frame was received on."
msgstr ""
-#: ../clients/common/settings-docs.c.in:129
+#: ../clients/common/settings-docs.c.in:128
msgid ""
"The Spanning Tree Protocol (STP) port cost for destinations via this port."
msgstr ""
-#: ../clients/common/settings-docs.c.in:130
+#: ../clients/common/settings-docs.c.in:129
msgid "The Spanning Tree Protocol (STP) priority of this bridge port."
msgstr ""
-#: ../clients/common/settings-docs.c.in:131
-#: ../clients/common/settings-docs.c.in:179
-#: ../clients/common/settings-docs.c.in:191
+#: ../clients/common/settings-docs.c.in:130
+#: ../clients/common/settings-docs.c.in:177
+#: ../clients/common/settings-docs.c.in:189
msgid ""
"If non-zero, only transmit packets of the specified size or smaller, "
"breaking larger packets up into multiple frames."
msgstr ""
-#: ../clients/common/settings-docs.c.in:133
+#: ../clients/common/settings-docs.c.in:132
msgid ""
"The number to dial to establish the connection to the CDMA-based mobile "
"broadband network, if any. If not specified, the default number (#777) is "
"used when required."
msgstr ""
-#: ../clients/common/settings-docs.c.in:134
-#: ../clients/common/settings-docs.c.in:183
+#: ../clients/common/settings-docs.c.in:133
+#: ../clients/common/settings-docs.c.in:181
msgid ""
"The password used to authenticate with the network, if required. Many "
"providers do not require a password, or accept any password. But if a "
"password is required, it is specified here."
msgstr ""
-#: ../clients/common/settings-docs.c.in:136
-#: ../clients/common/settings-docs.c.in:189
+#: ../clients/common/settings-docs.c.in:135
+#: ../clients/common/settings-docs.c.in:187
msgid ""
"The username used to authenticate with the network, if required. Many "
"providers do not require a username, or accept any username. But if a "
"username is required, it is specified here."
msgstr ""
-#: ../clients/common/settings-docs.c.in:137
-msgid ""
-"The number of retries for the authentication. Zero means to try "
-"indefinitely; -1 means to use a global default. If the global default is not "
-"set, the authentication retries for 3 times before failing the connection. "
-"Currently this only applies to 802-1x authentication."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:138
+#: ../clients/common/settings-docs.c.in:136
msgid ""
"Whether or not the connection should be automatically connected by "
"NetworkManager when the resources for the connection are available. TRUE to "
@@ -5919,23 +5852,21 @@ msgid ""
"to activate the connection."
msgstr ""
-#: ../clients/common/settings-docs.c.in:139
+#: ../clients/common/settings-docs.c.in:137
msgid ""
"The autoconnect priority. If the connection is set to autoconnect, "
"connections with higher priority will be preferred. Defaults to 0. The "
"higher number means higher priority."
msgstr ""
-#: ../clients/common/settings-docs.c.in:140
+#: ../clients/common/settings-docs.c.in:138
msgid ""
"The number of times a connection should be tried when autoactivating before "
"giving up. Zero means forever, -1 means the global default (4 times if not "
-"overridden). Setting this to 1 means to try activation only once before "
-"blocking autoconnect. Note that after a timeout, NetworkManager will try to "
-"autoconnect again."
+"overridden)."
msgstr ""
-#: ../clients/common/settings-docs.c.in:141
+#: ../clients/common/settings-docs.c.in:139
msgid ""
"Whether or not slaves of this connection should be automatically brought up "
"when NetworkManager activates this connection. This only has a real effect "
@@ -5946,19 +5877,19 @@ msgid ""
"to 0."
msgstr ""
-#: ../clients/common/settings-docs.c.in:142
+#: ../clients/common/settings-docs.c.in:140
msgid ""
"If greater than zero, delay success of IP addressing until either the "
"timeout is reached, or an IP gateway replies to a ping."
msgstr ""
-#: ../clients/common/settings-docs.c.in:143
+#: ../clients/common/settings-docs.c.in:141
msgid ""
"A human readable unique identifier for the connection, like \"Work Wi-Fi\" "
"or \"T-Mobile 3G\"."
msgstr ""
-#: ../clients/common/settings-docs.c.in:144
+#: ../clients/common/settings-docs.c.in:142
msgid ""
"The name of the network interface this connection is bound to. If not set, "
"then the connection can be attached to any interface of the appropriate type "
@@ -5971,55 +5902,54 @@ msgid ""
"interface."
msgstr ""
-#: ../clients/common/settings-docs.c.in:145
+#: ../clients/common/settings-docs.c.in:143
msgid "Whether LLDP is enabled for the connection."
msgstr ""
-#: ../clients/common/settings-docs.c.in:146
+#: ../clients/common/settings-docs.c.in:144
msgid "Interface name of the master device or UUID of the master connection."
msgstr ""
-#: ../clients/common/settings-docs.c.in:147
+#: ../clients/common/settings-docs.c.in:145
msgid ""
"Whether the connection is metered. When updating this property on a "
"currently activated connection, the change takes effect immediately."
msgstr ""
-#: ../clients/common/settings-docs.c.in:149
+#: ../clients/common/settings-docs.c.in:147
msgid ""
"An array of strings defining what access a given user has to this "
"connection. If this is NULL or empty, all users are allowed to access this "
-"connection; otherwise users are allowed if and only if they are in this "
-"list. When this is not empty, the connection can be active only when one of "
-"the specified users is logged into an active session. Each entry is of the "
-"form \"[type]:[id]:[reserved]\"; for example, \"user:dcbw:blah\". At this "
-"time only the \"user\" [type] is allowed. Any other values are ignored and "
-"reserved for future use. [id] is the username that this permission refers "
-"to, which may not contain the \":\" character. Any [reserved] information "
-"present must be ignored and is reserved for future use. All of [type], "
-"[id], and [reserved] must be valid UTF-8."
+"connection. Otherwise a user is allowed to access this connection if and "
+"only if they are in this list. Each entry is of the form \"[type]:[id]:"
+"[reserved]\"; for example, \"user:dcbw:blah\". At this time only the \"user"
+"\" [type] is allowed. Any other values are ignored and reserved for future "
+"use. [id] is the username that this permission refers to, which may not "
+"contain the \":\" character. Any [reserved] information present must be "
+"ignored and is reserved for future use. All of [type], [id], and [reserved] "
+"must be valid UTF-8."
msgstr ""
-#: ../clients/common/settings-docs.c.in:150
+#: ../clients/common/settings-docs.c.in:148
msgid ""
"FALSE if the connection can be modified using the provided settings "
"service's D-Bus interface with the right privileges, or TRUE if the "
"connection is read-only and cannot be modified."
msgstr ""
-#: ../clients/common/settings-docs.c.in:151
+#: ../clients/common/settings-docs.c.in:149
msgid ""
"List of connection UUIDs that should be activated when the base connection "
"itself is activated. Currently only VPN connections are supported."
msgstr ""
-#: ../clients/common/settings-docs.c.in:152
+#: ../clients/common/settings-docs.c.in:150
msgid ""
"Setting name of the device type of this slave's master connection (eg, \"bond"
"\"), or NULL if this connection is not a slave."
msgstr ""
-#: ../clients/common/settings-docs.c.in:153
+#: ../clients/common/settings-docs.c.in:151
msgid ""
"Token to generate stable IDs for the connection. The stable-id is used for "
"generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-"
@@ -6042,7 +5972,7 @@ msgid ""
"identical before performing dynamic substitutions."
msgstr ""
-#: ../clients/common/settings-docs.c.in:154
+#: ../clients/common/settings-docs.c.in:152
msgid ""
"The time, in seconds since the Unix Epoch, that the connection was last "
"_successfully_ fully activated. NetworkManager updates the connection "
@@ -6051,7 +5981,7 @@ msgid ""
"reading (changes to this property will not be preserved)."
msgstr ""
-#: ../clients/common/settings-docs.c.in:155
+#: ../clients/common/settings-docs.c.in:153
msgid ""
"Base type of the connection. For hardware-dependent connections, should "
"contain the setting name of the hardware-type specific setting (ie, \"802-3-"
@@ -6060,7 +5990,7 @@ msgid ""
"setting name of that setting type (ie, \"vpn\" or \"bridge\", etc)."
msgstr ""
-#: ../clients/common/settings-docs.c.in:156
+#: ../clients/common/settings-docs.c.in:154
msgid ""
"A universally unique identifier for the connection, for example generated "
"with libuuid. It should be assigned when the connection is created, and "
@@ -6072,7 +6002,7 @@ msgid ""
"contains only hexadecimal characters and \"-\")."
msgstr ""
-#: ../clients/common/settings-docs.c.in:157
+#: ../clients/common/settings-docs.c.in:155
msgid ""
"The trust level of a the connection. Free form case-insensitive string (for "
"example \"Home\", \"Work\", \"Public\"). NULL or unspecified zone means the "
@@ -6081,112 +6011,112 @@ msgid ""
"takes effect immediately."
msgstr ""
-#: ../clients/common/settings-docs.c.in:158
+#: ../clients/common/settings-docs.c.in:156
msgid ""
"Specifies the NMSettingDcbFlags for the DCB FCoE application. Flags may be "
"any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), "
"NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4)."
msgstr ""
-#: ../clients/common/settings-docs.c.in:159
+#: ../clients/common/settings-docs.c.in:157
msgid "The FCoE controller mode; either \"fabric\" (default) or \"vn2vn\"."
msgstr ""
-#: ../clients/common/settings-docs.c.in:160
+#: ../clients/common/settings-docs.c.in:158
msgid ""
"The highest User Priority (0 - 7) which FCoE frames should use, or -1 for "
"default priority. Only used when the \"app-fcoe-flags\" property includes "
"the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag."
msgstr ""
-#: ../clients/common/settings-docs.c.in:161
+#: ../clients/common/settings-docs.c.in:159
msgid ""
"Specifies the NMSettingDcbFlags for the DCB FIP application. Flags may be "
"any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), "
"NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4)."
msgstr ""
-#: ../clients/common/settings-docs.c.in:162
+#: ../clients/common/settings-docs.c.in:160
msgid ""
"The highest User Priority (0 - 7) which FIP frames should use, or -1 for "
"default priority. Only used when the \"app-fip-flags\" property includes "
"the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag."
msgstr ""
-#: ../clients/common/settings-docs.c.in:163
+#: ../clients/common/settings-docs.c.in:161
msgid ""
"Specifies the NMSettingDcbFlags for the DCB iSCSI application. Flags may be "
"any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), "
"NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4)."
msgstr ""
-#: ../clients/common/settings-docs.c.in:164
+#: ../clients/common/settings-docs.c.in:162
msgid ""
"The highest User Priority (0 - 7) which iSCSI frames should use, or -1 for "
"default priority. Only used when the \"app-iscsi-flags\" property includes "
"the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag."
msgstr ""
-#: ../clients/common/settings-docs.c.in:166
+#: ../clients/common/settings-docs.c.in:164
msgid ""
"An array of 8 uint values, where the array index corresponds to the User "
"Priority (0 - 7) and the value indicates the percentage of bandwidth of the "
"priority's assigned group that the priority may use. The sum of all "
"percentages for priorities which belong to the same group must total 100 "
-"percents."
+"percent."
msgstr ""
-#: ../clients/common/settings-docs.c.in:167
+#: ../clients/common/settings-docs.c.in:165
msgid ""
"An array of 8 boolean values, where the array index corresponds to the User "
"Priority (0 - 7) and the value indicates whether or not the corresponding "
"priority should transmit priority pause."
msgstr ""
-#: ../clients/common/settings-docs.c.in:168
+#: ../clients/common/settings-docs.c.in:166
msgid ""
"Specifies the NMSettingDcbFlags for DCB Priority Flow Control (PFC). Flags "
"may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), "
"NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4)."
msgstr ""
-#: ../clients/common/settings-docs.c.in:169
+#: ../clients/common/settings-docs.c.in:167
msgid ""
"An array of 8 uint values, where the array index corresponds to the Priority "
"Group ID (0 - 7) and the value indicates the percentage of link bandwidth "
"allocated to that group. Allowed values are 0 - 100, and the sum of all "
-"values must total 100 percents."
+"values must total 100 percent."
msgstr ""
-#: ../clients/common/settings-docs.c.in:170
+#: ../clients/common/settings-docs.c.in:168
msgid ""
"Specifies the NMSettingDcbFlags for DCB Priority Groups. Flags may be any "
"combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), "
"NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4)."
msgstr ""
-#: ../clients/common/settings-docs.c.in:171
+#: ../clients/common/settings-docs.c.in:169
msgid ""
"An array of 8 uint values, where the array index corresponds to the User "
"Priority (0 - 7) and the value indicates the Priority Group ID. Allowed "
"Priority Group ID values are 0 - 7 or 15 for the unrestricted group."
msgstr ""
-#: ../clients/common/settings-docs.c.in:172
+#: ../clients/common/settings-docs.c.in:170
msgid ""
"An array of 8 boolean values, where the array index corresponds to the User "
"Priority (0 - 7) and the value indicates whether or not the priority may use "
"all of the bandwidth allocated to its assigned group."
msgstr ""
-#: ../clients/common/settings-docs.c.in:173
+#: ../clients/common/settings-docs.c.in:171
msgid ""
"An array of 8 uint values, where the array index corresponds to the User "
"Priority (0 - 7) and the value indicates the traffic class (0 - 7) to which "
"the priority is mapped."
msgstr ""
-#: ../clients/common/settings-docs.c.in:176
+#: ../clients/common/settings-docs.c.in:174
msgid ""
"The GPRS Access Point Name specifying the APN used when establishing a data "
"session with the GSM-based network. The APN often determines how the user "
@@ -6197,20 +6127,20 @@ msgid ""
"14.9."
msgstr ""
-#: ../clients/common/settings-docs.c.in:177
+#: ../clients/common/settings-docs.c.in:175
msgid ""
"The device unique identifier (as given by the WWAN management service) which "
"this connection applies to. If given, the connection will only apply to the "
"specified device."
msgstr ""
-#: ../clients/common/settings-docs.c.in:178
+#: ../clients/common/settings-docs.c.in:176
msgid ""
"When TRUE, only connections to the home network will be allowed. Connections "
"to roaming networks will not be made."
msgstr ""
-#: ../clients/common/settings-docs.c.in:181
+#: ../clients/common/settings-docs.c.in:179
msgid ""
"The Network ID (GSM LAI format, ie MCC-MNC) to force specific network "
"registration. If the Network ID is specified, NetworkManager will attempt "
@@ -6219,7 +6149,7 @@ msgid ""
"the device is not otherwise possible."
msgstr ""
-#: ../clients/common/settings-docs.c.in:182
+#: ../clients/common/settings-docs.c.in:180
msgid ""
"Number to dial when establishing a PPP data session with the GSM-based "
"mobile broadband network. Many modems do not require PPP for connections to "
@@ -6227,14 +6157,14 @@ msgid ""
"NetworkManager to select the appropriate settings automatically."
msgstr ""
-#: ../clients/common/settings-docs.c.in:185
+#: ../clients/common/settings-docs.c.in:183
msgid ""
"If the SIM is locked with a PIN it must be unlocked before any other "
"operations are requested. Specify the PIN here to allow operation of the "
"device."
msgstr ""
-#: ../clients/common/settings-docs.c.in:187
+#: ../clients/common/settings-docs.c.in:185
msgid ""
"The SIM card unique identifier (as given by the WWAN management service) "
"which this connection applies to. If given, the connection will apply to "
@@ -6242,118 +6172,116 @@ msgid ""
"the given identifier."
msgstr ""
-#: ../clients/common/settings-docs.c.in:188
+#: ../clients/common/settings-docs.c.in:186
msgid ""
"A MCC/MNC string like \"310260\" or \"21601\" identifying the specific "
"mobile network operator which this connection applies to. If given, the "
"connection will apply to any device also allowed by \"device-id\" and \"sim-"
-"id\" which contains a SIM card provisioned by the given operator."
+"id\" which contains a SIM card provisioined by the given operator."
msgstr ""
-#: ../clients/common/settings-docs.c.in:190
+#: ../clients/common/settings-docs.c.in:188
msgid ""
"If specified, this connection will only apply to the IPoIB device whose "
"permanent MAC address matches. This property does not change the MAC address "
"of the device (i.e. MAC spoofing)."
msgstr ""
-#: ../clients/common/settings-docs.c.in:193
+#: ../clients/common/settings-docs.c.in:191
msgid ""
"The InfiniBand P_Key to use for this device. A value of -1 means to use the "
"default P_Key (aka \"the P_Key at index 0\"). Otherwise it is a 16-bit "
"unsigned integer, whose high bit is set if it is a \"full membership\" P_Key."
msgstr ""
-#: ../clients/common/settings-docs.c.in:194
+#: ../clients/common/settings-docs.c.in:192
msgid ""
"The interface name of the parent device of this device. Normally NULL, but "
"if the \"p_key\" property is set, then you must specify the base device by "
"setting either this property or \"mac-address\"."
msgstr ""
-#: ../clients/common/settings-docs.c.in:195
+#: ../clients/common/settings-docs.c.in:193
msgid ""
"The IP-over-InfiniBand transport mode. Either \"datagram\" or \"connected\"."
msgstr ""
-#: ../clients/common/settings-docs.c.in:196
+#: ../clients/common/settings-docs.c.in:194
msgid ""
"How many additional levels of encapsulation are permitted to be prepended to "
"packets. This property applies only to IPv6 tunnels."
msgstr ""
-#: ../clients/common/settings-docs.c.in:197
+#: ../clients/common/settings-docs.c.in:195
msgid ""
"The flow label to assign to tunnel packets. This property applies only to "
"IPv6 tunnels."
msgstr ""
-#: ../clients/common/settings-docs.c.in:198
+#: ../clients/common/settings-docs.c.in:196
msgid ""
"The key used for tunnel input packets; the property is valid only for "
"certain tunnel modes (GRE, IP6GRE). If empty, no key is used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:199
+#: ../clients/common/settings-docs.c.in:197
msgid ""
"The local endpoint of the tunnel; the value can be empty, otherwise it must "
"contain an IPv4 or IPv6 address."
msgstr ""
-#: ../clients/common/settings-docs.c.in:200
+#: ../clients/common/settings-docs.c.in:198
msgid ""
"The tunneling mode, for example NM_IP_TUNNEL_MODE_IPIP (1) or "
"NM_IP_TUNNEL_MODE_GRE (2)."
msgstr ""
-#: ../clients/common/settings-docs.c.in:201
-msgid ""
-"If non-zero, only transmit packets of the specified size or smaller, "
-"breaking larger packets up into multiple fragments."
+#: ../clients/common/settings-docs.c.in:199
+msgid "None"
msgstr ""
-#: ../clients/common/settings-docs.c.in:203
+#: ../clients/common/settings-docs.c.in:201
msgid ""
"The key used for tunnel output packets; the property is valid only for "
"certain tunnel modes (GRE, IP6GRE). If empty, no key is used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:204
+#: ../clients/common/settings-docs.c.in:202
msgid ""
"If given, specifies the parent interface name or parent connection UUID the "
"new device will be bound to so that tunneled packets will only be routed via "
"that interface."
msgstr ""
-#: ../clients/common/settings-docs.c.in:205
+#: ../clients/common/settings-docs.c.in:203
msgid "Whether to enable Path MTU Discovery on this tunnel."
msgstr ""
-#: ../clients/common/settings-docs.c.in:206
+#: ../clients/common/settings-docs.c.in:204
msgid ""
"The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6 "
"address."
msgstr ""
-#: ../clients/common/settings-docs.c.in:207
+#: ../clients/common/settings-docs.c.in:205
msgid ""
"The type of service (IPv4) or traffic class (IPv6) field to be set on "
"tunneled packets."
msgstr ""
-#: ../clients/common/settings-docs.c.in:208
+#: ../clients/common/settings-docs.c.in:206
msgid ""
"The TTL to assign to tunneled packets. 0 is a special value meaning that "
"packets inherit the TTL value."
msgstr ""
-#: ../clients/common/settings-docs.c.in:209
-#: ../clients/common/settings-docs.c.in:231
+#: ../clients/common/settings-docs.c.in:207
+#: ../clients/common/settings-docs.c.in:228
msgid "Array of IP addresses."
msgstr ""
-#: ../clients/common/settings-docs.c.in:210
-#: ../clients/common/settings-docs.c.in:232
+#: ../clients/common/settings-docs.c.in:208
+#: ../clients/common/settings-docs.c.in:229
msgid ""
"Timeout in milliseconds used to check for the presence of duplicate IP "
"addresses on the network. If an address conflict is detected, the "
@@ -6363,35 +6291,29 @@ msgid ""
"timeout in milliseconds."
msgstr ""
-#: ../clients/common/settings-docs.c.in:211
+#: ../clients/common/settings-docs.c.in:209
msgid ""
"A string sent to the DHCP server to identify the local machine which the "
-"DHCP server may use to customize the DHCP lease and options. When the "
-"property is a hex string ('aa:bb:cc') it is interpreted as a binary client "
-"ID, in which case the first byte is assumed to be the 'type' field as per "
-"RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e."
-"g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a "
-"MAC address). If the property is not a hex string it is considered as a non-"
-"hardware-address client ID and the 'type' field is set to 0."
+"DHCP server may use to customize the DHCP lease and options."
msgstr ""
-#: ../clients/common/settings-docs.c.in:212
+#: ../clients/common/settings-docs.c.in:210
msgid ""
"If the \"dhcp-send-hostname\" property is TRUE, then the specified FQDN will "
"be sent to the DHCP server when acquiring a lease. This property and \"dhcp-"
"hostname\" are mutually exclusive and cannot be set at the same time."
msgstr ""
-#: ../clients/common/settings-docs.c.in:213
-#: ../clients/common/settings-docs.c.in:233
+#: ../clients/common/settings-docs.c.in:211
+#: ../clients/common/settings-docs.c.in:230
msgid ""
"If the \"dhcp-send-hostname\" property is TRUE, then the specified name will "
"be sent to the DHCP server when acquiring a lease. This property and \"dhcp-"
"fqdn\" are mutually exclusive and cannot be set at the same time."
msgstr ""
-#: ../clients/common/settings-docs.c.in:214
-#: ../clients/common/settings-docs.c.in:234
+#: ../clients/common/settings-docs.c.in:212
+#: ../clients/common/settings-docs.c.in:231
msgid ""
"If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some "
"DHCP servers use this hostname to update DNS databases, essentially "
@@ -6400,26 +6322,26 @@ msgid ""
"of the computer is sent."
msgstr ""
-#: ../clients/common/settings-docs.c.in:215
-#: ../clients/common/settings-docs.c.in:235
+#: ../clients/common/settings-docs.c.in:213
+#: ../clients/common/settings-docs.c.in:232
msgid "A timeout for a DHCP transaction in seconds."
msgstr ""
-#: ../clients/common/settings-docs.c.in:216
-#: ../clients/common/settings-docs.c.in:236
+#: ../clients/common/settings-docs.c.in:214
+#: ../clients/common/settings-docs.c.in:233
msgid "Array of IP addresses of DNS servers."
msgstr ""
-#: ../clients/common/settings-docs.c.in:217
-#: ../clients/common/settings-docs.c.in:237
+#: ../clients/common/settings-docs.c.in:215
+#: ../clients/common/settings-docs.c.in:234
msgid ""
"Array of DNS options as described in man 5 resolv.conf. NULL means that the "
"options are unset and left at the default. In this case NetworkManager will "
"use default options. This is distinct from an empty list of properties."
msgstr ""
-#: ../clients/common/settings-docs.c.in:218
-#: ../clients/common/settings-docs.c.in:238
+#: ../clients/common/settings-docs.c.in:216
+#: ../clients/common/settings-docs.c.in:235
msgid ""
"Intra-connection DNS priority. The relative priority to be used when "
"determining the order of DNS servers in resolv.conf. A lower value means "
@@ -6437,20 +6359,20 @@ msgid ""
"priority value will be used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:219
-#: ../clients/common/settings-docs.c.in:239
+#: ../clients/common/settings-docs.c.in:217
+#: ../clients/common/settings-docs.c.in:236
msgid "Array of DNS search domains."
msgstr ""
-#: ../clients/common/settings-docs.c.in:220
-#: ../clients/common/settings-docs.c.in:240
+#: ../clients/common/settings-docs.c.in:218
+#: ../clients/common/settings-docs.c.in:237
msgid ""
"The gateway associated with this configuration. This is only meaningful if "
"\"addresses\" is also set."
msgstr ""
-#: ../clients/common/settings-docs.c.in:221
-#: ../clients/common/settings-docs.c.in:241
+#: ../clients/common/settings-docs.c.in:219
+#: ../clients/common/settings-docs.c.in:238
msgid ""
"When \"method\" is set to \"auto\" and this property to TRUE, automatically "
"configured nameservers and search domains are ignored and only nameservers "
@@ -6458,16 +6380,16 @@ msgid ""
"if any, are used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:222
-#: ../clients/common/settings-docs.c.in:242
+#: ../clients/common/settings-docs.c.in:220
+#: ../clients/common/settings-docs.c.in:239
msgid ""
"When \"method\" is set to \"auto\" and this property to TRUE, automatically "
"configured routes are ignored and only routes specified in the \"routes\" "
"property, if any, are used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:223
-#: ../clients/common/settings-docs.c.in:244
+#: ../clients/common/settings-docs.c.in:221
+#: ../clients/common/settings-docs.c.in:241
msgid ""
"If TRUE, allow overall network configuration to proceed even if the "
"configuration specified by this property times out. Note that at least one "
@@ -6477,8 +6399,8 @@ msgid ""
"if IPv4 configuration fails but IPv6 configuration completes successfully."
msgstr ""
-#: ../clients/common/settings-docs.c.in:224
-#: ../clients/common/settings-docs.c.in:245
+#: ../clients/common/settings-docs.c.in:222
+#: ../clients/common/settings-docs.c.in:242
msgid ""
"IP configuration method. NMSettingIP4Config and NMSettingIP6Config both "
"support \"auto\", \"manual\", and \"link-local\". See the subclass-specific "
@@ -6492,15 +6414,15 @@ msgid ""
"10.42.x.0/24 is chosen."
msgstr ""
-#: ../clients/common/settings-docs.c.in:226
-#: ../clients/common/settings-docs.c.in:247
+#: ../clients/common/settings-docs.c.in:224
+#: ../clients/common/settings-docs.c.in:244
msgid ""
"If TRUE, this connection will never be the default connection for this IP "
"type, meaning it will never be assigned the default route by NetworkManager."
msgstr ""
-#: ../clients/common/settings-docs.c.in:227
-#: ../clients/common/settings-docs.c.in:248
+#: ../clients/common/settings-docs.c.in:225
+#: ../clients/common/settings-docs.c.in:245
msgid ""
"The default metric for routes that don't explicitly specify a metric. The "
"default value -1 means that the metric is chosen automatically based on the "
@@ -6511,52 +6433,33 @@ msgid ""
"mean setting it to 1024. For IPv4, zero is a regular value for the metric."
msgstr ""
-#: ../clients/common/settings-docs.c.in:228
-#: ../clients/common/settings-docs.c.in:249
-msgid ""
-"Enable policy routing (source routing) and set the routing table used when "
-"adding routes. This affects all routes, including device-routes, IPv4LL, "
-"DHCP, SLAAC, default-routes and static routes. But note that static routes "
-"can individually overwrite the setting by explicitly specifying a non-zero "
-"routing table. If the table setting is left at zero, it is eligible to be "
-"overwritten via global configuration. If the property is zero even after "
-"applying the global configuration value, policy routing is disabled for the "
-"address family of this connection. Policy routing disabled means that "
-"NetworkManager will add all routes to the main table (except static routes "
-"that explicitly configure a different table). Additionally, NetworkManager "
-"will not delete any extraneous routes from tables except the main table. "
-"This is to preserve backward compatibility for users who manage routing "
-"tables outside of NetworkManager."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:229
-#: ../clients/common/settings-docs.c.in:250
+#: ../clients/common/settings-docs.c.in:226
+#: ../clients/common/settings-docs.c.in:246
msgid "Array of IP routes."
msgstr ""
-#: ../clients/common/settings-docs.c.in:230
+#: ../clients/common/settings-docs.c.in:227
msgid ""
"Configure method for creating the address for use with RFC4862 IPv6 "
-"Stateless Address Autoconfiguration. The permitted values are: "
-"NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64 (0) or "
-"NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY (1). If the property is "
-"set to EUI64, the addresses will be generated using the interface tokens "
-"derived from hardware address. This makes the host part of the address to "
-"stay constant, making it possible to track host's presence when it changes "
-"networks. The address changes when the interface hardware is replaced. The "
-"value of stable-privacy enables use of cryptographically secure hash of a "
-"secret host-specific key along with the connection's stable-id and the "
-"network address as specified by RFC7217. This makes it impossible to use the "
-"address track host's presence, and makes the address stable when the network "
-"interface hardware is replaced. On D-Bus, the absence of an addr-gen-mode "
-"setting equals enabling stable-privacy. For keyfile plugin, the absence of "
-"the setting on disk means EUI64 so that the property doesn't change on "
-"upgrade from older versions. Note that this setting is distinct from the "
-"Privacy Extensions as configured by \"ip6-privacy\" property and it does not "
-"affect the temporary addresses configured with this option."
+"Stateless Address Autoconfiguration. The permitted values are: \"eui64\", or "
+"\"stable-privacy\". If the property is set to \"eui64\", the addresses will "
+"be generated using the interface tokens derived from hardware address. This "
+"makes the host part of the address to stay constant, making it possible to "
+"track host's presence when it changes networks. The address changes when the "
+"interface hardware is replaced. The value of \"stable-privacy\" enables use "
+"of cryptographically secure hash of a secret host-specific key along with "
+"the connection's stable-id and the network address as specified by RFC7217. "
+"This makes it impossible to use the address track host's presence, and makes "
+"the address stable when the network interface hardware is replaced. On D-"
+"Bus, the absence of an addr-gen-mode setting equals enabling \"stable-privacy"
+"\". For keyfile plugin, the absence of the setting on disk means \"eui64\" "
+"so that the property doesn't change on upgrade from older versions. Note "
+"that this setting is distinct from the Privacy Extensions as configured by "
+"\"ip6-privacy\" property and it does not affect the temporary addresses "
+"configured with this option."
msgstr ""
-#: ../clients/common/settings-docs.c.in:243
+#: ../clients/common/settings-docs.c.in:240
msgid ""
"Configure IPv6 Privacy Extensions for SLAAC, described in RFC4941. If "
"enabled, it makes the kernel generate a temporary IPv6 address in addition "
@@ -6573,38 +6476,38 @@ msgid ""
"IPv6 addresses."
msgstr ""
-#: ../clients/common/settings-docs.c.in:251
+#: ../clients/common/settings-docs.c.in:247
msgid ""
"Configure the token for draft-chown-6man-tokenised-ipv6-identifiers-02 IPv6 "
"tokenized interface identifiers. Useful with eui64 addr-gen-mode."
msgstr ""
-#: ../clients/common/settings-docs.c.in:252
+#: ../clients/common/settings-docs.c.in:248
msgid "Whether the transmitted traffic must be encrypted."
msgstr ""
-#: ../clients/common/settings-docs.c.in:253
+#: ../clients/common/settings-docs.c.in:249
msgid ""
"The pre-shared CAK (Connectivity Association Key) for MACsec Key Agreement."
msgstr ""
-#: ../clients/common/settings-docs.c.in:254
+#: ../clients/common/settings-docs.c.in:250
msgid "Flags indicating how to handle the \"mka-cak\" property."
msgstr ""
-#: ../clients/common/settings-docs.c.in:255
+#: ../clients/common/settings-docs.c.in:251
msgid ""
"The pre-shared CKN (Connectivity-association Key Name) for MACsec Key "
"Agreement."
msgstr ""
-#: ../clients/common/settings-docs.c.in:256
+#: ../clients/common/settings-docs.c.in:252
msgid ""
"Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key "
"Agreement) is obtained."
msgstr ""
-#: ../clients/common/settings-docs.c.in:258
+#: ../clients/common/settings-docs.c.in:254
msgid ""
"If given, specifies the parent interface name or parent connection UUID from "
"which this MACSEC interface should be created. If this property is not "
@@ -6612,23 +6515,23 @@ msgid ""
"\"mac-address\" property."
msgstr ""
-#: ../clients/common/settings-docs.c.in:259
+#: ../clients/common/settings-docs.c.in:255
msgid ""
"The port component of the SCI (Secure Channel Identifier), between 1 and "
"65534."
msgstr ""
-#: ../clients/common/settings-docs.c.in:260
+#: ../clients/common/settings-docs.c.in:256
msgid "Specifies the validation mode for incoming frames."
msgstr ""
-#: ../clients/common/settings-docs.c.in:261
+#: ../clients/common/settings-docs.c.in:257
msgid ""
"The macvlan mode, which specifies the communication mechanism between "
"multiple macvlans on the same lower device."
msgstr ""
-#: ../clients/common/settings-docs.c.in:263
+#: ../clients/common/settings-docs.c.in:259
msgid ""
"If given, specifies the parent interface name or parent connection UUID from "
"which this MAC-VLAN interface should be created. If this property is not "
@@ -6636,82 +6539,29 @@ msgid ""
"\"mac-address\" property."
msgstr ""
-#: ../clients/common/settings-docs.c.in:264
+#: ../clients/common/settings-docs.c.in:260
msgid "Whether the interface should be put in promiscuous mode."
msgstr ""
-#: ../clients/common/settings-docs.c.in:265
+#: ../clients/common/settings-docs.c.in:261
msgid "Whether the interface should be a MACVTAP."
msgstr ""
-#: ../clients/common/settings-docs.c.in:266
-msgid "The bridge failure mode. One of \"secure\", \"standalone\" or empty."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:267
-msgid "Enable or disable multicast snooping."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:269
-msgid "Enable or disable RSTP."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:270
-msgid "Enable or disable STP."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:272
-msgid "The interface type. Either \"internal\", or empty."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:274
-msgid ""
-"Specifies the unicast destination IP address of a remote OpenVSwitch bridge "
-"port to connect to."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:275
-msgid "The time port must be inactive in order to be considered down."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:276
-msgid ""
-"Bonding mode. One of \"active-backup\", \"balance-slb\", or \"balance-tcp\"."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:277
-msgid "The time port must be active before it starts forwarding traffic."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:278
-msgid "LACP mode. One of \"active\", \"off\", or \"passive\"."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:280
-msgid "The VLAN tag in the range 0-4095."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:281
-msgid ""
-"The VLAN mode. One of \"access\", \"native-tagged\", \"native-untagged\", "
-"\"trunk\" or unset."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:282
+#: ../clients/common/settings-docs.c.in:262
msgid ""
"If non-zero, instruct pppd to set the serial port to the specified "
"baudrate. This value should normally be left as 0 to automatically choose "
"the speed."
msgstr ""
-#: ../clients/common/settings-docs.c.in:283
+#: ../clients/common/settings-docs.c.in:263
msgid ""
"If TRUE, specify that pppd should set the serial port to use hardware flow "
"control with RTS and CTS signals. This value should normally be set to "
"FALSE."
msgstr ""
-#: ../clients/common/settings-docs.c.in:284
+#: ../clients/common/settings-docs.c.in:264
msgid ""
"If non-zero, instruct pppd to presume the connection to the peer has failed "
"if the specified number of LCP echo-requests go unanswered by the peer. The "
@@ -6719,7 +6569,7 @@ msgid ""
"property is used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:285
+#: ../clients/common/settings-docs.c.in:265
msgid ""
"If non-zero, instruct pppd to send an LCP echo-request frame to the peer "
"every n seconds (where n is the specified value). Note that some PPP peers "
@@ -6727,90 +6577,82 @@ msgid ""
"autodetect this."
msgstr ""
-#: ../clients/common/settings-docs.c.in:286
+#: ../clients/common/settings-docs.c.in:266
msgid ""
"If TRUE, stateful MPPE is used. See pppd documentation for more information "
"on stateful MPPE."
msgstr ""
-#: ../clients/common/settings-docs.c.in:287
+#: ../clients/common/settings-docs.c.in:267
msgid ""
"If non-zero, instruct pppd to request that the peer send packets no larger "
"than the specified size. If non-zero, the MRU should be between 128 and "
"16384."
msgstr ""
-#: ../clients/common/settings-docs.c.in:288
+#: ../clients/common/settings-docs.c.in:268
msgid ""
"If non-zero, instruct pppd to send packets no larger than the specified size."
msgstr ""
-#: ../clients/common/settings-docs.c.in:290
+#: ../clients/common/settings-docs.c.in:270
msgid "If TRUE, Van Jacobsen TCP header compression will not be requested."
msgstr ""
-#: ../clients/common/settings-docs.c.in:291
+#: ../clients/common/settings-docs.c.in:271
msgid ""
"If TRUE, do not require the other side (usually the PPP server) to "
"authenticate itself to the client. If FALSE, require authentication from "
"the remote side. In almost all cases, this should be TRUE."
msgstr ""
-#: ../clients/common/settings-docs.c.in:292
+#: ../clients/common/settings-docs.c.in:272
msgid "If TRUE, BSD compression will not be requested."
msgstr ""
-#: ../clients/common/settings-docs.c.in:293
+#: ../clients/common/settings-docs.c.in:273
msgid "If TRUE, \"deflate\" compression will not be requested."
msgstr ""
-#: ../clients/common/settings-docs.c.in:294
+#: ../clients/common/settings-docs.c.in:274
msgid "If TRUE, the CHAP authentication method will not be used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:295
+#: ../clients/common/settings-docs.c.in:275
msgid "If TRUE, the EAP authentication method will not be used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:296
+#: ../clients/common/settings-docs.c.in:276
msgid "If TRUE, the MSCHAP authentication method will not be used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:297
+#: ../clients/common/settings-docs.c.in:277
msgid "If TRUE, the MSCHAPv2 authentication method will not be used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:298
+#: ../clients/common/settings-docs.c.in:278
msgid "If TRUE, the PAP authentication method will not be used."
msgstr ""
-#: ../clients/common/settings-docs.c.in:299
+#: ../clients/common/settings-docs.c.in:279
msgid ""
"If TRUE, MPPE (Microsoft Point-to-Point Encryption) will be required for the "
"PPP session. If either 64-bit or 128-bit MPPE is not available the session "
"will fail. Note that MPPE is not used on mobile broadband connections."
msgstr ""
-#: ../clients/common/settings-docs.c.in:300
+#: ../clients/common/settings-docs.c.in:280
msgid ""
"If TRUE, 128-bit MPPE (Microsoft Point-to-Point Encryption) will be required "
"for the PPP session, and the \"require-mppe\" property must also be set to "
"TRUE. If 128-bit MPPE is not available the session will fail."
msgstr ""
-#: ../clients/common/settings-docs.c.in:302
-msgid ""
-"If given, specifies the parent interface name on which this PPPoE connection "
-"should be created. If this property is not specified, the connection is "
-"activated on the interface specified in \"interface-name\" of "
-"NMSettingConnection."
-msgstr ""
-
-#: ../clients/common/settings-docs.c.in:303
+#: ../clients/common/settings-docs.c.in:282
msgid "Password used to authenticate with the PPPoE service."
msgstr ""
-#: ../clients/common/settings-docs.c.in:305
+#: ../clients/common/settings-docs.c.in:284
msgid ""
"If specified, instruct PPPoE to only initiate sessions with access "
"concentrators that provide the specified service. For most providers, this "
@@ -6818,53 +6660,53 @@ msgid ""
"concentrators or a specific service is known to be required."
msgstr ""
-#: ../clients/common/settings-docs.c.in:306
+#: ../clients/common/settings-docs.c.in:285
msgid "Username used to authenticate with the PPPoE service."
msgstr ""
-#: ../clients/common/settings-docs.c.in:307
+#: ../clients/common/settings-docs.c.in:286
msgid "Whether the proxy configuration is for browser only."
msgstr ""
-#: ../clients/common/settings-docs.c.in:308
+#: ../clients/common/settings-docs.c.in:287
msgid ""
"Method for proxy configuration, Default is NM_SETTING_PROXY_METHOD_NONE (0)"
msgstr ""
-#: ../clients/common/settings-docs.c.in:310
+#: ../clients/common/settings-docs.c.in:289
msgid "PAC script for the connection."
msgstr ""
-#: ../clients/common/settings-docs.c.in:311
+#: ../clients/common/settings-docs.c.in:290
msgid "PAC URL for obtaining PAC file."
msgstr ""
-#: ../clients/common/settings-docs.c.in:312
+#: ../clients/common/settings-docs.c.in:291
msgid ""
"Speed to use for communication over the serial port. Note that this value "
"usually has no effect for mobile broadband modems as they generally ignore "
"speed settings and use the highest available speed."
msgstr ""
-#: ../clients/common/settings-docs.c.in:313
+#: ../clients/common/settings-docs.c.in:292
msgid "Byte-width of the serial communication. The 8 in \"8n1\" for example."
msgstr ""
-#: ../clients/common/settings-docs.c.in:315
+#: ../clients/common/settings-docs.c.in:294
msgid "Parity setting of the serial port."
msgstr ""
-#: ../clients/common/settings-docs.c.in:316
+#: ../clients/common/settings-docs.c.in:295
msgid "Time to delay between each byte sent to the modem, in microseconds."
msgstr ""
-#: ../clients/common/settings-docs.c.in:317
+#: ../clients/common/settings-docs.c.in:296
msgid ""
"Number of stop bits for communication on the serial port. Either 1 or 2. "
"The 1 in \"8n1\" for example."
msgstr ""
-#: ../clients/common/settings-docs.c.in:318
+#: ../clients/common/settings-docs.c.in:297
msgid ""
"The JSON configuration for the team network interface. The property should "
"contain raw JSON configuration data suitable for teamd, because the value is "
@@ -6872,7 +6714,7 @@ msgid ""
"used. See man teamd.conf for the format details."
msgstr ""
-#: ../clients/common/settings-docs.c.in:320
+#: ../clients/common/settings-docs.c.in:299
msgid ""
"The JSON configuration for the team port. The property should contain raw "
"JSON configuration data suitable for teamd, because the value is passed "
@@ -6880,45 +6722,45 @@ msgid ""
"man teamd.conf for the format details."
msgstr ""
-#: ../clients/common/settings-docs.c.in:322
+#: ../clients/common/settings-docs.c.in:301
msgid ""
"The group ID which will own the device. If set to NULL everyone will be able "
"to use the device."
msgstr ""
-#: ../clients/common/settings-docs.c.in:323
+#: ../clients/common/settings-docs.c.in:302
msgid ""
"The operating mode of the virtual device. Allowed values are "
"NM_SETTING_TUN_MODE_TUN (1) to create a layer 3 device and "
"NM_SETTING_TUN_MODE_TAP (2) to create an Ethernet-like layer 2 one."
msgstr ""
-#: ../clients/common/settings-docs.c.in:324
+#: ../clients/common/settings-docs.c.in:303
msgid ""
"If the property is set to TRUE, the interface will support multiple file "
"descriptors (queues) to parallelize packet sending or receiving. Otherwise, "
"the interface will only support a single queue."
msgstr ""
-#: ../clients/common/settings-docs.c.in:326
+#: ../clients/common/settings-docs.c.in:305
msgid ""
"The user ID which will own the device. If set to NULL everyone will be able "
"to use the device."
msgstr ""
-#: ../clients/common/settings-docs.c.in:327
+#: ../clients/common/settings-docs.c.in:306
msgid ""
"If TRUE the interface will prepend a 4 byte header describing the physical "
"interface to the packets."
msgstr ""
-#: ../clients/common/settings-docs.c.in:328
+#: ../clients/common/settings-docs.c.in:307
msgid ""
"If TRUE the IFF_VNET_HDR the tunnel packets will include a virtio network "
"header."
msgstr ""
-#: ../clients/common/settings-docs.c.in:329
+#: ../clients/common/settings-docs.c.in:308
msgid ""
"A dictionary of key/value pairs with user data. This data is ignored by "
"NetworkManager and can be used at the users discretion. The keys only "
@@ -6926,14 +6768,14 @@ msgid ""
"up to a certain length."
msgstr ""
-#: ../clients/common/settings-docs.c.in:331
+#: ../clients/common/settings-docs.c.in:310
msgid ""
"For outgoing packets, a list of mappings from Linux SKB priorities to 802.1p "
"priorities. The mapping is given in the format \"from:to\" where both \"from"
"\" and \"to\" are unsigned integers, ie \"7:3\"."
msgstr ""
-#: ../clients/common/settings-docs.c.in:332
+#: ../clients/common/settings-docs.c.in:311
msgid ""
"One or more flags which control the behavior and features of the VLAN "
"interface. Flags include NM_VLAN_FLAG_REORDER_HEADERS (0x1) (reordering of "
@@ -6946,20 +6788,20 @@ msgid ""
"missing property on D-Bus is still considered as 0."
msgstr ""
-#: ../clients/common/settings-docs.c.in:333
+#: ../clients/common/settings-docs.c.in:312
msgid ""
"The VLAN identifier that the interface created by this connection should be "
"assigned. The valid range is from 0 to 4094, without the reserved id 4095."
msgstr ""
-#: ../clients/common/settings-docs.c.in:334
+#: ../clients/common/settings-docs.c.in:313
msgid ""
"For incoming packets, a list of mappings from 802.1p priorities to Linux SKB "
"priorities. The mapping is given in the format \"from:to\" where both \"from"
"\" and \"to\" are unsigned integers, ie \"7:3\"."
msgstr ""
-#: ../clients/common/settings-docs.c.in:336
+#: ../clients/common/settings-docs.c.in:315
msgid ""
"If given, specifies the parent interface name or parent connection UUID from "
"which this VLAN interface should be created. If this property is not "
@@ -6967,32 +6809,32 @@ msgid ""
"\"mac-address\" property."
msgstr ""
-#: ../clients/common/settings-docs.c.in:337
+#: ../clients/common/settings-docs.c.in:316
msgid ""
"Dictionary of key/value pairs of VPN plugin specific data. Both keys and "
"values must be strings."
msgstr ""
-#: ../clients/common/settings-docs.c.in:339
+#: ../clients/common/settings-docs.c.in:318
msgid ""
"If the VPN service supports persistence, and this property is TRUE, the VPN "
"will attempt to stay connected across link changes and outages, until "
"explicitly disconnected."
msgstr ""
-#: ../clients/common/settings-docs.c.in:340
+#: ../clients/common/settings-docs.c.in:319
msgid ""
"Dictionary of key/value pairs of VPN plugin specific secrets like passwords "
"or private keys. Both keys and values must be strings."
msgstr ""
-#: ../clients/common/settings-docs.c.in:341
+#: ../clients/common/settings-docs.c.in:320
msgid ""
"D-Bus service name of the VPN plugin that this setting uses to connect to "
"its network. i.e. org.freedesktop.NetworkManager.vpnc for the vpnc plugin."
msgstr ""
-#: ../clients/common/settings-docs.c.in:342
+#: ../clients/common/settings-docs.c.in:321
msgid ""
"Timeout for the VPN service to establish the connection. Some services may "
"take quite a long time to connect. Value of 0 means a default timeout, which "
@@ -7000,7 +6842,7 @@ msgid ""
"Values greater than zero mean timeout in seconds."
msgstr ""
-#: ../clients/common/settings-docs.c.in:343
+#: ../clients/common/settings-docs.c.in:322
msgid ""
"If the VPN connection requires a user name for authentication, that name "
"should be provided here. If the connection is available to more than one "
@@ -7010,93 +6852,93 @@ msgid ""
"connection."
msgstr ""
-#: ../clients/common/settings-docs.c.in:344
+#: ../clients/common/settings-docs.c.in:323
msgid "Specifies the lifetime in seconds of FDB entries learnt by the kernel."
msgstr ""
-#: ../clients/common/settings-docs.c.in:345
+#: ../clients/common/settings-docs.c.in:324
msgid ""
"Specifies the UDP destination port to communicate to the remote VXLAN tunnel "
"endpoint."
msgstr ""
-#: ../clients/common/settings-docs.c.in:346
+#: ../clients/common/settings-docs.c.in:325
msgid ""
"Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to use."
msgstr ""
-#: ../clients/common/settings-docs.c.in:347
+#: ../clients/common/settings-docs.c.in:326
msgid "Specifies whether netlink LL ADDR miss notifications are generated."
msgstr ""
-#: ../clients/common/settings-docs.c.in:348
+#: ../clients/common/settings-docs.c.in:327
msgid "Specifies whether netlink IP ADDR miss notifications are generated."
msgstr ""
-#: ../clients/common/settings-docs.c.in:349
+#: ../clients/common/settings-docs.c.in:328
msgid ""
"Specifies whether unknown source link layer addresses and IP addresses are "
"entered into the VXLAN device forwarding database."
msgstr ""
-#: ../clients/common/settings-docs.c.in:350
+#: ../clients/common/settings-docs.c.in:329
msgid ""
"Specifies the maximum number of FDB entries. A value of zero means that the "
"kernel will store unlimited entries."
msgstr ""
-#: ../clients/common/settings-docs.c.in:351
+#: ../clients/common/settings-docs.c.in:330
msgid "If given, specifies the source IP address to use in outgoing packets."
msgstr ""
-#: ../clients/common/settings-docs.c.in:353
+#: ../clients/common/settings-docs.c.in:332
msgid ""
"If given, specifies the parent interface name or parent connection UUID."
msgstr ""
-#: ../clients/common/settings-docs.c.in:354
+#: ../clients/common/settings-docs.c.in:333
msgid "Specifies whether ARP proxy is turned on."
msgstr ""
-#: ../clients/common/settings-docs.c.in:355
+#: ../clients/common/settings-docs.c.in:334
msgid ""
"Specifies the unicast destination IP address to use in outgoing packets when "
"the destination link layer address is not known in the VXLAN device "
"forwarding database, or the multicast IP address to join."
msgstr ""
-#: ../clients/common/settings-docs.c.in:356
+#: ../clients/common/settings-docs.c.in:335
msgid "Specifies whether route short circuit is turned on."
msgstr ""
-#: ../clients/common/settings-docs.c.in:357
+#: ../clients/common/settings-docs.c.in:336
msgid ""
"Specifies the maximum UDP source port to communicate to the remote VXLAN "
"tunnel endpoint."
msgstr ""
-#: ../clients/common/settings-docs.c.in:358
+#: ../clients/common/settings-docs.c.in:337
msgid ""
"Specifies the minimum UDP source port to communicate to the remote VXLAN "
"tunnel endpoint."
msgstr ""
-#: ../clients/common/settings-docs.c.in:359
+#: ../clients/common/settings-docs.c.in:338
msgid "Specifies the TOS value to use in outgoing packets."
msgstr ""
-#: ../clients/common/settings-docs.c.in:360
+#: ../clients/common/settings-docs.c.in:339
msgid "Specifies the time-to-live value to use in outgoing packets."
msgstr ""
-#: ../clients/common/settings-docs.c.in:361
+#: ../clients/common/settings-docs.c.in:340
msgid ""
"If specified, this connection will only apply to the WiMAX device whose MAC "
"address matches. This property does not change the MAC address of the device "
"(known as MAC spoofing). Deprecated: 1"
msgstr ""
-#: ../clients/common/settings-docs.c.in:363
+#: ../clients/common/settings-docs.c.in:342
msgid ""
"Network Service Provider (NSP) name of the WiMAX network this connection "
"should use. Deprecated: 1"
@@ -7179,7 +7021,7 @@ msgid "Could not re-read file: %s"
msgstr ""
#: ../clients/tui/nm-editor-utils.c:146 ../libnm-glib/nm-device.c:1821
-#: ../libnm/nm-device.c:1521
+#: ../libnm/nm-device.c:1517
msgid "Ethernet"
msgstr ""
@@ -7189,7 +7031,7 @@ msgid "Ethernet connection %d"
msgstr "حذف اتصال VPN \"%s\"؟"
#: ../clients/tui/nm-editor-utils.c:154 ../libnm-glib/nm-device.c:1823
-#: ../libnm/nm-device.c:1523
+#: ../libnm/nm-device.c:1519
msgid "Wi-Fi"
msgstr ""
@@ -7198,8 +7040,8 @@ msgstr ""
msgid "Wi-Fi connection %d"
msgstr ""
-#: ../clients/tui/nm-editor-utils.c:163 ../libnm-core/nm-connection.c:2114
-#: ../libnm-glib/nm-device.c:1833 ../libnm/nm-device.c:1539
+#: ../clients/tui/nm-editor-utils.c:163 ../libnm-core/nm-connection.c:1939
+#: ../libnm-glib/nm-device.c:1833 ../libnm/nm-device.c:1529
msgid "InfiniBand"
msgstr ""
@@ -7209,7 +7051,7 @@ msgid "InfiniBand connection %d"
msgstr "لا يمكن إضافة اتصال VPN"
#: ../clients/tui/nm-editor-utils.c:172 ../libnm-glib/nm-device.c:1831
-#: ../libnm/nm-device.c:1537
+#: ../libnm/nm-device.c:1527
msgid "Mobile Broadband"
msgstr ""
@@ -7227,10 +7069,10 @@ msgstr ""
msgid "DSL connection %d"
msgstr "حذف اتصال VPN \"%s\"؟"
-#: ../clients/tui/nm-editor-utils.c:190 ../libnm-core/nm-connection.c:2106
+#: ../clients/tui/nm-editor-utils.c:190 ../libnm-core/nm-connection.c:1931
#: ../libnm-glib/nm-device.c:1835 ../libnm-util/nm-connection.c:1626
-#: ../libnm/nm-device.c:1541
-#: ../src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:4504
+#: ../libnm/nm-device.c:1531
+#: ../src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:4476
msgid "Bond"
msgstr ""
@@ -7239,10 +7081,10 @@ msgstr ""
msgid "Bond connection %d"
msgstr "إتّصالات VPN"
-#: ../clients/tui/nm-editor-utils.c:199 ../libnm-core/nm-connection.c:2110
+#: ../clients/tui/nm-editor-utils.c:199 ../libnm-core/nm-connection.c:1935
#: ../libnm-glib/nm-device.c:1839 ../libnm-util/nm-connection.c:1630
-#: ../libnm/nm-device.c:1545
-#: ../src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:4797
+#: ../libnm/nm-device.c:1535
+#: ../src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:4766
msgid "Bridge"
msgstr ""
@@ -7251,10 +7093,10 @@ msgstr ""
msgid "Bridge connection %d"
msgstr ""
-#: ../clients/tui/nm-editor-utils.c:208 ../libnm-core/nm-connection.c:2108
+#: ../clients/tui/nm-editor-utils.c:208 ../libnm-core/nm-connection.c:1933
#: ../libnm-glib/nm-device.c:1837 ../libnm-util/nm-connection.c:1628
-#: ../libnm/nm-device.c:1543
-#: ../src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:4607
+#: ../libnm/nm-device.c:1533
+#: ../src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:4579
msgid "Team"
msgstr ""
@@ -7264,8 +7106,8 @@ msgid "Team connection %d"
msgstr "حذف اتصال VPN \"%s\"؟"
#: ../clients/tui/nm-editor-utils.c:217 ../clients/tui/nmt-page-vlan.c:82
-#: ../libnm-core/nm-connection.c:2112 ../libnm-glib/nm-device.c:1841
-#: ../libnm-util/nm-connection.c:1632 ../libnm/nm-device.c:1547
+#: ../libnm-core/nm-connection.c:1937 ../libnm-glib/nm-device.c:1841
+#: ../libnm-util/nm-connection.c:1632 ../libnm/nm-device.c:1537
msgid "VLAN"
msgstr ""
@@ -7418,7 +7260,7 @@ msgid "Slaves"
msgstr ""
#: ../clients/tui/nmt-page-bond.c:375 ../clients/tui/nmt-page-ip-tunnel.c:148
-#: ../clients/tui/nmt-page-wifi.c:218
+#: ../clients/tui/nmt-page-wifi.c:219
msgid "Mode"
msgstr ""
@@ -7453,7 +7295,7 @@ msgid "ARP targets"
msgstr ""
#: ../clients/tui/nmt-page-bond.c:428 ../clients/tui/nmt-page-ethernet.c:77
-#: ../clients/tui/nmt-page-vlan.c:110 ../clients/tui/nmt-page-wifi.c:352
+#: ../clients/tui/nmt-page-vlan.c:110 ../clients/tui/nmt-page-wifi.c:353
msgid "Cloned MAC address"
msgstr ""
@@ -7507,10 +7349,6 @@ msgstr ""
msgid "Max age"
msgstr ""
-#: ../clients/tui/nmt-page-bridge.c:154
-msgid "Group forward mask"
-msgstr ""
-
#: ../clients/tui/nmt-page-ethernet.c:70
msgid "ETHERNET"
msgstr ""
@@ -7518,7 +7356,7 @@ msgstr ""
#: ../clients/tui/nmt-page-ethernet.c:83
#: ../clients/tui/nmt-page-infiniband.c:94
#: ../clients/tui/nmt-page-ip-tunnel.c:186 ../clients/tui/nmt-page-vlan.c:116
-#: ../clients/tui/nmt-page-wifi.c:358
+#: ../clients/tui/nmt-page-wifi.c:359
msgid "MTU"
msgstr ""
@@ -7600,11 +7438,7 @@ msgstr ""
msgid "Ignore automatically obtained routes"
msgstr ""
-#: ../clients/tui/nmt-page-ip4.c:185 ../clients/tui/nmt-page-ip6.c:183
-msgid "Ignore automatically obtained DNS parameters"
-msgstr ""
-
-#: ../clients/tui/nmt-page-ip4.c:193
+#: ../clients/tui/nmt-page-ip4.c:187
msgid "Require IPv4 addressing for this connection"
msgstr ""
@@ -7620,7 +7454,7 @@ msgstr ""
msgid "IPv6 CONFIGURATION"
msgstr ""
-#: ../clients/tui/nmt-page-ip6.c:191
+#: ../clients/tui/nmt-page-ip6.c:185
msgid "Require IPv6 addressing for this connection"
msgstr ""
@@ -7841,39 +7675,39 @@ msgstr ""
msgid "Shared Key"
msgstr ""
-#: ../clients/tui/nmt-page-wifi.c:202
+#: ../clients/tui/nmt-page-wifi.c:203
msgid "WI-FI"
msgstr ""
-#: ../clients/tui/nmt-page-wifi.c:244
+#: ../clients/tui/nmt-page-wifi.c:245
msgid "Channel"
msgstr ""
-#: ../clients/tui/nmt-page-wifi.c:249
+#: ../clients/tui/nmt-page-wifi.c:250
msgid "Security"
msgstr ""
#. "wpa-enterprise"
#. FIXME
-#: ../clients/tui/nmt-page-wifi.c:270
+#: ../clients/tui/nmt-page-wifi.c:271
msgid "(No support for wpa-enterprise yet...)"
msgstr ""
-#: ../clients/tui/nmt-page-wifi.c:280 ../clients/tui/nmt-page-wifi.c:299
+#: ../clients/tui/nmt-page-wifi.c:281 ../clients/tui/nmt-page-wifi.c:300
msgid "WEP index"
msgstr ""
-#: ../clients/tui/nmt-page-wifi.c:288 ../clients/tui/nmt-page-wifi.c:307
+#: ../clients/tui/nmt-page-wifi.c:289 ../clients/tui/nmt-page-wifi.c:308
msgid "Authentication"
msgstr ""
#. "dynamic-wep"
#. FIXME
-#: ../clients/tui/nmt-page-wifi.c:313
+#: ../clients/tui/nmt-page-wifi.c:314
msgid "(No support for dynamic-wep yet...)"
msgstr ""
-#: ../clients/tui/nmt-page-wifi.c:346
+#: ../clients/tui/nmt-page-wifi.c:347
msgid "BSSID"
msgstr ""
@@ -7917,65 +7751,64 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: ../clients/tui/nmtui-connect.c:55
+#: ../clients/tui/nmtui-connect.c:54
msgid ""
"openconnect will be run to authenticate.\n"
"It will return to nmtui when completed."
msgstr ""
-#: ../clients/tui/nmtui-connect.c:69
+#: ../clients/tui/nmtui-connect.c:68
#, c-format
msgid "Error: openconnect failed: %s"
msgstr ""
-#: ../clients/tui/nmtui-connect.c:76
+#: ../clients/tui/nmtui-connect.c:75
#, c-format
msgid "openconnect failed with status %d"
msgstr ""
-#: ../clients/tui/nmtui-connect.c:80
+#: ../clients/tui/nmtui-connect.c:79
#, c-format
msgid "openconnect failed with signal %d"
msgstr ""
-#: ../clients/tui/nmtui-connect.c:186
-#, c-format
-msgid "Activation failed: %s"
+#: ../clients/tui/nmtui-connect.c:178
+msgid "Activation failed"
msgstr ""
-#: ../clients/tui/nmtui-connect.c:257
+#: ../clients/tui/nmtui-connect.c:233
#, fuzzy
msgid "Connecting..."
msgstr "إتّصالات VPN"
-#: ../clients/tui/nmtui-connect.c:295 ../clients/tui/nmtui-connect.c:332
+#: ../clients/tui/nmtui-connect.c:271 ../clients/tui/nmtui-connect.c:302
#, c-format
msgid "Could not activate connection: %s"
msgstr ""
-#: ../clients/tui/nmtui-connect.c:394 ../clients/tui/nmtui-connect.c:443
+#: ../clients/tui/nmtui-connect.c:362 ../clients/tui/nmtui-connect.c:411
msgid "Activate"
msgstr ""
-#: ../clients/tui/nmtui-connect.c:396
+#: ../clients/tui/nmtui-connect.c:364
msgid "Deactivate"
msgstr ""
-#: ../clients/tui/nmtui-connect.c:448 ../clients/tui/nmtui-edit.c:120
+#: ../clients/tui/nmtui-connect.c:416 ../clients/tui/nmtui-edit.c:120
#: ../clients/tui/nmtui.c:130
msgid "Quit"
msgstr ""
-#: ../clients/tui/nmtui-connect.c:448 ../clients/tui/nmtui-edit.c:120
+#: ../clients/tui/nmtui-connect.c:416 ../clients/tui/nmtui-edit.c:120
msgid "Back"
msgstr ""
-#: ../clients/tui/nmtui-connect.c:471
+#: ../clients/tui/nmtui-connect.c:439
#, fuzzy, c-format
msgid "No such connection '%s'"
msgstr "إتّصالات VPN"
-#: ../clients/tui/nmtui-connect.c:473
+#: ../clients/tui/nmtui-connect.c:441
msgid "Connection is already active"
msgstr ""
@@ -8362,56 +8195,54 @@ msgstr ""
msgid "Could not generate random data."
msgstr ""
-#: ../libnm-core/nm-connection.c:249
+#: ../libnm-core/nm-connection.c:229
msgid "wrong type; should be a list of strings."
msgstr ""
-#: ../libnm-core/nm-connection.c:319
+#: ../libnm-core/nm-connection.c:299
msgid "unknown setting name"
msgstr ""
-#: ../libnm-core/nm-connection.c:331
+#: ../libnm-core/nm-connection.c:311
msgid "duplicate setting name"
msgstr ""
-#: ../libnm-core/nm-connection.c:1233
+#: ../libnm-core/nm-connection.c:1080
msgid "setting not found"
msgstr ""
-#: ../libnm-core/nm-connection.c:1300
+#: ../libnm-core/nm-connection.c:1146
msgid "setting not allowed in slave connection"
msgstr ""
-#: ../libnm-core/nm-connection.c:1316
+#: ../libnm-core/nm-connection.c:1162
msgid "setting is required for non-slave connections"
msgstr ""
-#: ../libnm-core/nm-connection.c:1412
+#: ../libnm-core/nm-connection.c:1257
msgid "Unexpected failure to verify the connection"
msgstr ""
-#: ../libnm-core/nm-connection.c:1454
+#: ../libnm-core/nm-connection.c:1296
msgid "Unexpected failure to normalize the connection"
msgstr ""
-#: ../libnm-core/nm-connection.c:1973 ../libnm-core/nm-setting-8021x.c:2881
-#: ../libnm-core/nm-setting-8021x.c:2898 ../libnm-core/nm-setting-8021x.c:2929
-#: ../libnm-core/nm-setting-8021x.c:2946 ../libnm-core/nm-setting-8021x.c:2988
-#: ../libnm-core/nm-setting-8021x.c:3000 ../libnm-core/nm-setting-8021x.c:3018
-#: ../libnm-core/nm-setting-8021x.c:3030 ../libnm-core/nm-setting-8021x.c:3054
-#: ../libnm-core/nm-setting-8021x.c:3235 ../libnm-core/nm-setting-adsl.c:189
-#: ../libnm-core/nm-setting-bluetooth.c:138
-#: ../libnm-core/nm-setting-bluetooth.c:196
-#: ../libnm-core/nm-setting-bluetooth.c:210 ../libnm-core/nm-setting-cdma.c:159
-#: ../libnm-core/nm-setting-connection.c:894
-#: ../libnm-core/nm-setting-connection.c:937
-#: ../libnm-core/nm-setting-connection.c:1066
-#: ../libnm-core/nm-setting-ip-config.c:2513
+#: ../libnm-core/nm-connection.c:1797 ../libnm-core/nm-setting-8021x.c:2876
+#: ../libnm-core/nm-setting-8021x.c:2893 ../libnm-core/nm-setting-8021x.c:2924
+#: ../libnm-core/nm-setting-8021x.c:2941 ../libnm-core/nm-setting-8021x.c:2983
+#: ../libnm-core/nm-setting-8021x.c:2995 ../libnm-core/nm-setting-8021x.c:3013
+#: ../libnm-core/nm-setting-8021x.c:3025 ../libnm-core/nm-setting-8021x.c:3049
+#: ../libnm-core/nm-setting-8021x.c:3230 ../libnm-core/nm-setting-adsl.c:189
+#: ../libnm-core/nm-setting-bluetooth.c:120
+#: ../libnm-core/nm-setting-bluetooth.c:138 ../libnm-core/nm-setting-cdma.c:159
+#: ../libnm-core/nm-setting-connection.c:871
+#: ../libnm-core/nm-setting-connection.c:912
+#: ../libnm-core/nm-setting-connection.c:1026
+#: ../libnm-core/nm-setting-ip-config.c:2409
#: ../libnm-core/nm-setting-ip-tunnel.c:352
#: ../libnm-core/nm-setting-olpc-mesh.c:120
-#: ../libnm-core/nm-setting-ovs-patch.c:95 ../libnm-core/nm-setting-pppoe.c:161
-#: ../libnm-core/nm-setting-vpn.c:419 ../libnm-core/nm-setting-vxlan.c:360
-#: ../libnm-core/nm-setting-wimax.c:126
+#: ../libnm-core/nm-setting-pppoe.c:142 ../libnm-core/nm-setting-vpn.c:419
+#: ../libnm-core/nm-setting-vxlan.c:360 ../libnm-core/nm-setting-wimax.c:126
#: ../libnm-core/nm-setting-wireless-security.c:900
#: ../libnm-core/nm-setting-wireless.c:750 ../libnm-util/nm-setting.c:1357
#: ../libnm-util/nm-setting.c:1376 ../libnm-util/nm-setting.c:1394
@@ -8436,7 +8267,7 @@ msgstr ""
msgid "property is missing"
msgstr ""
-#: ../libnm-core/nm-connection.c:2117
+#: ../libnm-core/nm-connection.c:1942
#, fuzzy
msgid "IP Tunnel"
msgstr "أضف اتصال VPN جديد"
@@ -8446,165 +8277,165 @@ msgstr "أضف اتصال VPN جديد"
msgid "Method returned type '%s', but expected '%s'"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:143
+#: ../libnm-core/nm-keyfile-reader.c:144
msgid "ignoring missing number"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:151
+#: ../libnm-core/nm-keyfile-reader.c:153
#, c-format
msgid "ignoring invalid number '%s'"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:172
+#: ../libnm-core/nm-keyfile-reader.c:173
#, c-format
msgid "ignoring invalid %s address: %s"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:214
+#: ../libnm-core/nm-keyfile-reader.c:213
#, c-format
msgid "ignoring invalid gateway '%s' for %s route"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:235
+#: ../libnm-core/nm-keyfile-reader.c:233
#, c-format
msgid "ignoring invalid %s route: %s"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:361
+#: ../libnm-core/nm-keyfile-reader.c:351
#, c-format
msgid "unexpected character '%c' for address %s: '%s' (position %td)"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:371
+#: ../libnm-core/nm-keyfile-reader.c:361
#, c-format
msgid "unexpected character '%c' for %s: '%s' (position %td)"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:380
+#: ../libnm-core/nm-keyfile-reader.c:370
#, c-format
msgid "unexpected character '%c' in prefix length for %s: '%s' (position %td)"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:391
+#: ../libnm-core/nm-keyfile-reader.c:381
#, c-format
msgid "garbage at the end of value %s: '%s'"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:397
+#: ../libnm-core/nm-keyfile-reader.c:387
#, c-format
msgid "deprecated semicolon at the end of value %s: '%s'"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:412
+#: ../libnm-core/nm-keyfile-reader.c:402
#, c-format
msgid "invalid prefix length for %s '%s', defaulting to %d"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:419
+#: ../libnm-core/nm-keyfile-reader.c:409
#, c-format
msgid "missing prefix length for %s '%s', defaulting to %d"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:553
+#: ../libnm-core/nm-keyfile-reader.c:543
#, c-format
msgid "ignoring invalid DNS server IPv4 address '%s'"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:592
+#: ../libnm-core/nm-keyfile-reader.c:582
#, c-format
msgid "ignoring invalid DNS server IPv6 address '%s'"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:686 ../libnm-core/nm-keyfile-reader.c:1613
+#: ../libnm-core/nm-keyfile-reader.c:676 ../libnm-core/nm-keyfile-reader.c:1603
#, c-format
msgid "ignoring invalid byte element '%d' (not between 0 and 255 inclusive)"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:697
+#: ../libnm-core/nm-keyfile-reader.c:687
msgid "ignoring invalid MAC address"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:934
+#: ../libnm-core/nm-keyfile-reader.c:924
msgid "ignoring invalid SSID"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:950
+#: ../libnm-core/nm-keyfile-reader.c:940
msgid "ignoring invalid raw password"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1025
-#: ../libnm-core/nm-keyfile-reader.c:1201
+#: ../libnm-core/nm-keyfile-reader.c:1015
+#: ../libnm-core/nm-keyfile-reader.c:1191
#, c-format
msgid "certificate or key file '%s' does not exist"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1030
+#: ../libnm-core/nm-keyfile-reader.c:1020
#, c-format
msgid "invalid key/cert value path \"%s\""
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1040
+#: ../libnm-core/nm-keyfile-reader.c:1030
#, c-format
msgid "invalid PKCS#11 URI \"%s\""
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1078
+#: ../libnm-core/nm-keyfile-reader.c:1068
msgid "invalid key/cert value data:;base64, is not base64"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1091
+#: ../libnm-core/nm-keyfile-reader.c:1081
msgid "invalid key/cert value data:;base64,file://"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1238
+#: ../libnm-core/nm-keyfile-reader.c:1228
msgid "invalid key/cert value is not a valid blob"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1243
+#: ../libnm-core/nm-keyfile-reader.c:1233
msgid "invalid key/cert value"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1290
+#: ../libnm-core/nm-keyfile-reader.c:1280
#, c-format
msgid "invalid parity value '%s'"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1308
+#: ../libnm-core/nm-keyfile-reader.c:1298
#, c-format
msgid "ignoring invalid team configuration: %s"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1514
+#: ../libnm-core/nm-keyfile-reader.c:1504
#, fuzzy, c-format
msgid "error loading setting value: %s"
msgstr "خطأ في قراءة رسالة نتلينك: %s"
-#: ../libnm-core/nm-keyfile-reader.c:1546
+#: ../libnm-core/nm-keyfile-reader.c:1536
#, c-format
msgid "invalid negative value (%i)"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1567
+#: ../libnm-core/nm-keyfile-reader.c:1557
#, c-format
msgid "invalid char value (%i)"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1590
+#: ../libnm-core/nm-keyfile-reader.c:1580
#, c-format
msgid "invalid int64 value (%s)"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1649
+#: ../libnm-core/nm-keyfile-reader.c:1639
#, c-format
msgid "too large FLAGS property '%s' (%llu)"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1662
+#: ../libnm-core/nm-keyfile-reader.c:1652
#, c-format
msgid "unhandled setting property type '%s'"
msgstr ""
-#: ../libnm-core/nm-keyfile-reader.c:1693
+#: ../libnm-core/nm-keyfile-reader.c:1683
#, c-format
msgid "invalid setting name '%s'"
msgstr ""
@@ -8647,24 +8478,24 @@ msgstr ""
msgid "invalid phase2 private key"
msgstr ""
-#: ../libnm-core/nm-setting-8021x.c:2888 ../libnm-core/nm-setting-8021x.c:2905
-#: ../libnm-core/nm-setting-8021x.c:2936 ../libnm-core/nm-setting-8021x.c:2953
-#: ../libnm-core/nm-setting-8021x.c:2994 ../libnm-core/nm-setting-8021x.c:3006
-#: ../libnm-core/nm-setting-8021x.c:3024 ../libnm-core/nm-setting-8021x.c:3036
-#: ../libnm-core/nm-setting-8021x.c:3061 ../libnm-core/nm-setting-adsl.c:196
+#: ../libnm-core/nm-setting-8021x.c:2883 ../libnm-core/nm-setting-8021x.c:2900
+#: ../libnm-core/nm-setting-8021x.c:2931 ../libnm-core/nm-setting-8021x.c:2948
+#: ../libnm-core/nm-setting-8021x.c:2989 ../libnm-core/nm-setting-8021x.c:3001
+#: ../libnm-core/nm-setting-8021x.c:3019 ../libnm-core/nm-setting-8021x.c:3031
+#: ../libnm-core/nm-setting-8021x.c:3056 ../libnm-core/nm-setting-adsl.c:196
#: ../libnm-core/nm-setting-cdma.c:166 ../libnm-core/nm-setting-cdma.c:175
-#: ../libnm-core/nm-setting-connection.c:901
-#: ../libnm-core/nm-setting-connection.c:949 ../libnm-core/nm-setting-gsm.c:299
+#: ../libnm-core/nm-setting-connection.c:878
+#: ../libnm-core/nm-setting-connection.c:923 ../libnm-core/nm-setting-gsm.c:299
#: ../libnm-core/nm-setting-gsm.c:356 ../libnm-core/nm-setting-gsm.c:393
-#: ../libnm-core/nm-setting-gsm.c:402 ../libnm-core/nm-setting-ip-config.c:2520
+#: ../libnm-core/nm-setting-gsm.c:402 ../libnm-core/nm-setting-ip-config.c:2416
#: ../libnm-core/nm-setting-ip4-config.c:198
#: ../libnm-core/nm-setting-ip4-config.c:205
-#: ../libnm-core/nm-setting-pppoe.c:168 ../libnm-core/nm-setting-pppoe.c:177
+#: ../libnm-core/nm-setting-pppoe.c:149 ../libnm-core/nm-setting-pppoe.c:158
#: ../libnm-core/nm-setting-vpn.c:428 ../libnm-core/nm-setting-vpn.c:438
#: ../libnm-core/nm-setting-wimax.c:135
#: ../libnm-core/nm-setting-wireless-security.c:930
#: ../libnm-core/nm-setting-wireless-security.c:954
-#: ../libnm-core/nm-setting.c:1118 ../libnm-util/nm-setting-8021x.c:2332
+#: ../libnm-core/nm-setting.c:1135 ../libnm-util/nm-setting-8021x.c:2332
#: ../libnm-util/nm-setting-8021x.c:2349 ../libnm-util/nm-setting-8021x.c:2390
#: ../libnm-util/nm-setting-8021x.c:2407 ../libnm-util/nm-setting-8021x.c:2458
#: ../libnm-util/nm-setting-8021x.c:2470 ../libnm-util/nm-setting-8021x.c:2488
@@ -8683,25 +8514,25 @@ msgstr ""
msgid "property is empty"
msgstr ""
-#: ../libnm-core/nm-setting-8021x.c:2918 ../libnm-core/nm-setting-8021x.c:2966
+#: ../libnm-core/nm-setting-8021x.c:2913 ../libnm-core/nm-setting-8021x.c:2961
#: ../libnm-util/nm-setting-8021x.c:2360 ../libnm-util/nm-setting-8021x.c:2372
#: ../libnm-util/nm-setting-8021x.c:2418 ../libnm-util/nm-setting-8021x.c:2430
#, c-format
msgid "has to match '%s' property for PKCS#12"
msgstr ""
-#: ../libnm-core/nm-setting-8021x.c:3197
+#: ../libnm-core/nm-setting-8021x.c:3192
#, c-format
msgid "certificate is invalid: %s"
msgstr ""
-#: ../libnm-core/nm-setting-8021x.c:3207
+#: ../libnm-core/nm-setting-8021x.c:3202
#, c-format
msgid "password is not supported when certificate is not on a PKCS#11 token"
msgstr ""
-#: ../libnm-core/nm-setting-8021x.c:3244
-#: ../libnm-core/nm-setting-bluetooth.c:123
+#: ../libnm-core/nm-setting-8021x.c:3239
+#: ../libnm-core/nm-setting-bluetooth.c:129
#: ../libnm-core/nm-setting-infiniband.c:192
#: ../libnm-core/nm-setting-infiniband.c:207
#: ../libnm-core/nm-setting-ip4-config.c:189
@@ -8743,10 +8574,10 @@ msgstr ""
msgid "property is invalid"
msgstr ""
-#: ../libnm-core/nm-setting-8021x.c:3269 ../libnm-core/nm-setting-8021x.c:3279
-#: ../libnm-core/nm-setting-8021x.c:3289 ../libnm-core/nm-setting-8021x.c:3308
-#: ../libnm-core/nm-setting-8021x.c:3318 ../libnm-core/nm-setting-adsl.c:208
-#: ../libnm-core/nm-setting-adsl.c:220 ../libnm-core/nm-setting-bluetooth.c:151
+#: ../libnm-core/nm-setting-8021x.c:3264 ../libnm-core/nm-setting-8021x.c:3274
+#: ../libnm-core/nm-setting-8021x.c:3284 ../libnm-core/nm-setting-8021x.c:3303
+#: ../libnm-core/nm-setting-8021x.c:3313 ../libnm-core/nm-setting-adsl.c:208
+#: ../libnm-core/nm-setting-adsl.c:220 ../libnm-core/nm-setting-bluetooth.c:146
#: ../libnm-core/nm-setting-wireless-security.c:909
#: ../libnm-util/nm-setting-8021x.c:2714 ../libnm-util/nm-setting-8021x.c:2724
#: ../libnm-util/nm-setting-8021x.c:2734 ../libnm-util/nm-setting-8021x.c:2744
@@ -8757,110 +8588,95 @@ msgstr ""
msgid "'%s' is not a valid value for the property"
msgstr ""
-#: ../libnm-core/nm-setting-8021x.c:3299
+#: ../libnm-core/nm-setting-8021x.c:3294
msgid "invalid auth flags"
msgstr ""
-#: ../libnm-core/nm-setting-bluetooth.c:173
+#: ../libnm-core/nm-setting-bluetooth.c:168
#, c-format
msgid "'%s' connection requires '%s' or '%s' setting"
msgstr ""
-#: ../libnm-core/nm-setting-bluetooth.c:219
-#, c-format
-msgid "'%s' connection requires '%s' setting"
-msgstr ""
-
-#: ../libnm-core/nm-setting-bond.c:568 ../libnm-util/nm-setting-bond.c:517
+#: ../libnm-core/nm-setting-bond.c:552 ../libnm-util/nm-setting-bond.c:502
#, c-format
msgid "invalid option '%s' or its value '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:593 ../libnm-util/nm-setting-bond.c:536
+#: ../libnm-core/nm-setting-bond.c:577 ../libnm-util/nm-setting-bond.c:521
#, c-format
msgid "only one of '%s' and '%s' can be set"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:606 ../libnm-util/nm-setting-bond.c:547
+#: ../libnm-core/nm-setting-bond.c:590 ../libnm-util/nm-setting-bond.c:532
#, c-format
msgid "mandatory option '%s' is missing"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:616 ../libnm-util/nm-setting-bond.c:556
+#: ../libnm-core/nm-setting-bond.c:600 ../libnm-util/nm-setting-bond.c:541
#, c-format
msgid "'%s' is not a valid value for '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:630 ../libnm-util/nm-setting-bond.c:569
+#: ../libnm-core/nm-setting-bond.c:614 ../libnm-util/nm-setting-bond.c:554
#, c-format
msgid "'%s=%s' is incompatible with '%s > 0'"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:645
+#: ../libnm-core/nm-setting-bond.c:629
#, c-format
msgid "'%s' is not valid for the '%s' option: %s"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:656 ../libnm-util/nm-setting-bond.c:592
+#: ../libnm-core/nm-setting-bond.c:640 ../libnm-util/nm-setting-bond.c:577
#, c-format
msgid "'%s' option is only valid for '%s=%s'"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:669 ../libnm-util/nm-setting-bond.c:605
+#: ../libnm-core/nm-setting-bond.c:653 ../libnm-util/nm-setting-bond.c:590
#, c-format
msgid "'%s=%s' is not a valid configuration for '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:682 ../libnm-core/nm-setting-bond.c:691
-#: ../libnm-core/nm-setting-bond.c:711 ../libnm-core/nm-setting-bond.c:747
-#: ../libnm-util/nm-setting-bond.c:618 ../libnm-util/nm-setting-bond.c:627
-#: ../libnm-util/nm-setting-bond.c:647 ../libnm-util/nm-setting-bond.c:683
+#: ../libnm-core/nm-setting-bond.c:666 ../libnm-core/nm-setting-bond.c:675
+#: ../libnm-core/nm-setting-bond.c:695 ../libnm-core/nm-setting-bond.c:731
+#: ../libnm-util/nm-setting-bond.c:603 ../libnm-util/nm-setting-bond.c:612
+#: ../libnm-util/nm-setting-bond.c:632 ../libnm-util/nm-setting-bond.c:668
#, c-format
msgid "'%s' option requires '%s' option to be set"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:722 ../libnm-util/nm-setting-bond.c:658
+#: ../libnm-core/nm-setting-bond.c:706 ../libnm-util/nm-setting-bond.c:643
#, c-format
msgid "'%s' option is empty"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:734 ../libnm-util/nm-setting-bond.c:670
+#: ../libnm-core/nm-setting-bond.c:718 ../libnm-util/nm-setting-bond.c:655
#, c-format
msgid "'%s' is not a valid IPv4 address for '%s' option"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:762 ../libnm-util/nm-setting-bond.c:697
+#: ../libnm-core/nm-setting-bond.c:746 ../libnm-util/nm-setting-bond.c:682
#, c-format
msgid "'%s' option is only valid with mode '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:773
+#: ../libnm-core/nm-setting-bond.c:757
#, c-format
msgid "'%s' and '%s' cannot have different values"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:789
+#: ../libnm-core/nm-setting-bond.c:773
#, c-format
msgid "'%s' option should be string"
msgstr ""
-#: ../libnm-core/nm-setting-bond.c:805
-#, c-format
-msgid "'%s' option is not valid with mode '%s'"
-msgstr ""
-
#: ../libnm-core/nm-setting-bridge-port.c:127
-#: ../libnm-core/nm-setting-ovs-interface.c:262
-#: ../libnm-core/nm-setting-ovs-port.c:189
-#: ../libnm-core/nm-setting-ovs-bridge.c:152
#: ../libnm-core/nm-setting-team-port.c:99
#, c-format
msgid "missing setting"
msgstr ""
#: ../libnm-core/nm-setting-bridge-port.c:138
-#: ../libnm-core/nm-setting-ovs-interface.c:283
-#: ../libnm-core/nm-setting-ovs-port.c:210
#: ../libnm-core/nm-setting-team-port.c:110
#, c-format
msgid ""
@@ -8868,84 +8684,75 @@ msgid ""
"Instead it is '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-bridge.c:245 ../libnm-util/nm-setting-bridge.c:269
+#: ../libnm-core/nm-setting-bridge.c:227 ../libnm-util/nm-setting-bridge.c:269
#, c-format
msgid "value '%d' is out of range <%d-%d>"
msgstr ""
-#: ../libnm-core/nm-setting-bridge.c:262 ../libnm-core/nm-setting-wired.c:652
+#: ../libnm-core/nm-setting-bridge.c:244 ../libnm-core/nm-setting-wired.c:652
#: ../libnm-core/nm-setting-wired.c:714 ../libnm-core/nm-setting-wired.c:756
#: ../libnm-util/nm-setting-bridge.c:286 ../libnm-util/nm-setting-wired.c:633
#: ../libnm-util/nm-setting-wired.c:691
msgid "is not a valid MAC address"
msgstr ""
-#: ../libnm-core/nm-setting-bridge.c:303
-msgid "the mask can't contain bits 0 (STP), 1 (MAC) or 2 (LACP)"
-msgstr ""
-
-#: ../libnm-core/nm-setting-connection.c:871
+#: ../libnm-core/nm-setting-connection.c:850
#, c-format
msgid "setting required for connection of type '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-connection.c:910
+#: ../libnm-core/nm-setting-connection.c:887
#: ../libnm-util/nm-setting-connection.c:791
#, c-format
msgid "'%s' is not a valid UUID"
msgstr ""
-#: ../libnm-core/nm-setting-connection.c:960
+#: ../libnm-core/nm-setting-connection.c:933
#, c-format
msgid "connection type '%s' is not valid"
msgstr ""
-#: ../libnm-core/nm-setting-connection.c:996
+#: ../libnm-core/nm-setting-connection.c:968
#: ../libnm-util/nm-setting-connection.c:877
#, c-format
msgid "Unknown slave type '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-connection.c:1007
+#: ../libnm-core/nm-setting-connection.c:979
#: ../libnm-util/nm-setting-connection.c:887
#, c-format
msgid "Slave connections need a valid '%s' property"
msgstr ""
-#: ../libnm-core/nm-setting-connection.c:1028
+#: ../libnm-core/nm-setting-connection.c:1000
#: ../libnm-util/nm-setting-connection.c:897
#, c-format
msgid "Cannot set '%s' without '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-connection.c:1041
-#, c-format
-msgid "Only '%s' connections can be enslaved to '%s'"
-msgstr ""
-
-#: ../libnm-core/nm-setting-connection.c:1054
+#: ../libnm-core/nm-setting-connection.c:1014
#, c-format
msgid "metered value %d is not valid"
msgstr ""
-#: ../libnm-core/nm-setting-connection.c:1075
+#: ../libnm-core/nm-setting-connection.c:1035
#, c-format
msgid "property type should be set to '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-connection.c:1090
+#: ../libnm-core/nm-setting-connection.c:1050
#, c-format
msgid "slave-type '%s' requires a '%s' setting in the connection"
msgstr ""
-#: ../libnm-core/nm-setting-connection.c:1100
+#: ../libnm-core/nm-setting-connection.c:1060
#, c-format
msgid ""
"Detect a slave connection with '%s' set and a port type '%s'. '%s' should be "
"set to '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-connection.c:1117
+#: ../libnm-core/nm-setting-connection.c:1077
#, c-format
msgid "A slave connection with '%s' set to '%s' cannot have a '%s' setting"
msgstr ""
@@ -9013,7 +8820,7 @@ msgstr ""
msgid "InfiniBand P_Key connection did not specify parent interface name"
msgstr ""
-#: ../libnm-core/nm-setting-infiniband.c:276
+#: ../libnm-core/nm-setting-infiniband.c:275
#: ../libnm-util/nm-setting-infiniband.c:285
#, c-format
msgid ""
@@ -9021,7 +8828,7 @@ msgid ""
"it is '%s')"
msgstr ""
-#: ../libnm-core/nm-setting-infiniband.c:291
+#: ../libnm-core/nm-setting-infiniband.c:290
#, c-format
msgid "mtu for transport mode '%s' can be at most %d but it is %d"
msgstr ""
@@ -9061,81 +8868,81 @@ msgstr ""
msgid "Invalid routing metric '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:1316
+#: ../libnm-core/nm-setting-ip-config.c:1260
msgid "unknown attribute"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:1326
+#: ../libnm-core/nm-setting-ip-config.c:1270
#, fuzzy, c-format
msgid "invalid attribute type '%s'"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../libnm-core/nm-setting-ip-config.c:1337
+#: ../libnm-core/nm-setting-ip-config.c:1281
#, c-format
msgid "attribute is not valid for a IPv4 route"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:1338
+#: ../libnm-core/nm-setting-ip-config.c:1282
#, c-format
msgid "attribute is not valid for a IPv6 route"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:1354
-#: ../libnm-core/nm-setting-ip-config.c:1378
+#: ../libnm-core/nm-setting-ip-config.c:1298
+#: ../libnm-core/nm-setting-ip-config.c:1322
#, c-format
msgid "'%s' is not a valid IPv4 address"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:1355
-#: ../libnm-core/nm-setting-ip-config.c:1379
+#: ../libnm-core/nm-setting-ip-config.c:1299
+#: ../libnm-core/nm-setting-ip-config.c:1323
#, c-format
msgid "'%s' is not a valid IPv6 address"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:1369
+#: ../libnm-core/nm-setting-ip-config.c:1313
#, c-format
msgid "invalid prefix %s"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:2533
+#: ../libnm-core/nm-setting-ip-config.c:2429
#, c-format
msgid "%d. DNS server address is invalid"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:2549
+#: ../libnm-core/nm-setting-ip-config.c:2445
#, c-format
msgid "%d. IP address is invalid"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:2561
+#: ../libnm-core/nm-setting-ip-config.c:2457
#, c-format
msgid "%d. IP address has 'label' property with invalid type"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:2570
+#: ../libnm-core/nm-setting-ip-config.c:2466
#, c-format
msgid "%d. IP address has invalid label '%s'"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:2584
+#: ../libnm-core/nm-setting-ip-config.c:2480
msgid "gateway cannot be set if there are no addresses configured"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:2593
+#: ../libnm-core/nm-setting-ip-config.c:2489
msgid "gateway is invalid"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:2607
+#: ../libnm-core/nm-setting-ip-config.c:2503
#, c-format
msgid "%d. route is invalid"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:2616
+#: ../libnm-core/nm-setting-ip-config.c:2512
#, c-format
msgid "%d. route cannot be a default route"
msgstr ""
-#: ../libnm-core/nm-setting-ip-config.c:2627
+#: ../libnm-core/nm-setting-ip-config.c:2523
#, c-format
msgid "a gateway is incompatible with '%s'"
msgstr ""
@@ -9285,97 +9092,6 @@ msgstr ""
msgid "'%d' is not a valid channel"
msgstr ""
-#: ../libnm-core/nm-setting-ovs-interface.c:113
-#, fuzzy, c-format
-msgid "'%s' is not a valid interface type"
-msgstr "لا يمكن إضافة اتصال VPN"
-
-#: ../libnm-core/nm-setting-ovs-interface.c:135
-#, c-format
-msgid "A connection with a '%s' setting needs connection.type explicitly set"
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-interface.c:147
-#, c-format
-msgid "A connection of type '%s' cannot have ovs-interface.type \"system\""
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-interface.c:159
-#, c-format
-msgid "A connection of type '%s' cannot have an ovs-interface.type \"%s\""
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-interface.c:175
-#, c-format
-msgid ""
-"A connection with '%s' setting must be of connection.type \"ovs-interface\" "
-"but is \"%s\""
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-interface.c:186
-#, c-format
-msgid ""
-"A connection with '%s' setting needs to be of 'patch' interface type, not "
-"'%s'"
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-interface.c:201
-#, c-format
-msgid "A connection with ovs-interface.type '%s' setting a 'ovs-patch' setting"
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-interface.c:221
-#, c-format
-msgid "Missing ovs interface setting"
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-interface.c:227
-#, c-format
-msgid "Missing ovs interface type"
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-interface.c:271
-#: ../libnm-core/nm-setting-ovs-port.c:198
-#, c-format
-msgid "A connection with a '%s' setting must have a master."
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-patch.c:110
-#: ../libnm-core/nm-setting-vxlan.c:375
-#, c-format
-msgid "'%s' is not a valid IP address"
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-port.c:223
-#, c-format
-msgid "'%s' is not allowed in vlan_mode"
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-port.c:233
-#, c-format
-msgid "the tag id must be in range 0-4094 but is %u"
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-port.c:243
-#, fuzzy, c-format
-msgid "'%s' is not allowed in lacp"
-msgstr "لا يمكن إضافة اتصال VPN"
-
-#: ../libnm-core/nm-setting-ovs-port.c:253
-#, c-format
-msgid "'%s' is not allowed in bond_mode"
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-bridge.c:161
-#, c-format
-msgid "A connection with a '%s' setting must not have a master."
-msgstr ""
-
-#: ../libnm-core/nm-setting-ovs-bridge.c:172
-#, fuzzy, c-format
-msgid "'%s' is not allowed in fail_mode"
-msgstr "لا يمكن إضافة اتصال VPN"
-
#: ../libnm-core/nm-setting-ppp.c:365 ../libnm-util/nm-setting-ppp.c:387
#, c-format
msgid "'%d' is out of valid range <128-16384>"
@@ -9411,7 +9127,7 @@ msgstr ""
msgid "the script lacks FindProxyForURL function"
msgstr ""
-#: ../libnm-core/nm-setting-team.c:93 ../libnm-core/nm-setting-team-port.c:122
+#: ../libnm-core/nm-setting-team.c:94 ../libnm-core/nm-setting-team-port.c:122
#, c-format
msgid "team config exceeds size limit"
msgstr ""
@@ -9491,11 +9207,11 @@ msgstr ""
msgid "the vlan id must be in range 0-4094 but is %u"
msgstr ""
-#: ../libnm-core/nm-setting-vlan.c:680 ../libnm-util/nm-setting-vlan.c:591
+#: ../libnm-core/nm-setting-vlan.c:679 ../libnm-util/nm-setting-vlan.c:591
msgid "flags are invalid"
msgstr ""
-#: ../libnm-core/nm-setting-vlan.c:692
+#: ../libnm-core/nm-setting-vlan.c:691
msgid "vlan setting should have a ethernet setting as well"
msgstr ""
@@ -9513,7 +9229,7 @@ msgstr ""
msgid "secret value was empty"
msgstr ""
-#: ../libnm-core/nm-setting-vpn.c:545 ../libnm-core/nm-setting.c:1788
+#: ../libnm-core/nm-setting-vpn.c:545 ../libnm-core/nm-setting.c:1785
msgid "not a secret property"
msgstr ""
@@ -9526,6 +9242,11 @@ msgstr ""
msgid "failed to convert value '%s' to uint"
msgstr ""
+#: ../libnm-core/nm-setting-vxlan.c:375
+#, c-format
+msgid "'%s' is not a valid IP address"
+msgstr ""
+
#: ../libnm-core/nm-setting-vxlan.c:388
#, c-format
msgid "'%s' is not a valid IP%c address"
@@ -9637,167 +9358,167 @@ msgstr ""
msgid "conflicting value of mac-address-randomization and cloned-mac-address"
msgstr ""
-#: ../libnm-core/nm-setting.c:821
+#: ../libnm-core/nm-setting.c:838
#, c-format
msgid "duplicate property"
msgstr ""
-#: ../libnm-core/nm-setting.c:849 ../libnm-core/nm-setting.c:896
+#: ../libnm-core/nm-setting.c:866 ../libnm-core/nm-setting.c:913
#, c-format
msgid "can't set property of type '%s' from value of type '%s'"
msgstr ""
-#: ../libnm-core/nm-setting.c:868 ../libnm-core/nm-setting.c:882
+#: ../libnm-core/nm-setting.c:885 ../libnm-core/nm-setting.c:899
#, fuzzy, c-format
msgid "failed to set property: %s"
msgstr "تعذّر التحميل"
-#: ../libnm-core/nm-setting.c:910
+#: ../libnm-core/nm-setting.c:927
#, c-format
msgid "can not set property: %s"
msgstr ""
-#: ../libnm-core/nm-setting.c:926
+#: ../libnm-core/nm-setting.c:943
#, c-format
msgid "unknown property"
msgstr ""
-#: ../libnm-core/nm-setting.c:1686
+#: ../libnm-core/nm-setting.c:1683
msgid "secret not found"
msgstr ""
-#: ../libnm-core/nm-setting.c:1778
+#: ../libnm-core/nm-setting.c:1775
msgid "secret is not set"
msgstr ""
-#: ../libnm-core/nm-utils.c:2412
+#: ../libnm-core/nm-utils.c:2415
#, c-format
msgid "failed stat file %s: %s"
msgstr ""
-#: ../libnm-core/nm-utils.c:2421
+#: ../libnm-core/nm-utils.c:2424
#, c-format
msgid "not a file (%s)"
msgstr ""
-#: ../libnm-core/nm-utils.c:2432
+#: ../libnm-core/nm-utils.c:2435
#, c-format
msgid "invalid file owner %d for %s"
msgstr ""
-#: ../libnm-core/nm-utils.c:2443
+#: ../libnm-core/nm-utils.c:2446
#, c-format
msgid "file permissions for %s"
msgstr ""
-#: ../libnm-core/nm-utils.c:2453
+#: ../libnm-core/nm-utils.c:2456
#, c-format
msgid "reject %s"
msgstr ""
-#: ../libnm-core/nm-utils.c:2473
+#: ../libnm-core/nm-utils.c:2476
#, c-format
msgid "path is not absolute (%s)"
msgstr ""
-#: ../libnm-core/nm-utils.c:2487
+#: ../libnm-core/nm-utils.c:2490
#, c-format
msgid "Plugin file does not exist (%s)"
msgstr ""
-#: ../libnm-core/nm-utils.c:2495
+#: ../libnm-core/nm-utils.c:2498
#, c-format
msgid "Plugin is not a valid file (%s)"
msgstr ""
-#: ../libnm-core/nm-utils.c:2505
+#: ../libnm-core/nm-utils.c:2508
#, c-format
msgid "libtool archives are not supported (%s)"
msgstr ""
-#: ../libnm-core/nm-utils.c:2587 ../libnm-util/nm-utils.c:1798
+#: ../libnm-core/nm-utils.c:2590 ../libnm-util/nm-utils.c:1803
#, c-format
msgid "Could not find \"%s\" binary"
msgstr ""
-#: ../libnm-core/nm-utils.c:3633
+#: ../libnm-core/nm-utils.c:3636
#, c-format
msgid "not a valid ethernet MAC address for mask at position %lld"
msgstr ""
-#: ../libnm-core/nm-utils.c:3648
+#: ../libnm-core/nm-utils.c:3651
#, c-format
msgid "not a valid ethernet MAC address #%u at position %lld"
msgstr ""
-#: ../libnm-core/nm-utils.c:3684
+#: ../libnm-core/nm-utils.c:3685
msgid "interface name is too short"
msgstr ""
-#: ../libnm-core/nm-utils.c:3693
-msgid "interface name is reserved"
+#: ../libnm-core/nm-utils.c:3691
+msgid "interface name is longer than 15 characters"
msgstr ""
-#: ../libnm-core/nm-utils.c:3705
-msgid "interface name contains an invalid character"
+#: ../libnm-core/nm-utils.c:3697
+msgid "interface name is reserved"
msgstr ""
-#: ../libnm-core/nm-utils.c:3711
-msgid "interface name is longer than 15 characters"
+#: ../libnm-core/nm-utils.c:3704
+msgid "interface name contains an invalid character"
msgstr ""
-#: ../libnm-core/nm-utils.c:4319 ../libnm-core/nm-utils.c:4464
+#: ../libnm-core/nm-utils.c:4316 ../libnm-core/nm-utils.c:4450
msgid "value is NULL"
msgstr ""
-#: ../libnm-core/nm-utils.c:4319 ../libnm-core/nm-utils.c:4464
+#: ../libnm-core/nm-utils.c:4316 ../libnm-core/nm-utils.c:4450
msgid "value is empty"
msgstr ""
-#: ../libnm-core/nm-utils.c:4328
+#: ../libnm-core/nm-utils.c:4325
#, c-format
msgid "invalid JSON at position %d (%s)"
msgstr ""
-#: ../libnm-core/nm-utils.c:4340 ../libnm-core/nm-utils.c:4483
+#: ../libnm-core/nm-utils.c:4337 ../libnm-core/nm-utils.c:4469
msgid "is not a JSON object"
msgstr ""
-#: ../libnm-core/nm-utils.c:4453
+#: ../libnm-core/nm-utils.c:4439
msgid "not valid utf-8"
msgstr ""
-#: ../libnm-core/nm-utils.c:4578 ../libnm-core/nm-utils.c:4596
+#: ../libnm-core/nm-utils.c:4564 ../libnm-core/nm-utils.c:4582
#, c-format
msgid "unterminated escape sequence"
msgstr ""
-#: ../libnm-core/nm-utils.c:4606
+#: ../libnm-core/nm-utils.c:4592
#, c-format
msgid "missing key-value separator '%c'"
msgstr ""
-#: ../libnm-core/nm-utils.c:4623
+#: ../libnm-core/nm-utils.c:4609
#, fuzzy, c-format
msgid "unknown attribute '%s'"
msgstr "خطأ أثناء فتح اتصال VPN '%s'"
-#: ../libnm-core/nm-utils.c:4633
+#: ../libnm-core/nm-utils.c:4619
#, c-format
msgid "invalid uint32 value '%s' for attribute '%s'"
msgstr ""
-#: ../libnm-core/nm-utils.c:4642
+#: ../libnm-core/nm-utils.c:4628
#, c-format
msgid "invalid uint8 value '%s' for attribute '%s'"
msgstr ""
-#: ../libnm-core/nm-utils.c:4655
+#: ../libnm-core/nm-utils.c:4641
#, c-format
msgid "invalid boolean value '%s' for attribute '%s'"
msgstr ""
-#: ../libnm-core/nm-utils.c:4663
+#: ../libnm-core/nm-utils.c:4649
#, c-format
msgid "unsupported attribute '%s' of type '%s'"
msgstr ""
@@ -9884,51 +9605,51 @@ msgstr ""
msgid "missing service for VPN plugin info"
msgstr ""
-#: ../libnm-glib/nm-device.c:1825 ../libnm/nm-device.c:1525
+#: ../libnm-glib/nm-device.c:1825 ../libnm/nm-device.c:1521
msgid "Bluetooth"
msgstr ""
-#: ../libnm-glib/nm-device.c:1827 ../libnm/nm-device.c:1527
+#: ../libnm-glib/nm-device.c:1827 ../libnm/nm-device.c:1523
msgid "OLPC Mesh"
msgstr ""
-#: ../libnm-glib/nm-device.c:1829 ../libnm/nm-device.c:1535
+#: ../libnm-glib/nm-device.c:1829 ../libnm/nm-device.c:1525
msgid "WiMAX"
msgstr ""
-#: ../libnm-glib/nm-device.c:1843 ../libnm/nm-device.c:1549
+#: ../libnm-glib/nm-device.c:1843 ../libnm/nm-device.c:1539
msgid "ADSL"
msgstr ""
-#: ../libnm-glib/nm-device.c:1845 ../libnm/nm-device.c:1551
+#: ../libnm-glib/nm-device.c:1845 ../libnm/nm-device.c:1541
msgid "MACVLAN"
msgstr ""
-#: ../libnm-glib/nm-device.c:1847 ../libnm/nm-device.c:1553
+#: ../libnm-glib/nm-device.c:1847 ../libnm/nm-device.c:1543
msgid "VXLAN"
msgstr ""
-#: ../libnm-glib/nm-device.c:1849 ../libnm/nm-device.c:1555
+#: ../libnm-glib/nm-device.c:1849 ../libnm/nm-device.c:1545
msgid "IPTunnel"
msgstr ""
-#: ../libnm-glib/nm-device.c:1851 ../libnm/nm-device.c:1557
+#: ../libnm-glib/nm-device.c:1851 ../libnm/nm-device.c:1547
msgid "Tun"
msgstr ""
-#: ../libnm-glib/nm-device.c:1853 ../libnm/nm-device.c:1559
+#: ../libnm-glib/nm-device.c:1853 ../libnm/nm-device.c:1549
msgid "Veth"
msgstr ""
-#: ../libnm-glib/nm-device.c:1885 ../libnm/nm-device.c:1597
+#: ../libnm-glib/nm-device.c:1885 ../libnm/nm-device.c:1585
msgid "Wired"
msgstr ""
-#: ../libnm-glib/nm-device.c:1916 ../libnm/nm-device.c:1628
+#: ../libnm-glib/nm-device.c:1916 ../libnm/nm-device.c:1616
msgid "PCI"
msgstr ""
-#: ../libnm-glib/nm-device.c:1918 ../libnm/nm-device.c:1630
+#: ../libnm-glib/nm-device.c:1918 ../libnm/nm-device.c:1618
msgid "USB"
msgstr ""
@@ -9939,7 +9660,7 @@ msgstr ""
#. * the strings otherwise.
#.
#: ../libnm-glib/nm-device.c:2015 ../libnm-glib/nm-device.c:2034
-#: ../libnm/nm-device.c:1725 ../libnm/nm-device.c:1744
+#: ../libnm/nm-device.c:1713 ../libnm/nm-device.c:1732
#, c-format
msgctxt "long device name"
msgid "%s %s"
@@ -9974,7 +9695,7 @@ msgstr ""
msgid "requires '%s' or '%s' setting"
msgstr ""
-#: ../libnm-util/nm-setting-bond.c:582
+#: ../libnm-util/nm-setting-bond.c:567
#, c-format
msgid "'%s' is not a valid interface name for '%s' option"
msgstr ""
@@ -10043,41 +9764,34 @@ msgstr ""
msgid "The connection was not a bond connection."
msgstr ""
-#: ../libnm/nm-device-bridge.c:115
+#: ../libnm/nm-device-bridge.c:111
msgid "The connection was not a bridge connection."
msgstr ""
-#: ../libnm/nm-device-bt.c:137
+#: ../libnm/nm-device-bt.c:136
#, c-format
msgid "The connection was not a Bluetooth connection."
msgstr ""
-#: ../libnm/nm-device-bt.c:143
-#, fuzzy, c-format
-msgid "The connection is of Bluetooth NAP type."
-msgstr "حذف اتصال VPN \"%s\"؟"
-
-#: ../libnm/nm-device-bt.c:152
+#: ../libnm/nm-device-bt.c:145
msgid "Invalid device Bluetooth address."
msgstr ""
-#: ../libnm/nm-device-bt.c:158
+#: ../libnm/nm-device-bt.c:152
msgid "The Bluetooth addresses of the device and the connection didn't match."
msgstr ""
-#: ../libnm/nm-device-bt.c:167
+#: ../libnm/nm-device-bt.c:161
msgid ""
"The device is lacking Bluetooth capabilities required by the connection."
msgstr ""
-#: ../libnm/nm-device-dummy.c:76
+#: ../libnm/nm-device-dummy.c:46
#, fuzzy
msgid "The connection was not a dummy connection."
msgstr "لا يمكن إضافة اتصال VPN"
-#: ../libnm/nm-device-dummy.c:83 ../libnm/nm-device-generic.c:97
-#: ../libnm/nm-device-ovs-bridge.c:68 ../libnm/nm-device-ovs-interface.c:68
-#: ../libnm/nm-device-ovs-port.c:67
+#: ../libnm/nm-device-dummy.c:53 ../libnm/nm-device-generic.c:97
msgid "The connection did not specify an interface name."
msgstr ""
@@ -10158,21 +9872,6 @@ msgstr ""
msgid "The connection was not an OLPC Mesh connection."
msgstr ""
-#: ../libnm/nm-device-ovs-bridge.c:61
-#, fuzzy
-msgid "The connection was not a ovs_bridge connection."
-msgstr "لا يمكن إضافة اتصال VPN"
-
-#: ../libnm/nm-device-ovs-interface.c:61
-#, fuzzy
-msgid "The connection was not a ovs_interface connection."
-msgstr "لا يمكن إضافة اتصال VPN"
-
-#: ../libnm/nm-device-ovs-port.c:60
-#, fuzzy
-msgid "The connection was not a ovs_port connection."
-msgstr "لا يمكن إضافة اتصال VPN"
-
#: ../libnm/nm-device-team.c:138
msgid "The connection was not a team connection."
msgstr ""
@@ -10214,41 +9913,25 @@ msgstr ""
msgid "The connection was not a WiMAX connection."
msgstr ""
-#: ../libnm/nm-device.c:1529
-msgid "OpenVSwitch Interface"
-msgstr ""
-
-#: ../libnm/nm-device.c:1531
-msgid "OpenVSwitch Port"
-msgstr ""
-
-#: ../libnm/nm-device.c:1533
-msgid "OpenVSwitch Bridge"
-msgstr ""
-
-#: ../libnm/nm-device.c:1561
+#: ../libnm/nm-device.c:1551
msgid "MACsec"
msgstr ""
-#: ../libnm/nm-device.c:1563
+#: ../libnm/nm-device.c:1553
msgid "Dummy"
msgstr ""
-#: ../libnm/nm-device.c:1565
-msgid "PPP"
-msgstr ""
-
-#: ../libnm/nm-device.c:2456
+#: ../libnm/nm-device.c:2444
#, c-format
msgid "The connection was not valid: %s"
msgstr ""
-#: ../libnm/nm-device.c:2465
+#: ../libnm/nm-device.c:2453
#, c-format
msgid "The interface names of the device and the connection didn't match."
msgstr ""
-#: ../libnm/nm-manager.c:870
+#: ../libnm/nm-manager.c:822
msgid "Active connection removed before it was initialized"
msgstr ""
@@ -10386,42 +10069,33 @@ msgstr ""
msgid "System policy prevents enabling or disabling device statistics"
msgstr ""
-#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:31
-#, fuzzy
-msgid "Enable or disable connectivity checking"
-msgstr "حذف اتصال VPN \"%s\"؟"
-
-#: ../data/org.freedesktop.NetworkManager.policy.in.in.h:32
-msgid "System policy prevents enabling or disabling connectivity checking"
-msgstr ""
-
-#: ../shared/nm-utils/nm-shared-utils.c:794
+#: ../shared/nm-utils/nm-shared-utils.c:345
#, c-format
msgid "object class '%s' has no property named '%s'"
msgstr ""
-#: ../shared/nm-utils/nm-shared-utils.c:801
+#: ../shared/nm-utils/nm-shared-utils.c:352
#, c-format
msgid "property '%s' of object class '%s' is not writable"
msgstr ""
-#: ../shared/nm-utils/nm-shared-utils.c:808
+#: ../shared/nm-utils/nm-shared-utils.c:359
#, c-format
msgid ""
"construct property \"%s\" for object '%s' can't be set after construction"
msgstr ""
-#: ../shared/nm-utils/nm-shared-utils.c:816
+#: ../shared/nm-utils/nm-shared-utils.c:367
#, c-format
msgid "'%s::%s' is not a valid property name; '%s' is not a GObject subtype"
msgstr ""
-#: ../shared/nm-utils/nm-shared-utils.c:825
+#: ../shared/nm-utils/nm-shared-utils.c:376
#, c-format
msgid "unable to set property '%s' of type '%s' from value of type '%s'"
msgstr ""
-#: ../shared/nm-utils/nm-shared-utils.c:836
+#: ../shared/nm-utils/nm-shared-utils.c:387
#, c-format
msgid ""
"value \"%s\" of type '%s' is invalid or out of range for property '%s' of "
@@ -10444,25 +10118,25 @@ msgid "Failed to read configuration: %s\n"
msgstr ""
#. Logging/debugging
-#: ../src/main.c:193 ../src/nm-iface-helper.c:292
+#: ../src/main.c:193 ../src/nm-iface-helper.c:309
msgid "Print NetworkManager version and exit"
msgstr ""
-#: ../src/main.c:194 ../src/nm-iface-helper.c:293
+#: ../src/main.c:194 ../src/nm-iface-helper.c:310
msgid "Don't become a daemon"
msgstr ""
-#: ../src/main.c:195 ../src/nm-iface-helper.c:295
+#: ../src/main.c:195 ../src/nm-iface-helper.c:312
#, c-format
msgid "Log level: one of [%s]"
msgstr ""
-#: ../src/main.c:197 ../src/nm-iface-helper.c:297
+#: ../src/main.c:197 ../src/nm-iface-helper.c:314
#, c-format
msgid "Log domains separated by ',': any combination of [%s]"
msgstr ""
-#: ../src/main.c:199 ../src/nm-iface-helper.c:299
+#: ../src/main.c:199 ../src/nm-iface-helper.c:316
msgid "Make all warnings fatal"
msgstr ""
@@ -10482,12 +10156,12 @@ msgid ""
"should associate with."
msgstr ""
-#: ../src/main.c:303 ../src/main-utils.c:286 ../src/nm-iface-helper.c:398
+#: ../src/main.c:303 ../src/main-utils.c:286 ../src/nm-iface-helper.c:414
#, fuzzy, c-format
msgid "%s. Please use --help to see a list of valid options.\n"
msgstr "خيار غير صحيح. استعمل --help لعرض قائمة الخيارات الممكنة.\n"
-#: ../src/main.c:308 ../src/nm-iface-helper.c:403
+#: ../src/main.c:308 ../src/nm-iface-helper.c:419
#, c-format
msgid "Ignoring unrecognized log domain(s) '%s' passed on command line.\n"
msgstr ""
@@ -10502,7 +10176,7 @@ msgstr ""
msgid "Ignoring unrecognized log domain(s) '%s' from config files.\n"
msgstr ""
-#: ../src/main.c:349 ../src/nm-iface-helper.c:413
+#: ../src/main.c:349 ../src/nm-iface-helper.c:429
#, c-format
msgid "Could not daemonize: %s [error %u]\n"
msgstr ""
@@ -10537,18 +10211,18 @@ msgstr ""
msgid "You must be root to run %s!\n"
msgstr ""
-#: ../src/dhcp/nm-dhcp-dhclient-utils.c:280
+#: ../src/dhcp/nm-dhcp-dhclient-utils.c:274
msgid "# Created by NetworkManager\n"
msgstr ""
-#: ../src/dhcp/nm-dhcp-dhclient-utils.c:290
+#: ../src/dhcp/nm-dhcp-dhclient-utils.c:284
#, c-format
msgid ""
"# Merged from %s\n"
"\n"
msgstr ""
-#: ../src/devices/bluetooth/nm-bluez-device.c:211
+#: ../src/devices/bluetooth/nm-bluez-device.c:210
#, c-format
msgid "%s Network"
msgstr ""
@@ -10575,13 +10249,13 @@ msgid "DUN connection must include a GSM or CDMA setting"
msgstr ""
#: ../src/devices/bluetooth/nm-device-bt.c:314
-#: ../src/devices/wwan/nm-modem-broadband.c:709
+#: ../src/devices/wwan/nm-modem-broadband.c:706
#, fuzzy
msgid "GSM connection"
msgstr "إتّصالات VPN"
#: ../src/devices/bluetooth/nm-device-bt.c:318
-#: ../src/devices/wwan/nm-modem-broadband.c:733
+#: ../src/devices/wwan/nm-modem-broadband.c:730
#, fuzzy
msgid "CDMA connection"
msgstr "إتّصالات VPN"
@@ -10591,18 +10265,18 @@ msgid "Unknown/unhandled Bluetooth connection type"
msgstr ""
#: ../src/devices/bluetooth/nm-device-bt.c:347
-#: ../src/devices/nm-device-ethernet.c:1408
+#: ../src/devices/nm-device-ethernet.c:1454
#: ../src/devices/nm-device-infiniband.c:210
-#: ../src/devices/wifi/nm-device-wifi.c:952
+#: ../src/devices/wifi/nm-device-wifi.c:938
msgid "connection does not match device"
msgstr ""
-#: ../src/devices/nm-device-bond.c:91
+#: ../src/devices/nm-device-bond.c:109
#, fuzzy
msgid "Bond connection"
msgstr "إتّصالات VPN"
-#: ../src/devices/nm-device-bridge.c:130
+#: ../src/devices/nm-device-bridge.c:115
#, fuzzy
msgid "Bridge connection"
msgstr "أضف اتصال VPN جديد"
@@ -10612,12 +10286,12 @@ msgstr "أضف اتصال VPN جديد"
msgid "Dummy connection"
msgstr "إتّصالات VPN"
-#: ../src/devices/nm-device-ethernet.c:1389
+#: ../src/devices/nm-device-ethernet.c:1435
#, fuzzy
msgid "PPPoE connection"
msgstr "إتّصالات VPN"
-#: ../src/devices/nm-device-ethernet.c:1389
+#: ../src/devices/nm-device-ethernet.c:1435
#, fuzzy
msgid "Wired connection"
msgstr "انشيء اتصال VPN"
@@ -10632,7 +10306,7 @@ msgstr "حذف اتصال VPN \"%s\"؟"
msgid "IP tunnel connection"
msgstr "أضف اتصال VPN جديد"
-#: ../src/devices/nm-device-macvlan.c:344
+#: ../src/devices/nm-device-macvlan.c:407
#, fuzzy
msgid "MACVLAN connection"
msgstr "إتّصالات VPN"
@@ -10642,16 +10316,16 @@ msgstr "إتّصالات VPN"
msgid "TUN connection"
msgstr "إتّصالات VPN"
-#: ../src/devices/team/nm-device-team.c:119
+#: ../src/devices/team/nm-device-team.c:135
#, fuzzy
msgid "Team connection"
msgstr "انشيء اتصال VPN"
-#: ../src/devices/wifi/nm-device-olpc-mesh.c:152
+#: ../src/devices/wifi/nm-device-olpc-mesh.c:156
msgid "Mesh"
msgstr ""
-#: ../src/devices/wifi/nm-device-wifi.c:919
+#: ../src/devices/wifi/nm-device-wifi.c:905
msgid "WPA Ad-Hoc disabled due to kernel bugs"
msgstr ""
@@ -10804,7 +10478,7 @@ msgstr ""
msgid "Failed to determine AP security information"
msgstr ""
-#: ../src/devices/wwan/nm-modem-broadband.c:695
+#: ../src/devices/wwan/nm-modem-broadband.c:692
msgid "GSM mobile broadband connection requires a 'gsm' setting"
msgstr ""
@@ -10840,7 +10514,7 @@ msgstr ""
msgid "Quit after initial configuration"
msgstr ""
-#: ../src/nm-config.c:494 ../src/nm-iface-helper.c:294
+#: ../src/nm-config.c:494 ../src/nm-iface-helper.c:311
msgid "Don't become a daemon, and log to stderr"
msgstr ""
@@ -10858,106 +10532,106 @@ msgid "The expected start of the response"
msgstr ""
#. Interface/IP config
-#: ../src/nm-iface-helper.c:274
+#: ../src/nm-iface-helper.c:291
msgid "The interface to manage"
msgstr ""
-#: ../src/nm-iface-helper.c:275
+#: ../src/nm-iface-helper.c:292
#, fuzzy
msgid "Connection UUID"
msgstr "إتّصالات VPN"
-#: ../src/nm-iface-helper.c:276
+#: ../src/nm-iface-helper.c:293
msgid "Connection Token for Stable IDs"
msgstr ""
-#: ../src/nm-iface-helper.c:277
+#: ../src/nm-iface-helper.c:294
msgid "Whether to manage IPv6 SLAAC"
msgstr ""
-#: ../src/nm-iface-helper.c:278
+#: ../src/nm-iface-helper.c:295
msgid "Whether SLAAC must be successful"
msgstr ""
-#: ../src/nm-iface-helper.c:279
+#: ../src/nm-iface-helper.c:296
msgid "Use an IPv6 temporary privacy address"
msgstr ""
-#: ../src/nm-iface-helper.c:280
+#: ../src/nm-iface-helper.c:297
msgid "Current DHCPv4 address"
msgstr ""
-#: ../src/nm-iface-helper.c:281
+#: ../src/nm-iface-helper.c:298
msgid "Whether DHCPv4 must be successful"
msgstr ""
-#: ../src/nm-iface-helper.c:282
+#: ../src/nm-iface-helper.c:299
msgid "Hex-encoded DHCPv4 client ID"
msgstr ""
-#: ../src/nm-iface-helper.c:283
+#: ../src/nm-iface-helper.c:300
msgid "Hostname to send to DHCP server"
msgstr ""
-#: ../src/nm-iface-helper.c:283
+#: ../src/nm-iface-helper.c:300
msgid "barbar"
msgstr ""
-#: ../src/nm-iface-helper.c:284
+#: ../src/nm-iface-helper.c:301
msgid "FQDN to send to DHCP server"
msgstr ""
-#: ../src/nm-iface-helper.c:284
+#: ../src/nm-iface-helper.c:301
msgid "host.domain.org"
msgstr ""
-#: ../src/nm-iface-helper.c:285
+#: ../src/nm-iface-helper.c:302
msgid "Route priority for IPv4"
msgstr ""
-#: ../src/nm-iface-helper.c:285
+#: ../src/nm-iface-helper.c:302
msgid "0"
msgstr ""
-#: ../src/nm-iface-helper.c:286
+#: ../src/nm-iface-helper.c:303
msgid "Route priority for IPv6"
msgstr ""
-#: ../src/nm-iface-helper.c:286
+#: ../src/nm-iface-helper.c:303
msgid "1024"
msgstr ""
-#: ../src/nm-iface-helper.c:287
+#: ../src/nm-iface-helper.c:304
msgid "Hex-encoded Interface Identifier"
msgstr ""
-#: ../src/nm-iface-helper.c:288
+#: ../src/nm-iface-helper.c:305
msgid "IPv6 SLAAC address generation mode"
msgstr ""
-#: ../src/nm-iface-helper.c:289
+#: ../src/nm-iface-helper.c:306
msgid ""
"The logging backend configuration value. See logging.backend in "
"NetworkManager.conf"
msgstr ""
-#: ../src/nm-iface-helper.c:309
+#: ../src/nm-iface-helper.c:326
msgid ""
"nm-iface-helper is a small, standalone process that manages a single network "
"interface."
msgstr ""
-#: ../src/nm-iface-helper.c:379
+#: ../src/nm-iface-helper.c:395
#, c-format
msgid "An interface name and UUID are required\n"
msgstr ""
-#: ../src/nm-iface-helper.c:385
+#: ../src/nm-iface-helper.c:401
#, c-format
msgid "Failed to find interface index for %s (%s)\n"
msgstr ""
-#: ../src/nm-iface-helper.c:446
+#: ../src/nm-iface-helper.c:462
#, c-format
msgid "(%s): Invalid IID %s\n"
msgstr ""
diff --git a/po/as.po b/po/as.po
index 500eaa3bc9..a387b115d6 100644
--- a/po/as.po
+++ b/po/as.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-11-10 15:29+0100\n"
+"POT-Creation-Date: 2017-05-29 17:44+0200\n"
"PO-Revision-Date: 2017-04-21 05:06-0400\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Assamese <kde-i18n-doc@kde.org>\n"
@@ -82,90 +82,463 @@ msgstr "ত্ৰুটি: সংযোগৰ সক্ৰিয়কৰণ ব
msgid "nmcli successfully registered as a polkit agent.\n"
msgstr ""
-#: ../clients/cli/common.c:263 ../clients/cli/common.c:278
+#: ../clients/cli/common.c:149
msgid "GROUP"
msgstr "দল"
-#: ../clients/cli/common.c:561
+#: ../clients/cli/common.c:381
+msgid "unmanaged"
+msgstr "অব্যৱস্থাপিত"
+
+#: ../clients/cli/common.c:383
+msgid "unavailable"
+msgstr "উপলব্ধ নাই"
+
+#: ../clients/cli/common.c:385 ../clients/cli/general.c:48
+msgid "disconnected"
+msgstr "বিচ্ছিন্নিত"
+
+#: ../clients/cli/common.c:387
+msgid "connecting (prepare)"
+msgstr "সংযোগ কৰা হৈছে (প্ৰস্তুত হওক)"
+
+#: ../clients/cli/common.c:389
+msgid "connecting (configuring)"
+msgstr "সংযোগ কৰা (সংৰূপণ কৰা)"
+
+#: ../clients/cli/common.c:391
+msgid "connecting (need authentication)"
+msgstr "সংযোগ কৰা (প্ৰমাণীকৰণৰ প্ৰয়োজন)"
+
+#: ../clients/cli/common.c:393
+msgid "connecting (getting IP configuration)"
+msgstr "সংযোগ কৰা (IP সংৰূপ প্ৰাপ্ত কৰা)"
+
+#: ../clients/cli/common.c:395
+msgid "connecting (checking IP connectivity)"
+msgstr "সংযোগ কৰা (IP সংযোগ নিৰীক্ষণ কৰা)"
+
+#: ../clients/cli/common.c:397
+msgid "connecting (starting secondary connections)"
+msgstr "সংযোগ কৰা (দ্বিতীয় সংযোগসমূহ আৰম্ভ কৰা)"
+
+#: ../clients/cli/common.c:399 ../clients/cli/general.c:46
+msgid "connected"
+msgstr "সংযুক্ত"
+
+#: ../clients/cli/common.c:401 ../clients/cli/connections.c:528
+msgid "deactivating"
+msgstr "নিষ্ক্ৰিয় কৰা হৈছে"
+
+#: ../clients/cli/common.c:403
+msgid "connection failed"
+msgstr "সংযোগ ব্যৰ্থ"
+
+#: ../clients/cli/common.c:405 ../clients/cli/common.c:422
+#: ../clients/cli/connections.c:533 ../clients/cli/connections.c:556
+#: ../clients/cli/devices.c:1153 ../clients/cli/devices.c:1197
+#: ../clients/cli/devices.c:1199 ../clients/cli/general.c:41
+#: ../clients/cli/general.c:79 ../clients/cli/general.c:144
+#: ../clients/cli/general.c:149 ../clients/common/nm-meta-setting-desc.c:1368
+#: ../clients/common/nm-meta-setting-desc.c:1436
+#: ../clients/common/nm-meta-setting-desc.c:2593
+#: ../clients/common/nm-meta-setting-desc.c:2647
+msgid "unknown"
+msgstr "অজ্ঞাত"
+
+#. "CAPABILITIES"
+#: ../clients/cli/common.c:414 ../clients/cli/connections.c:876
+#: ../clients/cli/connections.c:878 ../clients/cli/connections.c:880
+#: ../clients/cli/connections.c:913 ../clients/cli/connections.c:980
+#: ../clients/cli/connections.c:981 ../clients/cli/connections.c:983
+#: ../clients/cli/connections.c:4496 ../clients/cli/connections.c:6375
+#: ../clients/cli/connections.c:6376 ../clients/cli/devices.c:827
+#: ../clients/cli/devices.c:1116 ../clients/cli/devices.c:1117
+#: ../clients/cli/devices.c:1118 ../clients/cli/devices.c:1119
+#: ../clients/cli/devices.c:1120 ../clients/cli/devices.c:1157
+#: ../clients/cli/devices.c:1159 ../clients/cli/devices.c:1160
+#: ../clients/cli/devices.c:1190 ../clients/cli/devices.c:1191
+#: ../clients/cli/devices.c:1192 ../clients/cli/devices.c:1193
+#: ../clients/cli/devices.c:1194 ../clients/cli/devices.c:1195
+#: ../clients/cli/devices.c:1196 ../clients/cli/devices.c:1198
+#: ../clients/cli/devices.c:1200 ../clients/cli/general.c:150
+#: ../clients/common/nm-meta-setting-desc.c:574
+#: ../clients/common/nm-meta-setting-desc.c:2586
+msgid "yes"
+msgstr "হয়"
+
+#: ../clients/cli/common.c:416 ../clients/cli/connections.c:876
+#: ../clients/cli/connections.c:878 ../clients/cli/connections.c:880
+#: ../clients/cli/connections.c:980 ../clients/cli/connections.c:981
+#: ../clients/cli/connections.c:983 ../clients/cli/connections.c:4495
+#: ../clients/cli/connect