merge: branch 'bg/checkpoint-bgo757858-v2' (early part)
https://bugzilla.gnome.org/show_bug.cgi?id=757858
This commit is contained in:
@@ -28,8 +28,8 @@ libexec_PROGRAMS = \
|
||||
|
||||
|
||||
nm_dispatcher_SOURCES = \
|
||||
$(top_srcdir)/shared/nm-dispatcher-api.h \
|
||||
nm-dispatcher.c \
|
||||
nm-dispatcher-api.h \
|
||||
nm-dispatcher-utils.c \
|
||||
nm-dispatcher-utils.h
|
||||
|
||||
|
@@ -12,6 +12,7 @@ EXTRA_DIST = \
|
||||
nm-common-macros.h \
|
||||
nm-dbus-compat.h \
|
||||
nm-default.h \
|
||||
nm-dispatcher-api.h \
|
||||
nm-test-libnm-utils.h \
|
||||
nm-test-utils-impl.c \
|
||||
nm-version-macros.h.in \
|
||||
|
@@ -123,9 +123,10 @@ _nm_g_return_if_fail_warning (const char *log_domain,
|
||||
/*****************************************************************************/
|
||||
|
||||
#include "nm-utils/nm-macros-internal.h"
|
||||
#include "nm-version.h"
|
||||
#include "nm-utils/nm-shared-utils.h"
|
||||
|
||||
#include "nm-version.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
#if ((NETWORKMANAGER_COMPILATION) == NM_NETWORKMANAGER_COMPILATION_LIB) || ((NETWORKMANAGER_COMPILATION) == NM_NETWORKMANAGER_COMPILATION_LIB_LEGACY)
|
||||
|
@@ -417,4 +417,27 @@ _nm_g_strv_contains (const gchar * const *strv,
|
||||
}
|
||||
#define g_strv_contains _nm_g_strv_contains
|
||||
|
||||
static inline GVariant *
|
||||
_nm_g_variant_new_take_string (gchar *string)
|
||||
{
|
||||
#if !GLIB_CHECK_VERSION(2, 38, 0)
|
||||
GVariant *value;
|
||||
GBytes *bytes;
|
||||
|
||||
g_return_val_if_fail (string != NULL, NULL);
|
||||
g_return_val_if_fail (g_utf8_validate (string, -1, NULL), NULL);
|
||||
|
||||
bytes = g_bytes_new_take (string, strlen (string) + 1);
|
||||
value = g_variant_new_from_bytes (G_VARIANT_TYPE_STRING, bytes, TRUE);
|
||||
g_bytes_unref (bytes);
|
||||
|
||||
return value;
|
||||
#else
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
return g_variant_new_take_string (string);
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
#endif
|
||||
}
|
||||
#define g_variant_new_take_string _nm_g_variant_new_take_string
|
||||
|
||||
#endif /* __NM_GLIB_H__ */
|
||||
|
278
src/Makefile.am
278
src/Makefile.am
@@ -32,36 +32,76 @@ SUBDIRS += \
|
||||
tests
|
||||
endif
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir)/shared \
|
||||
-I$(top_builddir)/shared \
|
||||
-I$(top_builddir)/introspection \
|
||||
-I$(top_srcdir)/libnm-core \
|
||||
-I$(top_builddir)/libnm-core \
|
||||
-I$(top_srcdir)/callouts \
|
||||
-DPREFIX=\"$(prefix)\" \
|
||||
-DG_LOG_DOMAIN=\""NetworkManager"\" \
|
||||
-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON
|
||||
|
||||
# add each subdirectory that contains a libNM source file. $(sort) is being used
|
||||
# primarily for its side effect of removing duplicates.
|
||||
AM_CPPFLAGS += $(foreach d,$(sort $(dir $(libNetworkManager_la_SOURCES))),-I$(top_srcdir)/src/$d)
|
||||
|
||||
noinst_LTLIBRARIES = \
|
||||
libNetworkManager.la \
|
||||
libnm-iface-helper.la \
|
||||
libsystemd-nm.la
|
||||
|
||||
######################
|
||||
# libsystemd-nm
|
||||
######################
|
||||
|
||||
SYSTEMD_NM_CFLAGS_PATHS = \
|
||||
-I$(top_srcdir)/src/systemd/src/systemd \
|
||||
-I$(top_srcdir)/src/systemd/src/libsystemd-network \
|
||||
-I$(top_srcdir)/src/systemd/src/basic \
|
||||
-I$(top_srcdir)/src/systemd
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir)/shared \
|
||||
-I$(top_builddir)/shared \
|
||||
-I$(top_builddir)/introspection \
|
||||
-I$(top_srcdir)/libnm-core \
|
||||
-I$(top_builddir)/libnm-core \
|
||||
\
|
||||
$(foreach d,$(sort $(dir $(libNetworkManager_la_SOURCES))),-I$(top_srcdir)/src/$d) \
|
||||
\
|
||||
-DPREFIX=\"$(prefix)\" \
|
||||
-DG_LOG_DOMAIN=\""NetworkManager"\" \
|
||||
-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
|
||||
\
|
||||
-DBINDIR=\"$(bindir)\" \
|
||||
-DDATADIR=\"$(datadir)\" \
|
||||
-DLIBEXECDIR=\"$(libexecdir)\" \
|
||||
-DLOCALSTATEDIR=\"$(localstatedir)\" \
|
||||
-DRUNSTATEDIR=\"$(runstatedir)\" \
|
||||
-DSBINDIR=\"$(sbindir)\" \
|
||||
-DSYSCONFDIR=\"$(sysconfdir)\" \
|
||||
-DRUNDIR=\"$(rundir)\" \
|
||||
\
|
||||
-DNMCONFDIR=\"$(nmconfdir)\" \
|
||||
-DNMLOCALEDIR=\"$(datadir)/locale\" \
|
||||
-DNMPLUGINDIR=\"$(pkglibdir)\" \
|
||||
-DNMRUNDIR=\"$(nmrundir)\" \
|
||||
-DNMSTATEDIR=\"$(nmstatedir)\" \
|
||||
-DNMLIBDIR=\"$(nmlibdir)\" \
|
||||
\
|
||||
-DDHCLIENT_PATH=\"$(DHCLIENT_PATH)\" \
|
||||
-DDHCPCD_PATH=\"$(DHCPCD_PATH)\" \
|
||||
-DPPPD_PLUGIN_DIR=\"$(PPPD_PLUGIN_DIR)\" \
|
||||
\
|
||||
$(GLIB_CFLAGS) \
|
||||
$(GUDEV_CFLAGS) \
|
||||
$(LIBNL_CFLAGS) \
|
||||
$(LIBNDP_CFLAGS) \
|
||||
$(LIBSOUP_CFLAGS) \
|
||||
$(SELINUX_CFLAGS) \
|
||||
$(LIBAUDIT_CFLAGS) \
|
||||
$(SYSTEMD_LOGIN_CFLAGS) \
|
||||
$(SYSTEMD_JOURNAL_CFLAGS) \
|
||||
$(SYSTEMD_NM_CFLAGS_PATHS) \
|
||||
$(CODE_COVERAGE_CFLAGS) \
|
||||
\
|
||||
$(NULL)
|
||||
|
||||
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||
|
||||
sbin_PROGRAMS = \
|
||||
NetworkManager
|
||||
|
||||
libexec_PROGRAMS = \
|
||||
nm-iface-helper
|
||||
|
||||
noinst_LTLIBRARIES = \
|
||||
libNetworkManagerBase.la \
|
||||
libNetworkManager.la \
|
||||
libNetworkManagerTest.la \
|
||||
libnm-iface-helper.la \
|
||||
libsystemd-nm.la
|
||||
|
||||
###############################################################################
|
||||
|
||||
libsystemd_nm_la_SOURCES = \
|
||||
systemd/nm-sd.c \
|
||||
systemd/nm-sd.h \
|
||||
@@ -176,8 +216,8 @@ libsystemd_nm_la_SOURCES = \
|
||||
systemd/src/systemd/sd-ndisc.h
|
||||
|
||||
libsystemd_nm_la_CPPFLAGS = \
|
||||
-I$(top_srcdir)/shared \
|
||||
-I$(top_builddir)/shared \
|
||||
-I$(top_srcdir)/shared/ \
|
||||
-I$(top_builddir)/shared/ \
|
||||
-I$(top_srcdir)/libnm-core \
|
||||
-I$(top_builddir)/libnm-core \
|
||||
$(SYSTEMD_NM_CFLAGS_PATHS) \
|
||||
@@ -188,52 +228,25 @@ libsystemd_nm_la_CPPFLAGS = \
|
||||
libsystemd_nm_la_LIBADD = \
|
||||
$(GLIB_LIBS)
|
||||
|
||||
######################
|
||||
# libsystemd-nm-base
|
||||
######################
|
||||
###############################################################################
|
||||
|
||||
if ENABLE_TESTS
|
||||
noinst_LTLIBRARIES += \
|
||||
libNetworkManager-base.la
|
||||
|
||||
libNetworkManager_base_la_SOURCES = \
|
||||
libNetworkManagerBase_la_SOURCES = \
|
||||
nm-core-utils.c \
|
||||
nm-core-utils.h \
|
||||
nm-logging.c \
|
||||
nm-logging.h
|
||||
|
||||
libNetworkManager_base_la_CPPFLAGS = \
|
||||
-I$(top_srcdir)/shared \
|
||||
-I$(top_builddir)/shared \
|
||||
-I$(top_srcdir)/libnm-core \
|
||||
-I$(top_builddir)/libnm-core \
|
||||
-I$(top_srcdir)/src/platform \
|
||||
-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_INSIDE_DAEMON \
|
||||
-DNO_SYSTEMD_JOURNAL \
|
||||
-DPREFIX=\"$(prefix)\" \
|
||||
-DLOCALSTATEDIR=\"$(localstatedir)\" \
|
||||
-DNMSTATEDIR=\"$(nmstatedir)\" \
|
||||
$(GLIB_CFLAGS)
|
||||
|
||||
libNetworkManager_base_la_LIBADD = \
|
||||
libNetworkManagerBase_la_LIBADD = \
|
||||
$(top_builddir)/libnm-core/libnm-core.la \
|
||||
$(GLIB_LIBS)
|
||||
endif
|
||||
$(GLIB_LIBS) \
|
||||
$(SYSTEMD_JOURNAL_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
###########################################
|
||||
# NetworkManager
|
||||
###########################################
|
||||
###############################################################################
|
||||
|
||||
sbin_PROGRAMS = NetworkManager
|
||||
|
||||
NetworkManager_SOURCES = \
|
||||
$(nm_device_sources) $(nm_device_headers) \
|
||||
$(nm_dhcp_client_sources) $(nm_dhcp_client_headers) \
|
||||
main-utils.c \
|
||||
main-utils.h \
|
||||
main.c
|
||||
|
||||
NetworkManager_LDADD = libNetworkManager.la
|
||||
# These source files have a attribute((constructor)) to register their factories.
|
||||
# This gets stripped out from the resulting binary if we add them to libNetworkManager.la.
|
||||
# Instead, add them to the binary. An alternative would be to link with --as-needed.
|
||||
|
||||
nm_device_sources = \
|
||||
devices/nm-device-bond.c \
|
||||
@@ -258,23 +271,27 @@ nm_device_headers = \
|
||||
devices/nm-device-tun.h \
|
||||
devices/nm-device-veth.h \
|
||||
devices/nm-device-vlan.h \
|
||||
devices/nm-device-vxlan.h
|
||||
devices/nm-device-vxlan.h \
|
||||
$(NULL)
|
||||
|
||||
nm_dhcp_client_sources = \
|
||||
dhcp-manager/nm-dhcp-dhclient.c \
|
||||
dhcp-manager/nm-dhcp-dhclient-utils.c \
|
||||
dhcp-manager/nm-dhcp-dhcpcd.c \
|
||||
dhcp-manager/nm-dhcp-systemd.c
|
||||
dhcp-manager/nm-dhcp-systemd.c \
|
||||
$(NULL)
|
||||
|
||||
nm_dhcp_client_headers = \
|
||||
dhcp-manager/nm-dhcp-dhclient.h \
|
||||
dhcp-manager/nm-dhcp-dhclient-utils.h \
|
||||
dhcp-manager/nm-dhcp-dhcpcd.h \
|
||||
dhcp-manager/nm-dhcp-systemd.h
|
||||
dhcp-manager/nm-dhcp-systemd.h \
|
||||
$(NULL)
|
||||
|
||||
###############################################################################
|
||||
|
||||
libNetworkManager_la_SOURCES = \
|
||||
$(nm_device_headers) \
|
||||
$(nm_dhcp_client_headers) \
|
||||
\
|
||||
dhcp-manager/nm-dhcp-dhclient-utils.c \
|
||||
dhcp-manager/nm-dhcp-dhclient-utils.h \
|
||||
devices/nm-device.c \
|
||||
devices/nm-device.h \
|
||||
devices/nm-lldp-listener.c \
|
||||
@@ -324,8 +341,6 @@ libNetworkManager_la_SOURCES = \
|
||||
platform/nm-platform.h \
|
||||
platform/nm-linux-platform.c \
|
||||
platform/nm-linux-platform.h \
|
||||
platform/nm-fake-platform.c \
|
||||
platform/nm-fake-platform.h \
|
||||
platform/wifi/wifi-utils-nl80211.c \
|
||||
platform/wifi/wifi-utils-nl80211.h \
|
||||
platform/wifi/wifi-utils-private.h \
|
||||
@@ -417,8 +432,6 @@ libNetworkManager_la_SOURCES = \
|
||||
nm-ip4-config.h \
|
||||
nm-ip6-config.c \
|
||||
nm-ip6-config.h \
|
||||
nm-logging.c \
|
||||
nm-logging.h \
|
||||
nm-auth-manager.c \
|
||||
nm-auth-manager.h \
|
||||
nm-auth-subject.c \
|
||||
@@ -438,11 +451,9 @@ libNetworkManager_la_SOURCES = \
|
||||
nm-sleep-monitor.c \
|
||||
nm-sleep-monitor.h \
|
||||
nm-types.h \
|
||||
nm-core-utils.c \
|
||||
nm-core-utils.h \
|
||||
NetworkManagerUtils.c \
|
||||
NetworkManagerUtils.h
|
||||
|
||||
NetworkManagerUtils.h \
|
||||
$(NULL)
|
||||
|
||||
if WITH_WEXT
|
||||
libNetworkManager_la_SOURCES += \
|
||||
@@ -451,65 +462,15 @@ libNetworkManager_la_SOURCES += \
|
||||
endif
|
||||
|
||||
|
||||
GLIB_GENERATED = nm-enum-types.h nm-enum-types.c
|
||||
GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM --fhead '\#include <nm-core-enum-types.h>\n'
|
||||
GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM
|
||||
nm_enum_types_sources = $(filter-out \
|
||||
%/nm-device-private.h \
|
||||
%/nm-rdisc-private.h \
|
||||
%/wifi-utils-private.h \
|
||||
%/nm-dhcp-client-logging.h \
|
||||
%/nm-device-logging.h \
|
||||
, $(libNetworkManager_la_SOURCES))
|
||||
|
||||
BUILT_SOURCES = $(GLIB_GENERATED)
|
||||
|
||||
AM_CPPFLAGS += \
|
||||
$(GLIB_CFLAGS) \
|
||||
$(GUDEV_CFLAGS) \
|
||||
$(LIBNL_CFLAGS) \
|
||||
$(LIBNDP_CFLAGS) \
|
||||
$(LIBSOUP_CFLAGS) \
|
||||
$(SELINUX_CFLAGS) \
|
||||
$(LIBAUDIT_CFLAGS) \
|
||||
$(SYSTEMD_LOGIN_CFLAGS) \
|
||||
$(SYSTEMD_JOURNAL_CFLAGS) \
|
||||
$(SYSTEMD_NM_CFLAGS_PATHS) \
|
||||
$(CODE_COVERAGE_CFLAGS) \
|
||||
\
|
||||
-DBINDIR=\"$(bindir)\" \
|
||||
-DDATADIR=\"$(datadir)\" \
|
||||
-DLIBEXECDIR=\"$(libexecdir)\" \
|
||||
-DLOCALSTATEDIR=\"$(localstatedir)\" \
|
||||
-DRUNSTATEDIR=\"$(runstatedir)\" \
|
||||
-DSBINDIR=\"$(sbindir)\" \
|
||||
-DSYSCONFDIR=\"$(sysconfdir)\" \
|
||||
-DRUNDIR=\"$(rundir)\" \
|
||||
\
|
||||
-DNMCONFDIR=\"$(nmconfdir)\" \
|
||||
-DNMLOCALEDIR=\"$(datadir)/locale\" \
|
||||
-DNMPLUGINDIR=\"$(pkglibdir)\" \
|
||||
-DNMRUNDIR=\"$(nmrundir)\" \
|
||||
-DNMSTATEDIR=\"$(nmstatedir)\" \
|
||||
-DNMLIBDIR=\"$(nmlibdir)\" \
|
||||
\
|
||||
-DDHCLIENT_PATH=\"$(DHCLIENT_PATH)\" \
|
||||
-DDHCPCD_PATH=\"$(DHCPCD_PATH)\" \
|
||||
-DPPPD_PLUGIN_DIR=\"$(PPPD_PLUGIN_DIR)\" \
|
||||
\
|
||||
$(NULL)
|
||||
|
||||
AM_LDFLAGS = $(CODE_COVERAGE_LDFLAGS)
|
||||
|
||||
libNetworkManager_la_LIBADD = \
|
||||
$(top_builddir)/libnm-core/libnm-core.la \
|
||||
$(top_builddir)/introspection/libnmdbus.la \
|
||||
libNetworkManagerBase.la \
|
||||
libsystemd-nm.la \
|
||||
$(GLIB_LIBS) \
|
||||
$(GUDEV_LIBS) \
|
||||
$(LIBNL_LIBS) \
|
||||
$(SYSTEMD_LOGIN_LIBS) \
|
||||
$(SYSTEMD_JOURNAL_LIBS) \
|
||||
$(LIBNDP_LIBS) \
|
||||
$(LIBDL) \
|
||||
$(LIBM) \
|
||||
@@ -520,13 +481,42 @@ if WITH_LIBSOUP
|
||||
libNetworkManager_la_LIBADD += $(LIBSOUP_LIBS)
|
||||
endif
|
||||
|
||||
###############################################################################
|
||||
|
||||
libNetworkManagerTest_la_SOURCES = \
|
||||
rdisc/nm-fake-rdisc.c \
|
||||
rdisc/nm-fake-rdisc.h \
|
||||
platform/nm-fake-platform.c \
|
||||
platform/nm-fake-platform.h
|
||||
|
||||
libNetworkManagerTest_la_LIBADD = \
|
||||
$(srcdir)/libNetworkManager.la
|
||||
|
||||
###############################################################################
|
||||
|
||||
NetworkManager_SOURCES = \
|
||||
\
|
||||
$(nm_device_sources) \
|
||||
$(nm_device_headers) \
|
||||
\
|
||||
$(nm_dhcp_client_sources) \
|
||||
$(nm_dhcp_client_headers) \
|
||||
\
|
||||
main-utils.c \
|
||||
main-utils.h \
|
||||
main.c
|
||||
|
||||
NetworkManager_LDADD = \
|
||||
libNetworkManager.la
|
||||
|
||||
NetworkManager_LDFLAGS = \
|
||||
-rdynamic \
|
||||
-Wl,--version-script="$(srcdir)/NetworkManager.ver"
|
||||
|
||||
######################
|
||||
###############################################################################
|
||||
|
||||
libnm_iface_helper_la_SOURCES = \
|
||||
\
|
||||
dhcp-manager/nm-dhcp-client.c \
|
||||
dhcp-manager/nm-dhcp-client.h \
|
||||
dhcp-manager/nm-dhcp-client-logging.h \
|
||||
@@ -568,12 +558,8 @@ libnm_iface_helper_la_SOURCES = \
|
||||
\
|
||||
nm-enum-types.c \
|
||||
nm-enum-types.h \
|
||||
nm-logging.c \
|
||||
nm-logging.h \
|
||||
nm-multi-index.c \
|
||||
nm-multi-index.h \
|
||||
nm-core-utils.c \
|
||||
nm-core-utils.h \
|
||||
NetworkManagerUtils.c \
|
||||
NetworkManagerUtils.h
|
||||
|
||||
@@ -586,6 +572,7 @@ endif
|
||||
libnm_iface_helper_la_LIBADD = \
|
||||
$(top_builddir)/libnm-core/libnm-core.la \
|
||||
$(top_builddir)/introspection/libnmdbus.la \
|
||||
libNetworkManagerBase.la \
|
||||
libsystemd-nm.la \
|
||||
$(GLIB_LIBS) \
|
||||
$(GUDEV_LIBS) \
|
||||
@@ -594,8 +581,6 @@ libnm_iface_helper_la_LIBADD = \
|
||||
$(LIBDL) \
|
||||
$(LIBM)
|
||||
|
||||
libexec_PROGRAMS = nm-iface-helper
|
||||
|
||||
nm_iface_helper_SOURCES = \
|
||||
dhcp-manager/nm-dhcp-systemd.h \
|
||||
dhcp-manager/nm-dhcp-systemd.c \
|
||||
@@ -609,14 +594,29 @@ nm_iface_helper_LDADD = \
|
||||
libnm-iface-helper.la \
|
||||
$(GLIB_LIBS) \
|
||||
$(GUDEV_LIBS) \
|
||||
$(SYSTEMD_JOURNAL_LIBS) \
|
||||
$(LIBNL_LIBS) \
|
||||
$(LIBNDP_LIBS) \
|
||||
$(LIBM)
|
||||
|
||||
nm_iface_helper_LDFLAGS = -rdynamic
|
||||
nm_iface_helper_LDFLAGS = \
|
||||
-rdynamic
|
||||
|
||||
######################
|
||||
###############################################################################
|
||||
|
||||
GLIB_GENERATED = nm-enum-types.h nm-enum-types.c
|
||||
GLIB_MKENUMS_H_FLAGS = --identifier-prefix NM --fhead '\#include <nm-core-enum-types.h>\n'
|
||||
GLIB_MKENUMS_C_FLAGS = --identifier-prefix NM --fhead '\#include "nm-default.h"\n'
|
||||
nm_enum_types_sources = $(filter-out \
|
||||
%/nm-device-private.h \
|
||||
%/nm-rdisc-private.h \
|
||||
%/wifi-utils-private.h \
|
||||
%/nm-dhcp-client-logging.h \
|
||||
%/nm-device-logging.h \
|
||||
, $(libNetworkManager_la_SOURCES))
|
||||
|
||||
BUILT_SOURCES = $(GLIB_GENERATED)
|
||||
|
||||
###############################################################################
|
||||
|
||||
dbusservicedir = $(DBUS_SYS_DIR)
|
||||
dbusservice_DATA = org.freedesktop.NetworkManager.conf
|
||||
|
@@ -22,8 +22,6 @@
|
||||
#include <nm-setting-ip4-config.h>
|
||||
#include <nm-setting-ip6-config.h>
|
||||
|
||||
#include "nm-default.h"
|
||||
|
||||
char *nm_dhcp_dhclient_create_config (const char *interface,
|
||||
gboolean is_ip6,
|
||||
GBytes *client_id,
|
||||
|
@@ -533,6 +533,36 @@ nm_bus_manager_get_caller_info_from_message (NMBusManager *self,
|
||||
return _get_caller_info (self, NULL, connection, message, out_sender, out_uid, out_pid);
|
||||
}
|
||||
|
||||
gboolean
|
||||
nm_bus_manager_ensure_root (NMBusManager *self,
|
||||
GDBusMethodInvocation *context,
|
||||
GQuark error_domain,
|
||||
int error_code)
|
||||
{
|
||||
gulong caller_uid;
|
||||
GError *error = NULL;
|
||||
|
||||
g_return_val_if_fail (NM_IS_BUS_MANAGER (self), FALSE);
|
||||
g_return_val_if_fail (G_IS_DBUS_METHOD_INVOCATION (context), FALSE);
|
||||
|
||||
if (!nm_bus_manager_get_caller_info (self, context, NULL, &caller_uid, NULL)) {
|
||||
error = g_error_new_literal (error_domain,
|
||||
error_code,
|
||||
"Unable to determine request UID.");
|
||||
g_dbus_method_invocation_take_error (context, error);
|
||||
return FALSE;
|
||||
}
|
||||
if (caller_uid != 0) {
|
||||
error = g_error_new_literal (error_domain,
|
||||
error_code,
|
||||
"Permission denied");
|
||||
g_dbus_method_invocation_take_error (context, error);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
nm_bus_manager_get_unix_user (NMBusManager *self,
|
||||
const char *sender,
|
||||
|
@@ -68,6 +68,11 @@ gboolean nm_bus_manager_get_caller_info (NMBusManager *self,
|
||||
gulong *out_uid,
|
||||
gulong *out_pid);
|
||||
|
||||
gboolean nm_bus_manager_ensure_root (NMBusManager *self,
|
||||
GDBusMethodInvocation *context,
|
||||
GQuark error_domain,
|
||||
int error_code);
|
||||
|
||||
const char *nm_bus_manager_connection_get_private_name (NMBusManager *self,
|
||||
GDBusConnection *connection);
|
||||
|
||||
|
@@ -21,10 +21,6 @@
|
||||
#ifndef NM_EXPORTED_OBJECT_H
|
||||
#define NM_EXPORTED_OBJECT_H
|
||||
|
||||
#include "nm-default.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
char *nm_exported_object_skeletonify_method_name (const char *dbus_method_name);
|
||||
@@ -79,6 +75,4 @@ GDBusInterfaceSkeleton *nm_exported_object_get_interface_by_type (NMExportedObje
|
||||
void _nm_exported_object_clear_and_unexport (NMExportedObject **location);
|
||||
#define nm_exported_object_clear_and_unexport(location) _nm_exported_object_clear_and_unexport ((NMExportedObject **) (location))
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* NM_EXPORTED_OBJECT_H */
|
||||
#endif /* NM_EXPORTED_OBJECT_H */
|
||||
|
@@ -32,11 +32,6 @@
|
||||
#include <strings.h>
|
||||
#include <string.h>
|
||||
|
||||
#if defined (NO_SYSTEMD_JOURNAL) && defined (SYSTEMD_JOURNAL)
|
||||
#undef SYSTEMD_JOURNAL
|
||||
#define SYSTEMD_JOURNAL 0
|
||||
#endif
|
||||
|
||||
#if SYSTEMD_JOURNAL
|
||||
#define SD_JOURNAL_SUPPRESS_LOCATION
|
||||
#include <systemd/sd-journal.h>
|
||||
|
@@ -28,7 +28,7 @@ TEST_SOURCES = \
|
||||
AM_CFLAGS = $(CODE_COVERAGE_CFLAGS)
|
||||
AM_LDFLAGS = $(GLIB_LIBS) $(GUDEV_LIBS) $(LIBNL_LIBS) $(CODE_COVERAGE_LDFLAGS)
|
||||
PLATFORM_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
$(top_builddir)/src/libNetworkManagerTest.la
|
||||
|
||||
@GNOME_CODE_COVERAGE_RULES@
|
||||
|
||||
@@ -109,12 +109,12 @@ test_cleanup_linux_LDADD = $(PLATFORM_LDADD)
|
||||
test_nmp_object_SOURCES = \
|
||||
test-nmp-object.c
|
||||
test_nmp_object_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
$(top_builddir)/src/libNetworkManagerTest.la
|
||||
|
||||
test_general_SOURCES = \
|
||||
test-general.c
|
||||
test_general_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
$(top_builddir)/src/libNetworkManagerTest.la
|
||||
|
||||
|
||||
@VALGRIND_RULES@
|
||||
|
@@ -27,11 +27,9 @@ test_rdisc_linux_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
|
||||
test_rdisc_fake_SOURCES = \
|
||||
$(srcdir)/../nm-fake-rdisc.c \
|
||||
$(srcdir)/../nm-fake-rdisc.h \
|
||||
test-rdisc-fake.c
|
||||
test_rdisc_fake_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
$(top_builddir)/src/libNetworkManagerTest.la
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-rdisc-fake
|
||||
|
@@ -1512,31 +1512,6 @@ impl_settings_add_connection_unsaved (NMSettings *self,
|
||||
impl_settings_add_connection_helper (self, context, settings, FALSE);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
ensure_root (NMBusManager *dbus_mgr,
|
||||
GDBusMethodInvocation *context)
|
||||
{
|
||||
gulong caller_uid;
|
||||
GError *error = NULL;
|
||||
|
||||
if (!nm_bus_manager_get_caller_info (dbus_mgr, context, NULL, &caller_uid, NULL)) {
|
||||
error = g_error_new_literal (NM_SETTINGS_ERROR,
|
||||
NM_SETTINGS_ERROR_PERMISSION_DENIED,
|
||||
"Unable to determine request UID.");
|
||||
g_dbus_method_invocation_take_error (context, error);
|
||||
return FALSE;
|
||||
}
|
||||
if (caller_uid != 0) {
|
||||
error = g_error_new_literal (NM_SETTINGS_ERROR,
|
||||
NM_SETTINGS_ERROR_PERMISSION_DENIED,
|
||||
"Permission denied");
|
||||
g_dbus_method_invocation_take_error (context, error);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
impl_settings_load_connections (NMSettings *self,
|
||||
GDBusMethodInvocation *context,
|
||||
@@ -1547,7 +1522,8 @@ impl_settings_load_connections (NMSettings *self,
|
||||
GSList *iter;
|
||||
int i;
|
||||
|
||||
if (!ensure_root (nm_bus_manager_get (), context))
|
||||
if (!nm_bus_manager_ensure_root (nm_bus_manager_get (), context,
|
||||
NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_PERMISSION_DENIED))
|
||||
return;
|
||||
|
||||
failures = g_ptr_array_new ();
|
||||
@@ -1583,7 +1559,8 @@ impl_settings_reload_connections (NMSettings *self,
|
||||
NMSettingsPrivate *priv = NM_SETTINGS_GET_PRIVATE (self);
|
||||
GSList *iter;
|
||||
|
||||
if (!ensure_root (nm_bus_manager_get (), context))
|
||||
if (!nm_bus_manager_ensure_root (nm_bus_manager_get (), context,
|
||||
NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_PERMISSION_DENIED))
|
||||
return;
|
||||
|
||||
for (iter = priv->plugins; iter; iter = g_slist_next (iter)) {
|
||||
|
@@ -62,7 +62,7 @@ test_route_manager_fake_SOURCES = \
|
||||
test-route-manager.c
|
||||
|
||||
test_route_manager_fake_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
$(top_builddir)/src/libNetworkManagerTest.la
|
||||
|
||||
test_route_manager_linux_SOURCES = \
|
||||
$(top_srcdir)/src/platform/tests/test-common.c \
|
||||
@@ -130,7 +130,7 @@ test_systemd_SOURCES = \
|
||||
test-systemd.c
|
||||
|
||||
test_systemd_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager-base.la \
|
||||
$(top_builddir)/src/libNetworkManagerBase.la \
|
||||
$(top_builddir)/src/libsystemd-nm.la
|
||||
|
||||
####### utils test #######
|
||||
|
@@ -21,7 +21,7 @@ test_config_SOURCES = \
|
||||
test-config.c
|
||||
|
||||
test_config_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
$(top_builddir)/src/libNetworkManagerTest.la
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-config
|
||||
|
Reference in New Issue
Block a user