diff options
author | Viper <Viper@Anope.org> | 2010-09-10 16:32:23 +0200 |
---|---|---|
committer | Viper <Viper@Anope.org> | 2010-09-10 16:32:23 +0200 |
commit | ac338266f40fb9769f68879db2c18ff33f45d281 (patch) | |
tree | 9680ae99c6bdabbbbb2dc4d5f2cb8238f8e911d0 | |
parent | 7385580ffa43dfb810a2e3269711d37eaa81f80b (diff) |
Fixed InspIRCd 1.1,1.2 and 2.0 protocol modules to oper pseudo-clients only when needed.
-rw-r--r-- | Changes | 1 | ||||
-rw-r--r-- | src/protocol/inspircd11.c | 38 | ||||
-rw-r--r-- | src/protocol/inspircd12.c | 18 | ||||
-rw-r--r-- | src/protocol/inspircd20.c | 44 | ||||
-rw-r--r-- | version.log | 4 |
5 files changed, 57 insertions, 48 deletions
@@ -20,6 +20,7 @@ Anope Version 1.8 - GIT 07/01 F Fixed encrypting very long passwords when registering [#1172] 08/03 F Fixed tracking users vhosts when there is no vhost mode [#1178] 08/05 F Fixed tracking of our clients after nick changing on InspIRCd [#1180] +09/10 F Fixed pseudo-clients always getting oper on InspIRCd. [ #00] Provided by Han` <Han@mefalcon.org> - 2010 8/14 F Updated german language file. [ #00] 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) diff --git a/version.log b/version.log index 372860357..50e9ccb01 100644 --- a/version.log +++ b/version.log @@ -8,9 +8,11 @@ VERSION_MAJOR="1" VERSION_MINOR="8" VERSION_PATCH="4" VERSION_EXTRA="-git" -VERSION_BUILD="3033" +VERSION_BUILD="3035" # $Log$ # Changes since the 1.8.4 Release +#Revision 3035 - Fixed InspIRCd 1.1,1.2 and 2.0 protocol modules to oper pseudo-clients only when needed. +#Revision 3034 - Fixed comments in insp20 protocol module to be accepted by all supported compilers. #Revision 3031 - Added InspIRCd 2.0 support #Revision 3030 - Fixed do_sjoin to properly find the server source on TS6 IRCds #Revision 3029 - Fixed InspIRCd1.2 protocol module passing invalid users in the SJOIN string which made internal debug messages confusing/wrong |