NetworkManager/src
Thomas Haller 46fad1fdb6 ifcfg-rh: rework D-Bus handling of ifcfg-rh settings plugin
The ifcfg-rh plugin provides its own D-Bus service which initscripts
query to determine whether NetworkManager handles an ifcfg file.

Rework the D-Bus glue to hook GDBus with NetworkManager to use
GDBusConnection directly. Don't use generated code, don't use
GDBusInterfaceSkeleton.

We still keep "src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.xml"
and still compile the static generated code. We don't actually need
them anymore, maybe the should be dropped later.

This is a proof of concept for reworking the D-Bus glue in
NetworkManager core to directly use GDBusConnection. Reworking core is
much more complicated, because there we also have properties, and a
class hierarchy.

Arguably, for the trivial ifcfg-rh service all this hardly matters, because
the entire D-Bus service only consists of one method, which is unlikely to
be extended in the future.

Now we get rid of layers of glue code, that were hard to comprehend.
Did you understand how nm_exported_object_skeleton_create() works
and uses the generated code and GDBusInterfaceSkeleton to hook into
GDBusConnection? Congratulations in that case. In my opinion, these
layers of code don't simplify but complicate the code.

The change also reduces the binary size of "libnm-settings-plugin-ifcfg-rh.so"
(build with contrib/rpm --without debug) by 8312 bytes (243672 vs. 235360).
2018-02-12 13:29:03 +01:00
..
devices ovs/trivial: fix indentation 2018-02-09 22:07:28 +01:00
dhcp dhcp: use NM_DEFINE_GDBUS_INTERFACE_INFO() macros to define D-Bus registration info for DHCP listener 2018-02-12 13:29:03 +01:00
dns dns: on quit only update resolv.conf if dns=dnsmasq 2018-02-09 12:00:16 +01:00
dnsmasq meson: Improve dependency system 2018-01-10 12:20:17 +01:00
ndisc ndisc/trivial: rename name for internal signal enum to match signal name 2018-02-09 17:40:01 +01:00
platform platform: fix handling secondary addresses during nm_platform_ip4_address_sync() 2018-02-09 21:08:07 +01:00
ppp all: require glib 2.40 2018-01-18 11:45:36 +01:00
settings ifcfg-rh: rework D-Bus handling of ifcfg-rh settings plugin 2018-02-12 13:29:03 +01:00
supplicant all: replace non-leading tabs with spaces 2018-02-07 13:32:04 +01:00
systemd meson: Improve dependency system 2018-01-10 12:20:17 +01:00
tests core: distinguish between IFA_F_SECONDARY and IFA_F_TEMPORARY 2018-02-09 21:07:57 +01:00
vpn core: implement setting MDNS setting for systemd 2018-01-09 14:24:54 +01:00
main-utils.c all: use nm_close() instead of close() 2017-11-14 15:10:42 +01:00
main-utils.h all: cleanup includes in header files 2016-08-17 19:51:17 +02:00
main.c all: require glib 2.40 2018-01-18 11:45:36 +01:00
meson.build platform: add nm-netlink.h for netlink related helper functions 2018-01-15 20:29:26 +01:00
NetworkManagerUtils.c core: extend nm_match_spec_device_by_pllink() with the device-type 2017-12-27 09:42:05 +01:00
NetworkManagerUtils.h core: extend nm_match_spec_device_by_pllink() with the device-type 2017-12-27 09:42:05 +01:00
nm-act-request.c all: get rid of a handful of unused-but-set variables 2017-12-18 13:29:32 +01:00
nm-act-request.h core: refactor NMActRequestGetSecretsCallId typedef not to be a pointer to struct 2017-11-24 16:31:29 +01:00
nm-active-connection.c core: add nm_active_connection_set_state_fail() helper 2018-02-07 12:35:22 +01:00
nm-active-connection.h core: add nm_active_connection_set_state_fail() helper 2018-02-07 12:35:22 +01:00
nm-audit-manager.c all: don't use NM_FLAGS_HAS() with non-constant argument 2017-12-15 11:48:38 +01:00
nm-audit-manager.h audit: add @args to device logging functions 2017-03-06 10:29:37 +01:00
nm-auth-manager.c logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-auth-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-auth-subject.c all: use "unsigned long" instead of "long unsigned" 2017-03-14 11:23:46 +01:00
nm-auth-subject.h
nm-auth-utils.c all: include "nm-utils/nm-hash-utils.h" by default 2017-11-16 11:49:51 +01:00
nm-auth-utils.h
nm-bus-manager.c all: require glib 2.40 2018-01-18 11:45:36 +01:00
nm-bus-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-checkpoint-manager.c all: require glib 2.40 2018-01-18 11:45:36 +01:00
nm-checkpoint-manager.h core: export checkpoint list over D-Bus 2017-11-09 10:12:15 +01:00
nm-checkpoint.c all: replace non-leading tabs with spaces 2018-02-07 13:32:04 +01:00
nm-checkpoint.h checkpoint: introduce new flags to better restore previous state 2016-10-24 09:57:18 +02:00
nm-config-data.c core: extend nm_match_spec_device_by_pllink() with the device-type 2017-12-27 09:42:05 +01:00
nm-config-data.h core: extend nm_match_spec_device_by_pllink() with the device-type 2017-12-27 09:42:05 +01:00
nm-config.c config: fix using the right nm-version for the match specification 2018-01-23 10:50:34 +01:00
nm-config.h core: use define for configuration name "wifi.scan-rand-mac-address" 2017-12-27 09:18:54 +01:00
nm-connectivity.c connectivity: cleanup conditions in curl_check_connectivity() 2018-02-09 21:17:54 +01:00
nm-connectivity.h device: add default route penalty only if concheck is enabled 2017-05-04 11:07:40 +02:00
nm-core-utils.c core: return remaining lifetime from nm_utils_lifetime_get() 2018-02-09 17:40:01 +01:00
nm-core-utils.h core: return remaining lifetime from nm_utils_lifetime_get() 2018-02-09 17:40:01 +01:00
nm-dcb.c build: don't add subdirectories to include search path but require qualified include 2016-11-21 14:26:37 +01:00
nm-dcb.h all: cleanup includes in header files 2016-08-17 19:51:17 +02:00
nm-dhcp4-config.c exported-object: use NM_EXPORT_PATH_NUMBERED() macro 2017-01-03 15:40:17 +01:00
nm-dhcp4-config.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-dhcp6-config.c exported-object: use NM_EXPORT_PATH_NUMBERED() macro 2017-01-03 15:40:17 +01:00
nm-dhcp6-config.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-dispatcher.c all: use nm_direct_hash() instead of g_direct_hash() 2017-11-16 11:49:52 +01:00
nm-dispatcher.h core/dispatcher: pass act-request to device dispatcher calls 2017-03-16 18:27:33 +01:00
nm-exported-object.c all: use nm_direct_hash() instead of g_direct_hash() 2017-11-16 11:49:52 +01:00
nm-exported-object.h exported-object: add "path" GObject property to have notify signal 2017-01-25 13:12:08 +01:00
nm-firewall-manager.c c-list: re-import latest version of c-list.h from upstream 2017-11-28 11:26:39 +01:00
nm-firewall-manager.h firewall: merge "started" signal and "available" property 2017-04-21 09:09:01 +02:00
nm-hostname-manager.c core,cli: replace wrong pattern for clearing GError 2017-06-27 09:42:28 +02:00
nm-hostname-manager.h hostname: cache hostname-manager's hostname property 2017-05-12 17:29:33 +02:00
nm-iface-helper.c all: require glib 2.40 2018-01-18 11:45:36 +01:00
nm-ip4-config.c core: implement setting MDNS setting for systemd 2018-01-09 14:24:54 +01:00
nm-ip4-config.h core: implement setting MDNS setting for systemd 2018-01-09 14:24:54 +01:00
nm-ip6-config.c core: distinguish between IFA_F_SECONDARY and IFA_F_TEMPORARY 2018-02-09 21:07:57 +01:00
nm-ip6-config.h core: add non-destructive ip config intersect function 2017-12-06 09:53:18 +01:00
nm-logging.c core/logging: with --debug also output glib messages in stderr 2018-02-07 13:41:52 +01:00
nm-logging.h core: workaround coverity/compiler warning about tautological compare in nm_log_ptr() 2017-10-30 14:41:41 +01:00
nm-manager.c core: transit to DISCONNECTING state for NMActiveConnection 2018-02-07 12:35:22 +01:00
nm-manager.h core: persist aspired default route-metric in device's state file 2017-12-20 13:48:13 +01:00
nm-netns.c all: get rid of a handful of unused-but-set variables 2017-12-18 13:29:32 +01:00
nm-netns.h core: rework handling of default-routes and drop NMDefaultRouteManager 2017-09-08 11:11:21 +02:00
nm-pacrunner-manager.c all: get rid of a handful of unused-but-set variables 2017-12-18 13:29:32 +01:00
nm-pacrunner-manager.h proxy: introduce call-id for clearing pacmanager configuration 2017-04-23 18:12:09 +02:00
nm-policy.c trivial: avoid XXX tag and replace by NOTE or FIXME 2018-01-23 12:55:33 +01:00
nm-policy.h policy: add support to configurable hostname mode 2017-03-24 15:18:09 +01:00
nm-proxy-config.c proxy: reorder parts in nm-proxy-config.c and nm-pacrunner-manager.c 2016-10-04 11:58:32 +02:00
nm-proxy-config.h proxy: remove unnecessary APIs 2016-10-04 11:44:44 +02:00
nm-rfkill-manager.c udev: drop libgudev in favor of libudev 2017-03-22 12:41:06 +01:00
nm-rfkill-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-session-monitor.c all: use nm_direct_hash() instead of g_direct_hash() 2017-11-16 11:49:52 +01:00
nm-session-monitor.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-sleep-monitor.c all: use nm_close() instead of close() 2017-11-14 15:10:42 +01:00
nm-sleep-monitor.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-test-utils-core.h tests: add NMTST_EXPECT*() macros 2018-01-08 12:38:53 +01:00
nm-types.h libnm: rename MDns flag UNKNOWN to DEFAULT 2018-01-09 14:24:53 +01:00
org.freedesktop.NetworkManager.conf dbus: allow firewalld to communicate with NetworkManager 2017-04-21 13:38:21 +02:00