CVSROOT : /cvsroot/undernet-ircu
Module : ircu2.10
Branch tags: u2_10_11_02
Commit time: 2002-10-03 05:37:09 UTC
Modified files:
Tag: u2_10_11_02
ChangeLog doc/readme.features ircd/ircd_relay.c ircd/m_burst.c
ircd/m_clearmode.c ircd/m_join.c ircd/m_squit.c
Log message:
Author: Multiple via Perry Lorier <[EMAIL PROTECTED]>
Log message:
2002-09-02 Alexander Maassen <[EMAIL PROTECTED]>
* doc/readme.features: Fixed bugs regarding certain features
being associated to WHOIS instead of WHO.
2002-05-21 Andrew Miller <[EMAIL PROTECTED]>
* ircd/ircd_relay.c: stop an information leak about the
network topography from relayed messages.
2002-09-02 Mathieu Rene <[EMAIL PROTECTED]>
* ircd/m_squit.c (ms_squit): Fixed a bug that caused server
to crash when receiving a SQUIT without any reason or timestamp.
2002-06-18 Alex Badea <[EMAIL PROTECTED]>
* ircd/m_burst.c (ms_burst): kick local members if the channel
has a larger local TS and it's +i or +k remotely (anti net.ride)
---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.290.2.124.2.1 ircu2.10/ChangeLog:1.290.2.124.2.2
--- ircu2.10/ChangeLog:1.290.2.124.2.1 Mon Sep 16 10:35:58 2002
+++ ircu2.10/ChangeLog Wed Oct 2 22:36:58 2002
@@ -1,3 +1,22 @@
+2002-09-02 Alexander Maassen <[EMAIL PROTECTED]>
+
+ * doc/readme.features: Fixed bugs regarding certain features
+ being associated to WHOIS instead of WHO.
+
+2002-05-21 Andrew Miller <[EMAIL PROTECTED]>
+
+ * ircd/ircd_relay.c: stop an information leak about the
+ network topography from relayed messages.
+
+2002-09-02 Mathieu Rene <[EMAIL PROTECTED]>
+ * ircd/m_squit.c (ms_squit): Fixed a bug that caused server
+ to crash when receiving a SQUIT without any reason or timestamp.
+
+2002-06-18 Alex Badea <[EMAIL PROTECTED]>
+
+ * ircd/m_burst.c (ms_burst): kick local members if the channel
+ has a larger local TS and it's +i or +k remotely (anti net.ride)
+
2002-09-16 Jochen Meesters <[EMAIL PROTECTED]>
* ircd/whocmds.h: Changed output of /who %a command, making it
Index: ircu2.10/doc/readme.features
diff -u ircu2.10/doc/readme.features:1.2.2.8 ircu2.10/doc/readme.features:1.2.2.8.2.1
--- ircu2.10/doc/readme.features:1.2.2.8 Sat Sep 14 13:44:31 2002
+++ ircu2.10/doc/readme.features Wed Oct 2 22:36:59 2002
@@ -968,19 +968,19 @@
* Type: boolean
* Default: TRUE
-As per UnderNet CFV-165, this removes server names in replies to /WHOIS.
+As per UnderNet CFV-165, this removes idle time in replies to /WHOIS.
HIS_WHO_SERVERNAME
* Type: boolean
* Default: TRUE
-As per UnderNet CFV-165, this removes server names in replies to /WHOIS.
+As per UnderNet CFV-165, this removes server names in replies to /WHO.
HIS_WHO_HOPCOUNT
* Type: boolean
* Default: TRUE
-As per UnderNet CFV-165, this removes server names in replies to /WHOIS.
+As per UnderNet CFV-165, this replaces hopcount to a static 3 in replies to /WHO.
HIS_BANWHO
* Type: boolean
Index: ircu2.10/ircd/ircd_relay.c
diff -u ircu2.10/ircd/ircd_relay.c:1.8.2.1 ircu2.10/ircd/ircd_relay.c:1.8.2.1.2.1
--- ircu2.10/ircd/ircd_relay.c:1.8.2.1 Sat Sep 14 13:44:32 2002
+++ ircu2.10/ircd/ircd_relay.c Wed Oct 2 22:36:59 2002
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: ircd_relay.c,v 1.8.2.1 2002/09/14 20:44:32 kev Exp $
+ * $Id: ircd_relay.c,v 1.8.2.1.2.1 2002/10/03 05:36:59 isomer Exp $
*/
#include "config.h"
@@ -159,7 +159,8 @@
assert(0 != text);
assert(0 != server);
- if (0 == (acptr = FindServer(server + 1))) {
+ if ((acptr = FindServer(server + 1)) == NULL ||
+ !IsChannelService(acptr)) {
send_reply(sptr, ERR_NOSUCHNICK, name);
return;
}
@@ -190,9 +191,12 @@
if (!(acptr = FindUser(name)) || !MyUser(acptr) ||
(!EmptyString(host) && 0 != match(host, cli_user(acptr)->host)) ||
!IsChannelService(acptr)) {
-#if 0
+ /*
+ * By this stage we might as well not bother because they will
+ * know that this server is currently linked because of the
+ * increased lag.
+ */
send_reply(sptr, ERR_NOSUCHNICK, name);
-#endif
return;
}
Index: ircu2.10/ircd/m_burst.c
diff -u ircu2.10/ircd/m_burst.c:1.12.2.3 ircu2.10/ircd/m_burst.c:1.12.2.3.6.1
--- ircu2.10/ircd/m_burst.c:1.12.2.3 Wed Jul 17 15:55:40 2002
+++ ircu2.10/ircd/m_burst.c Wed Oct 2 22:36:59 2002
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: m_burst.c,v 1.12.2.3 2002/07/17 22:55:40 kev Exp $
+ * $Id: m_burst.c,v 1.12.2.3.6.1 2002/10/03 05:36:59 isomer Exp $
*/
/*
@@ -156,6 +156,32 @@
return 0; /* can't create the channel? */
timestamp = atoi(parv[2]);
+
+ if (!chptr->creationtime || chptr->creationtime > timestamp) {
+ /*
+ * Kick local members if channel is +i or +k and our TS was larger
+ * than the burst TS (anti net.ride). The modes hack is here because
+ * we have to do this before mode_parse, as chptr may go away.
+ */
+ for (param = 3; param < parc; param++) {
+ if (parv[param][0] != '+')
+ continue;
+ if (strchr(parv[param], 'i') || strchr(parv[param], 'k')) {
+ for (member = chptr->members; member; member = member->next_member) {
+ if (!MyUser(member->user) || IsZombie(member))
+ continue;
+ sendcmdto_serv_butone(&me, CMD_KICK, NULL, "%H %C :Net Rider", chptr,
+member->user);
+ sendcmdto_channel_butserv_butone(&me, CMD_KICK, chptr, NULL, "%H %C :Net
+Rider", chptr, member->user);
+ make_zombie(member, member->user, &me, &me, chptr);
+ }
+ }
+ break;
+ }
+
+ /* If the channel had only locals, it went away by now. */
+ if (!(chptr = get_channel(sptr, parv[1], CGT_CREATE)))
+ return 0; /* can't create the channel? */
+ }
/* turn off burst joined flag */
for (member = chptr->members; member; member = member->next_member)
Index: ircu2.10/ircd/m_clearmode.c
diff -u ircu2.10/ircd/m_clearmode.c:1.19.2.2 ircu2.10/ircd/m_clearmode.c:1.19.2.2.6.1
--- ircu2.10/ircd/m_clearmode.c:1.19.2.2 Fri May 17 09:42:19 2002
+++ ircu2.10/ircd/m_clearmode.c Wed Oct 2 22:36:59 2002
@@ -21,7 +21,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: m_clearmode.c,v 1.19.2.2 2002/05/17 16:42:19 kev Exp $
+ * $Id: m_clearmode.c,v 1.19.2.2.6.1 2002/10/03 05:36:59 isomer Exp $
*/
/*
@@ -299,7 +299,6 @@
return send_reply(sptr, ERR_NOPRIVILEGES);
force = 1;
}
- clean_channelname(chname);
if (!HasPriv(sptr,
IsLocalChannel(chname) ? PRIV_LOCAL_OPMODE : PRIV_OPMODE))
Index: ircu2.10/ircd/m_join.c
diff -u ircu2.10/ircd/m_join.c:1.16.2.1 ircu2.10/ircd/m_join.c:1.16.2.1.6.1
--- ircu2.10/ircd/m_join.c:1.16.2.1 Thu Aug 22 12:30:18 2002
+++ ircu2.10/ircd/m_join.c Wed Oct 2 22:36:59 2002
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: m_join.c,v 1.16.2.1 2002/08/22 19:30:18 kev Exp $
+ * $Id: m_join.c,v 1.16.2.1.6.1 2002/10/03 05:36:59 isomer Exp $
*/
/*
@@ -314,7 +314,6 @@
for (name = ircd_strtok(&p, chanlist, ","); name;
name = ircd_strtok(&p, 0, ",")) {
- clean_channelname(name);
if (join0(&join, cptr, sptr, name)) /* did client do a JOIN 0? */
continue;
Index: ircu2.10/ircd/m_squit.c
diff -u ircu2.10/ircd/m_squit.c:1.6.2.4 ircu2.10/ircd/m_squit.c:1.6.2.4.6.1
--- ircu2.10/ircd/m_squit.c:1.6.2.4 Tue Jan 8 13:38:12 2002
+++ ircu2.10/ircd/m_squit.c Wed Oct 2 22:36:59 2002
@@ -20,7 +20,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: m_squit.c,v 1.6.2.4 2002/01/08 21:38:12 kev Exp $
+ * $Id: m_squit.c,v 1.6.2.4.6.1 2002/10/03 05:36:59 isomer Exp $
*/
#include "config.h"
@@ -60,7 +60,7 @@
{
const char* server = parv[1];
struct Client *acptr;
- time_t timestamp;
+ time_t timestamp = 0;
char *comment = 0;
if (parc < 2)
@@ -85,8 +85,10 @@
if (IsMe(acptr)) {
acptr = cptr; /* Bugfix by Prefect */
}
-
+ if (parc>2)
timestamp = atoi(parv[2]);
+ else
+ protocol_violation(cptr, "SQUIT with no timestamp/reason");
/* If atoi(parv[2]) == 0 we must indeed squit !
* It will be our neighbour.
----------------------- End of diff -----------------------