NetworkManager/libnm
Thomas Haller 92f122525d libnm/tests: add tests for libnm handling invalid connections
Add test showing how libnm/libnm-glib handles invalid connections,
i.e. connections that fail nm_connection_verify(). libnm implements
settings a static types (via different NMSetting types). This makes
it unavoidable that eventually a newer server version will
expose connections that fail verification in the client.

For example, master added a new base type NMSettingTun. This setting type
was not backported to legacy libnm-glib, thus such connection will not verify.
Also, we want that newer server versions are backward compatible with older
library versions. Thus also a pre-NMSettingTun libnm version has the same
problem.

The test shows that libnm is agnostic to whether the connection verifies.
That is consistent behavior, but possibly problematic because most
accessors to connections assert against a valid connection. Thus using
the common nm_connection*() functions on an invalid connection can lead
to problems.
Also, due to the static nature of our NMSetting types, some properties
can be silently dropped and thus mangling the connection without the
library user noticing.

libnm-glib prints a g_warning() whenever parsing an invalid connection.
When an invalid connection is added initially, it is exposed to the library
user. When a connection gets later invalidated due to an update, the
connection disappears and it stays missing even if a subsequent update
makes the connection valid again.

libnm-glib's behavior indicates that we might wanted to hide invalid
connections from the user. But it's very broken there.
2015-12-26 19:09:11 +01:00
..
tests libnm/tests: add tests for libnm handling invalid connections 2015-12-26 19:09:11 +01:00
generate-plugin-docs.pl trivial: fix a comment typo in generate-plugin-docs.pl 2014-11-19 17:54:03 +01:00
generate-setting-docs.py python: use gi.require_version() in generate-setting-docs.py and examples 2015-11-11 10:56:05 +01:00
libnm.pc.in libnm,pkg-config: provide a variable with VPN service directory 2015-08-19 15:13:11 +02:00
libnm.ver ip-tunnel: add a MTU property 2015-12-19 12:06:33 +01:00
Makefile.am build: rename directory "include" to "shared" 2015-12-24 11:42:37 +01:00
NetworkManager.h libnm-core: add NMSettingVxlan 2015-12-09 16:36:46 +01:00
nm-access-point.c Revert "all: change "Since: 1.2" to "Since: 1.0.4"/"Since: 1.0.6" for backported API" 2015-08-25 09:04:35 +02:00
nm-access-point.h libnm: add NM_AVAILABLE_IN_1_2 for API nm_access_point_get_last_seen() 2015-08-09 14:37:10 +02:00
nm-active-connection.c all: make use of new header file "nm-default.h" 2015-08-05 15:32:40 +02:00
nm-active-connection.h libnm: create NMDhcpConfig as parent of NMDhcp4Config and NMDhcp6Config 2014-11-07 07:49:40 -05:00
nm-client.c libnm/libnm-glib: add NMClient.get_all_devices() method and AllDevices property 2015-12-04 12:16:41 +01:00
nm-client.h libnm/libnm-glib: add NMClient.get_all_devices() method and AllDevices property 2015-12-04 12:16:41 +01:00
nm-dbus-helpers.c libnm: avoid loosing signals 2015-12-01 14:51:13 +01:00
nm-dbus-helpers.h all: make use of new header file "nm-default.h" 2015-08-05 15:32:40 +02:00
nm-device-adsl.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-adsl.h libnm: merge device-type-specific errors into NMDeviceError 2014-10-22 08:29:08 -04:00
nm-device-bond.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-bond.h libnm: merge device-type-specific errors into NMDeviceError 2014-10-22 08:29:08 -04:00
nm-device-bridge.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-bridge.h libnm: merge device-type-specific errors into NMDeviceError 2014-10-22 08:29:08 -04:00
nm-device-bt.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-bt.h libnm: merge device-type-specific errors into NMDeviceError 2014-10-22 08:29:08 -04:00
nm-device-ethernet.c libnm: match s390 subchannels and MAC blacklist in connection_compatible() 2015-09-29 09:31:25 +02:00
nm-device-ethernet.h libnm: add 390-subchannels property to NMDeviceEthernet 2015-09-29 09:31:25 +02:00
nm-device-generic.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-generic.h libnm: merge device-type-specific errors into NMDeviceError 2014-10-22 08:29:08 -04:00
nm-device-infiniband.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-infiniband.h libnm: merge device-type-specific errors into NMDeviceError 2014-10-22 08:29:08 -04:00
nm-device-ip-tunnel.c libnm: fix description of NMDeviceIPTunnel:input-key property 2015-12-09 13:33:17 +01:00
nm-device-ip-tunnel.h libnm: add NMDeviceIPTunnel 2015-12-01 17:39:41 +01:00
nm-device-macvlan.c libnm: add NMDeviceMacvlan 2015-12-09 14:30:08 +01:00
nm-device-macvlan.h libnm: add NMDeviceMacvlan 2015-12-09 14:30:08 +01:00
nm-device-modem.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-modem.h libnm: merge device-type-specific errors into NMDeviceError 2014-10-22 08:29:08 -04:00
nm-device-olpc-mesh.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-olpc-mesh.h libnm: merge device-type-specific errors into NMDeviceError 2014-10-22 08:29:08 -04:00
nm-device-private.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-device-team.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-team.h libnm: merge device-type-specific errors into NMDeviceError 2014-10-22 08:29:08 -04:00
nm-device-tun.c libnm: add NMDeviceTun 2015-11-25 11:39:57 +01:00
nm-device-tun.h libnm: add NMDeviceTun 2015-11-25 11:39:57 +01:00
nm-device-vlan.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-vlan.h libnm: add :parent property for VLAN devices 2014-11-24 10:33:22 +01:00
nm-device-vxlan.c libnm: add NMDeviceVxlan 2015-12-09 16:36:46 +01:00
nm-device-vxlan.h libnm: add NMDeviceVxlan 2015-12-09 16:36:46 +01:00
nm-device-wifi.c Revert "all: change "Since: 1.2" to "Since: 1.0.4"/"Since: 1.0.6" for backported API" 2015-08-25 09:04:35 +02:00
nm-device-wifi.h libnm: add new functions allowing passing options to RequestScan() D-Bus call 2015-08-14 11:27:15 +02:00
nm-device-wimax.c all: drop includes to <glib/gi18n.h> for "nm-default.h" 2015-08-05 15:35:51 +02:00
nm-device-wimax.h wimax: drop WiMAX support (bgo #747846) 2015-04-17 12:42:23 -04:00
nm-device.c libnm: add NMDeviceVxlan 2015-12-09 16:36:46 +01:00
nm-device.h libnm-glib/libnm: add support for "real" NMDevice property 2015-12-04 12:15:12 +01:00
nm-dhcp-config.c docs: misc small fixes 2014-12-18 13:47:03 -05:00
nm-dhcp-config.h libnm: create NMDhcpConfig as parent of NMDhcp4Config and NMDhcp6Config 2014-11-07 07:49:40 -05:00
nm-dhcp4-config.c all: consistently include config.h 2014-11-13 17:18:42 -05:00
nm-dhcp4-config.h libnm: create NMDhcpConfig as parent of NMDhcp4Config and NMDhcp6Config 2014-11-07 07:49:40 -05:00
nm-dhcp6-config.c libnm: make NMDhcp6Config inherit from NMDhcpConfig 2015-01-02 19:50:54 +01:00
nm-dhcp6-config.h libnm: create NMDhcpConfig as parent of NMDhcp4Config and NMDhcp6Config 2014-11-07 07:49:40 -05:00
nm-ip-config.c libnm: document that some return values are immutable 2015-10-12 14:44:31 +02:00
nm-ip-config.h libnm: create NMIPConfig as parent of NMIP4Config and NMIP6Config 2014-11-07 07:49:40 -05:00
nm-ip4-config.c all: consistently include config.h 2014-11-13 17:18:42 -05:00
nm-ip4-config.h libnm: create NMIPConfig as parent of NMIP4Config and NMIP6Config 2014-11-07 07:49:40 -05:00
nm-ip6-config.c all: consistently include config.h 2014-11-13 17:18:42 -05:00
nm-ip6-config.h libnm: create NMIPConfig as parent of NMIP4Config and NMIP6Config 2014-11-07 07:49:40 -05:00
nm-manager.c libnm/libnm-glib: add NMClient.get_all_devices() method and AllDevices property 2015-12-04 12:16:41 +01:00
nm-manager.h libnm/libnm-glib: add NMClient.get_all_devices() method and AllDevices property 2015-12-04 12:16:41 +01:00
nm-object-cache.c all: make use of new header file "nm-default.h" 2015-08-05 15:32:40 +02:00
nm-object-cache.h all: make use of new header file "nm-default.h" 2015-08-05 15:32:40 +02:00
nm-object-private.h all: make use of new header file "nm-default.h" 2015-08-05 15:32:40 +02:00
nm-object.c libnm,nm-object: only send "notify" signal when the object property actually changed 2015-12-05 12:05:17 +01:00
nm-object.h libnm: consolidate NMClientError and NMObjectError 2014-10-22 08:29:10 -04:00
nm-remote-connection-private.h libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
nm-remote-connection.c Revert "libnm: fix initializing of new connections" 2015-10-06 14:10:32 +02:00
nm-remote-connection.h libnm: drop unused NMRemoteConnectionError 2014-10-22 08:29:08 -04:00
nm-remote-settings.c macros: add nm_clear_g_cancellable() utility 2015-11-01 17:28:07 +01:00
nm-remote-settings.h libnm: change GSList to GPtrArray in libnm methods 2014-10-28 17:17:17 -04:00
nm-secret-agent-old.c all: make use of new header file "nm-default.h" 2015-08-05 15:32:40 +02:00
nm-secret-agent-old.h libnm: (trivial) correct an example in NMSecretAgentOldGetSecretsFunc docs 2014-11-26 14:07:46 +01:00
nm-types.h libnm: add NMDeviceVxlan 2015-12-09 16:36:46 +01:00
nm-vpn-connection.c all: consistently include config.h 2014-11-13 17:18:42 -05:00
nm-vpn-connection.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-vpn-editor.c libnm: move NMVpnEditorPlugin to libnm-core/ 2015-07-29 22:34:35 +02:00
nm-vpn-editor.h libnm: move NMVpnEditorPlugin to libnm-core/ 2015-07-29 22:34:35 +02:00
nm-vpn-plugin-old.c nm-vpn-service-plugin: increase the quit timer 2015-10-01 17:17:52 +02:00
nm-vpn-plugin-old.h libnm/vpn: deprecated NMVpnPluginOld 2015-07-29 22:34:35 +02:00
nm-vpn-service-plugin.c vpn-service-plugin: correctly emit ip6-config signal on dbus skeleton 2015-11-13 16:13:40 +01:00
nm-vpn-service-plugin.h libnm/vpn-service-plugin: leave the state property in place 2015-10-14 18:44:57 +02:00
nm-wimax-nsp.c all: make use of new header file "nm-default.h" 2015-08-05 15:32:40 +02:00
nm-wimax-nsp.h libnm, docs: docs fixes 2014-11-07 13:16:54 -05:00