diff options
Diffstat (limited to 'handle.c')
| -rw-r--r-- | handle.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/handle.c b/handle.c index 1b9f8e6..df36e1f 100644 --- a/handle.c +++ b/handle.c @@ -152,6 +152,21 @@ part(struct Message *msg, struct Peer *peer) } 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) { size_t i; @@ -274,6 +289,7 @@ static struct Handler { { "nick", nick }, { "notice", privmsg }, { "part", part }, + { "ping", ping }, { "privmsg", privmsg }, { "quit", quit }, { "user", user }, |