From bfd61f84f19b4b5c81557b2c2801facc8ea4a928 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 13 Mar 2017 12:04:53 -0700 Subject: [PATCH] ircd: Various fixes. --- ircd/parse.cc | 76 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 2 deletions(-) diff --git a/ircd/parse.cc b/ircd/parse.cc index f53f77e93..eaa882e38 100644 --- a/ircd/parse.cc +++ b/ircd/parse.cc @@ -19,8 +19,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include -#include +//#include +//#include namespace ircd { @@ -51,3 +51,75 @@ noexcept { grammars.erase(grammars_it); } + + +// +// Museum of historical comments +// +// parse.c (1990 - 2016) +// + + /* ok, fake prefix happens naturally during a burst on a nick + * collision with TS5, we cant kill them because one client has to + * survive, so we just send an error. + */ + + /* meepfoo is a nickname (ignore) + * #XXXXXXXX is a UID (KILL) + * #XX is a SID (SQUIT) + * meep.foo is a server (SQUIT) + */ +/* + * *WARNING* + * Numerics are mostly error reports. If there is something + * wrong with the message, just *DROP* it! Don't even think of + * sending back a neat error message -- big danger of creating + * a ping pong error message... + */ + + /* + * Prepare the parameter portion of the message into 'buffer'. + * (Because the buffer is twice as large as the message buffer + * for the socket, no overflow can occur here... ...on current + * assumptions--bets are off, if these are changed --msa) + * Note: if buffer is non-empty, it will begin with SPACE. + */ + + /* + * We shouldn't get numerics sent to us, + * any numerics we do get indicate a bug somewhere.. + */ + + /* ugh. this is here because of nick collisions. when two servers + * relink, they burst each other their nicks, then perform collides. + * if there is a nick collision, BOTH servers will kill their own + * nicks, and BOTH will kill the other servers nick, which wont exist, + * because it will have been already killed by the local server. + * + * unfortunately, as we cant guarantee other servers will do the + * "right thing" on a nick collision, we have to keep both kills. + * ergo we need to ignore ERR_NOSUCHNICK. --fl_ + */ + + /* quick comment. This _was_ tried. i.e. assume the other servers + * will do the "right thing" and kill a nick that is colliding. + * unfortunately, it did not work. --Dianora + */ + + /* note, now we send PING on server connect, we can + * also get ERR_NOSUCHSERVER.. + */ + + /* This message changed direction (nick collision?) + * ignore it. + */ + + /* csircd will send out unknown umode flag for +a (admin), drop it here. */ + + /* Fake it for server hiding, if its our client */ + + /* bit of a hack. + * I don't =really= want to waste a bit in a flag + * number_of_nick_changes is only really valid after the client + * is fully registered.. + */