diff options
-rw-r--r-- | client.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/client.c b/client.c index 3ed8a81..cd9d008 100644 --- a/client.c +++ b/client.c @@ -172,7 +172,11 @@ static void handleQuit(struct Client *client, struct Message *msg) { } static void handlePrivmsg(struct Client *client, struct Message *msg) { - if (!msg->params[0] || !msg->params[1]) return; + if (client->need || !msg->params[0] || !msg->params[1]) { + client->error = true; + return; + } + char line[1024]; snprintf( line, sizeof(line), ":%s %s %s :%s", @@ -181,6 +185,7 @@ static void handlePrivmsg(struct Client *client, struct Message *msg) { size_t diff = ringDiff(client->consumer); ringProduce(line); if (!diff) ringConsume(NULL, client->consumer); + serverFormat("%s %s :%s\r\n", msg->cmd, msg->params[0], msg->params[1]); } |