SMOLNET PORTAL home about changes
ihandle SIGINT and SIGTERM: cleanup on these signals - teed - A multiplex relay tee(1) daemon.	Err	bitreich.org	70
hgit clone git://bitreich.org/teed git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/teed	URL:git://bitreich.org/teed git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/teed	bitreich.org	70
1Log	/scm/teed/log.gph	bitreich.org	70
1Files	/scm/teed/files.gph	bitreich.org	70
1Refs	/scm/teed/refs.gph	bitreich.org	70
1Tags	/scm/teed/tag	bitreich.org	70
1README	/scm/teed/file/README.md.gph	bitreich.org	70
1LICENSE	/scm/teed/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 7ea6a417f78562629bd6f579dd593d44a5372acb	/scm/teed/commit/7ea6a417f78562629bd6f579dd593d44a5372acb.gph	bitreich.org	70
1parent c9671740957f58aa168262f3e76ad2f72542f05b	/scm/teed/commit/c9671740957f58aa168262f3e76ad2f72542f05b.gph	bitreich.org	70
hAuthor: Hiltjo Posthuma <hiltjo@codemadness.org>	URL:mailto:hiltjo@codemadness.org	bitreich.org	70
iDate:   Mon, 14 Aug 2023 15:09:01 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
ihandle SIGINT and SIGTERM: cleanup on these signals	Err	bitreich.org	70
i	Err	bitreich.org	70
iSigned-off-by: Christoph Lohmann <20h@r-36.net>	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M teed.c                              |      17 ++++++++++++++++-	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 16 insertions(+), 1 deletion(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/teed.c b/teed.c	/scm/teed/file/teed.c.gph	bitreich.org	70
i@@ -14,6 +14,8 @@	Err	bitreich.org	70
i #include <sys/stat.h>	Err	bitreich.org	70
i #include <sys/select.h>	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+volatile sig_atomic_t isrunning = 1;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i void *	Err	bitreich.org	70
i memdup(void *p, int l)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i@@ -144,9 +146,22 @@ llist_del(llist **l, llist *e)	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
i+sighandler(int signo)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        switch (signo) {	Err	bitreich.org	70
i+        case SIGINT:	Err	bitreich.org	70
i+        case SIGTERM:	Err	bitreich.org	70
i+                isrunning = 0;	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i initsignals(void)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         signal(SIGPIPE, SIG_IGN);	Err	bitreich.org	70
i+        signal(SIGINT, sighandler);	Err	bitreich.org	70
i+        signal(SIGTERM, sighandler);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i int	Err	bitreich.org	70
i@@ -215,7 +230,7 @@ main(int argc, char *argv[])	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         timeout.tv_sec = 1;	Err	bitreich.org	70
i         timeout.tv_nsec = 0;	Err	bitreich.org	70
i-        for (;;) {	Err	bitreich.org	70
i+        for (;isrunning;) {	Err	bitreich.org	70
i                 maxsfd = 0;	Err	bitreich.org	70
i                 FD_ZERO(&fdset);	Err	bitreich.org	70
i                 forllist(lfds, e) {	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/teed/commit/7ea6a417f78562629...
Content-Typetext/plain; charset=utf-8