summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-08-10 14:24:39 -0400
committerJune McEnroe <june@causal.agency>2020-08-10 14:24:39 -0400
commit8f6397137cb25f593a581605ed0126ade395813a (patch)
tree44cceca17a325b4e83ff11f0bd3b0aa1f58ef74c
parentRefactor clientCA and clientSTS as clientCaps (diff)
downloadpounce-8f6397137cb25f593a581605ed0126ade395813a.tar.gz
pounce-8f6397137cb25f593a581605ed0126ade395813a.zip
Refactor intercept to use Handlers and fix QUIT w/o message 1.4p1
The change to support broken clients with bad line endings broke the
interception of QUIT with no message parameter, because the CR is part
of the length passed to intercept.
Diffstat (limited to '')
-rw-r--r--client.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/client.c b/client.c
index 9246085..dc33288 100644
--- a/client.c
+++ b/client.c
@@ -332,12 +332,12 @@ static bool intercept(const char *line, size_t len) {
 		len -= sp - line;
 		line = sp;
 	}
-	if (len >= 4 && !memcmp(line, "CAP ", 4)) return true;
-	if (len == 4 && !memcmp(line, "QUIT", 4)) return true;
-	if (len >= 5 && !memcmp(line, "QUIT ", 5)) return true;
-	if (len >= 7 && !memcmp(line, "NOTICE ", 7)) return true;
-	if (len >= 7 && !memcmp(line, "TAGMSG ", 7)) return true;
-	if (len >= 8 && !memcmp(line, "PRIVMSG ", 8)) return true;
+	for (size_t i = 0; i < ARRAY_LEN(Handlers); ++i) {
+		size_t n = strlen(Handlers[i].cmd);
+		if (len < n) continue;
+		if (memcmp(line, Handlers[i].cmd, n)) continue;
+		if (len == n || line[n] == ' ' || line[n] == '\r') return true;
+	}
 	return false;
 }
 
d>June McEnroe 2021-09-12Replace htagml regex with strncmpJune McEnroe 2021-09-11Also defer printing comment for lone close-parensJune McEnroe 2021-09-10Publish "git-comment"June McEnroe 2021-09-10Add git comment --pretty optionJune McEnroe 2021-09-08Defer printing comment if line is blank or closing braceJune McEnroe 2021-09-08Up default min-repeat to 30 linesJune McEnroe 2021-09-08Handle dirty lines in git-commentJune McEnroe 2021-09-08Document and install git-commentJune McEnroe 2021-09-08Add repeat and all options to git-commentJune McEnroe 2021-09-08Add group threshold to git-commentJune McEnroe