diff --git a/0047-iscsiuio-systemd-socket-activation-support.patch b/0047-iscsiuio-systemd-socket-activation-support.patch new file mode 100644 index 0000000..896eba9 --- /dev/null +++ b/0047-iscsiuio-systemd-socket-activation-support.patch @@ -0,0 +1,58 @@ +From 8003178db245b43d04b27b559d5541ced24ec13f Mon Sep 17 00:00:00 2001 +From: Chris Leech +Date: Wed, 19 Dec 2012 21:39:06 -0800 +Subject: [PATCH] iscsiuio systemd socket activation support + +--- + iscsiuio/src/unix/iscsid_ipc.c | 28 ++++++++++++++++++++++++++++ + 1 file changed, 28 insertions(+) + +diff --git a/iscsiuio/src/unix/iscsid_ipc.c b/iscsiuio/src/unix/iscsid_ipc.c +index e22de0d..4908cb7 100644 +--- a/iscsiuio/src/unix/iscsid_ipc.c ++++ b/iscsiuio/src/unix/iscsid_ipc.c +@@ -948,6 +948,30 @@ static void *iscsid_loop(void *arg) + pthread_exit(NULL); + } + ++#define SD_SOCKET_FDS_START 3 ++ ++static int ipc_systemd(void) ++{ ++ char *env; ++ ++ env = getenv("LISTEN_PID"); ++ ++ if (!env || (strtoul(env, NULL, 10) != getpid())) ++ return -EINVAL; ++ ++ env = getenv("LISTEN_FDS"); ++ ++ if (!env) ++ return -EINVAL; ++ ++ if (strtoul(env, NULL, 10) != 1) { ++ LOG_ERR("Did not receive exactly one IPC socket from systemd"); ++ return -EINVAL; ++ } ++ ++ return SD_SOCKET_FDS_START; ++} ++ + /****************************************************************************** + * Initialize/Cleanup routines + ******************************************************************************/ +@@ -961,6 +985,10 @@ int iscsid_init() + int rc, addr_len; + struct sockaddr_un addr; + ++ iscsid_opts.fd = ipc_systemd(); ++ if (iscsid_opts.fd >= 0) ++ return 0; ++ + iscsid_opts.fd = socket(AF_LOCAL, SOCK_STREAM, 0); + if (iscsid_opts.fd < 0) { + LOG_ERR(PFX "Can not create IPC socket"); +-- +1.8.3.1 + diff --git a/iscsi-initiator-utils.spec b/iscsi-initiator-utils.spec index d49858c..4c925e4 100644 --- a/iscsi-initiator-utils.spec +++ b/iscsi-initiator-utils.spec @@ -4,7 +4,7 @@ Summary: iSCSI daemon and utility programs Name: iscsi-initiator-utils Version: 6.%{open_iscsi_version}.%{open_iscsi_build} -Release: 15%{?dist} +Release: 16%{?dist} Group: System Environment/Daemons License: GPLv2+ URL: http://www.open-iscsi.org @@ -48,6 +48,7 @@ Patch42: 0042-ISCSID-Added-iface-content-override-fix.patch Patch43: 0043-idmb_rec_write-check-for-tpgt-first.patch Patch45: 0045-idbm_rec_write-seperate-old-and-new-style-writes.patch Patch46: 0046-idbw_rec_write-pick-tpgt-from-existing-record.patch +Patch47: 0047-iscsiuio-systemd-socket-activation-support.patch Patch49: 0049-update-systemd-service-files-add-iscsi.service-for-s.patch Patch50: 0050-iscsi-boot-related-service-file-updates.patch # distro specific modifications @@ -128,6 +129,7 @@ developing applications that use %{name}. %patch43 -p1 %patch45 -p1 %patch46 -p1 +%patch47 -p1 %patch49 -p1 %patch50 -p1 # distro specific modifications @@ -293,6 +295,9 @@ fi %{_includedir}/libiscsi.h %changelog +* Mon Nov 25 2013 Chris Leech - 6.2.0.873-16 +- fix iscsiuio socket activation + * Sun Sep 15 2013 Chris Leech - 6.2.0.873-15 - move /sbin to /usr/sbin - use rpm macros in install rules