mirror of
https://github.com/anope/anope.git
synced 2026-07-02 13:13:13 +02:00
BUILD : 1.7.3 (120) BUGS : 50 NOTES : Reserved nicks (Q-lined) will be KILLed if taken on induction.
git-svn-id: svn://svn.anope.org/anope/trunk@120 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@94 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
parent
433f281f5e
commit
09ca64b889
@@ -6,6 +6,7 @@ Provided by Anope Dev. <dev@anope.org> - 2004
|
||||
05/21 F Removed threads.c file. [ #64]
|
||||
05/21 F Check for VHOST capable ircd on HostServAlias induction. [ #56]
|
||||
05/21 F Allow /CS SUSPEND on registered channels only. [ #54]
|
||||
05/21 F Reserved nicks (Q-lined) will be KILLed if taken on induction. [ #50]
|
||||
|
||||
Anope Version 1.7.3
|
||||
-------------------
|
||||
|
||||
@@ -1280,7 +1280,6 @@ static int do_bot(User * u)
|
||||
else if (findbot(nick))
|
||||
notice_lang(s_BotServ, u, BOT_BOT_ALREADY_EXISTS, nick);
|
||||
else {
|
||||
User *u2;
|
||||
NickAlias *na;
|
||||
|
||||
/**
|
||||
@@ -1379,9 +1378,7 @@ static int do_bot(User * u)
|
||||
bi->chancount = 0;
|
||||
|
||||
/* We check whether user with this nick is online, and kill it if so */
|
||||
if ((u2 = finduser(nick)))
|
||||
kill_user(s_BotServ, u2->nick,
|
||||
"This nick is now used by Services");
|
||||
EnforceQlinedNick(nick, s_BotServ);
|
||||
|
||||
/* We make the bot online, ready to serve */
|
||||
#if defined(IRC_UNREAL) || defined (IRC_VIAGRA)
|
||||
@@ -1411,7 +1408,6 @@ static int do_bot(User * u)
|
||||
else if (!(bi = findbot(oldnick)))
|
||||
notice_lang(s_BotServ, u, BOT_DOES_NOT_EXIST, oldnick);
|
||||
else {
|
||||
User *u2;
|
||||
NickAlias *na;
|
||||
|
||||
/* Checks whether there *are* changes.
|
||||
@@ -1511,9 +1507,7 @@ static int do_bot(User * u)
|
||||
delnick(na);
|
||||
|
||||
/* We check whether user with this nick is online, and kill it if so */
|
||||
if ((u2 = finduser(nick)))
|
||||
kill_user(s_BotServ, u2->nick,
|
||||
"This nick is now used by Services");
|
||||
EnforceQlinedNick(nick, s_BotServ);
|
||||
}
|
||||
|
||||
if (strcmp(nick, bi->nick))
|
||||
|
||||
@@ -609,6 +609,8 @@ E char *myStrSubString(const char *src, int start, int end);
|
||||
E char *myStrGetTokenRemainder(const char *str, const char dilim,
|
||||
int token_number);
|
||||
E void doCleanBuffer(char *str);
|
||||
E void EnforceQlinedNick(char *nick, char *killer);
|
||||
|
||||
|
||||
/**** news.c ****/
|
||||
|
||||
|
||||
@@ -76,6 +76,7 @@ extern void moduleAddMsgs(void);
|
||||
|
||||
void introduce_user(const char *user)
|
||||
{
|
||||
|
||||
/* Watch out for infinite loops... */
|
||||
#define LTSIZE 20
|
||||
static int lasttimes[LTSIZE];
|
||||
@@ -85,7 +86,8 @@ void introduce_user(const char *user)
|
||||
lasttimes[LTSIZE - 1] = time(NULL);
|
||||
#undef LTSIZE
|
||||
|
||||
if (!user || stricmp(user, s_NickServ) == 0)
|
||||
if (!user || stricmp(user, s_NickServ) == 0) {
|
||||
EnforceQlinedNick(s_NickServ, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3)
|
||||
NICK(s_NickServ, desc_NickServ, "+S");
|
||||
#elif defined(IRC_RAGE2)
|
||||
@@ -95,7 +97,10 @@ void introduce_user(const char *user)
|
||||
#else
|
||||
NICK(s_NickServ, desc_NickServ, "+o");
|
||||
#endif
|
||||
if (!user || stricmp(user, s_ChanServ) == 0)
|
||||
}
|
||||
|
||||
if (!user || stricmp(user, s_ChanServ) == 0) {
|
||||
EnforceQlinedNick(s_ChanServ, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3)
|
||||
NICK(s_ChanServ, desc_ChanServ, "+S");
|
||||
#elif defined(IRC_RAGE2)
|
||||
@@ -105,9 +110,10 @@ void introduce_user(const char *user)
|
||||
#else
|
||||
NICK(s_ChanServ, desc_ChanServ, "+o");
|
||||
#endif
|
||||
|
||||
}
|
||||
#ifdef HAS_VHOST
|
||||
if (s_HostServ && (!user || stricmp(user, s_HostServ) == 0))
|
||||
if (s_HostServ && (!user || stricmp(user, s_HostServ) == 0)) {
|
||||
EnforceQlinedNick(s_HostServ, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA)
|
||||
NICK(s_HostServ, desc_HostServ, "+oS");
|
||||
#elif defined(IRC_RAGE2)
|
||||
@@ -115,9 +121,11 @@ void introduce_user(const char *user)
|
||||
#else
|
||||
NICK(s_HostServ, desc_HostServ, "+o");
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!user || stricmp(user, s_MemoServ) == 0)
|
||||
if (!user || stricmp(user, s_MemoServ) == 0) {
|
||||
EnforceQlinedNick(s_MemoServ, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3)
|
||||
NICK(s_MemoServ, desc_MemoServ, "+S");
|
||||
#elif defined(IRC_RAGE2)
|
||||
@@ -127,7 +135,10 @@ void introduce_user(const char *user)
|
||||
#else
|
||||
NICK(s_MemoServ, desc_MemoServ, "+o");
|
||||
#endif
|
||||
if (s_BotServ && (!user || stricmp(user, s_BotServ) == 0))
|
||||
}
|
||||
|
||||
if (s_BotServ && (!user || stricmp(user, s_BotServ) == 0)) {
|
||||
EnforceQlinedNick(s_BotServ, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3)
|
||||
NICK(s_BotServ, desc_BotServ, "+S");
|
||||
#elif defined(IRC_RAGE2)
|
||||
@@ -137,7 +148,10 @@ void introduce_user(const char *user)
|
||||
#else
|
||||
NICK(s_BotServ, desc_BotServ, "+o");
|
||||
#endif
|
||||
if (!user || stricmp(user, s_HelpServ) == 0)
|
||||
}
|
||||
|
||||
if (!user || stricmp(user, s_HelpServ) == 0) {
|
||||
EnforceQlinedNick(s_HelpServ, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3)
|
||||
NICK(s_HelpServ, desc_HelpServ, "+Sh");
|
||||
#elif defined(IRC_RAGE2)
|
||||
@@ -147,7 +161,10 @@ void introduce_user(const char *user)
|
||||
#else
|
||||
NICK(s_HelpServ, desc_HelpServ, "+h");
|
||||
#endif
|
||||
if (!user || stricmp(user, s_OperServ) == 0)
|
||||
}
|
||||
|
||||
if (!user || stricmp(user, s_OperServ) == 0) {
|
||||
EnforceQlinedNick(s_OperServ, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3)
|
||||
NICK(s_OperServ, desc_OperServ, "+iS");
|
||||
#elif defined(IRC_RAGE2)
|
||||
@@ -157,7 +174,10 @@ void introduce_user(const char *user)
|
||||
#else
|
||||
NICK(s_OperServ, desc_OperServ, "+io");
|
||||
#endif
|
||||
if (s_DevNull && (!user || stricmp(user, s_DevNull) == 0))
|
||||
}
|
||||
|
||||
if (s_DevNull && (!user || stricmp(user, s_DevNull) == 0)) {
|
||||
EnforceQlinedNick(s_DevNull, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_ULTIMATE3)
|
||||
NICK(s_DevNull, desc_DevNull, "+iS");
|
||||
#elif defined(IRC_RAGE2)
|
||||
@@ -165,7 +185,10 @@ void introduce_user(const char *user)
|
||||
#else
|
||||
NICK(s_DevNull, desc_DevNull, "+i");
|
||||
#endif
|
||||
if (!user || stricmp(user, s_GlobalNoticer) == 0)
|
||||
}
|
||||
|
||||
if (!user || stricmp(user, s_GlobalNoticer) == 0) {
|
||||
EnforceQlinedNick(s_GlobalNoticer, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_ULTIMATE3)
|
||||
NICK(s_GlobalNoticer, desc_GlobalNoticer, "+iS");
|
||||
#elif defined(IRC_RAGE2)
|
||||
@@ -175,67 +198,91 @@ void introduce_user(const char *user)
|
||||
#else
|
||||
NICK(s_GlobalNoticer, desc_GlobalNoticer, "+io");
|
||||
#endif
|
||||
}
|
||||
|
||||
/* We make aliases go online */
|
||||
if (s_NickServAlias && (!user || stricmp(user, s_NickServAlias) == 0))
|
||||
/* We make aliases go online */
|
||||
if (s_NickServAlias && (!user || stricmp(user, s_NickServAlias) == 0)) {
|
||||
EnforceQlinedNick(s_NickServAlias, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA)
|
||||
NICK(s_NickServAlias, desc_NickServAlias, "+oS");
|
||||
#else
|
||||
NICK(s_NickServAlias, desc_NickServAlias, "+o");
|
||||
#endif
|
||||
if (s_ChanServAlias && (!user || stricmp(user, s_ChanServAlias) == 0))
|
||||
}
|
||||
|
||||
if (s_ChanServAlias && (!user || stricmp(user, s_ChanServAlias) == 0)) {
|
||||
EnforceQlinedNick(s_ChanServAlias, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA)
|
||||
NICK(s_ChanServAlias, desc_ChanServAlias, "+oS");
|
||||
#else
|
||||
NICK(s_ChanServAlias, desc_ChanServAlias, "+o");
|
||||
#endif
|
||||
if (s_MemoServAlias && (!user || stricmp(user, s_MemoServAlias) == 0))
|
||||
}
|
||||
|
||||
if (s_MemoServAlias && (!user || stricmp(user, s_MemoServAlias) == 0)) {
|
||||
EnforceQlinedNick(s_MemoServAlias, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA)
|
||||
NICK(s_MemoServAlias, desc_MemoServAlias, "+oS");
|
||||
#else
|
||||
NICK(s_MemoServAlias, desc_MemoServAlias, "+o");
|
||||
#endif
|
||||
if (s_BotServAlias && (!user || stricmp(user, s_BotServAlias) == 0))
|
||||
}
|
||||
|
||||
if (s_BotServAlias && (!user || stricmp(user, s_BotServAlias) == 0)) {
|
||||
EnforceQlinedNick(s_BotServAlias, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA)
|
||||
NICK(s_BotServAlias, desc_BotServAlias, "+oS");
|
||||
#else
|
||||
NICK(s_BotServAlias, desc_BotServAlias, "+o");
|
||||
#endif
|
||||
if (s_HelpServAlias && (!user || stricmp(user, s_HelpServAlias) == 0))
|
||||
}
|
||||
|
||||
if (s_HelpServAlias && (!user || stricmp(user, s_HelpServAlias) == 0)) {
|
||||
EnforceQlinedNick(s_HelpServAlias, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA)
|
||||
NICK(s_HelpServAlias, desc_HelpServAlias, "+oS");
|
||||
#else
|
||||
NICK(s_HelpServAlias, desc_HelpServAlias, "+h");
|
||||
#endif
|
||||
if (s_OperServAlias && (!user || stricmp(user, s_OperServAlias) == 0))
|
||||
}
|
||||
|
||||
if (s_OperServAlias && (!user || stricmp(user, s_OperServAlias) == 0)) {
|
||||
EnforceQlinedNick(s_OperServAlias, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA)
|
||||
NICK(s_OperServAlias, desc_OperServAlias, "+ioS");
|
||||
#else
|
||||
NICK(s_OperServAlias, desc_OperServAlias, "+io");
|
||||
#endif
|
||||
if (s_DevNullAlias && (!user || stricmp(user, s_DevNullAlias) == 0))
|
||||
}
|
||||
|
||||
if (s_DevNullAlias && (!user || stricmp(user, s_DevNullAlias) == 0)) {
|
||||
EnforceQlinedNick(s_DevNullAlias, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA)
|
||||
NICK(s_DevNullAlias, desc_DevNullAlias, "+iS");
|
||||
#else
|
||||
NICK(s_DevNullAlias, desc_DevNullAlias, "+i");
|
||||
#endif
|
||||
|
||||
}
|
||||
#ifdef HAS_VHOST
|
||||
if (s_HostServAlias && (!user || stricmp(user, s_HostServAlias) == 0))
|
||||
if (s_HostServAlias && (!user || stricmp(user, s_HostServAlias) == 0)) {
|
||||
EnforceQlinedNick(s_HostServAlias, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL) || defined(IRC_VIAGRA)
|
||||
NICK(s_HostServAlias, desc_HostServAlias, "+ioS");
|
||||
#else
|
||||
NICK(s_HostServAlias, desc_HostServAlias, "+io");
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
if (s_GlobalNoticerAlias
|
||||
&& (!user || stricmp(user, s_GlobalNoticerAlias) == 0))
|
||||
&& (!user || stricmp(user, s_GlobalNoticerAlias) == 0)) {
|
||||
EnforceQlinedNick(s_GlobalNoticerAlias, NULL);
|
||||
#if defined(IRC_ULTIMATE) || defined(IRC_UNREAL)
|
||||
NICK(s_GlobalNoticerAlias, desc_GlobalNoticerAlias, "+ioS");
|
||||
#else
|
||||
NICK(s_GlobalNoticerAlias, desc_GlobalNoticerAlias, "+io");
|
||||
#endif
|
||||
}
|
||||
|
||||
/* We make the bots go online */
|
||||
if (s_BotServ) {
|
||||
@@ -243,7 +290,10 @@ void introduce_user(const char *user)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 256; i++)
|
||||
for (bi = botlists[i]; bi; bi = bi->next)
|
||||
for (bi = botlists[i]; bi; bi = bi->next) {
|
||||
|
||||
EnforceQlinedNick(bi->nick, s_BotServ);
|
||||
|
||||
if (!user || !stricmp(user, bi->nick))
|
||||
#if defined(IRC_UNREAL) || defined(IRC_VIAGRA)
|
||||
NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+qS",
|
||||
@@ -258,6 +308,7 @@ void introduce_user(const char *user)
|
||||
NEWNICK(bi->nick, bi->user, bi->host, bi->real, "+",
|
||||
1);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -640,3 +640,16 @@ void doCleanBuffer(char *str)
|
||||
}
|
||||
*out = ch; // == '\0'
|
||||
}
|
||||
|
||||
void EnforceQlinedNick(char *nick, char *killer)
|
||||
{
|
||||
User *u2;
|
||||
|
||||
if ((u2 = finduser(nick))) {
|
||||
alog("Killed Q-lined nick: %s!%s@%s", u2->nick, u2->username,
|
||||
u2->host);
|
||||
kill_user(killer, u2->nick,
|
||||
"This nick is reserved for Services. Please use a non Q-Lined nick.");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
-1
@@ -8,10 +8,14 @@
|
||||
VERSION_MAJOR="1"
|
||||
VERSION_MINOR="7"
|
||||
VERSION_PATCH="3"
|
||||
VERSION_BUILD="119"
|
||||
VERSION_BUILD="120"
|
||||
|
||||
# $Log$
|
||||
#
|
||||
# BUILD : 1.7.3 (120)
|
||||
# BUGS : 50
|
||||
# NOTES : Reserved nicks (Q-lined) will be KILLed if taken on induction.
|
||||
#
|
||||
# BUILD : 1.7.3 (119)
|
||||
# BUGS : 54
|
||||
# NOTES : Allow /CS SUSPEND on registered non-forbidden channels only
|
||||
|
||||
Reference in New Issue
Block a user