From af86909202cd4fba0417a27b03f9df00342fcfbd Mon Sep 17 00:00:00 2001 From: Nakidai Date: Fri, 13 Feb 2026 00:58:28 +0300 Subject: Add sending topic on join When user joins, it should get topic message --- handle.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/handle.c b/handle.c index 0be87a3..2fb54f0 100644 --- a/handle.c +++ b/handle.c @@ -28,11 +28,12 @@ static struct Oper opers[OPERS_MAX]; size_t opers_c; static int names(struct Message *msg, struct Peer *peer); +static int topic(struct Message *msg, struct Peer *peer); static int join(struct Message *msg, struct Peer *peer) { - struct Message namesmsg; + struct Message joinmsg; size_t i; char *cp; @@ -52,16 +53,21 @@ join(struct Message *msg, struct Peer *peer) for (i = 0; i < peer->channels_c; ++i) ensure(strcmp(channels[i].name, msg->params[0]), (void)0, 0); - namesmsg = (struct Message){ .params = { msg->params[0] } }; + joinmsg = (struct Message){ .params = { msg->params[0] } }; for (i = 0; i < channels_c; ++i) { if (strcmp(channels[i].name, msg->params[0])) continue; if (channel_join(&channels[i], peer)) + { reply(peer, 471); + } else - names(&namesmsg, peer); + { + topic(&joinmsg, peer); + names(&joinmsg, peer); + } return 0; } @@ -69,7 +75,8 @@ join(struct Message *msg, struct Peer *peer) strlcpy(channels[channels_c].name, msg->params[0], sizeof(channels->name)); channel_join(&channels[channels_c], peer); channels[channels_c++].peers[0].modes |= CHANNEL_OPER; - names(&namesmsg, peer); + topic(&joinmsg, peer); + names(&joinmsg, peer); return 0; } -- cgit 1.4.1