summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2014-06-27 17:24:16 +0200
committerJakub Hrozek <jhrozek@redhat.com>2014-07-08 20:38:30 +0200
commit1746e8b8399da2a7a8da4aace186f66055ccfec1 (patch)
tree71b1252532fe27af4bd436a778517b239f9aca01
parent149f40dc2d4ead57811c70b5028648ac83f6a1a7 (diff)
downloadsssd-1746e8b8399da2a7a8da4aace186f66055ccfec1.tar.gz
sssd-1746e8b8399da2a7a8da4aace186f66055ccfec1.tar.xz
sssd-1746e8b8399da2a7a8da4aace186f66055ccfec1.zip
TOOLS: New helper tool sss_signal
A minimal tool whose only purpose is to signal the monitor with SIGUSR2. The tool will be executed by the system bus in order to provide system activation, so it's packaged in libexec. Reviewed-by: Pavel Březina <pbrezina@redhat.com>
-rw-r--r--Makefile.am13
-rw-r--r--contrib/sssd.spec.in1
-rw-r--r--src/tools/sss_signal.c37
3 files changed, 50 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index a5062ed59..05b74141b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -107,7 +107,9 @@ sssdlibexec_PROGRAMS = \
sssd_be \
krb5_child \
ldap_child \
- proxy_child
+ proxy_child \
+ sss_signal \
+ $(NULL)
if BUILD_SUDO
sssdlibexec_PROGRAMS += sssd_sudo
endif
@@ -1048,6 +1050,15 @@ sss_seed_LDADD = \
$(TOOLS_LIBS) \
$(SSSD_INTERNAL_LTLIBS)
+sss_signal_SOURCES = \
+ src/tools/sss_signal.c \
+ $(SSSD_TOOLS_OBJ) \
+ $(NULL)
+sss_signal_LDADD = \
+ $(TOOLS_LIBS) \
+ $(SSSD_INTERNAL_LTLIBS) \
+ $(NULL)
+
if BUILD_SUDO
sss_sudo_cli_SOURCES = \
src/sss_client/common.c \
diff --git a/contrib/sssd.spec.in b/contrib/sssd.spec.in
index 2b8bac993..86a603925 100644
--- a/contrib/sssd.spec.in
+++ b/contrib/sssd.spec.in
@@ -605,6 +605,7 @@ rm -rf $RPM_BUILD_ROOT
%{_bindir}/sss_ssh_authorizedkeys
%{_bindir}/sss_ssh_knownhostsproxy
%{_sbindir}/sss_cache
+%{_libexecdir}/%{servicename}/sss_signal
%dir %{sssdstatedir}
%dir %{_localstatedir}/cache/krb5rcache
diff --git a/src/tools/sss_signal.c b/src/tools/sss_signal.c
new file mode 100644
index 000000000..efddcce3d
--- /dev/null
+++ b/src/tools/sss_signal.c
@@ -0,0 +1,37 @@
+/*
+ Authors:
+ Jakub Hrozek <jhrozek@redhat.com>
+
+ Copyright (C) 2014 Red Hat
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <stdlib.h>
+
+#include "config.h"
+#include "tools/tools_util.h"
+
+int main(int argc, const char **argv)
+{
+ int ret;
+
+ ret = signal_sssd(SIGUSR2);
+ if (ret != EOK) {
+ ERROR("Could not signal SSSD. Is SSSD running?\n");
+ return EXIT_FAILURE;
+ }
+
+ return EXIT_SUCCESS;
+}