mkdir -p %{buildroot}/usr/lib/systemd/system/multi-user.target.wants
mkdir -p %{buildroot}/usr/lib/systemd/system/sockets.target.wants
ln -s ../central-key-manager.service %{buildroot}/usr/lib/systemd/system/multi-user.target.wants/central-key-manager.service
+ln -s ../central-key-manager-listener.service %{buildroot}/usr/lib/systemd/system/multi-user.target.wants/central-key-manager-listener.service
ln -s ../central-key-manager-api-control.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/central-key-manager-api-control.socket
ln -s ../central-key-manager-api-storage.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/central-key-manager-api-storage.socket
ln -s ../central-key-manager-api-ocsp.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/central-key-manager-api-ocsp.socket
%postun -n libkey-manager-client -p /sbin/ldconfig
+%post -n key-manager-listener
+systemctl daemon-reload
+if [ $1 = 1 ]; then
+ # installation
+ systemctl start central-key-manager-listener.service
+fi
+if [ $1 = 2 ]; then
+ # update
+ systemctl restart central-key-manager-listener.service
+fi
+
+%preun -n key-manager-listener
+if [ $1 = 0 ]; then
+ # unistall
+ systemctl stop central-key-manager-listener.service
+fi
+
+%postun -n key-manager-listener
+if [ $1 = 0 ]; then
+ # unistall
+ systemctl daemon-reload
+fi
+
%files -n key-manager
%manifest %{_datadir}/key-manager.manifest
%attr(755,root,root) /usr/bin/key-manager
%files -n key-manager-listener
%manifest %{_datadir}/key-manager-listener.manifest
%attr(755,root,root) /usr/bin/key-manager-listener
+%attr(-,root,root) /usr/lib/systemd/system/multi-user.target.wants/central-key-manager-listener.service
+%attr(-,root,root) /usr/lib/systemd/system/central-key-manager-listener.service
%files -n libkey-manager-client
%manifest %{_datadir}/libkey-manager-client.manifest
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <systemd/sd-daemon.h>
#include <glib.h>
#include <package_manager.h>
// for (result = getdtablesize(); result>=0; --result)
// close(result);
-// result = open("/dev/null", O_RDWR); // open stdin
-// dup(result); // stdout
-// dup(result); // stderr
+ close(0);
+ close(1);
+ close(2);
+
+ result = open("/dev/null", O_RDWR); // open stdin
+
+ int fd_stdout = 0;
+ int fd_stderr = 0;
+ fd_stdout = dup(result); // stdout
+ fd_stderr = dup(result); // stderr
+ SLOG(LOG_DEBUG, CKM_TAG, "%d : %s", fd_stdout, "stdout file descriptor");
+ SLOG(LOG_DEBUG, CKM_TAG, "%d : %s", fd_stderr, "stderr file descriptor");
+
umask(027);
INSTALL(FILES
${CMAKE_SOURCE_DIR}/systemd/central-key-manager.service
${CMAKE_SOURCE_DIR}/systemd/central-key-manager.target
+ ${CMAKE_SOURCE_DIR}/systemd/central-key-manager-listener.service
${CMAKE_SOURCE_DIR}/systemd/central-key-manager-api-control.socket
${CMAKE_SOURCE_DIR}/systemd/central-key-manager-api-storage.socket
${CMAKE_SOURCE_DIR}/systemd/central-key-manager-api-ocsp.socket