From 34ac9ab3027ad017a4335198f168a03064289241 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Tue, 25 Feb 2020 17:25:12 -0500 Subject: Bump buffer sizes to allow for tags I still think this limit is unreasonably large in comparison to 512 for the actual message. --- bounce.h | 2 ++ client.c | 10 +++++----- server.c | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/bounce.h b/bounce.h index 20d7d40..f95bdc8 100644 --- a/bounce.h +++ b/bounce.h @@ -39,6 +39,8 @@ typedef unsigned char byte; +enum { MessageCap = 8191 + 512 }; + enum { ParamCap = 15 }; struct Message { char *origin; diff --git a/client.c b/client.c index b3fc32e..93b1716 100644 --- a/client.c +++ b/client.c @@ -48,7 +48,7 @@ struct Client { enum Need need; size_t consumer; enum Cap caps; - char buf[1024]; + char buf[MessageCap]; size_t len; bool error; }; @@ -95,7 +95,7 @@ void clientSend(struct Client *client, const char *ptr, size_t len) { } void clientFormat(struct Client *client, const char *format, ...) { - char buf[1024]; + char buf[MessageCap]; va_list ap; va_start(ap, format); int len = vsnprintf(buf, sizeof(buf), format, ap); @@ -383,7 +383,7 @@ static const char *filterChghost(const char *line) { static const char *filterExtendedJoin(const char *line) { if (wordcmp(line, 1, "JOIN")) return line; static regex_t regex; - static char buf[512]; + static char buf[MessageCap + 1]; return snip(buf, sizeof(buf), line, compile(®ex, "(JOIN [^ ]+).+")); } @@ -393,7 +393,7 @@ static const char *filterInviteNotify(const char *line) { } static const char *filterMultiPrefix(const char *line) { - static char buf[512]; + static char buf[MessageCap + 1]; if (!wordcmp(line, 1, "352")) { static regex_t regex; return snip( @@ -414,7 +414,7 @@ static const char *filterMultiPrefix(const char *line) { static const char *filterUserhostInNames(const char *line) { if (wordcmp(line, 1, "353")) return line; static regex_t regex; - static char buf[512]; + static char buf[MessageCap + 1]; return snip( buf, sizeof(buf), line, compile(®ex, "( :?[^!]+)![^ ]+") diff --git a/server.c b/server.c index 2bb897d..1741f14 100644 --- a/server.c +++ b/server.c @@ -149,7 +149,7 @@ void serverFormat(const char *format, ...) { } void serverRecv(void) { - static char buf[4096]; + static char buf[MessageCap]; static size_t len; ssize_t read = tls_read(client, &buf[len], sizeof(buf) - len); -- cgit 1.4.1