about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2021-07-08 16:02:18 -0400
committerJune McEnroe <june@causal.agency>2021-07-08 16:02:18 -0400
commit1171a1067c66a0e22b9712bae6bbb09d1a9d6ca5 (patch)
tree3f7ab9be0b292a9c41fc7199928073056447bc12
parentFix LDADD.crypt on Darwin (diff)
downloadpounce-1171a1067c66a0e22b9712bae6bbb09d1a9d6ca5.tar.gz
pounce-1171a1067c66a0e22b9712bae6bbb09d1a9d6ca5.zip
Use seprintf to build final 005
Rather than causing a tls_write(3) for each remaining token.
-rw-r--r--state.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/state.c b/state.c
index 85d921a..21669c4 100644
--- a/state.c
+++ b/state.c
@@ -416,11 +416,13 @@ void stateSync(struct Client *client) {
 		);
 	}
 	if (i < support.len) {
-		clientFormat(client, ":%s 005 %s", intro.origin, self.nick);
+		char buf[512], *ptr = buf, *end = &buf[sizeof(buf)];
+		ptr = seprintf(ptr, end, ":%s 005 %s", intro.origin, self.nick);
 		for (; i < support.len; ++i) {
-			clientFormat(client, " %s", support.tokens[i]);
+			ptr = seprintf(ptr, end, " %s", support.tokens[i]);
 		}
-		clientFormat(client, " :are supported by this server\r\n");
+		ptr = seprintf(ptr, end, " :are supported by this server\r\n");
+		clientSend(client, buf, ptr - buf);
 	}
 
 	clientFormat(