summaryrefslogtreecommitdiff
path: root/messages.c
diff options
context:
space:
mode:
authordane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-06-18 16:38:43 +0000
committerdane dane@31f1291d-b8d6-0310-a050-a5561fc1590b <dane dane@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2004-06-18 16:38:43 +0000
commit1d1c478e4ff9c484be01ad0d55d5f3c0a91b2561 (patch)
treee2d601a6ee6a167671da595b22be602aaaa6c4a1 /messages.c
parentbb020753879abb7ede7c0343f528027a2b99ebb2 (diff)
BUILD : 1.7.4 (206) BUGS : 55 NOTES : Added proper Bahamut1.8 support. Merged r132:195 from branch branches/proto/anope-bahamut18 which should now be obsolete.
git-svn-id: svn://svn.anope.org/anope/trunk@206 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@148 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'messages.c')
-rw-r--r--messages.c39
1 files changed, 37 insertions, 2 deletions
diff --git a/messages.c b/messages.c
index 571bf6286..12804e036 100644
--- a/messages.c
+++ b/messages.c
@@ -58,6 +58,28 @@ static int m_away(char *source, int ac, char **av)
#ifdef IRC_BAHAMUT
+static int m_capab(char *source, int ac, char **av)
+{
+ int i;
+
+ for (i = 0; i < ac; i++) {
+ if (!stricmp(av[i], "NOQUIT"))
+ uplink_capab |= CAPAB_NOQUIT;
+ else if (!stricmp(av[i], "TSMODE"))
+ uplink_capab |= CAPAB_TSMODE;
+ else if (!stricmp(av[i], "UNCONNECT"))
+ uplink_capab |= CAPAB_UNCONNECT;
+ }
+
+ return MOD_CONT;
+}
+
+#endif
+
+/*************************************************************************/
+
+#ifdef IRC_BAHAMUT
+
static int m_cs(char *source, int ac, char **av)
{
User *u;
@@ -675,10 +697,23 @@ static int m_quit(char *source, int ac, char **av)
/*************************************************************************/
+static int m_squit(char *source, int ac, char **av)
+{
+ if (ac != 2)
+ return MOD_CONT;
+ do_squit(source, ac, av);
+ return MOD_CONT;
+}
+
+/*************************************************************************/
+
static int m_server(char *source, int ac, char **av)
{
if (!stricmp(av[1], "1"))
uplink = sstrdup(av[0]);
+ if (ac != 3)
+ return MOD_CONT;
+ do_server(source, ac, av);
return MOD_CONT;
}
@@ -1126,7 +1161,7 @@ void moduleAddMsgs(void) {
m = createMessage("PRIVMSG", m_privmsg); addCoreMessage(IRCD,m);
m = createMessage("QUIT", m_quit); addCoreMessage(IRCD,m);
m = createMessage("SERVER", m_server); addCoreMessage(IRCD,m);
- m = createMessage("SQUIT", NULL); addCoreMessage(IRCD,m);
+ m = createMessage("SQUIT", m_squit); addCoreMessage(IRCD,m);
m = createMessage("STATS", m_stats); addCoreMessage(IRCD,m);
m = createMessage("TIME", m_time); addCoreMessage(IRCD,m);
m = createMessage("TOPIC", m_topic); addCoreMessage(IRCD,m);
@@ -1156,7 +1191,7 @@ void moduleAddMsgs(void) {
/* Bahamut specific messages */
#ifdef IRC_BAHAMUT
- m = createMessage("CAPAB", NULL); addCoreMessage(IRCD,m);
+ m = createMessage("CAPAB", m_capab); addCoreMessage(IRCD,m);
m = createMessage("CS", m_cs); addCoreMessage(IRCD,m);
m = createMessage("HS", m_hs); addCoreMessage(IRCD,m);
m = createMessage("MS", m_ms); addCoreMessage(IRCD,m);