summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-11-30 00:41:05 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-11-30 00:41:05 +0100
commit8cb219bfdc0ae3763e19a0f96511f32f9b06e243 (patch)
tree1d4e6fc03a267b02e4e2df9257649dc099de628f
parentc77bce46779cd2c9f25b7be78243f34a0ef1777e (diff)
downloadconnman-8cb219bfdc0ae3763e19a0f96511f32f9b06e243.tar.gz
connman-8cb219bfdc0ae3763e19a0f96511f32f9b06e243.tar.bz2
connman-8cb219bfdc0ae3763e19a0f96511f32f9b06e243.zip
Check for capabilities support via libcap-ng
-rw-r--r--Makefile.am5
-rwxr-xr-xbootstrap-configure1
-rw-r--r--configure.ac10
-rw-r--r--src/main.c8
4 files changed, 22 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index d4c26a9b..e63e3683 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -58,7 +58,7 @@ src_connmand_SOURCES += src/udev-compat.c
endif
src_connmand_LDADD = $(builtin_libadd) \
- @GLIB_LIBS@ @DBUS_LIBS@ @UDEV_LIBS@ -ldl
+ @GLIB_LIBS@ @DBUS_LIBS@ @CAPNG_LIBS@ @UDEV_LIBS@ -ldl
src_connmand_LDFLAGS = -Wl,--export-dynamic -Wl,--version-script=src/connman.ver
@@ -83,7 +83,8 @@ build_plugindir = $(plugindir)
build_scriptdir = $(scriptdir)
endif
-AM_CFLAGS = @UDEV_CFLAGS@ @NETLINK_CFLAGS@ @DBUS_CFLAGS@ \
+AM_CFLAGS = @UDEV_CFLAGS@ @NETLINK_CFLAGS@ @CAPNG_CFLAGS@ \
+ @DBUS_CFLAGS@ @GLIB_CFLAGS@ $(builtin_cflags) \
@GLIB_CFLAGS@ $(builtin_cflags) \
-DCONNMAN_PLUGIN_BUILTIN \
-DSTATEDIR=\""$(statedir)"\" \
diff --git a/bootstrap-configure b/bootstrap-configure
index 706f0431..3132115d 100755
--- a/bootstrap-configure
+++ b/bootstrap-configure
@@ -32,5 +32,6 @@ fi
--enable-iwmx \
--enable-iospm \
--enable-polkit=builtin \
+ --enable-capng \
--enable-client \
--enable-tools $*
diff --git a/configure.ac b/configure.ac
index 3969aa56..9709b9e0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -332,6 +332,16 @@ AC_ARG_ENABLE(fake, AC_HELP_STRING([--enable-fake],
[enable fake device support]), [enable_fake=${enableval}])
AM_CONDITIONAL(FAKE, test "${enable_fake}" = "yes")
+AC_ARG_ENABLE(capng, AC_HELP_STRING([--enable-capng],
+ [enable capabilities support]), [enable_capng=${enableval}])
+if (test "${enable_capng}" = "yes"); then
+ PKG_CHECK_MODULES(CAPNG, libcap-ng, dummy=yes,
+ AC_MSG_ERROR(Capabilities library is required))
+ AC_SUBST(CAPNG_CFLAGS)
+ AC_SUBST(CAPNG_LIBS)
+ AC_DEFINE(HAVE_CAPNG, 1, [Define to 1 if you have capabilities library.])
+fi
+
AC_ARG_ENABLE(udev, AC_HELP_STRING([--disable-udev],
[don't use udev support even if available]),
[enable_udev=${enableval}])
diff --git a/src/main.c b/src/main.c
index 312b823f..327eb245 100644
--- a/src/main.c
+++ b/src/main.c
@@ -34,6 +34,10 @@
#include <gdbus.h>
+#ifdef HAVE_CAPNG
+#include <cap-ng.h>
+#endif
+
#include "connman.h"
static GMainLoop *main_loop = NULL;
@@ -109,6 +113,10 @@ int main(int argc, char *argv[])
struct sigaction sa;
mode_t old_umask;
+#ifdef HAVE_CAPNG
+ /* Drop capabilities */
+#endif
+
#ifdef NEED_THREADS
if (g_thread_supported() == FALSE)
g_thread_init(NULL);