summary refs log tree commit diff
diff options
context:
space:
mode:
authorNakidai <nakidai@disroot.org>2026-02-12 21:22:17 +0300
committerNakidai <nakidai@disroot.org>2026-02-12 21:22:17 +0300
commit3082bfec87bd55b391f2d4099e8d7748902d09de (patch)
tree75b66ec45b42d754d4f882b2c4122e88d67c622f
parente76511e37e906c73d61aa65ec27efd9f060bf1a3 (diff)
downloadlibreircd-3082bfec87bd55b391f2d4099e8d7748902d09de.tar.gz
libreircd-3082bfec87bd55b391f2d4099e8d7748902d09de.zip
Flatten privmsg to a user
Version before works fine, but
- Checking whether it's a client or not is redundant
- writef() was inside the loop before the break; for no good reason
-rw-r--r--handle.c33
1 files changed, 15 insertions, 18 deletions
diff --git a/handle.c b/handle.c
index d32714c..27fdb86 100644
--- a/handle.c
+++ b/handle.c
@@ -455,25 +455,22 @@ privmsg(struct Message *msg, struct Peer *peer)
 	default:
 	{
 		for (i = 0; i < peers_c; ++i)
-		{
-			if (peers[i].type != CLIENT || strcmp(peers[i].nick, msg->params[0]))
-				continue;
-
-			writef(
-				peers[i].fd,
-				":%s!%s@%s %s %s :%s",
-				peer->nick,
-				peer->user,
-				peer->host,
-				*msg->command == 'p'
-					? "PRIVMSG"
-					: "NOTICE",
-				msg->params[0],
-				msg->params[1]
-			);
-			break;
-		}
+			if (!strcmp(peers[i].nick, msg->params[0]))
+				break;
 		ensure(i != peers_c, reply(peer, 401, msg->params[0]), 0);
+
+		writef(
+			peers[i].fd,
+			":%s!%s@%s %s %s :%s",
+			peer->nick,
+			peer->user,
+			peer->host,
+			*msg->command == 'p'
+				? "PRIVMSG"
+				: "NOTICE",
+			msg->params[0],
+			msg->params[1]
+		);
 	} break;
 	}
 	return 0;