summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorViper <Viper@Anope.org>2010-09-10 16:32:23 +0200
committerViper <Viper@Anope.org>2010-09-10 16:32:23 +0200
commitac338266f40fb9769f68879db2c18ff33f45d281 (patch)
tree9680ae99c6bdabbbbb2dc4d5f2cb8238f8e911d0 /src
parent7385580ffa43dfb810a2e3269711d37eaa81f80b (diff)
Fixed InspIRCd 1.1,1.2 and 2.0 protocol modules to oper pseudo-clients only when needed.
Diffstat (limited to 'src')
-rw-r--r--src/protocol/inspircd11.c38
-rw-r--r--src/protocol/inspircd12.c18
-rw-r--r--src/protocol/inspircd20.c44
3 files changed, 53 insertions, 47 deletions
diff --git a/src/protocol/inspircd11.c b/src/protocol/inspircd11.c
index 6a28f9fda..d9dfb3875 100644
--- a/src/protocol/inspircd11.c
+++ b/src/protocol/inspircd11.c
@@ -37,25 +37,25 @@ int inet_aton(const char *name, struct in_addr *addr)
IRCDVar myIrcd[] = {
{"InspIRCd 1.1", /* ircd name */
- "+oI", /* nickserv mode */
- "+oI", /* chanserv mode */
- "+oI", /* memoserv mode */
- "+oI", /* hostserv mode */
+ "+I", /* nickserv mode */
+ "+I", /* chanserv mode */
+ "+I", /* memoserv mode */
+ "+I", /* hostserv mode */
"+ioI", /* operserv mode */
- "+oI", /* botserv mode */
- "+oI", /* helpserv mode */
+ "+I", /* botserv mode */
+ "+I", /* helpserv mode */
"+iI", /* Dev/Null mode */
- "+ioI", /* Global mode */
- "+oI", /* nickserv alias mode */
- "+oI", /* chanserv alias mode */
- "+oI", /* memoserv alias mode */
- "+ioI", /* hostserv alias mode */
+ "+iI", /* Global mode */
+ "+I", /* nickserv alias mode */
+ "+I", /* chanserv alias mode */
+ "+I", /* memoserv alias mode */
+ "+I", /* hostserv alias mode */
"+ioI", /* operserv alias mode */
- "+oI", /* botserv alias mode */
- "+oI", /* helpserv alias mode */
+ "+I", /* botserv alias mode */
+ "+I", /* helpserv alias mode */
"+iI", /* Dev/Null alias mode */
- "+ioI", /* Global alias mode */
- "+sI", /* Used by BotServ Bots */
+ "+iI", /* Global alias mode */
+ "+I", /* Used by BotServ Bots */
5, /* Chan Max Symbols */
"-cijlmnpstuzACGHKNOQRSV", /* Modes to Remove */
"+ao", /* Channel Umode used by Botserv bots */
@@ -616,8 +616,9 @@ void inspircd_cmd_nick(char *nick, char *name, char *modes)
send_cmd(ServerName, "NICK %ld %s %s %s %s +%s 0.0.0.0 :%s",
(long int) time(NULL), nick, ServiceHost, ServiceHost,
ServiceUser, modes, name);
- /* Don't send ServerName as the source here... -GD */
- send_cmd(nick, "OPERTYPE Service");
+ if (strchr(modes, 'o') != NULL)
+ /* Don't send ServerName as the source here... -GD */
+ send_cmd(nick, "OPERTYPE Service");
}
void
@@ -784,7 +785,8 @@ inspircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
{
send_cmd(ServerName, "NICK %ld %s %s %s %s +%s 0.0.0.0 :%s",
(long int) time(NULL), nick, host, host, user, modes, real);
- send_cmd(nick, "OPERTYPE Bot");
+ if (strchr(modes, 'o') != NULL)
+ send_cmd(nick, "OPERTYPE Bot");
}
void inspircd_cmd_kick(char *source, char *chan, char *user, char *buf)
diff --git a/src/protocol/inspircd12.c b/src/protocol/inspircd12.c
index c6262e966..7dd46567b 100644
--- a/src/protocol/inspircd12.c
+++ b/src/protocol/inspircd12.c
@@ -40,19 +40,19 @@ int inet_aton(const char *name, struct in_addr *addr)
IRCDVar myIrcd[] = {
{"InspIRCd 1.2", /* ircd name */
- "+oI", /* nickserv mode */
- "+oI", /* chanserv mode */
+ "+I", /* nickserv mode */
+ "+I", /* chanserv mode */
"+I", /* memoserv mode */
- "+oI", /* hostserv mode */
+ "+I", /* hostserv mode */
"+ioI", /* operserv mode */
"+I", /* botserv mode */
"+I", /* helpserv mode */
"+iI", /* Dev/Null mode */
"+iI", /* Global mode */
- "+oI", /* nickserv alias mode */
- "+oI", /* chanserv alias mode */
+ "+I", /* nickserv alias mode */
+ "+I", /* chanserv alias mode */
"+I", /* memoserv alias mode */
- "+oI", /* hostserv alias mode */
+ "+I", /* hostserv alias mode */
"+ioI", /* operserv alias mode */
"+I", /* botserv alias mode */
"+I", /* helpserv alias mode */
@@ -660,7 +660,8 @@ void inspircd_cmd_nick(char *nick, char *name, char *modes)
nicknumbuf, (long int) time(NULL), nick, ServiceHost,
ServiceHost, ServiceUser, (long int) time(NULL), modes, name);
new_uid(nick, nicknumbuf);
- send_cmd(nicknumbuf, "OPERTYPE Service");
+ if (strchr(modes, 'o') != NULL)
+ send_cmd(nicknumbuf, "OPERTYPE Service");
}
void inspircd_cmd_guest_nick(char *nick, char *user, char *host,
@@ -868,7 +869,8 @@ void inspircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
nicknumbuf, (long int) time(NULL), nick, host, host, user,
(long int) time(NULL), modes, real);
new_uid(nick, nicknumbuf);
- send_cmd(nicknumbuf, "OPERTYPE Bot");
+ if (strchr(modes, 'o') != NULL)
+ send_cmd(nicknumbuf, "OPERTYPE Bot");
}
void inspircd_cmd_kick(char *source, char *chan, char *user, char *buf)
diff --git a/src/protocol/inspircd20.c b/src/protocol/inspircd20.c
index d14df4820..2cce12268 100644
--- a/src/protocol/inspircd20.c
+++ b/src/protocol/inspircd20.c
@@ -71,25 +71,25 @@ static void do_nothing(Channel *c, char *mask) { }
IRCDVar myIrcd[] = {
{"InspIRCd 2.0", /* ircd name */
- "+oI", /* nickserv mode */
- "+oI", /* chanserv mode */
- "+I", /* memoserv mode */
- "+oI", /* hostserv mode */
- "+ioI", /* operserv mode */
- "+I", /* botserv mode */
- "+I", /* helpserv mode */
- "+iI", /* Dev/Null mode */
- "+iI", /* Global mode */
- "+oI", /* nickserv alias mode */
- "+oI", /* chanserv alias mode */
- "+I", /* memoserv alias mode */
- "+oI", /* hostserv alias mode */
- "+ioI", /* operserv alias mode */
- "+I", /* botserv alias mode */
- "+I", /* helpserv alias mode */
- "+iI", /* Dev/Null alias mode */
- "+iI", /* Global alias mode */
- "+I", /* Used by BotServ Bots */
+ "+I", /* nickserv mode */
+ "+I", /* chanserv mode */
+ "+I", /* memoserv mode */
+ "+I", /* hostserv mode */
+ "+ioI", /* operserv mode */
+ "+I", /* botserv mode */
+ "+I", /* helpserv mode */
+ "+iI", /* Dev/Null mode */
+ "+iI", /* Global mode */
+ "+I", /* nickserv alias mode */
+ "+I", /* chanserv alias mode */
+ "+I", /* memoserv alias mode */
+ "+I", /* hostserv alias mode */
+ "+ioI", /* operserv alias mode */
+ "+I", /* botserv alias mode */
+ "+I", /* helpserv alias mode */
+ "+iI", /* Dev/Null alias mode */
+ "+iI", /* Global alias mode */
+ "+I", /* Used by BotServ Bots */
5, /* Chan Max Symbols */
"-cijlmnpstuzACGHKNOQRSV", /* Modes to Remove */
"+oa", /* Channel Umode used by Botserv bots */
@@ -707,7 +707,8 @@ void inspircd_cmd_nick(char *nick, char *name, char *modes)
nicknumbuf, (long int) time(NULL), nick, ServiceHost,
ServiceHost, ServiceUser, (long int) time(NULL), modes, name);
new_uid(nick, nicknumbuf);
- send_cmd(nicknumbuf, "OPERTYPE Service");
+ if (strchr(modes, 'o') != NULL)
+ send_cmd(nicknumbuf, "OPERTYPE Service");
}
void inspircd_cmd_guest_nick(char *nick, char *user, char *host,
@@ -875,7 +876,8 @@ void inspircd_cmd_bot_nick(char *nick, char *user, char *host, char *real,
nicknumbuf, (long int) time(NULL), nick, host, host, user,
(long int) time(NULL), modes, real);
new_uid(nick, nicknumbuf);
- send_cmd(nicknumbuf, "OPERTYPE Bot");
+ if (strchr(modes, 'o') != NULL)
+ send_cmd(nicknumbuf, "OPERTYPE Bot");
}
void inspircd_cmd_kick(char *source, char *chan, char *user, char *buf)