diff options
| author | Nakidai <nakidai@disroot.org> | 2026-02-12 21:22:17 +0300 |
|---|---|---|
| committer | Nakidai <nakidai@disroot.org> | 2026-02-12 21:22:17 +0300 |
| commit | 3082bfec87bd55b391f2d4099e8d7748902d09de (patch) | |
| tree | 75b66ec45b42d754d4f882b2c4122e88d67c622f | |
| parent | e76511e37e906c73d61aa65ec27efd9f060bf1a3 (diff) | |
| download | libreircd-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.c | 33 |
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; |