From fc9d39bf04515b97d44f26740fa189022c3ff5a5 Mon Sep 17 00:00:00 2001 From: Michael Poole Date: Tue, 29 May 2007 03:08:34 +0000 Subject: [PATCH] Complain to the client when it sends a line that is too long. git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/branches/u2_10_12_branch@1815 c9e4aea6-c8fd-4c43-8297-357d70d61c8c --- ChangeLog | 8 ++++++++ include/numeric.h | 1 + ircd/s_bsd.c | 6 ++++++ ircd/s_err.c | 2 +- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index e1c088f..40c804f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-05-28 Michael Poole + + * include/numeric.h (ERR_INPUTTOOLONG): New numeric. + + * ircd/s_bsd.c (read_packet): Use it. + + * ircd/s_err.c (replyTable): Give it a format string. + 2007-05-20 Michael Poole * ircd/m_burst.c (ms_burst): Do not let bursting servers join a diff --git a/include/numeric.h b/include/numeric.h index 26fbfb9..48df5b2 100644 --- a/include/numeric.h +++ b/include/numeric.h @@ -336,6 +336,7 @@ extern const struct Numeric* get_error_numeric(int err); /* ERR_BADMASK 415 IRCnet extension */ #define ERR_QUERYTOOLONG 416 /* Undernet extension */ /* ERR_TOOMANYMATCHES 416 IRCnet extension */ +#define ERR_INPUTTOOLONG 417 /* ERR_LENGTHTRUNCATED 419 aircd */ #define ERR_UNKNOWNCOMMAND 421 diff --git a/ircd/s_bsd.c b/ircd/s_bsd.c index 3989ca0..ab7d261 100644 --- a/ircd/s_bsd.c +++ b/ircd/s_bsd.c @@ -635,7 +635,13 @@ static int read_packet(struct Client *cptr, int socket_ready) if (DBufLength(&(cli_recvQ(cptr))) < 510) SetFlag(cptr, FLAG_NONL); else + { + /* More than 512 bytes in the line - drop the input and yell + * at the client. + */ DBufClear(&(cli_recvQ(cptr))); + send_reply(cptr, ERR_INPUTTOOLONG); + } } else if (client_dopacket(cptr, dolen) == CPTR_KILLED) return CPTR_KILLED; diff --git a/ircd/s_err.c b/ircd/s_err.c index a7c0236..b86224f 100644 --- a/ircd/s_err.c +++ b/ircd/s_err.c @@ -866,7 +866,7 @@ static Numeric replyTable[] = { /* 416 */ { ERR_QUERYTOOLONG, "%s :Too many lines in the output, restrict your query", "416" }, /* 417 */ - { 0 }, + { ERR_INPUTTOOLONG, ":Input line was too long", "417" }, /* 418 */ { 0 }, /* 419 */ -- 2.20.1