summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2015-12-21 16:08:47 +0000
committerColin Watson <cjwatson@debian.org>2020-10-18 12:07:21 +0100
commite8453621b2a26f8d6afec405ff60201749b01e5e (patch)
tree5fa179505419a22ec3e8c367908ea4ed2a1d47e7
parentc26f6f9c7051b9ab2ac13d1d227e6d39527839cc (diff)
Add systemd readiness notification support
Bug-Debian: https://bugs.debian.org/778913 Forwarded: no Last-Update: 2017-08-22 Patch-Name: systemd-readiness.patch
-rw-r--r--configure.ac24
-rw-r--r--sshd.c9
2 files changed, 33 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index bb435ec1f..5944299fa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4785,6 +4785,29 @@ AC_ARG_WITH([kerberos5],
4785AC_SUBST([GSSLIBS]) 4785AC_SUBST([GSSLIBS])
4786AC_SUBST([K5LIBS]) 4786AC_SUBST([K5LIBS])
4787 4787
4788# Check whether user wants systemd support
4789SYSTEMD_MSG="no"
4790AC_ARG_WITH(systemd,
4791 [ --with-systemd Enable systemd support],
4792 [ if test "x$withval" != "xno" ; then
4793 AC_PATH_TOOL([PKGCONFIG], [pkg-config], [no])
4794 if test "$PKGCONFIG" != "no"; then
4795 AC_MSG_CHECKING([for libsystemd])
4796 if $PKGCONFIG --exists libsystemd; then
4797 SYSTEMD_CFLAGS=`$PKGCONFIG --cflags libsystemd`
4798 SYSTEMD_LIBS=`$PKGCONFIG --libs libsystemd`
4799 CPPFLAGS="$CPPFLAGS $SYSTEMD_CFLAGS"
4800 SSHDLIBS="$SSHDLIBS $SYSTEMD_LIBS"
4801 AC_MSG_RESULT([yes])
4802 AC_DEFINE(HAVE_SYSTEMD, 1, [Define if you want systemd support.])
4803 SYSTEMD_MSG="yes"
4804 else
4805 AC_MSG_RESULT([no])
4806 fi
4807 fi
4808 fi ]
4809)
4810
4788# Looking for programs, paths and files 4811# Looking for programs, paths and files
4789 4812
4790PRIVSEP_PATH=/var/empty 4813PRIVSEP_PATH=/var/empty
@@ -5599,6 +5622,7 @@ echo " libldns support: $LDNS_MSG"
5599echo " Solaris process contract support: $SPC_MSG" 5622echo " Solaris process contract support: $SPC_MSG"
5600echo " Solaris project support: $SP_MSG" 5623echo " Solaris project support: $SP_MSG"
5601echo " Solaris privilege support: $SPP_MSG" 5624echo " Solaris privilege support: $SPP_MSG"
5625echo " systemd support: $SYSTEMD_MSG"
5602echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG" 5626echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG"
5603echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG" 5627echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG"
5604echo " BSD Auth support: $BSD_AUTH_MSG" 5628echo " BSD Auth support: $BSD_AUTH_MSG"
diff --git a/sshd.c b/sshd.c
index 50f2726bf..fb9b7b7fb 100644
--- a/sshd.c
+++ b/sshd.c
@@ -85,6 +85,10 @@
85#include <prot.h> 85#include <prot.h>
86#endif 86#endif
87 87
88#ifdef HAVE_SYSTEMD
89#include <systemd/sd-daemon.h>
90#endif
91
88#include "xmalloc.h" 92#include "xmalloc.h"
89#include "ssh.h" 93#include "ssh.h"
90#include "ssh2.h" 94#include "ssh2.h"
@@ -2076,6 +2080,11 @@ main(int ac, char **av)
2076 } 2080 }
2077 } 2081 }
2078 2082
2083#ifdef HAVE_SYSTEMD
2084 /* Signal systemd that we are ready to accept connections */
2085 sd_notify(0, "READY=1");
2086#endif
2087
2079 /* Accept a connection and return in a forked child */ 2088 /* Accept a connection and return in a forked child */
2080 server_accept_loop(&sock_in, &sock_out, 2089 server_accept_loop(&sock_in, &sock_out,
2081 &newsock, config_s); 2090 &newsock, config_s);