summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes1
-rw-r--r--include/extern.h4
-rw-r--r--include/services.h2
-rw-r--r--src/ircd.c7
-rw-r--r--src/protocol/bahamut.c8
-rw-r--r--src/protocol/charybdis.c8
-rw-r--r--src/protocol/dreamforge.c8
-rw-r--r--src/protocol/hybrid.c8
-rw-r--r--src/protocol/inspircd10.c8
-rw-r--r--src/protocol/inspircd11.c2
-rw-r--r--src/protocol/plexus2.c2
-rw-r--r--src/protocol/plexus3.c2
-rw-r--r--src/protocol/ptlink.c2
-rw-r--r--src/protocol/rageircd.c8
-rw-r--r--src/protocol/ratbox.c8
-rw-r--r--src/protocol/shadowircd.c8
-rw-r--r--src/protocol/solidircd.c8
-rw-r--r--src/protocol/ultimate2.c8
-rw-r--r--src/protocol/ultimate3.c8
-rw-r--r--src/protocol/unreal31.c15
-rw-r--r--src/protocol/unreal32.c11
-rw-r--r--src/protocol/viagra.c8
-rw-r--r--version.log6
23 files changed, 82 insertions, 68 deletions
diff --git a/Changes b/Changes
index 773b578c9..4332897d5 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,6 @@
Anope Version S V N
--------------------
+08/30 A Added support for channel keys to UnrealIRCd 3.2 SVSJOIN command [#774]
08/29 A Session limit exceptions now support IP numbers as hostmask [#723]
08/29 A Added InspIRCd11 vIdent support. [#684]
06/15 F Non-existing servers being SQUIT'd when they were juped. [#726]
diff --git a/include/extern.h b/include/extern.h
index fcc1590fc..df8b7f74a 100644
--- a/include/extern.h
+++ b/include/extern.h
@@ -661,7 +661,7 @@ E void pmodule_cmd_nc_change(void (*func) (User * u));
E void pmodule_cmd_svid_umode2(void (*func) (User * u, char *ts));
E void pmodule_cmd_svid_umode3(void (*func) (User * u, char *ts));
E void pmodule_cmd_ctcp(void (*func) (char *source, char *dest, char *buf));
-E void pmodule_cmd_svsjoin(void (*func) (char *source, char *nick, char *chan));
+E void pmodule_cmd_svsjoin(void (*func) (char *source, char *nick, char *chan, char *param));
E void pmodule_cmd_svspart(void (*func) (char *source, char *nick, char *chan));
E void pmodule_cmd_swhois(void (*func) (char *source, char *who, char *mask));
E void pmodule_cmd_eob(void (*func) ());
@@ -1251,7 +1251,7 @@ E void anope_cmd_svsadmin(char *server, int set); /* SVSADMIN */
E void anope_cmd_svshold(char *nick); /* SVSHOLD */
E void anope_cmd_release_svshold(char *nick); /* SVSHOLD */
E void anope_cmd_svsinfo(); /* SVSINFO */
-E void anope_cmd_svsjoin(char *source, char *nick,char *chan); /* SVSJOIN */
+E void anope_cmd_svsjoin(char *source, char *nick,char *chan, char *param); /* SVSJOIN */
E void anope_cmd_svskill(char *source,char *user, const char *fmt, ...); /* SVSKILL */
E void anope_cmd_svsmode(User * u, int ac, char **av); /* SVSMODE */
E void anope_cmd_svsmode_chan(char *name, char *mode, char *nick); /* SVSMODE */
diff --git a/include/services.h b/include/services.h
index 169b995aa..17e2c26a7 100644
--- a/include/services.h
+++ b/include/services.h
@@ -1168,7 +1168,7 @@ typedef struct ircd_proto_ {
void (*ircd_cmd_svid_umode2)(User * u, char *ts);
void (*ircd_cmd_svid_umode3)(User * u, char *ts);
void (*ircd_cmd_ctcp)(char *source, char *dest, char *buf);
- void (*ircd_cmd_svsjoin)(char *source, char *nick, char *chan);
+ void (*ircd_cmd_svsjoin)(char *source, char *nick, char *chan, char *param);
void (*ircd_cmd_svspart)(char *source, char *nick, char *chan);
void (*ircd_cmd_swhois)(char *source, char *who, char *mask);
void (*ircd_cmd_eob)();
diff --git a/src/ircd.c b/src/ircd.c
index 906449aff..b64c073cf 100644
--- a/src/ircd.c
+++ b/src/ircd.c
@@ -600,9 +600,9 @@ void anope_cmd_svid_umode3(User * u, char *ts)
ircdproto.ircd_cmd_svid_umode3(u, ts);
}
-void anope_cmd_svsjoin(char *source, char *nick, char *chan)
+void anope_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
- ircdproto.ircd_cmd_svsjoin(source, nick, chan);
+ ircdproto.ircd_cmd_svsjoin(source, nick, chan, param);
}
void anope_cmd_svspart(char *source, char *nick, char *chan)
@@ -1013,7 +1013,8 @@ void pmodule_cmd_ctcp(void (*func) (char *source, char *dest, char *buf))
}
void
-pmodule_cmd_svsjoin(void (*func) (char *source, char *nick, char *chan))
+pmodule_cmd_svsjoin(void (*func)
+ (char *source, char *nick, char *chan, char *param))
{
ircdproto.ircd_cmd_svsjoin = func;
}
diff --git a/src/protocol/bahamut.c b/src/protocol/bahamut.c
index be145151e..47f6b17ac 100644
--- a/src/protocol/bahamut.c
+++ b/src/protocol/bahamut.c
@@ -1424,7 +1424,7 @@ int anope_event_pass(char *source, int ac, char **av)
return MOD_CONT;
}
-void bahamut_cmd_svsjoin(char *source, char *nick, char *chan)
+void bahamut_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
/* Can not find any reference to these in Bahamut */
}
@@ -1628,9 +1628,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(bahamut_cmd_nc_change);
pmodule_cmd_svid_umode2(bahamut_cmd_svid_umode2);
pmodule_cmd_svid_umode3(bahamut_cmd_svid_umode3);
- pmodule_cmd_svsjoin(bahamut_cmd_svsjoin);
- pmodule_cmd_svspart(bahamut_cmd_svspart);
- pmodule_cmd_swhois(bahamut_cmd_swhois);
+ pmodule_cmd_svsjoin(bahamut_cmd_svsjoin);
+ pmodule_cmd_svspart(bahamut_cmd_svspart);
+ pmodule_cmd_swhois(bahamut_cmd_swhois);
pmodule_cmd_eob(bahamut_cmd_eob);
pmodule_flood_mode_check(bahamut_flood_mode_check);
pmodule_cmd_jupe(bahamut_cmd_jupe);
diff --git a/src/protocol/charybdis.c b/src/protocol/charybdis.c
index 4efc7d7b3..d559e0941 100644
--- a/src/protocol/charybdis.c
+++ b/src/protocol/charybdis.c
@@ -1716,7 +1716,7 @@ int anope_event_pass(char *source, int ac, char **av)
return MOD_CONT;
}
-void charybdis_cmd_svsjoin(char *source, char *nick, char *chan)
+void charybdis_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
/* Not Supported by this IRCD */
}
@@ -1943,9 +1943,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(charybdis_cmd_nc_change);
pmodule_cmd_svid_umode2(charybdis_cmd_svid_umode2);
pmodule_cmd_svid_umode3(charybdis_cmd_svid_umode3);
- pmodule_cmd_svsjoin(charybdis_cmd_svsjoin);
- pmodule_cmd_svspart(charybdis_cmd_svspart);
- pmodule_cmd_swhois(charybdis_cmd_swhois);
+ pmodule_cmd_svsjoin(charybdis_cmd_svsjoin);
+ pmodule_cmd_svspart(charybdis_cmd_svspart);
+ pmodule_cmd_swhois(charybdis_cmd_swhois);
pmodule_cmd_eob(charybdis_cmd_eob);
pmodule_flood_mode_check(charybdis_flood_mode_check);
pmodule_cmd_jupe(charybdis_cmd_jupe);
diff --git a/src/protocol/dreamforge.c b/src/protocol/dreamforge.c
index 655ae8840..e874f2060 100644
--- a/src/protocol/dreamforge.c
+++ b/src/protocol/dreamforge.c
@@ -1168,7 +1168,7 @@ void dreamforge_cmd_chg_nick(char *oldnick, char *newnick)
send_cmd(oldnick, "NICK %s", newnick);
}
-void dreamforge_cmd_svsjoin(char *source, char *nick, char *chan)
+void dreamforge_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
/* Not Supported by this IRCD */
}
@@ -1333,9 +1333,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(dreamforge_cmd_nc_change);
pmodule_cmd_svid_umode2(dreamforge_cmd_svid_umode2);
pmodule_cmd_svid_umode3(dreamforge_cmd_svid_umode3);
- pmodule_cmd_svsjoin(dreamforge_cmd_svsjoin);
- pmodule_cmd_svspart(dreamforge_cmd_svspart);
- pmodule_cmd_swhois(dreamforge_cmd_swhois);
+ pmodule_cmd_svsjoin(dreamforge_cmd_svsjoin);
+ pmodule_cmd_svspart(dreamforge_cmd_svspart);
+ pmodule_cmd_swhois(dreamforge_cmd_swhois);
pmodule_cmd_eob(dreamforge_cmd_eob);
pmodule_flood_mode_check(dreamforge_flood_mode_check);
pmodule_cmd_jupe(dreamforge_cmd_jupe);
diff --git a/src/protocol/hybrid.c b/src/protocol/hybrid.c
index ab6c365ff..1f23a918c 100644
--- a/src/protocol/hybrid.c
+++ b/src/protocol/hybrid.c
@@ -1342,7 +1342,7 @@ int anope_event_pass(char *source, int ac, char **av)
return MOD_CONT;
}
-void hybrid_cmd_svsjoin(char *source, char *nick, char *chan)
+void hybrid_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
/* Not Supported by this IRCD */
}
@@ -1506,9 +1506,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(hybrid_cmd_nc_change);
pmodule_cmd_svid_umode2(hybrid_cmd_svid_umode2);
pmodule_cmd_svid_umode3(hybrid_cmd_svid_umode3);
- pmodule_cmd_svsjoin(hybrid_cmd_svsjoin);
- pmodule_cmd_svspart(hybrid_cmd_svspart);
- pmodule_cmd_swhois(hybrid_cmd_swhois);
+ pmodule_cmd_svsjoin(hybrid_cmd_svsjoin);
+ pmodule_cmd_svspart(hybrid_cmd_svspart);
+ pmodule_cmd_swhois(hybrid_cmd_swhois);
pmodule_cmd_eob(hybrid_cmd_eob);
pmodule_flood_mode_check(hybrid_flood_mode_check);
pmodule_cmd_jupe(hybrid_cmd_jupe);
diff --git a/src/protocol/inspircd10.c b/src/protocol/inspircd10.c
index 4a0f4ed01..3c71da375 100644
--- a/src/protocol/inspircd10.c
+++ b/src/protocol/inspircd10.c
@@ -1498,7 +1498,7 @@ void inspircd_cmd_svid_umode3(User * u, char *ts)
/* not used */
}
-void inspircd_cmd_svsjoin(char *source, char *nick, char *chan)
+void inspircd_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
send_cmd(source, "SAJOIN %s %s", nick, chan);
}
@@ -1662,9 +1662,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(inspircd_cmd_nc_change);
pmodule_cmd_svid_umode2(inspircd_cmd_svid_umode2);
pmodule_cmd_svid_umode3(inspircd_cmd_svid_umode3);
- pmodule_cmd_svsjoin(inspircd_cmd_svsjoin);
- pmodule_cmd_svspart(inspircd_cmd_svspart);
- pmodule_cmd_swhois(inspircd_cmd_swhois);
+ pmodule_cmd_svsjoin(inspircd_cmd_svsjoin);
+ pmodule_cmd_svspart(inspircd_cmd_svspart);
+ pmodule_cmd_swhois(inspircd_cmd_swhois);
pmodule_cmd_eob(inspircd_cmd_eob);
pmodule_flood_mode_check(inspircd_flood_mode_check);
pmodule_cmd_jupe(inspircd_cmd_jupe);
diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c
index 37d2eb653..739866608 100644
--- a/src/protocol/inspircd11.c
+++ b/src/protocol/inspircd11.c
@@ -1697,7 +1697,7 @@ void inspircd_cmd_svid_umode3(User * u, char *ts)
/* not used */
}
-void inspircd_cmd_svsjoin(char *source, char *nick, char *chan)
+void inspircd_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
send_cmd(source, "SVSJOIN %s %s", nick, chan);
}
diff --git a/src/protocol/plexus2.c b/src/protocol/plexus2.c
index 203f61a2b..91d33c78d 100644
--- a/src/protocol/plexus2.c
+++ b/src/protocol/plexus2.c
@@ -1645,7 +1645,7 @@ anope_event_pass (char *source, int ac, char **av)
}
void
-plexus_cmd_svsjoin (char *source, char *nick, char *chan)
+plexus_cmd_svsjoin (char *source, char *nick, char *chan, char *param)
{
/* Not Supported by this IRCD */
}
diff --git a/src/protocol/plexus3.c b/src/protocol/plexus3.c
index b6d81ef4e..aa5a42c99 100644
--- a/src/protocol/plexus3.c
+++ b/src/protocol/plexus3.c
@@ -1622,7 +1622,7 @@ anope_event_pass (char *source, int ac, char **av)
}
void
-plexus_cmd_svsjoin (char *source, char *nick, char *chan)
+plexus_cmd_svsjoin (char *source, char *nick, char *chan, char *param)
{
send_cmd(ServerName, "ENCAP * SVSJOIN %s %s", nick, chan);
}
diff --git a/src/protocol/ptlink.c b/src/protocol/ptlink.c
index 143600810..81b085fad 100644
--- a/src/protocol/ptlink.c
+++ b/src/protocol/ptlink.c
@@ -1549,7 +1549,7 @@ void ptlink_cmd_chg_nick(char *oldnick, char *newnick)
parv[2] = channels list
:OperServ SVSJOIN Trystan #Admin
*/
-void ptlink_cmd_svsjoin(char *source, char *nick, char *chan)
+void ptlink_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
send_cmd(source, "SVSJOIN %s %s", nick, chan);
}
diff --git a/src/protocol/rageircd.c b/src/protocol/rageircd.c
index f52811183..95d20ad9e 100644
--- a/src/protocol/rageircd.c
+++ b/src/protocol/rageircd.c
@@ -1455,7 +1455,7 @@ int anope_event_sqline(char *source, int ac, char **av)
return MOD_CONT;
}
-void rageircd_cmd_svsjoin(char *source, char *nick, char *chan)
+void rageircd_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
/* Find no reference to it in the code and docs */
}
@@ -1625,9 +1625,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(rageircd_cmd_nc_change);
pmodule_cmd_svid_umode2(rageircd_cmd_svid_umode2);
pmodule_cmd_svid_umode3(rageircd_cmd_svid_umode3);
- pmodule_cmd_svsjoin(rageircd_cmd_svsjoin);
- pmodule_cmd_svspart(rageircd_cmd_svspart);
- pmodule_cmd_swhois(rageircd_cmd_swhois);
+ pmodule_cmd_svsjoin(rageircd_cmd_svsjoin);
+ pmodule_cmd_svspart(rageircd_cmd_svspart);
+ pmodule_cmd_swhois(rageircd_cmd_swhois);
pmodule_cmd_eob(rageircd_cmd_eob);
pmodule_flood_mode_check(rageircd_flood_mode_check);
pmodule_cmd_jupe(rageircd_cmd_jupe);
diff --git a/src/protocol/ratbox.c b/src/protocol/ratbox.c
index 103f95632..4f6e6267d 100644
--- a/src/protocol/ratbox.c
+++ b/src/protocol/ratbox.c
@@ -1632,7 +1632,7 @@ int anope_event_pass(char *source, int ac, char **av)
return MOD_CONT;
}
-void ratbox_cmd_svsjoin(char *source, char *nick, char *chan)
+void ratbox_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
/* Not Supported by this IRCD */
}
@@ -1831,9 +1831,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(ratbox_cmd_nc_change);
pmodule_cmd_svid_umode2(ratbox_cmd_svid_umode2);
pmodule_cmd_svid_umode3(ratbox_cmd_svid_umode3);
- pmodule_cmd_svsjoin(ratbox_cmd_svsjoin);
- pmodule_cmd_svspart(ratbox_cmd_svspart);
- pmodule_cmd_swhois(ratbox_cmd_swhois);
+ pmodule_cmd_svsjoin(ratbox_cmd_svsjoin);
+ pmodule_cmd_svspart(ratbox_cmd_svspart);
+ pmodule_cmd_swhois(ratbox_cmd_swhois);
pmodule_cmd_eob(ratbox_cmd_eob);
pmodule_flood_mode_check(ratbox_flood_mode_check);
pmodule_cmd_jupe(ratbox_cmd_jupe);
diff --git a/src/protocol/shadowircd.c b/src/protocol/shadowircd.c
index ded8ea738..54757c98b 100644
--- a/src/protocol/shadowircd.c
+++ b/src/protocol/shadowircd.c
@@ -1584,7 +1584,7 @@ int anope_event_pass(char *source, int ac, char **av)
return MOD_CONT;
}
-void shadowircd_cmd_svsjoin(char *source, char *nick, char *chan)
+void shadowircd_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
/* Not Supported by this IRCD */
}
@@ -1782,9 +1782,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(shadowircd_cmd_nc_change);
pmodule_cmd_svid_umode2(shadowircd_cmd_svid_umode2);
pmodule_cmd_svid_umode3(shadowircd_cmd_svid_umode3);
- pmodule_cmd_svsjoin(shadowircd_cmd_svsjoin);
- pmodule_cmd_svspart(shadowircd_cmd_svspart);
- pmodule_cmd_swhois(shadowircd_cmd_swhois);
+ pmodule_cmd_svsjoin(shadowircd_cmd_svsjoin);
+ pmodule_cmd_svspart(shadowircd_cmd_svspart);
+ pmodule_cmd_swhois(shadowircd_cmd_swhois);
pmodule_cmd_eob(shadowircd_cmd_eob);
pmodule_flood_mode_check(shadowircd_flood_mode_check);
pmodule_cmd_jupe(shadowircd_cmd_jupe);
diff --git a/src/protocol/solidircd.c b/src/protocol/solidircd.c
index 3928e9d45..9d06ec99f 100644
--- a/src/protocol/solidircd.c
+++ b/src/protocol/solidircd.c
@@ -1461,7 +1461,7 @@ int anope_event_pass(char *source, int ac, char **av)
return MOD_CONT;
}
-void solidircd_cmd_svsjoin(char *source, char *nick, char *chan)
+void solidircd_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
/* Can not find any reference to these in Bahamut */
}
@@ -1658,9 +1658,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(solidircd_cmd_nc_change);
pmodule_cmd_svid_umode2(solidircd_cmd_svid_umode2);
pmodule_cmd_svid_umode3(solidircd_cmd_svid_umode3);
- pmodule_cmd_svsjoin(solidircd_cmd_svsjoin);
- pmodule_cmd_svspart(solidircd_cmd_svspart);
- pmodule_cmd_swhois(solidircd_cmd_swhois);
+ pmodule_cmd_svsjoin(solidircd_cmd_svsjoin);
+ pmodule_cmd_svspart(solidircd_cmd_svspart);
+ pmodule_cmd_swhois(solidircd_cmd_swhois);
pmodule_cmd_eob(solidircd_cmd_eob);
pmodule_flood_mode_check(solidircd_flood_mode_check);
pmodule_cmd_jupe(solidircd_cmd_jupe);
diff --git a/src/protocol/ultimate2.c b/src/protocol/ultimate2.c
index 1f9b13343..b901501e7 100644
--- a/src/protocol/ultimate2.c
+++ b/src/protocol/ultimate2.c
@@ -1492,7 +1492,7 @@ int anope_event_sqline(char *source, int ac, char **av)
** parv[1] - nick to make join
** parv[2] - channel(s) to join
*/
-void ultimate2_cmd_svsjoin(char *source, char *nick, char *chan)
+void ultimate2_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
send_cmd(source, "SVSJOIN %s %s", nick, chan);
}
@@ -1683,9 +1683,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(ultimate2_cmd_nc_change);
pmodule_cmd_svid_umode2(ultimate2_cmd_svid_umode2);
pmodule_cmd_svid_umode3(ultimate2_cmd_svid_umode3);
- pmodule_cmd_svsjoin(ultimate2_cmd_svsjoin);
- pmodule_cmd_svspart(ultimate2_cmd_svspart);
- pmodule_cmd_swhois(ultimate2_cmd_swhois);
+ pmodule_cmd_svsjoin(ultimate2_cmd_svsjoin);
+ pmodule_cmd_svspart(ultimate2_cmd_svspart);
+ pmodule_cmd_swhois(ultimate2_cmd_swhois);
pmodule_cmd_eob(ultimate2_cmd_eob);
pmodule_flood_mode_check(ultiamte2_flood_mode_check);
pmodule_cmd_jupe(ultimate2_cmd_jupe);
diff --git a/src/protocol/ultimate3.c b/src/protocol/ultimate3.c
index 2f9c59c18..a4979be69 100644
--- a/src/protocol/ultimate3.c
+++ b/src/protocol/ultimate3.c
@@ -1543,7 +1543,7 @@ int anope_event_sqline(char *source, int ac, char **av)
return MOD_CONT;
}
-void ultimate3_cmd_svsjoin(char *source, char *nick, char *chan)
+void ultimate3_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
/* Not Supported by this IRCD */
}
@@ -1766,9 +1766,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(ultimate3_cmd_nc_change);
pmodule_cmd_svid_umode2(ultimate3_cmd_svid_umode2);
pmodule_cmd_svid_umode3(ultimate3_cmd_svid_umode3);
- pmodule_cmd_svsjoin(ultimate3_cmd_svsjoin);
- pmodule_cmd_svspart(ultimate3_cmd_svspart);
- pmodule_cmd_swhois(ultimate3_cmd_swhois);
+ pmodule_cmd_svsjoin(ultimate3_cmd_svsjoin);
+ pmodule_cmd_svspart(ultimate3_cmd_svspart);
+ pmodule_cmd_swhois(ultimate3_cmd_swhois);
pmodule_cmd_eob(ultimate3_cmd_eob);
pmodule_flood_mode_check(ultiamte3_flood_mode_check);
pmodule_cmd_jupe(ultimate3_cmd_jupe);
diff --git a/src/protocol/unreal31.c b/src/protocol/unreal31.c
index 95db12201..064ddb9a8 100644
--- a/src/protocol/unreal31.c
+++ b/src/protocol/unreal31.c
@@ -1353,10 +1353,15 @@ void unreal_cmd_svid_umode3(User * u, char *ts)
parv[0] - sender
parv[1] - nick to make join
parv[2] - channel(s) to join
+ parv[3] - (optional) channel key(s)
*/
-void unreal_cmd_svsjoin(char *source, char *nick, char *chan)
+void unreal_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
- send_cmd(source, "SVSJOIN %s :%s", nick, chan);
+ if (param) {
+ send_cmd(source, "SVSJOIN %s %s :%s", nick, chan, param);
+ } else {
+ send_cmd(source, "SVSJOIN %s :%s", nick, chan);
+ }
}
/* svspart
@@ -1536,9 +1541,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(unreal_cmd_nc_change);
pmodule_cmd_svid_umode2(unreal_cmd_svid_umode2);
pmodule_cmd_svid_umode3(unreal_cmd_svid_umode3);
- pmodule_cmd_svsjoin(unreal_cmd_svsjoin);
- pmodule_cmd_svspart(unreal_cmd_svspart);
- pmodule_cmd_swhois(unreal_cmd_swhois);
+ pmodule_cmd_svsjoin(unreal_cmd_svsjoin);
+ pmodule_cmd_svspart(unreal_cmd_svspart);
+ pmodule_cmd_swhois(unreal_cmd_swhois);
pmodule_cmd_eob(unreal_cmd_eob);
pmodule_flood_mode_check(unreal_flood_mode_check);
pmodule_cmd_jupe(unreal_cmd_jupe);
diff --git a/src/protocol/unreal32.c b/src/protocol/unreal32.c
index decdd0f8a..80b1e03ce 100644
--- a/src/protocol/unreal32.c
+++ b/src/protocol/unreal32.c
@@ -1656,16 +1656,19 @@ int anope_event_smo(char *source, int ac, char **av)
/* svsjoin
parv[0] - sender
parv[1] - nick to make join
- parv[2] - channel(s) to join
+ parv[2] - channel to join
parv[3] - (optional) channel key(s)
- - current we do not support the keys part
*/
/* In older Unreal SVSJOIN and SVSNLINE tokens were mixed so SVSJOIN and SVSNLINE are broken
when coming from a none TOKEN'd server
*/
-void unreal_cmd_svsjoin(char *source, char *nick, char *chan)
+void unreal_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
- send_cmd(source, "%s %s :%s", send_token("SVSJOIN", "BX"), nick, chan);
+ if (param) {
+ send_cmd(source, "%s %s %s :%s", send_token("SVSJOIN", "BX"), nick, chan, param);
+ } else {
+ send_cmd(source, "%s %s :%s", send_token("SVSJOIN", "BX"), nick, chan);
+ }
}
/* svspart
diff --git a/src/protocol/viagra.c b/src/protocol/viagra.c
index 286fb34d1..0136e680e 100644
--- a/src/protocol/viagra.c
+++ b/src/protocol/viagra.c
@@ -1489,7 +1489,7 @@ void viagra_cmd_chg_nick(char *oldnick, char *newnick)
* parv[1] = nick to make join
* parv[2] = channel(s) to join
*/
-void viagra_cmd_svsjoin(char *source, char *nick, char *chan)
+void viagra_cmd_svsjoin(char *source, char *nick, char *chan, char *param)
{
send_cmd(source, "SVSJOIN %s :%s", nick, chan);
}
@@ -1665,9 +1665,9 @@ void moduleAddAnopeCmds()
pmodule_cmd_nc_change(viagra_cmd_nc_change);
pmodule_cmd_svid_umode2(viagra_cmd_svid_umode2);
pmodule_cmd_svid_umode3(viagra_cmd_svid_umode3);
- pmodule_cmd_svsjoin(viagra_cmd_svsjoin);
- pmodule_cmd_svspart(viagra_cmd_svspart);
- pmodule_cmd_swhois(viagra_cmd_swhois);
+ pmodule_cmd_svsjoin(viagra_cmd_svsjoin);
+ pmodule_cmd_svspart(viagra_cmd_svspart);
+ pmodule_cmd_swhois(viagra_cmd_swhois);
pmodule_cmd_eob(viagra_cmd_eob);
pmodule_flood_mode_check(viagra_flood_mode_check);
pmodule_cmd_jupe(viagra_cmd_jupe);
diff --git a/version.log b/version.log
index 077e5c7f2..d2c59319d 100644
--- a/version.log
+++ b/version.log
@@ -9,10 +9,14 @@ VERSION_MAJOR="1"
VERSION_MINOR="7"
VERSION_PATCH="19"
VERSION_EXTRA="-svn"
-VERSION_BUILD="1290"
+VERSION_BUILD="1291"
# $Log$
#
+# BUILD : 1.7.19 (1291)
+# BUGS : 774
+# NOTES : Unreals (3.2) SVSJOIN command now supports channel keys
+#
# BUILD : 1.7.19 (1290)
# BUGS : 723
# NOTES : Anope now can except users from Session limit based on their IP.