mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-23 20:03:31 +01:00
add support for systemd notification protocol
This permit for now to signal readiness in a cleaner way to systemd.
This commit is contained in:
parent
c6ac752353
commit
aabaed6f49
35
configure.ac
35
configure.ac
@ -12,6 +12,8 @@ AC_CONFIG_HEADERS([orconfig.h])
|
|||||||
|
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
|
|
||||||
|
PKG_PROG_PKG_CONFIG
|
||||||
|
|
||||||
if test -f /etc/redhat-release ; then
|
if test -f /etc/redhat-release ; then
|
||||||
if test -f /usr/kerberos/include ; then
|
if test -f /usr/kerberos/include ; then
|
||||||
CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
|
CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
|
||||||
@ -105,6 +107,37 @@ AC_ARG_ENABLE(upnp,
|
|||||||
* ) AC_MSG_ERROR(bad value for --enable-upnp) ;;
|
* ) AC_MSG_ERROR(bad value for --enable-upnp) ;;
|
||||||
esac], [upnp=false])
|
esac], [upnp=false])
|
||||||
|
|
||||||
|
# systemd notify support
|
||||||
|
AC_ARG_ENABLE(systemd,
|
||||||
|
AS_HELP_STRING(--enable-systemd, enable systemd notification support),
|
||||||
|
[case "${enableval}" in
|
||||||
|
yes) systemd=true ;;
|
||||||
|
no) systemd=false ;;
|
||||||
|
* ) AC_MSG_ERROR(bad value for --enable-systemd) ;;
|
||||||
|
esac], [systemd=auto])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# systemd support
|
||||||
|
if test x$enable_systemd = xfalse ; then
|
||||||
|
have_systemd=no;
|
||||||
|
else
|
||||||
|
PKG_CHECK_MODULES(SYSTEMD,
|
||||||
|
[libsystemd-daemon],
|
||||||
|
have_systemd=yes,
|
||||||
|
have_systemd=no)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test x$have_systemd = xyes; then
|
||||||
|
AC_DEFINE(HAVE_SYSTEMD,1,[Have systemd])
|
||||||
|
TOR_SYSTEMD_LIBS="-lsystemd-daemon"
|
||||||
|
fi
|
||||||
|
AC_SUBST(TOR_SYSTEMD_LIBS)
|
||||||
|
|
||||||
|
if test x$enable_systemd = xyes -a x$have_systemd != xyes ; then
|
||||||
|
AC_MSG_ERROR([Explicitly requested systemd support, but systemd not found])
|
||||||
|
fi
|
||||||
|
|
||||||
case $host in
|
case $host in
|
||||||
*-*-solaris* )
|
*-*-solaris* )
|
||||||
AC_DEFINE(_REENTRANT, 1, [Define on some platforms to activate x_r() functions in time.h])
|
AC_DEFINE(_REENTRANT, 1, [Define on some platforms to activate x_r() functions in time.h])
|
||||||
@ -618,7 +651,7 @@ dnl since sometimes the linker will like an option but not be willing to
|
|||||||
dnl use it with a build of a library.
|
dnl use it with a build of a library.
|
||||||
|
|
||||||
all_ldflags_for_check="$TOR_LDFLAGS_zlib $TOR_LDFLAGS_openssl $TOR_LDFLAGS_libevent"
|
all_ldflags_for_check="$TOR_LDFLAGS_zlib $TOR_LDFLAGS_openssl $TOR_LDFLAGS_libevent"
|
||||||
all_libs_for_check="$TOR_ZLIB_LIBS $TOR_LIB_MATH $TOR_LIBEVENT_LIBS $TOR_OPENSSL_LIBS $TOR_LIB_WS32 $TOR_LIB_GDI"
|
all_libs_for_check="$TOR_ZLIB_LIBS $TOR_LIB_MATH $TOR_LIBEVENT_LIBS $TOR_OPENSSL_LIBS $TOR_SYSTEMD_LIBS $TOR_LIB_WS32 $TOR_LIB_GDI"
|
||||||
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
|
||||||
#if !defined(__clang__)
|
#if !defined(__clang__)
|
||||||
|
@ -111,7 +111,7 @@ src_or_tor_LDADD = src/or/libtor.a src/common/libor.a \
|
|||||||
src/common/libor-crypto.a $(LIBDONNA) \
|
src/common/libor-crypto.a $(LIBDONNA) \
|
||||||
src/common/libor-event.a \
|
src/common/libor-event.a \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||||
@TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
|
@TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@ @TOR_SYSTEMD_LIBS@
|
||||||
|
|
||||||
if COVERAGE_ENABLED
|
if COVERAGE_ENABLED
|
||||||
src_or_tor_cov_SOURCES = src/or/tor_main.c
|
src_or_tor_cov_SOURCES = src/or/tor_main.c
|
||||||
@ -122,7 +122,7 @@ src_or_tor_cov_LDADD = src/or/libtor-testing.a src/common/libor-testing.a \
|
|||||||
src/common/libor-crypto-testing.a $(LIBDONNA) \
|
src/common/libor-crypto-testing.a $(LIBDONNA) \
|
||||||
src/common/libor-event-testing.a \
|
src/common/libor-event-testing.a \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ @TOR_OPENSSL_LIBS@ \
|
||||||
@TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
|
@TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@ @TOR_SYSTEMD_LIBS@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ORHEADERS = \
|
ORHEADERS = \
|
||||||
|
@ -75,6 +75,10 @@
|
|||||||
#include <event2/bufferevent.h>
|
#include <event2/bufferevent.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SYSTEMD
|
||||||
|
#include <systemd/sd-daemon.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
void evdns_shutdown(int);
|
void evdns_shutdown(int);
|
||||||
|
|
||||||
/********* PROTOTYPES **********/
|
/********* PROTOTYPES **********/
|
||||||
@ -2043,6 +2047,11 @@ do_main_loop(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SYSTEMD
|
||||||
|
log_notice(LD_GENERAL, "Signaling readyness to systemd");
|
||||||
|
sd_notify(0, "READY=1");
|
||||||
|
#endif
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (nt_service_is_stopping())
|
if (nt_service_is_stopping())
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -68,7 +68,8 @@ src_test_test_LDADD = src/or/libtor-testing.a src/common/libor-testing.a \
|
|||||||
src/common/libor-crypto-testing.a $(LIBDONNA) \
|
src/common/libor-crypto-testing.a $(LIBDONNA) \
|
||||||
src/common/libor-event-testing.a src/trunnel/libor-trunnel-testing.a \
|
src/common/libor-event-testing.a src/trunnel/libor-trunnel-testing.a \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
|
||||||
@TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
|
@TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@ \
|
||||||
|
@TOR_SYSTEMD_LIBS@
|
||||||
|
|
||||||
src_test_bench_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
|
src_test_bench_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
|
||||||
@TOR_LDFLAGS_libevent@
|
@TOR_LDFLAGS_libevent@
|
||||||
@ -76,7 +77,8 @@ src_test_bench_LDADD = src/or/libtor.a src/common/libor.a \
|
|||||||
src/common/libor-crypto.a $(LIBDONNA) \
|
src/common/libor-crypto.a $(LIBDONNA) \
|
||||||
src/common/libor-event.a \
|
src/common/libor-event.a \
|
||||||
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
|
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
|
||||||
@TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@
|
@TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@ \
|
||||||
|
@TOR_SYSTEMD_LIBS@
|
||||||
|
|
||||||
noinst_HEADERS+= \
|
noinst_HEADERS+= \
|
||||||
src/test/fakechans.h \
|
src/test/fakechans.h \
|
||||||
|
Loading…
Reference in New Issue
Block a user