diff --git a/Changes b/Changes index 99ea39b07..cf6078a80 100644 --- a/Changes +++ b/Changes @@ -1268,3 +1268,8 @@ - Made it so undefining SHOW_SECRET (not the default) properly hides +s channels from ircops (except netadmins), as it should. Reported and patch supplied by Jason (#0002965). - Fixed tld::options:: not working properly, reported by DelGurth (#0003003). +- Fixed problem with oper as chanadmin kicking himself causing an operoverride notice, + reported by Bock (as part of #2889). +- Fixed desynch problem with +Q, reported by tabrisnet (#0002992). +- Updated doc/coding-guidelines +- Added bugs.* url to /info, was still showing some email address. diff --git a/src/modules/m_kick.c b/src/modules/m_kick.c index d57b5b225..e97f076fb 100644 --- a/src/modules/m_kick.c +++ b/src/modules/m_kick.c @@ -179,6 +179,8 @@ CMD_FUNC(m_kick) { if (!op_can_override(sptr)) { + if (!MyClient(sptr)) + goto attack; /* lag? yes.. kick crossing +Q... allow */ sendto_one(sptr, err_str(ERR_CANNOTDOCOMMAND), me.name, sptr->name, "KICK", "channel is +Q"); @@ -219,6 +221,8 @@ CMD_FUNC(m_kick) /* victim is +a or +q, we are not +q */ if ((who_flags & (CHFL_CHANOWNER|CHFL_CHANPROT) || IsServices(who)) && !(sptr_flags & CHFL_CHANOWNER)) { + if (sptr == who) + goto attack; /* kicking self == ok */ if (op_can_override(sptr)) /* (and f*ck local ops) */ { /* IRCop kicking owner/prot */ sendto_snomask(SNO_EYES, diff --git a/src/s_serv.c b/src/s_serv.c index e99c5c976..d7b2f50a8 100644 --- a/src/s_serv.c +++ b/src/s_serv.c @@ -257,9 +257,9 @@ void m_info_send(aClient *sptr) sendto_one(sptr, ":%s %d %s :|", me.name, RPL_INFO, sptr->name); sendto_one(sptr, ":%s %d %s :| This is an UnrealIRCD-style server", me.name, RPL_INFO, sptr->name); - sendto_one(sptr, ":%s %d %s :| If you find any bugs, please mail", + sendto_one(sptr, ":%s %d %s :| If you find any bugs, please report them at:", me.name, RPL_INFO, sptr->name); - sendto_one(sptr, ":%s %d %s :| bugs@lists.unrealircd.org", + sendto_one(sptr, ":%s %d %s :| http://bugs.unrealircd.org/", me.name, RPL_INFO, sptr->name); sendto_one(sptr,