summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bahamut.c63
-rw-r--r--src/dreamforge.c3
-rw-r--r--src/hybrid.c3
-rw-r--r--src/misc.c8
-rw-r--r--src/nickserv.c3
-rw-r--r--src/plexus.c3
-rw-r--r--src/ptlink.c3
-rw-r--r--src/rageircd.c3
-rw-r--r--src/ratbox.c13
-rw-r--r--src/servers.c8
-rw-r--r--src/solidircd.c3
-rw-r--r--src/ultimate2.c4
-rw-r--r--src/ultimate3.c3
-rw-r--r--src/unreal31.c4
-rw-r--r--src/unreal32.c63
-rw-r--r--src/viagra.c3
16 files changed, 124 insertions, 66 deletions
diff --git a/src/bahamut.c b/src/bahamut.c
index 36bd28f6d..c28170d11 100644
--- a/src/bahamut.c
+++ b/src/bahamut.c
@@ -109,6 +109,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
1, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
}
,
{NULL}
@@ -144,7 +145,7 @@ IRCDCAPAB ircdcap[] = {
0, /* TLKEXT */
0, /* DODKEY */
CAPAB_DOZIP, /* DOZIP */
- 0, 0}
+ 0, 0, 0}
};
@@ -290,32 +291,52 @@ char csmodes[128] = {
CMMode cmmodes[128] = {
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL},
- {NULL},
- {add_ban, del_ban},
- {NULL},
- {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL}, /* BCD */
+ {NULL}, {NULL}, {NULL}, /* EFG */
+ {NULL}, /* H */
+ {add_invite, del_invite}, /* I */
+ {NULL}, /* J */
+ {NULL}, {NULL}, {NULL}, /* KLM */
+ {NULL}, {NULL}, {NULL}, /* NOP */
+ {NULL}, {NULL}, {NULL}, /* QRS */
+ {NULL}, {NULL}, {NULL}, /* TUV */
+ {NULL}, {NULL}, {NULL}, /* WXY */
+ {NULL}, /* Z */
+ {NULL}, {NULL}, /* (char 91 - 92) */
+ {NULL}, {NULL}, {NULL}, /* (char 93 - 95) */
+ {NULL}, /* ` (char 96) */
+ {NULL}, /* a (char 97) */
+ {add_ban, del_ban}, /* b */
+ {NULL}, {NULL}, /* cd */
{add_exception, del_exception},
- {NULL},
- {NULL},
+ {NULL}, {NULL},
{NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
{NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
{NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}
};
-
CBMode cbmodes[128] = {
{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
diff --git a/src/dreamforge.c b/src/dreamforge.c
index 8d90704ec..bceb88156 100644
--- a/src/dreamforge.c
+++ b/src/dreamforge.c
@@ -107,6 +107,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
1, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
}
,
{NULL}
@@ -142,7 +143,7 @@ IRCDCAPAB ircdcap[] = {
0, /* TLKEXT */
0, /* DODKEY */
0, /* DOZIP */
- 0, 0}
+ 0, 0, 0}
};
void anope_set_umode(User * user, int ac, char **av)
diff --git a/src/hybrid.c b/src/hybrid.c
index 8ab40ce4a..6a9e89921 100644
--- a/src/hybrid.c
+++ b/src/hybrid.c
@@ -107,6 +107,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
0, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
}
,
{NULL}
@@ -142,7 +143,7 @@ IRCDCAPAB ircdcap[] = {
0, /* TLKEXT */
0, /* DODKEY */
0, /* DOZIP */
- 0, 0}
+ 0, 0, 0}
};
diff --git a/src/misc.c b/src/misc.c
index 97b1af506..5e5038252 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -811,15 +811,17 @@ void EnforceQlinedNick(char *nick, char *killer)
* @param int Check if botserv bots
* @return int
*/
-int nickIsServices(char *nick, int bot)
+int nickIsServices(char *tempnick, int bot)
{
int found = 0;
- char *s;
+ char *s, *nick;
- if (!nick) {
+ if (!tempnick) {
return found;
}
+ nick = sstrdup(tempnick);
+
s = strchr(nick, '@');
if (s) {
*s++ = 0;
diff --git a/src/nickserv.c b/src/nickserv.c
index f43ed30bf..7ee63469e 100644
--- a/src/nickserv.c
+++ b/src/nickserv.c
@@ -2472,6 +2472,7 @@ static int do_group(User * u)
rdb_close();
}
#endif
+ send_event(EVENT_GROUP, u->nick);
alog("%s: %s!%s@%s makes %s join group of %s (%s) (e-mail: %s)", s_NickServ, u->nick, u->username, common_get_vhost(u), u->nick, target->nick, target->nc->display, (target->nc->email ? target->nc->email : "none"));
notice_lang(s_NickServ, u, NICK_GROUP_JOINED, target->nick);
@@ -2576,7 +2577,7 @@ static int do_identify(User * u)
common_svsmode(u, ircd->modeonreg, "");
}
}
-
+ send_event(EVENT_NICK_IDENTIFY, u->nick);
alog("%s: %s!%s@%s identified for nick %s", s_NickServ, u->nick,
u->username, common_get_vhost(u), u->nick);
notice_lang(s_NickServ, u, NICK_IDENTIFY_SUCCEEDED);
diff --git a/src/plexus.c b/src/plexus.c
index 21e89b502..e3217316c 100644
--- a/src/plexus.c
+++ b/src/plexus.c
@@ -107,6 +107,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
0, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
}
,
{NULL}
@@ -142,7 +143,7 @@ IRCDCAPAB ircdcap[] = {
0, /* TLKEXT */
0, /* DODKEY */
0, /* DOZIP */
- 0, 0}
+ 0, 0, 0}
};
diff --git a/src/ptlink.c b/src/ptlink.c
index 56704ffd7..228f48c0d 100644
--- a/src/ptlink.c
+++ b/src/ptlink.c
@@ -107,6 +107,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
1, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
}
,
{NULL}
@@ -142,7 +143,7 @@ IRCDCAPAB ircdcap[] = {
0, /* TLKEXT */
0, /* DODKEY */
0, /* DOZIP */
- 0, 0}
+ 0, 0, 0}
};
diff --git a/src/rageircd.c b/src/rageircd.c
index 6521e5934..050ff4e76 100644
--- a/src/rageircd.c
+++ b/src/rageircd.c
@@ -108,6 +108,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
1, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
},
{NULL}
};
@@ -142,7 +143,7 @@ IRCDCAPAB ircdcap[] = {
0, /* TLKEXT */
0, /* DODKEY */
0, /* DOZIP */
- 0, 0}
+ 0, 0, 0}
};
diff --git a/src/ratbox.c b/src/ratbox.c
index 45046d654..bb1ce1e60 100644
--- a/src/ratbox.c
+++ b/src/ratbox.c
@@ -109,6 +109,7 @@ IRCDVar ircd[] = {
1, /* ts6 */
0, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
}
,
{NULL}
@@ -144,12 +145,9 @@ IRCDCAPAB ircdcap[] = {
0, /* TLKEXT */
0, /* DODKEY */
0, /* DOZIP */
- 0, 0}
+ 0, 0, 0}
};
-static User *current;
-static int next_index;
-
void anope_set_umode(User * user, int ac, char **av)
{
int add = 1; /* 1 if adding modes, 0 if deleting */
@@ -628,8 +626,8 @@ int anope_event_nick(char *source, int ac, char **av)
do_nick(source, av[0], NULL, NULL, NULL, NULL,
strtoul(av[1], NULL, 10), 0, 0, NULL, NULL);
}
- return MOD_CONT;
}
+ return MOD_CONT;
}
int anope_event_topic(char *source, int ac, char **av)
@@ -1046,7 +1044,7 @@ int anope_event_ping(char *source, int ac, char **av)
int anope_event_away(char *source, int ac, char **av)
{
- User *u;
+ User *u = NULL;
if (ac) {
return MOD_CONT;
@@ -1056,7 +1054,7 @@ int anope_event_away(char *source, int ac, char **av)
u = find_byuid(source);
}
- m_away((UseTS6 ? u->nick : source), av[0]);
+ m_away((UseTS6 ? (u ? u->nick : source) : source), av[0]);
return MOD_CONT;
}
@@ -1444,7 +1442,6 @@ void anope_cmd_tmode(char *source, char *dest, const char *fmt, ...)
{
va_list args;
char buf[BUFSIZE];
- Uid *ud;
*buf = '\0';
if (fmt) {
diff --git a/src/servers.c b/src/servers.c
index 49e230fc3..bc2836d5b 100644
--- a/src/servers.c
+++ b/src/servers.c
@@ -330,6 +330,7 @@ void do_server(const char *source, char *servername, char *hops,
s = findserver(servlist, source);
new_server(s, servername, descript, 0, numeric);
+ send_event(EVENT_SERVER_CONNECT, servername);
}
/*************************************************************************/
@@ -358,6 +359,7 @@ void do_squit(const char *source, int ac, char **av)
alog("SQUIT for nonexistent server (%s)!!", av[0]);
return;
}
+ send_event(EVENT_SERVER_SQUIT, s->name);
snprintf(buf, sizeof(buf), "%s %s", s->name,
(s->uplink ? s->uplink->name : ""));
@@ -483,6 +485,12 @@ void capab_parse(int ac, char **av)
ircd->chanmodes = sstrdup(tmp);
}
}
+ if (!stricmp(s, "NICKCHARS")) {
+ uplink_capab |= CAPAB_NICKCHARS;
+ if (tmp) {
+ ircd->nickchars = sstrdup(tmp);
+ }
+ }
if (s) {
free(s);
}
diff --git a/src/solidircd.c b/src/solidircd.c
index ea577a0fa..e8489abe4 100644
--- a/src/solidircd.c
+++ b/src/solidircd.c
@@ -109,6 +109,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
1, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
}
,
{NULL}
@@ -144,7 +145,7 @@ IRCDCAPAB ircdcap[] = {
0, /* TLKEXT */
0, /* DODKEY */
CAPAB_DOZIP, /* DOZIP */
- 0, 0}
+ 0, 0, 0}
};
diff --git a/src/ultimate2.c b/src/ultimate2.c
index d52ead4ef..03b81eeed 100644
--- a/src/ultimate2.c
+++ b/src/ultimate2.c
@@ -107,6 +107,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
1, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
}
,
{NULL}
@@ -144,8 +145,7 @@ IRCDCAPAB ircdcap[] = {
0, /* DODKEY */
0, /* DOZIP */
CAPAB_CHANMODE, /* CHANMODE */
- 0,
- }
+ 0, 0}
};
void anope_set_umode(User * user, int ac, char **av)
diff --git a/src/ultimate3.c b/src/ultimate3.c
index 34d9861c2..ad965bbd8 100644
--- a/src/ultimate3.c
+++ b/src/ultimate3.c
@@ -109,6 +109,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
1, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
},
{NULL}
};
@@ -143,7 +144,7 @@ IRCDCAPAB ircdcap[] = {
0, /* TLKEXT */
CAPAB_DODKEY, /* DODKEY */
CAPAB_DOZIP, /* DOZIP */
- 0, 0}
+ 0, 0, 0}
};
void anope_set_umode(User * user, int ac, char **av)
diff --git a/src/unreal31.c b/src/unreal31.c
index 4be075fd2..6326b274b 100644
--- a/src/unreal31.c
+++ b/src/unreal31.c
@@ -110,6 +110,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
1, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
},
{NULL}
};
@@ -146,8 +147,7 @@ IRCDCAPAB ircdcap[] = {
0, /* DODKEY */
0, /* DOZIP */
0,
- 0,
- }
+ 0, 0}
};
unsigned long umodes[128] = {
diff --git a/src/unreal32.c b/src/unreal32.c
index 2e8123f9a..c612673e3 100644
--- a/src/unreal32.c
+++ b/src/unreal32.c
@@ -109,6 +109,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
1, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
},
{NULL}
};
@@ -145,6 +146,7 @@ IRCDCAPAB ircdcap[] = {
0, /* DOZIP */
CAPAB_CHANMODE, /* CHANMODE */
CAPAB_SJB64,
+ CAPAB_NICKCHARS,
}
};
@@ -223,33 +225,52 @@ char csmodes[128] = {
};
CMMode cmmodes[128] = {
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
- {NULL},
- {NULL},
- {add_ban, del_ban},
- {NULL},
- {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL},
+ {NULL}, {NULL}, {NULL}, /* BCD */
+ {NULL}, {NULL}, {NULL}, /* EFG */
+ {NULL}, /* H */
+ {add_invite, del_invite}, /* I */
+ {NULL}, /* J */
+ {NULL}, {NULL}, {NULL}, /* KLM */
+ {NULL}, {NULL}, {NULL}, /* NOP */
+ {NULL}, {NULL}, {NULL}, /* QRS */
+ {NULL}, {NULL}, {NULL}, /* TUV */
+ {NULL}, {NULL}, {NULL}, /* WXY */
+ {NULL}, /* Z */
+ {NULL}, {NULL}, /* (char 91 - 92) */
+ {NULL}, {NULL}, {NULL}, /* (char 93 - 95) */
+ {NULL}, /* ` (char 96) */
+ {NULL}, /* a (char 97) */
+ {add_ban, del_ban}, /* b */
+ {NULL}, {NULL}, /* cd */
{add_exception, del_exception},
- {NULL},
- {NULL},
+ {NULL}, {NULL},
{NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
{NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL},
{NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}, {NULL}
};
-
-
CBMode cbmodes[128] = {
{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0},
diff --git a/src/viagra.c b/src/viagra.c
index 1cb883789..b94ad6aee 100644
--- a/src/viagra.c
+++ b/src/viagra.c
@@ -108,6 +108,7 @@ IRCDVar ircd[] = {
0, /* ts6 */
1, /* support helper umode */
0, /* p10 */
+ NULL, /* character set */
}
,
{NULL}
@@ -144,7 +145,7 @@ IRCDCAPAB ircdcap[] = {
0, /* TLKEXT */
CAPAB_DODKEY, /* DODKEY */
CAPAB_DOZIP, /* DOZIP */
- 0, 0}
+ 0, 0, 0}
};