Committer : entrope
CVSROOT : /cvsroot/undernet-ircu
Module : ircu2.10
Commit time: 2005-10-06 04:00:46 UTC
Modified files:
ChangeLog ircd/m_names.c
Log message:
Properly support /names -D #channel server.*.
---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.720 ircu2.10/ChangeLog:1.721
--- ircu2.10/ChangeLog:1.720 Wed Oct 5 17:48:15 2005
+++ ircu2.10/ChangeLog Wed Oct 5 21:00:36 2005
@@ -1,5 +1,11 @@
2005-10-05 Michael Poole <[EMAIL PROTECTED]>
+ * ircd/m_names.c (m_names): Fix format string when forwarding
+ /names -D to other servers.
+ (ms_names): Likewise. Add support for remote /names -D.
+
+2005-10-05 Michael Poole <[EMAIL PROTECTED]>
+
* ircd/class.c (do_find_class): Fix bug from previous commit.
* ircd/ircd_parser.y (clientblock): Allow setting Client port.
Index: ircu2.10/ircd/m_names.c
diff -u ircu2.10/ircd/m_names.c:1.22 ircu2.10/ircd/m_names.c:1.23
--- ircu2.10/ircd/m_names.c:1.22 Tue Sep 13 08:17:46 2005
+++ ircu2.10/ircd/m_names.c Wed Oct 5 21:00:36 2005
@@ -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_names.c,v 1.22 2005/09/13 15:17:46 entrope Exp $
+ * $Id: m_names.c,v 1.23 2005/10/06 04:00:36 entrope Exp $
*/
/*
@@ -228,10 +228,10 @@
if (parc > 1 && !ircd_strcmp(parv[1], "-D")) {
para = (parc > 2) ? parv[2] : 0;
showingdelayed = 1;
- }
-
- if ((parc - showingdelayed) > 2 && hunt_server_cmd(sptr, CMD_NAMES, cptr, 1,
"%s %C", 2+showingdelayed, parc, parv))
- return 0;
+ if (parc > 3 && hunt_server_cmd(sptr, CMD_NAMES, cptr, 1, "%s %s %C", 3,
parc, parv))
+ return 0;
+ } else if (parc > 2 && hunt_server_cmd(sptr, CMD_NAMES, cptr, 1, "%s %C", 2,
parc, parv))
+ return 0;
if (EmptyString(para)) {
send_reply(sptr, RPL_ENDOFNAMES, "*");
@@ -370,9 +370,15 @@
struct Membership* member;
char* s;
char* para = parc > 1 ? parv[1] : 0;
+ int showingdelayed = 0;
- if (parc > 2 && hunt_server_cmd(sptr, CMD_NAMES, cptr, 1, "%s %C", 2, parc,
parv))
- return 0;
+ if (parc > 1 && !ircd_strcmp(parv[1], "-D")) {
+ para = (parc > 2) ? parv[2] : 0;
+ showingdelayed = NAMES_DEL;
+ if (parc > 3 && hunt_server_cmd(sptr, CMD_NAMES, cptr, 1, "%s %s %C", 3,
parc, parv))
+ return 0;
+ } else if (parc > 2 && hunt_server_cmd(sptr, CMD_NAMES, cptr, 1, "%s %C", 2,
parc, parv))
+ return 0;
if (EmptyString(para)) {
send_reply(sptr, RPL_ENDOFNAMES, "*");
@@ -383,7 +389,7 @@
s = strchr(para, ','); /* Recursively call m_names for each comma-separated
channel. */
if (s) {
- parv[1] = ++s;
+ parv[1+!!showingdelayed] = ++s;
m_names(cptr, sptr, parc, parv);
}
@@ -410,9 +416,9 @@
if (find_channel_member(sptr, ch2ptr))
{
- do_names(sptr, ch2ptr, NAMES_ALL); /* Full list if we're in this chan.
*/
+ do_names(sptr, ch2ptr, showingdelayed|NAMES_ALL); /* Full list if
we're in this chan. */
} else {
- do_names(sptr, ch2ptr, NAMES_VIS);
+ do_names(sptr, ch2ptr, showingdelayed|NAMES_VIS);
}
}
@@ -474,7 +480,7 @@
member = find_member_link(chptr, sptr);
if (member)
{
- do_names(sptr, chptr, NAMES_ALL);
+ do_names(sptr, chptr, showingdelayed|NAMES_ALL);
if (!EmptyString(para))
{
send_reply(sptr, RPL_ENDOFNAMES, chptr ? chptr->chname : para);
@@ -487,7 +493,7 @@
* Special Case 3: User isn't on this channel, show all visible users,
in
* non secret channels.
*/
- do_names(sptr, chptr, NAMES_VIS);
+ do_names(sptr, chptr, showingdelayed|NAMES_VIS);
}
} else { /* Channel doesn't exist. */
send_reply(sptr, RPL_ENDOFNAMES, para);
----------------------- End of diff -----------------------
_______________________________________________
Patches mailing list
[email protected]
http://undernet.sbg.org/mailman/listinfo/patches