diff options
author | June McEnroe <june@causal.agency> | 2019-10-24 01:18:51 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-10-24 01:18:51 -0400 |
commit | f0db35a714ccd898b5fbae30a16c6fdfb567ad32 (patch) | |
tree | 2fcc0622335b0b5eaf7d3a6a903a1769b717bc3a | |
parent | Ignore further CAP END (diff) | |
download | pounce-f0db35a714ccd898b5fbae30a16c6fdfb567ad32.tar.gz pounce-f0db35a714ccd898b5fbae30a16c6fdfb567ad32.zip |
Intercept all CAP commands from clients
-rw-r--r-- | client.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/client.c b/client.c index 18aef87..68daff6 100644 --- a/client.c +++ b/client.c @@ -184,6 +184,12 @@ static void clientParse(struct Client *client, char *line) { } } +static bool intercept(const char *line, size_t len) { + if (len >= 4 && !memcmp(line, "CAP ", 4)) return true; + // TODO: Intercept PRIVMSG to send to other clients. + return false; +} + void clientRecv(struct Client *client) { ssize_t read = tls_read( client->tls, @@ -205,7 +211,7 @@ void clientRecv(struct Client *client) { if (verbose) { fprintf(stderr, "\x1B[33m%.*s\x1B[m\n", (int)(crlf - line), line); } - if (client->need) { + if (client->need || intercept(line, crlf - line)) { crlf[0] = '\0'; clientParse(client, line); } else { |