summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2015-12-21 16:08:47 +0000
committerColin Watson <cjwatson@debian.org>2020-02-21 12:10:36 +0000
commita208834b2d1811dac7054d7fdcdd04672f8b19f6 (patch)
tree516663911b9ce2649973957bd359aae77dc82b8a
parent63da84c3570afb4fa6bab38fdac3e9af45d0ec54 (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 cee7cbc51..5db3013de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4664,6 +4664,29 @@ AC_ARG_WITH([kerberos5],
4664AC_SUBST([GSSLIBS]) 4664AC_SUBST([GSSLIBS])
4665AC_SUBST([K5LIBS]) 4665AC_SUBST([K5LIBS])
4666 4666
4667# Check whether user wants systemd support
4668SYSTEMD_MSG="no"
4669AC_ARG_WITH(systemd,
4670 [ --with-systemd Enable systemd support],
4671 [ if test "x$withval" != "xno" ; then
4672 AC_PATH_TOOL([PKGCONFIG], [pkg-config], [no])
4673 if test "$PKGCONFIG" != "no"; then
4674 AC_MSG_CHECKING([for libsystemd])
4675 if $PKGCONFIG --exists libsystemd; then
4676 SYSTEMD_CFLAGS=`$PKGCONFIG --cflags libsystemd`
4677 SYSTEMD_LIBS=`$PKGCONFIG --libs libsystemd`
4678 CPPFLAGS="$CPPFLAGS $SYSTEMD_CFLAGS"
4679 SSHDLIBS="$SSHDLIBS $SYSTEMD_LIBS"
4680 AC_MSG_RESULT([yes])
4681 AC_DEFINE(HAVE_SYSTEMD, 1, [Define if you want systemd support.])
4682 SYSTEMD_MSG="yes"
4683 else
4684 AC_MSG_RESULT([no])
4685 fi
4686 fi
4687 fi ]
4688)
4689
4667# Looking for programs, paths and files 4690# Looking for programs, paths and files
4668 4691
4669PRIVSEP_PATH=/var/empty 4692PRIVSEP_PATH=/var/empty
@@ -5476,6 +5499,7 @@ echo " libldns support: $LDNS_MSG"
5476echo " Solaris process contract support: $SPC_MSG" 5499echo " Solaris process contract support: $SPC_MSG"
5477echo " Solaris project support: $SP_MSG" 5500echo " Solaris project support: $SP_MSG"
5478echo " Solaris privilege support: $SPP_MSG" 5501echo " Solaris privilege support: $SPP_MSG"
5502echo " systemd support: $SYSTEMD_MSG"
5479echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG" 5503echo " IP address in \$DISPLAY hack: $DISPLAY_HACK_MSG"
5480echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG" 5504echo " Translate v4 in v6 hack: $IPV4_IN6_HACK_MSG"
5481echo " BSD Auth support: $BSD_AUTH_MSG" 5505echo " BSD Auth support: $BSD_AUTH_MSG"
diff --git a/sshd.c b/sshd.c
index da876a900..c069505a0 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"
@@ -2027,6 +2031,11 @@ main(int ac, char **av)
2027 } 2031 }
2028 } 2032 }
2029 2033
2034#ifdef HAVE_SYSTEMD
2035 /* Signal systemd that we are ready to accept connections */
2036 sd_notify(0, "READY=1");
2037#endif
2038
2030 /* Accept a connection and return in a forked child */ 2039 /* Accept a connection and return in a forked child */
2031 server_accept_loop(&sock_in, &sock_out, 2040 server_accept_loop(&sock_in, &sock_out,
2032 &newsock, config_s); 2041 &newsock, config_s);