From a31e7b13b3cef0872be5922a568633d74dd408d2 Mon Sep 17 00:00:00 2001 From: Luke Bratch Date: Sun, 16 Jun 2019 20:28:04 +0100 Subject: Handle client PROTOCTL NAMESX by just passing on to the server. --- TODO | 2 -- message.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/TODO b/TODO index 4196fcc..081cb0c 100644 --- a/TODO +++ b/TODO @@ -8,5 +8,3 @@ Add various auto replay options: Might need to #include in blabouncer.c to make some operating systems and/or compilers happy. Load all settings from configuration file at startup instead of referring to it for certain things (password/nick2/nick3). - -PROTOCTL NAMESX passed to other clients (perhaps add an in-code TODO to have it as an option as well as multi-prefix CAP). diff --git a/message.c b/message.c index 6e716e4..1c58665 100644 --- a/message.c +++ b/message.c @@ -1151,6 +1151,16 @@ int processclientmessage(SSL *server_ssl, char *str, struct client *clients, int // If it wasn't a CTCP VERSION response, then let this fall through to the default unhandled action by not returning here } + // Client PROTOCTL received + if (strncasecmp(tokens[0], "PROTOCTL", strlen(tokens[0])) == 0) { + // If it's a PROTOCTL NAMESX, just pass to the server - TODO - Maybe deal with either PROTCTL NAMEX or multi-prefix CAP for mode prefixes? + if (strncasecmp(tokens[1], "NAMESX", strlen(tokens[1])) == 0) { + debugprint(DEBUG_FULL, "Client PROTOCTL NAMESX found! Sending to server.\n", tokens[0], strlen(tokens[0])); + sendtoserver(server_ssl, str, strlen(str), sourcefd, clients, settings); + return 1; + } + } + // Custom BLABOUNCER command received // Case insensitive comparisons here since clients won't be recognising and uppercasing these commands if (strncasecmp(tokens[0], "BLABOUNCER", strlen(tokens[0])) == 0) { -- cgit v1.2.3