diff options
author | June McEnroe <june@causal.agency> | 2020-02-25 17:25:12 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-02-25 17:26:57 -0500 |
commit | 34ac9ab3027ad017a4335198f168a03064289241 (patch) | |
tree | 21902e1fabe8fd615ed01844b30735c562eb0f42 | |
parent | Remove bad assert (diff) | |
download | pounce-34ac9ab3027ad017a4335198f168a03064289241.tar.gz pounce-34ac9ab3027ad017a4335198f168a03064289241.zip |
Bump buffer sizes to allow for tags
I still think this limit is unreasonably large in comparison to 512 for the actual message.
Diffstat (limited to '')
-rw-r--r-- | bounce.h | 2 | ||||
-rw-r--r-- | client.c | 10 | ||||
-rw-r--r-- | 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); |