summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.am4
-rwxr-xr-xbootstrap-configure1
-rw-r--r--configure.ac10
-rw-r--r--src/main.c12
4 files changed, 23 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am
index 0eaadda0..50be3fd5 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -237,7 +237,7 @@ src_ofonod_SOURCES = $(gdbus_sources) $(builtin_sources) \
src/gprs.c src/idmap.h src/idmap.c \
src/radio-settings.c src/stkutil.h src/stkutil.c
-src_ofonod_LDADD = $(builtin_libadd) @GLIB_LIBS@ @DBUS_LIBS@ -ldl
+src_ofonod_LDADD = $(builtin_libadd) @GLIB_LIBS@ @DBUS_LIBS@ @CAPNG_LIBS@ -ldl
src_ofonod_LDFLAGS = -Wl,--export-dynamic -Wl,--version-script=src/ofono.ver
@@ -254,7 +254,7 @@ else
build_plugindir = $(plugindir)
endif
-AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ $(builtin_cflags) \
+AM_CFLAGS = @DBUS_CFLAGS@ @GLIB_CFLAGS@ @CAPNG_CFLAGS@ $(builtin_cflags) \
-DOFONO_PLUGIN_BUILTIN \
-DPLUGINDIR=\""$(build_plugindir)"\"
diff --git a/bootstrap-configure b/bootstrap-configure
index f6659438..5642f6b6 100755
--- a/bootstrap-configure
+++ b/bootstrap-configure
@@ -12,4 +12,5 @@ fi
--mandir=/usr/share/man \
--sysconfdir=/etc \
--localstatedir=/var \
+ --enable-capng \
--disable-datafiles $*
diff --git a/configure.ac b/configure.ac
index 6ec275c6..d2f921f1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -125,6 +125,16 @@ AC_SUBST(UDEV_CFLAGS)
AC_SUBST(UDEV_LIBS)
AM_CONDITIONAL(UDEV, test "${enable_udev}" = "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(isimodem, AC_HELP_STRING([--disable-isimodem],
[disable PhoNet/ISI modem support]),
[enable_isimodem=${enableval}])
diff --git a/src/main.c b/src/main.c
index b5a5aab4..8e686ac7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -23,8 +23,6 @@
#include <config.h>
#endif
-#include <gdbus.h>
-
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
@@ -32,6 +30,12 @@
#include <signal.h>
#include <sys/signalfd.h>
+#include <gdbus.h>
+
+#ifdef HAVE_CAPNG
+#include <cap-ng.h>
+#endif
+
#include "ofono.h"
#define SHUTDOWN_GRACE_SECONDS 10
@@ -114,6 +118,10 @@ int main(int argc, char **argv)
GIOChannel *signal_io;
int signal_source;
+#ifdef HAVE_CAPNG
+ /* Drop capabilities */
+#endif
+
sigemptyset(&mask);
sigaddset(&mask, SIGTERM);
sigaddset(&mask, SIGINT);