iAdding proper socket handling. We don't need REUSE. - geomyidae - A small C-based gopherd. Err bitreich.org 70 hgit clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ URL:git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/ bitreich.org 70 1Log /scm/geomyidae/log.gph bitreich.org 70 1Files /scm/geomyidae/files.gph bitreich.org 70 1Refs /scm/geomyidae/refs.gph bitreich.org 70 1Tags /scm/geomyidae/tag bitreich.org 70 1README /scm/geomyidae/file/README.gph bitreich.org 70 1LICENSE /scm/geomyidae/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit 0e66ab01eb5b38b5013f75d22e4ca0779c8d45a0 /scm/geomyidae/commit/0e66ab01eb5b38b5013f75d22e4ca0779c8d45a0.gph bitreich.org 70 1parent 63cd2d298843b1f144252f1902a7e1890000e1d7 /scm/geomyidae/commit/63cd2d298843b1f144252f1902a7e1890000e1d7.gph bitreich.org 70 hAuthor: Christoph Lohmann <20h@r-36.net> URL:mailto:20h@r-36.net bitreich.org 70 iDate: Tue, 8 Mar 2011 14:08:58 +0100 Err bitreich.org 70 i Err bitreich.org 70 iAdding proper socket handling. We don't need REUSE. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M main.c | 13 +++++-------- Err bitreich.org 70 i M rc.d/Archlinux.rc.d | 2 +- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 6 insertions(+), 9 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/main.c b/main.c /scm/geomyidae/file/main.c.gph bitreich.org 70 i@@ -215,8 +215,10 @@ sighandler(int sig) Err bitreich.org 70 i case SIGKILL: Err bitreich.org 70 i if(logfile != nil) Err bitreich.org 70 i stoplogging(glfd); Err bitreich.org 70 i- if(listfd >= 0) Err bitreich.org 70 i+ if(listfd >= 0) { Err bitreich.org 70 i+ shutdown(listfd, SHUT_RDWR); Err bitreich.org 70 i close(listfd); Err bitreich.org 70 i+ } Err bitreich.org 70 i exit(EXIT_SUCCESS); Err bitreich.org 70 i break; Err bitreich.org 70 i default: Err bitreich.org 70 i@@ -359,13 +361,6 @@ main(int argc, char *argv[]) Err bitreich.org 70 i } Err bitreich.org 70 i freeaddrinfo(ai); Err bitreich.org 70 i Err bitreich.org 70 i- opt = 1; Err bitreich.org 70 i- if(setsockopt(listfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt))) { Err bitreich.org 70 i- perror("setsockopt"); Err bitreich.org 70 i- close(listfd); Err bitreich.org 70 i- return 1; Err bitreich.org 70 i- } Err bitreich.org 70 i- Err bitreich.org 70 i if(listen(listfd, 255)) { Err bitreich.org 70 i perror("listen"); Err bitreich.org 70 i close(listfd); Err bitreich.org 70 i@@ -388,6 +383,7 @@ main(int argc, char *argv[]) Err bitreich.org 70 i case ECONNABORTED: Err bitreich.org 70 i case EINTR: Err bitreich.org 70 i if (!running) { Err bitreich.org 70 i+ shutdown(listfd, SHUT_RDWR); Err bitreich.org 70 i close(listfd); Err bitreich.org 70 i return 0; Err bitreich.org 70 i } Err bitreich.org 70 i@@ -419,6 +415,7 @@ main(int argc, char *argv[]) Err bitreich.org 70 i } Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+ shutdown(listfd, SHUT_RDWR); Err bitreich.org 70 i close(listfd); Err bitreich.org 70 i if(logfile != nil) Err bitreich.org 70 i stoplogging(glfd); Err bitreich.org 70 1diff --git a/rc.d/Archlinux.rc.d b/rc.d/Archlinux.rc.d /scm/geomyidae/file/rc.d/Archlinux.rc.d.gph bitreich.org 70 i@@ -18,7 +18,7 @@ case "$1" in Err bitreich.org 70 i ;; Err bitreich.org 70 i stop) Err bitreich.org 70 i stat_busy "Stopping geomyidae" Err bitreich.org 70 i- [ ! -z "$PID" ] && kill -KILL $PID &>/dev/null Err bitreich.org 70 i+ [ ! -z "$PID" ] && kill $PID &>/dev/null Err bitreich.org 70 i if [ $? -gt 0 ]; then Err bitreich.org 70 i stat_fail Err bitreich.org 70 i else Err bitreich.org 70 .