diff options
| author | Nakidai <nakidai@disroot.org> | 2026-01-12 16:50:11 +0300 |
|---|---|---|
| committer | Nakidai <nakidai@disroot.org> | 2026-01-12 16:50:11 +0300 |
| commit | 9436897bfb8b5f72109667d86aed06d9a9d1a693 (patch) | |
| tree | 63fa207a1190e40933f2655963e3abc2c72f9aed /handle.c | |
| parent | f2bccaf552234dd0bea3adbb7640e91e91b5b0e2 (diff) | |
| download | libreircd-9436897bfb8b5f72109667d86aed06d9a9d1a693.tar.gz libreircd-9436897bfb8b5f72109667d86aed06d9a9d1a693.zip | |
Implement 443
Diffstat (limited to 'handle.c')
| -rw-r--r-- | handle.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/handle.c b/handle.c index 9d705e0..2a6fe1c 100644 --- a/handle.c +++ b/handle.c @@ -99,9 +99,19 @@ mode(struct Message *msg, struct Peer *peer) static int nick(struct Message *msg, struct Peer *peer) { + size_t i; + ensure(msg->params[0] && msg->params[0], reply(peer, 431), 0); ensure(!(peer->modes & RESTRICTED), reply(peer, 484), 0); + for (i = 0; i < peers_c; ++i) + if (peers[i].fd != peer->fd) + ensure( + !strcmp(peers[i].nick, peer->nick), + reply(peer, 433, msg->params[0]), + 0 + ); + user_reg(peer, msg->params[0], NULL, NULL, NULL); return 0; |