From 9fa2ddad60c16383fb927645e50ba142050f8110 Mon Sep 17 00:00:00 2001 From: Nakidai Date: Fri, 30 Jan 2026 18:26:22 +0300 Subject: Add PING command Then I should make some logic for pinging others... --- handle.c | 16 ++++++++++++++++ reply.c | 5 +++++ 2 files changed, 21 insertions(+) diff --git a/handle.c b/handle.c index 1b9f8e6..df36e1f 100644 --- a/handle.c +++ b/handle.c @@ -151,6 +151,21 @@ part(struct Message *msg, struct Peer *peer) return 0; } +static int +ping(struct Message *msg, struct Peer *peer) +{ + ensure(msg->params[0] && *msg->params[0], reply(peer, 409), 0); + + writef( + peer->fd, + ":%s PONG :%s", + hostname, + msg->params[0] + ); + + return 0; +} + static int privmsg(struct Message *msg, struct Peer *peer) { @@ -274,6 +289,7 @@ static struct Handler { { "nick", nick }, { "notice", privmsg }, { "part", part }, + { "ping", ping }, { "privmsg", privmsg }, { "quit", quit }, { "user", user }, diff --git a/reply.c b/reply.c index f89a8c9..5da4094 100644 --- a/reply.c +++ b/reply.c @@ -104,6 +104,11 @@ vreply(const struct Peer *peer, int number, va_list ap) getnick(peer), channel ), channel, _); + REPLY(409, WRITE( + ":%s 409 %s :No origin specified", + hostname, + getnick(peer) + ), _); REPLY(411, WRITE( ":%s 411 %s :No recipient given (PRIVMSG)", hostname, -- cgit 1.4.1