summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-11-06 17:04:20 -0500
committerJune McEnroe <june@causal.agency>2019-11-06 17:04:20 -0500
commitc7223d7e0cd74562255eb80d02d659e6901d43b9 (patch)
tree49297092a9978385e79fb492e5dd5ab511b650cb
parentDefine one CERTBOT_PATH rather than two format strings (diff)
downloadpounce-c7223d7e0cd74562255eb80d02d659e6901d43b9.tar.gz
pounce-c7223d7e0cd74562255eb80d02d659e6901d43b9.zip
Declare more missing functions and deal with lack of SO_NOSIGPIPE
-rw-r--r--Makefile2
-rw-r--r--bounce.c1
-rw-r--r--compat.h11
-rw-r--r--dispatch.c4
4 files changed, 14 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 465a2e9..265781e 100644
--- a/Makefile
+++ b/Makefile
@@ -33,6 +33,8 @@ pounce: ${OBJS}
 
 ${OBJS}: bounce.h compat.h
 
+dispatch.o: compat.h
+
 tags: *.c *.h
 	ctags -w *.c *.h
 
diff --git a/bounce.c b/bounce.c
index 93afbb4..1f29f8c 100644
--- a/bounce.c
+++ b/bounce.c
@@ -372,6 +372,7 @@ int main(int argc, char *argv[]) {
 
 	signal(SIGINT, signalHandler);
 	signal(SIGTERM, signalHandler);
+	signal(SIGPIPE, SIG_IGN);
 	signal(SIGINFO, signalHandler);
 	signal(SIGUSR1, signalHandler);
 
diff --git a/compat.h b/compat.h
index a874d35..961ece9 100644
--- a/compat.h
+++ b/compat.h
@@ -17,14 +17,17 @@
 #include <stdint.h>
 #include <stdlib.h>
 
-#ifdef NO_EXPLICIT_BZERO
+// libcrypto defines these functions if libc doesn't.
 void explicit_bzero(void *b, size_t len);
-#endif
-
-#ifdef NO_ARC4RANDOM
+size_t strlcpy(char *restrict dst, const char *restrict src, size_t dstsize);
+size_t strlcat(char *restrict dst, const char *restrict src, size_t dstsize);
 uint32_t arc4random(void);
 void arc4random_buf(void *buf, size_t nbytes);
 uint32_t arc4random_uniform(uint32_t upper_bound);
+
+// The default value of SO_RCVLOWAT is 1 anyway...
+#ifndef SO_NOSIGPIPE
+#define SO_NOSIGPIPE SO_RCVLOWAT
 #endif
 
 #ifndef SIGINFO
diff --git a/dispatch.c b/dispatch.c
index e52efc7..e80f297 100644
--- a/dispatch.c
+++ b/dispatch.c
@@ -19,6 +19,7 @@
 #include <netdb.h>
 #include <netinet/in.h>
 #include <poll.h>
+#include <signal.h>
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -32,6 +33,8 @@
 #include <sys/capsicum.h>
 #endif
 
+#include "compat.h"
+
 static struct {
 	struct pollfd *ptr;
 	size_t len, cap;
@@ -231,6 +234,7 @@ int main(int argc, char *argv[]) {
 		if (error) err(EX_IOERR, "listen");
 	}
 
+	signal(SIGPIPE, SIG_IGN);
 	for (;;) {
 		int nfds = poll(
 			event.ptr, event.len, (event.len > binds ? timeout : -1)
>Lars Hjemli 2009-07-25Add support for 'noheader' optionLars Hjemli 2009-07-25cgitrc.5.txt: document 'head-include'Lars Hjemli 2009-07-25ui-blob: return 'application/octet-stream' for binary blobsLars Hjemli 2009-07-25ui-plain: Return 'application/octet-stream' for binary files.Remko Tronçon 2009-06-11use cgit_httpscheme() for atom feedDiego Ongaro 2009-06-11add cgit_httpscheme() -> http:// or https://Diego Ongaro 2009-06-07Return http statuscode 404 on unknown branchLars Hjemli 2009-06-07Add head-include configuration option.Mark Lodato 2009-03-15CGIT 0.8.2.1Lars Hjemli 2009-03-15Fix doc-related glitches in Makefile and .gitignoreLars Hjemli 2009-03-15ui-snapshot: avoid segfault when no filename is specifiedLars Hjemli 2009-03-15fix segfault when displaying empty blobsEric Wong 2009-02-19Add support for HEAD requestsLars Hjemli 2009-02-19Add support for ETag in 'plain' viewLars Hjemli 2009-02-12ui-tree: escape ascii-text properly in hexdump viewLars Hjemli 2009-02-12Makefile: add doc-related targetsLars Hjemli