summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2019-10-24 01:26:19 -0400
committerJune McEnroe <june@causal.agency>2019-10-24 01:26:19 -0400
commitcd267f4e1389ec78c76b96750569102f2a04fce0 (patch)
tree79423d4224b069f94684e0426b073ead9e9da7df
parentIntercept all CAP commands from clients (diff)
downloadpounce-cd267f4e1389ec78c76b96750569102f2a04fce0.tar.gz
pounce-cd267f4e1389ec78c76b96750569102f2a04fce0.zip
Factor out client-side origin name
-rw-r--r--client.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/client.c b/client.c
index 68daff6..09af58e 100644
--- a/client.c
+++ b/client.c
@@ -26,6 +26,8 @@
 
 #include "bounce.h"
 
+static const char *Origin = "invalid";
+
 enum Need {
 	NeedNick = 1 << 0,
 	NeedUser = 1 << 1,
@@ -94,8 +96,9 @@ void clientFormat(struct Client *client, const char *format, ...) {
 static void passRequired(struct Client *client) {
 	clientFormat(
 		client,
-		":invalid 464 * :Password incorrect\r\n"
-		"ERROR :Password incorrect\r\n"
+		":%s 464 * :Password incorrect\r\n"
+		"ERROR :Password incorrect\r\n",
+		Origin
 	);
 	client->error = true;
 }
@@ -137,25 +140,25 @@ static void handleCap(struct Client *client, struct Message msg) {
 
 	} else if (!strcmp(msg.params[0], "LS")) {
 		client->need |= NeedCapEnd;
-		clientFormat(client, ":invalid CAP * LS :server-time\r\n");
+		clientFormat(client, ":%s CAP * LS :server-time\r\n", Origin);
 
 	} else if (!strcmp(msg.params[0], "REQ") && msg.params[1]) {
 		client->need |= NeedCapEnd;
 		if (!strcmp(msg.params[1], "server-time")) {
 			client->serverTime = true;
-			clientFormat(client, ":invalid CAP * ACK :server-time\r\n");
+			clientFormat(client, ":%s CAP * ACK :server-time\r\n", Origin);
 		} else {
-			clientFormat(client, ":invalid CAP * NAK :%s\r\n", msg.params[1]);
+			clientFormat(client, ":%s CAP * NAK :%s\r\n", Origin, msg.params[1]);
 		}
 
 	} else if (!strcmp(msg.params[0], "LIST")) {
 		clientFormat(
-			client, ":invalid CAP * LIST :%s\r\n",
-			(client->serverTime ? "server-time" : "")
+			client, ":%s CAP * LIST :%s\r\n",
+			Origin, (client->serverTime ? "server-time" : "")
 		);
 
 	} else {
-		clientFormat(client, ":invalid 410 * :Invalid CAP subcommand\r\n");
+		clientFormat(client, ":%s 410 * :Invalid CAP subcommand\r\n", Origin);
 	}
 }
 
d=7b15b724f982d7cc9f9bd05706f83fbf1892382a&follow=1'>contrib/palaver: Remove rc scriptJune McEnroe 2020-08-27contrib/palaver: Fix database search and creationJune McEnroe 2020-08-27contrib/palaver: Use pounce's XDG directoryJune McEnroe 2020-08-27contrib/palaver: Only allow HTTPSJune McEnroe 2020-08-25Support the pounce_env rc variableJune McEnroe 2020-08-25Remove deprecated option namesJune McEnroe The next release will be 2.0 so these can be removed now. 2020-08-25Document configuration and data file searchJune McEnroe 2020-08-24Use dataOpen for save fileJune McEnroe 2020-08-24Use configOpen to load localCAJune McEnroe 2020-08-24Use configPath to load client cert/privJune McEnroe 2020-08-24Use configOpen in getopt_configJune McEnroe 2020-08-24Import xdg.c from catgirlJune McEnroe 2020-08-23Replace “RAND_bytes” by “getentropy”Issam E. Maghni This removes the dependency on libcrypto. Signed-off-by: Issam E. Maghni <issam.e.maghni@mailbox.org> 2020-08-16contrib/palaver: Add no message preview flagsJune McEnroe 2020-08-13contrib/palaver: Don't set channel for PMsJune McEnroe 2020-08-13Fix unintended interception of NICK after registrationJune McEnroe Another bug caused by trying to support broken clients. I'm annoyed. 2020-08-12Add Additional Components section to READMEJune McEnroe 2020-08-12Document -L / palaver optionJune McEnroe 2020-08-11contrib/palaver: Document service configurationJune McEnroe 2020-08-11contrib/palaver: Add install target and rc scriptJune McEnroe 2020-08-11contrib/palaver: Implement command and notificationsJune McEnroe