summary refs log tree commit diff
path: root/bouncer.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--bouncer.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/bouncer.c b/bouncer.c
index 3bf44cd..0d1d551 100644
--- a/bouncer.c
+++ b/bouncer.c
@@ -29,7 +29,8 @@
 static char *censor(char *arg) {
 	char *dup = strdup(arg);
 	if (!dup) err(EX_OSERR, "strdup");
-	memset(arg, '*', strlen(dup));
+	memset(arg, '\0', strlen(dup));
+	arg[0] = '*';
 	return dup;
 }
 
@@ -84,16 +85,24 @@ int main(int argc, char *argv[]) {
 	if (!user) user = nick;
 	if (!real) real = nick;
 
-	enum { PollCap = 64 };
-	struct pollfd fds[PollCap];
-
 	listenConfig(certPath, privPath);
-	size_t binds = listenBind(fds, PollCap, localHost, localPort);
 
-	while (0 < poll(fds, binds, -1)) {
-		for (size_t i = 0; i < binds; ++i) {
+	enum { BindCap = 8 };
+	int bind[BindCap];
+	size_t bindLen = listenBind(bind, BindCap, localHost, localPort);
+
+	// Wishing for struct-of-arrays...
+	struct pollfd fds[BindCap];
+	for (size_t i = 0; i < bindLen; ++i) {
+		fds[i].fd = bind[i];
+		fds[i].events = POLLIN;
+	}
+
+	while (0 < poll(fds, bindLen, -1)) {
+		for (size_t i = 0; i < bindLen; ++i) {
 			if (!fds[i].revents) continue;
-			struct tls *client = listenAccept(&fds[binds], fds[i].fd);
+			struct tls *client;
+			int fd = listenAccept(&client, fds[i].fd);
 		}
 	}
 }
g'> 2019-01-14Add cash.7 READMEJune McEnroe 2019-01-14Document old=new argument of fc -sJune McEnroe 2019-01-14Allow replacing empty string with fc old=newJune McEnroe 2019-01-13Enable warnings in libeditJune McEnroe 2019-01-13Show full path in RPS1June McEnroe 2019-01-13Shorten $HOME to ~ in prompt expansionJune McEnroe 2019-01-13Document PSlitJune McEnroe 2019-01-13Document PS0June McEnroe 2019-01-13Set PS0 in cashJune McEnroe 2019-01-13Add PS0June McEnroe 2019-01-13Change default ENV from cashrc to env.shJune McEnroe 2019-01-13Use colours in cash promptsJune McEnroe 2019-01-12Set PSlit like NetBSD shJune McEnroe 2019-01-12Install gnupg2 from pkgsrc and symlink gpgJune McEnroe 2019-01-12Reference cash builtin man pages in cash.1 SEE ALSOJune McEnroe 2019-01-12Restore cash builtin man page datesJune McEnroe 2019-01-12Use local libeditJune McEnroe 2019-01-12Replace libedit MakefileJune McEnroe 2019-01-11Import /usr/src/lib/libedit from NetBSD 8.0June McEnroe 2019-01-11Add PSlit for prompt escapesJune McEnroe 2019-01-11Don't make depend automaticallyJune McEnroe