diff options
-rw-r--r-- | Changes | 5 | ||||
-rw-r--r-- | docs/IRCD | 114 | ||||
-rw-r--r-- | include/services.h | 2 | ||||
-rw-r--r-- | src/bahamut.c | 2 | ||||
-rw-r--r-- | src/chanserv.c | 57 | ||||
-rw-r--r-- | src/dreamforge.c | 2 | ||||
-rw-r--r-- | src/hybrid.c | 2 | ||||
-rw-r--r-- | src/operserv.c | 11 | ||||
-rw-r--r-- | src/plexus.c | 2 | ||||
-rw-r--r-- | src/ptlink.c | 2 | ||||
-rw-r--r-- | src/rageircd.c | 2 | ||||
-rw-r--r-- | src/ratbox.c | 2 | ||||
-rw-r--r-- | src/solidircd.c | 2 | ||||
-rw-r--r-- | src/ultimate2.c | 2 | ||||
-rw-r--r-- | src/ultimate3.c | 2 | ||||
-rw-r--r-- | src/unreal31.c | 2 | ||||
-rw-r--r-- | src/unreal32.c | 2 | ||||
-rw-r--r-- | src/viagra.c | 2 | ||||
-rw-r--r-- | version.log | 7 |
19 files changed, 137 insertions, 85 deletions
@@ -1,11 +1,12 @@ Anope Version S V N ------------------- Provided by Anope Dev. <dev@anope.org> - 2005 -02/27 A Added multi-file module support for win32 - thanks heinz. [ #00] -02/27 A Added multi-file module support for nix, win32 will follow. [ #00] +02/27 A Added multi-file module support. [ #00] 02/13 A Internal Event support, see EVENTS in the doc folder for help [ #00] 02/05 A Support for Unreal 3.2 +I channel mode. [ #00] 02/03 A Merged anope-win32 branch into the main, now Win32 ready. [ #00] +03/02 F ircd protocol support for owner and admin taken from proto. files.[ #00] +03/02 F /ns alist output. [#288] 02/28 F normalizeBuffer() now strips two digit color codes [#303] 02/28 F nickIsServices() no longer alters the buffer [#304] 02/22 F Uninitialized variable in NickServ DROP. [ #00] @@ -262,167 +262,173 @@ How To Add IRCd Support owner status. If the IRCd doesn't support owners, set this to NULL. - 29) Mode on Nick Register: What mode to give users when they register + 29) ADMIN MODE SET: What mode to set to make someone a channel admin. + If the IRCd dosn't support admins, set to NULL. + + 30) ADMIN MODE UNSET: What mode to unset to take away channel admin. + If the IRCd dosn't support admins, set to NULL. + + 31) Mode on Nick Register: What mode to give users when they register with NickServ. If your ircd doesn't set expect a mode to be set on registration, you should set this to NULL. - 30) Mode on Nick Unregister: What mode to set give users when they cancel + 32) Mode on Nick Unregister: What mode to set give users when they cancel their registration with NickServ. If your IRCd doesn't set a mode for registered users you should set this to NULL. - 31) Mode on Nick Change: What mode to give users when they change their + 33) Mode on Nick Change: What mode to give users when they change their nick. If your ircd doesn't set a mode, you should set this to NULL. - 32) SGLINE: Does the IRCd support realname (geocs) bans? Use 1 for yes, + 34) SGLINE: Does the IRCd support realname (geocs) bans? Use 1 for yes, 0 for no. - 33) SQLINE: Does the IRCd support nick bans? Use 1 for yes, 0 for no. + 35) SQLINE: Does the IRCd support nick bans? Use 1 for yes, 0 for no. - 34) SZLINE: Does the IRCd support SZLINES? Use 1 for yes, 0 for no. + 36) SZLINE: Does the IRCd support SZLINES? Use 1 for yes, 0 for no. - 35) HALFOP: Is channel mode +h for halfop supported by the IRCd? Use 1 for + 37) HALFOP: Is channel mode +h for halfop supported by the IRCd? Use 1 for yes, 0 for no. - 36) Number of Server Args: When an IRCd connects, this is the number of + 38) Number of Server Args: When an IRCd connects, this is the number of parameters that are passed. - 37) Join to Set: Services must join a channel to set any modes on that + 39) Join to Set: Services must join a channel to set any modes on that channel. Use 1 for yes, 0 for no. - 38) Join to Message: Services must join a channel to send any message to + 40) Join to Message: Services must join a channel to send any message to that channel (cannot override +n). Use 1 for yes, 0 for no. - 39) Exceptions: Support for channel exceptions (mode +e). Use 1 for yes, + 41) Exceptions: Support for channel exceptions (mode +e). Use 1 for yes, 0 for no. - 40) TS Topic Forward: Some IRCd's (like UnrealIRCd) like their topic TS + 42) TS Topic Forward: Some IRCd's (like UnrealIRCd) like their topic TS set forward by +1. Use 1 for yes, 0 for no. - 41) TS Topic Backward: Some IRCd's (mainly older DreamForge-like ones) + 43) TS Topic Backward: Some IRCd's (mainly older DreamForge-like ones) like their topic TS set back by -1. Use 1 for yes, 0 for no. - 42) Protected Umode: UMODE_ define that defines the protected usermod. + 44) Protected Umode: UMODE_ define that defines the protected usermod. Use 0 for no support, or enter the UMODE_ define. - 43) Admin: Support for channel admins (Mainly used by UltimateIRCd). Use + 45) Admin: Support for channel admins (Mainly used by UltimateIRCd). Use 1 for yes, 0 for no. - 44) SQline Channels: The IRCd's supports banning channel names via + 46) SQline Channels: The IRCd's supports banning channel names via SQLINES. Use 1 for yes, 0 for no. - 45) Quit On Kill: When we (SVS)KILL a user, does the IRCd send back a + 47) Quit On Kill: When we (SVS)KILL a user, does the IRCd send back a QUIT message for that user? Use 1 for yes, 0 for no. - 46) SVSMODE -b: We can use SVSMODE to unban hosts from a channel. Use + 48) SVSMODE -b: We can use SVSMODE to unban hosts from a channel. Use 1 for yes, 0 for no. - 47) Protect: Support for channel protect (mode +a, mainly being used by + 49) Protect: Support for channel protect (mode +a, mainly being used by UnrealIRCd and ViagraIRCd). Use 1 for yes, 0 for no. - 48) Reverse: We can do a reverse check when unbanning. For use with + 50) Reverse: We can do a reverse check when unbanning. For use with DreamForge based IRCd's. Use 1 for yes, 0 for no. - 49) Register Channels: Supports sending a channelmode for registered + 51) Register Channels: Supports sending a channelmode for registered channels. Use 1 for yes, 0 for no. - 50) Registered Mode: Channelmode to set on registered channels, see the + 52) Registered Mode: Channelmode to set on registered channels, see the option above. Use 1 for yes, 0 for no. - 51) vIdent: Support for including a user's ident in their vHost. Use + 53) vIdent: Support for including a user's ident in their vHost. Use 1 for yes, 0 for no. - 52) SVSHOLD: Support for temporarily 'holding' a nick, instead of using + 54) SVSHOLD: Support for temporarily 'holding' a nick, instead of using a nick enforcer client. Use 1 for yes, 0 for no. - 53) TS on MODE: We need to send a timestamp when modes are being changed. + 55) TS on MODE: We need to send a timestamp when modes are being changed. Use 1 for yes, 0 for no. - 54) NICKIP: The IP address of new users is being sent along with their + 56) NICKIP: The IP address of new users is being sent along with their hostname when new users are being introduced on the network. Use 1 for yes, 0 for no. - 55) Umode: We can use OperServ to change a user's mode. Use 1 for yes, + 57) Umode: We can use OperServ to change a user's mode. Use 1 for yes, 0 for no. - 56) O:LINE: We can use OperServ to give some user a temporary O:LINE. + 58) O:LINE: We can use OperServ to give some user a temporary O:LINE. Use 1 for yes, 0 for no. - 57) Vhost On Nick: On NICK the IRCd sends the VHOST. Use 1 for yes, + 59) Vhost On Nick: On NICK the IRCd sends the VHOST. Use 1 for yes, 0 for no. - 58) Change Realname: Change real name. Use 1 for yes, 0 for no. + 60) Change Realname: Change real name. Use 1 for yes, 0 for no. - 59) Extra Help: If the IRCd has more help for functions in ChanServ than + 61) Extra Help: If the IRCd has more help for functions in ChanServ than the default help, you should put the language string identifier here. Use 0 for no extra help. - 60) No Knock: CMODE_ that defines NO KNOCK. Use 0 for no support. + 62) No Knock: CMODE_ that defines NO KNOCK. Use 0 for no support. - 61) Admin Only: CMODE_ that defines Admin Only. Use 0 for no support. + 63) Admin Only: CMODE_ that defines Admin Only. Use 0 for no support. - 62) Default MLock: Default channelmodes for MLOCK. Use 0 for no modes. + 64) Default MLock: Default channelmodes for MLOCK. Use 0 for no modes. - 63) Vhost Umode: UMODE_ that indicates if the user currently has a vHost. + 65) Vhost Umode: UMODE_ that indicates if the user currently has a vHost. Use 0 for no support. - 64) Flood Mode: The IRCd has a channelmode for blocking floods. Use 1 for + 66) Flood Mode: The IRCd has a channelmode for blocking floods. Use 1 for yes, 0 for no. - 65) Link Mode: The IRCd has a channelmode for linking a channel to some + 67) Link Mode: The IRCd has a channelmode for linking a channel to some other channel. Use 1 for yes, 0 for no. - 66) CMode F: CMODE_ that defines flood mode. Use 0 for no support. + 68) CMode F: CMODE_ that defines flood mode. Use 0 for no support. - 67) CMode L: CMODE_ that defines link mode. Use 0 for no support. + 69) CMode L: CMODE_ that defines link mode. Use 0 for no support. - 68) Check Nick ID: Should we check if a user should remain identified when + 70) Check Nick ID: Should we check if a user should remain identified when changing their nick? This is for IRCd's that remove their registered-user mode when someone changes their nick (like Bahamut does). Use 1 for yes, 0 for no. - 69) No Knock Requires +i: Does the No Knock channel mode require invite + 71) No Knock Requires +i: Does the No Knock channel mode require invite only channels? Use 1 for yes, 0 for no. - 70) Chan Modes: If sent in CAPAB/PROTOCOL, we store it in here. This is + 72) Chan Modes: If sent in CAPAB/PROTOCOL, we store it in here. This is NULL by default. - 71) Tokens: Can we use tokens to talk to the IRCd? Use 1 for yes, + 73) Tokens: Can we use tokens to talk to the IRCd? Use 1 for yes, 0 for no. - 72) Token Case Senstive: Are the IRCd's TOKENS/COMMANDS case sensitive? + 74) Token Case Senstive: Are the IRCd's TOKENS/COMMANDS case sensitive? Use 1 for yes, 0 for no. - 73) base64 SJOIN TS: Are the timestamps sent with a SJOIN in base64? Use + 75) base64 SJOIN TS: Are the timestamps sent with a SJOIN in base64? Use 1 for yes, 0 for no. - 74) Supports +I: Does the IRCd support channelmode +I? Use 1 for yes, + 76) Supports +I: Does the IRCd support channelmode +I? Use 1 for yes, 0 for no. - 75) SJOIN Ban Char: Character used to identify bans. Use ''. + 77) SJOIN Ban Char: Character used to identify bans. Use ''. - 76) SJOIN Except Char: Character used to identify exceptions. use ''. + 78) SJOIN Except Char: Character used to identify exceptions. use ''. - 77) SVSMODE UCMODE: Can we clear user channel modes with SVSMODE? Use + 79) SVSMODE UCMODE: Can we clear user channel modes with SVSMODE? Use 1 for yes, 0 for no. - 78) SGline Enforce: Does the IRCd enforce SGLINES for us or do we need to + 80) SGline Enforce: Does the IRCd enforce SGLINES for us or do we need to do so? Use 1 for yes, 0 for no. - 79) Vhost Character: The character used to represent the vHost mode, if + 81) Vhost Character: The character used to represent the vHost mode, if this is supported by the IRCd. - 80) TS6: Does the IRCd support TS6? Use 1 for yes, 0 for no. + 82) TS6: Does the IRCd support TS6? Use 1 for yes, 0 for no. - 81) UMode +h: Does the IRCd support usermode +h for helpers? + 83) UMode +h: Does the IRCd support usermode +h for helpers? Use 1 for yes, 0 for no. - 82) P10: Is this IRCd a P10-style IRCd? Use 1 for yes, 0 for no. + 84) P10: Is this IRCd a P10-style IRCd? Use 1 for yes, 0 for no. 83) Character Set: Unreal passes the character set during PROTOCTL, the value is stored here. Set this NULL to start. diff --git a/include/services.h b/include/services.h index d84230642..1c9473a8f 100644 --- a/include/services.h +++ b/include/services.h @@ -278,6 +278,8 @@ struct ircdvars_ { int owner; /* Supports Owner */ char *ownerset; /* Mode to set for owner */ char *ownerunset; /* Mode to unset for a owner */ + char *adminset; /* Mode to set for admin */ + char *adminunset; /* Mode to unset for admin */ char *modeonreg; /* Mode on Register */ char *modeonunreg; /* Mode on Unregister */ char *modeonnick; /* Mode on nick change */ diff --git a/src/bahamut.c b/src/bahamut.c index c28170d11..980012497 100644 --- a/src/bahamut.c +++ b/src/bahamut.c @@ -54,6 +54,8 @@ IRCDVar ircd[] = { 0, /* Has Owner */ NULL, /* Mode to set for an owner */ NULL, /* Mode to unset for an owner */ + NULL, /* Mode to set for channel admin */ + NULL, /* Mode to unset for channel admin */ "+rd", /* Mode On Reg */ "-r+d", /* Mode on UnReg */ "+d", /* Mode on Nick Change */ diff --git a/src/chanserv.c b/src/chanserv.c index 30d794231..3e2a4a1cb 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -1391,14 +1391,14 @@ int check_valid_admin(User * user, Channel * chan, int servermode) if (servermode && !check_access(user, chan->ci, CA_AUTOPROTECT)) { notice_lang(s_ChanServ, user, CHAN_IS_REGISTERED, s_ChanServ); - anope_cmd_mode(whosends(chan->ci), chan->name, "-a %s", - user->nick); + anope_cmd_mode(whosends(chan->ci), chan->name, "%s %s", + ircd->adminunset, user->nick); return 0; } if (check_access(user, chan->ci, CA_AUTODEOP)) { - anope_cmd_mode(whosends(chan->ci), chan->name, "-a %s", - user->nick); + anope_cmd_mode(whosends(chan->ci), chan->name, "%s %s", + ircd->adminunset, user->nick); return 0; } @@ -1426,21 +1426,25 @@ int check_valid_op(User * user, Channel * chan, int servermode) if (ircd->owner && ircd->protect) { if (check_access(user, chan->ci, CA_AUTOHALFOP)) { anope_cmd_mode(whosends(chan->ci), chan->name, - "-aoq %s %s %s", user->nick, user->nick, - user->nick); + "-%so%s %s %s %s", ++ircd->adminunset, + ++ircd->ownerunset, user->nick, + user->nick, user->nick); } else { anope_cmd_mode(whosends(chan->ci), chan->name, - "-ahoq %s %s %s %s", user->nick, - user->nick, user->nick, user->nick); + "-%sho%s %s %s %s %s", + ++ircd->adminunset, ++ircd->ownerunset, + user->nick, user->nick, user->nick, + user->nick); } } else if (!ircd->owner && ircd->protect) { if (check_access(user, chan->ci, CA_AUTOHALFOP)) { anope_cmd_mode(whosends(chan->ci), chan->name, - "-ao %s %s", user->nick, user->nick); + "-%so %s %s", ++ircd->adminunset, + user->nick, user->nick); } else { anope_cmd_mode(whosends(chan->ci), chan->name, - "-aoh %s %s %s", user->nick, user->nick, - user->nick); + "-%soh %s %s %s", ++ircd->adminunset, + user->nick, user->nick, user->nick); } } else { if (check_access(user, chan->ci, CA_AUTOHALFOP)) { @@ -1462,7 +1466,8 @@ int check_valid_op(User * user, Channel * chan, int servermode) if (ircd->halfop) { if (ircd->owner && ircd->protect) { anope_cmd_mode(whosends(chan->ci), chan->name, - "-ahoq %s %s %s %s", user->nick, user->nick, + "-%sho%s %s %s %s %s", ++ircd->adminunset, + ++ircd->ownerunset, user->nick, user->nick, user->nick, user->nick); } else { anope_cmd_mode(whosends(chan->ci), chan->name, "-ho %s %s", @@ -2589,10 +2594,7 @@ int get_access_level(ChannelInfo * ci, NickAlias * na) access = &ci->access[num]; - if (!access->in_use) - return 0; - - if (access->nc == na->nc) { + if (access->nc && access->nc == na->nc && access->in_use) { return access->level; } @@ -2785,7 +2787,8 @@ static int do_register(User * u) check_modes(c); /* On most ircds you do not receive the admin/owner mode till its registered */ if (ircd->admin) { - anope_cmd_mode(s_ChanServ, chan, "+a %s", u->nick); + anope_cmd_mode(s_ChanServ, chan, "%s %s", ircd->adminset, + u->nick); } if (ircd->owner && ircd->ownerset) { anope_cmd_mode(s_ChanServ, chan, "%s %s", ircd->ownerset, @@ -5908,6 +5911,7 @@ static int do_clear(User * u) { char *chan = strtok(NULL, " "); char *what = strtok(NULL, " "); + char tmp[BUFSIZE]; Channel *c; ChannelInfo *ci; @@ -6076,10 +6080,10 @@ static int do_clear(User * u) av[0] = sstrdup(chan); anope_cmd_svsmode_chan(av[0], "-o", NULL); if (ircd->owner) { - anope_cmd_svsmode_chan(av[0], "-q", NULL); + anope_cmd_svsmode_chan(av[0], ircd->ownerunset, NULL); } if (ircd->protect || ircd->admin) { - anope_cmd_svsmode_chan(av[0], "-a", NULL); + anope_cmd_svsmode_chan(av[0], ircd->adminunset, NULL); } for (cu = c->users; cu; cu = next) { next = cu->next; @@ -6089,10 +6093,14 @@ static int do_clear(User * u) if (!chan_has_user_status(c, cu->user, CUS_OWNER)) { continue; } else { - av[1] = sstrdup("-qo"); + snprintf(tmp, BUFSIZE, "-%so", + ++ircd->ownerunset); + av[1] = sstrdup(tmp); + } } else { - av[1] = sstrdup("-ao"); + snprintf(tmp, BUFSIZE, "-%so", ++ircd->adminunset); + av[1] = sstrdup(tmp); } } else { av[1] = sstrdup("-o"); @@ -6112,10 +6120,13 @@ static int do_clear(User * u) if (!chan_has_user_status(c, cu->user, CUS_OWNER)) { continue; } else { - av[1] = sstrdup("-qo"); + snprintf(tmp, BUFSIZE, "-%so", + ++ircd->ownerunset); + av[1] = sstrdup(tmp); } } else { - av[1] = sstrdup("-ao"); + snprintf(tmp, BUFSIZE, "-%so", ++ircd->adminunset); + av[1] = sstrdup(tmp); } } else { av[1] = sstrdup("-o"); diff --git a/src/dreamforge.c b/src/dreamforge.c index bceb88156..399f3c765 100644 --- a/src/dreamforge.c +++ b/src/dreamforge.c @@ -52,6 +52,8 @@ IRCDVar ircd[] = { 0, /* Has Owner */ NULL, /* Mode to set for an owner */ NULL, /* Mode to unset for an owner */ + NULL, /* Mode to set for chan admin */ + NULL, /* Mode to unset for chan admin */ "+rd", /* Mode On Reg */ "-r+d", /* Mode on UnReg */ "+d", /* Mode on Nick Change */ diff --git a/src/hybrid.c b/src/hybrid.c index 6a9e89921..cce2c246a 100644 --- a/src/hybrid.c +++ b/src/hybrid.c @@ -52,6 +52,8 @@ IRCDVar ircd[] = { 0, /* Has Owner */ NULL, /* Mode to set for an owner */ NULL, /* Mode to unset for an owner */ + NULL, /* Mode to set for admin */ + NULL, /* Mode to unset for admin */ NULL, /* Mode On Reg */ NULL, /* Mode on UnReg */ NULL, /* Mode on Nick Change */ diff --git a/src/operserv.c b/src/operserv.c index 76434f667..744038866 100644 --- a/src/operserv.c +++ b/src/operserv.c @@ -1764,13 +1764,14 @@ static int do_clearmodes(User * u) } /* Clear mode protected or admins */ if (ircd->svsmode_ucmode && (ircd->protect || ircd->admin)) { - anope_cmd_svsmode_chan(c->name, "-a", NULL); + + anope_cmd_svsmode_chan(c->name, ircd->adminunset, NULL); for (cu = c->users; cu; cu = next) { next = cu->next; if (!chan_has_user_status(c, cu->user, CUS_HALFOP)) { continue; } - argv[0] = sstrdup("-a"); + argv[0] = sstrdup(ircd->adminunset); argv[1] = cu->user->nick; chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[0]); @@ -1780,10 +1781,10 @@ static int do_clearmodes(User * u) next = cu->next; if (!chan_has_user_status(c, cu->user, CUS_PROTECT)) continue; - argv[0] = sstrdup("-a"); + argv[0] = sstrdup(ircd->adminunset); argv[1] = sstrdup(cu->user->nick); - anope_cmd_mode(s_OperServ, c->name, "-a %s", - cu->user->nick); + anope_cmd_mode(s_OperServ, c->name, "%s %s", + ircd->adminunset, cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); free(argv[0]); } diff --git a/src/plexus.c b/src/plexus.c index e3217316c..74124154a 100644 --- a/src/plexus.c +++ b/src/plexus.c @@ -52,6 +52,8 @@ IRCDVar ircd[] = { 0, /* Has Owner */ NULL, /* Mode to set for an owner */ NULL, /* Mode to unset for an owner */ + NULL, /* Mode to set for chan admin */ + NULL, /* Mode to unset for chan admin */ "+R", /* Mode On Reg */ "-R", /* Mode on UnReg */ "-R", /* Mode on Nick Change */ diff --git a/src/ptlink.c b/src/ptlink.c index 228f48c0d..a64076243 100644 --- a/src/ptlink.c +++ b/src/ptlink.c @@ -52,6 +52,8 @@ IRCDVar ircd[] = { 0, /* Has Owner */ NULL, /* Mode to set for an owner */ NULL, /* Mode to unset for an owner */ + NULL, /* Mode to set for chan admin */ + NULL, /* Mode to unset for chan admin */ "+r", /* Mode On Reg */ "-r", /* Mode on UnReg */ NULL, /* Mode on Nick Change */ diff --git a/src/rageircd.c b/src/rageircd.c index 050ff4e76..182a911ef 100644 --- a/src/rageircd.c +++ b/src/rageircd.c @@ -53,6 +53,8 @@ IRCDVar ircd[] = { 0, /* Has Owner */ NULL, /* Mode to set for an owner */ NULL, /* Mode to unset for an owner */ + "+a", /* Mode to set for channel admin */ + "-a", /* Mode to unset for channel admin */ "+rd", /* Mode On Reg */ "-rd", /* Mode on UnReg */ "-r+d", /* Mode on Nick Change */ diff --git a/src/ratbox.c b/src/ratbox.c index bb1ce1e60..19010ecce 100644 --- a/src/ratbox.c +++ b/src/ratbox.c @@ -54,6 +54,8 @@ IRCDVar ircd[] = { 0, /* Has Owner */ NULL, /* Mode to set for an owner */ NULL, /* Mode to unset for an owner */ + NULL, /* Mode to set for chan admin */ + NULL, /* Mode to unset for chan admin */ NULL, /* Mode On Reg */ NULL, /* Mode on UnReg */ NULL, /* Mode on Nick Change */ diff --git a/src/solidircd.c b/src/solidircd.c index e8489abe4..9603154f4 100644 --- a/src/solidircd.c +++ b/src/solidircd.c @@ -54,6 +54,8 @@ IRCDVar ircd[] = { 0, /* Has Owner */ NULL, /* Mode to set for an owner */ NULL, /* Mode to unset for an owner */ + NULL, /* Mode to set for chan admin */ + NULL, /* Mode to unset for chan admin */ "+rd", /* Mode On Reg */ "-r+d", /* Mode on UnReg */ "+d", /* Mode on Nick Change */ diff --git a/src/ultimate2.c b/src/ultimate2.c index 03b81eeed..99292199e 100644 --- a/src/ultimate2.c +++ b/src/ultimate2.c @@ -52,6 +52,8 @@ IRCDVar ircd[] = { 0, /* Has Owner */ NULL, /* Mode to set for an owner */ NULL, /* Mode to unset for an owner */ + NULL, /* Mode to set for chan admin */ + NULL, /* Mode to remove for chan admin */ "+rd", /* Mode On Reg */ "-r+d", /* Mode on UnReg */ "-r+d", /* Mode on Nick Change */ diff --git a/src/ultimate3.c b/src/ultimate3.c index ad965bbd8..b8cd2327e 100644 --- a/src/ultimate3.c +++ b/src/ultimate3.c @@ -54,6 +54,8 @@ IRCDVar ircd[] = { 0, /* Has Owner */ NULL, /* Mode to set for an owner */ NULL, /* Mode to unset for an owner */ + "+a", /* Mode to set for channel admin */ + "-a", /* Mode to unset for channel admin */ "+rd", /* Mode On Reg */ "-r+d", /* Mode on UnReg */ "+d", /* Mode on Nick Change */ diff --git a/src/unreal31.c b/src/unreal31.c index 6326b274b..43c81fbd4 100644 --- a/src/unreal31.c +++ b/src/unreal31.c @@ -55,6 +55,8 @@ IRCDVar ircd[] = { 1, /* Has Owner */ "+q", /* Mode to set for an owner */ "-q", /* Mode to unset for an owner */ + "+a", /* Mode to set for channel admin */ + "-a", /* Mode to unset for channel admin */ "+rd", /* Mode On Reg */ "-r+d", /* Mode on UnReg */ "-r+d", /* Mode on Nick Change */ diff --git a/src/unreal32.c b/src/unreal32.c index c612673e3..3b617c3f8 100644 --- a/src/unreal32.c +++ b/src/unreal32.c @@ -54,6 +54,8 @@ IRCDVar ircd[] = { 1, /* Has Owner */ "+q", /* Mode to set for an owner */ "-q", /* Mode to unset for an owner */ + "+a", /* Mode to set for channel admin */ + "-a", /* Mode to unset for channel admin */ "+rd", /* Mode On Reg */ "-r+d", /* Mode on UnReg */ "-r+d", /* Mode on Nick Change */ diff --git a/src/viagra.c b/src/viagra.c index b94ad6aee..c234aa67c 100644 --- a/src/viagra.c +++ b/src/viagra.c @@ -53,6 +53,8 @@ IRCDVar ircd[] = { 1, /* Has Owner */ "+q", /* Mode to set for an owner */ "-q", /* Mode to unset for an owner */ + "+a", /* Mode to set for channel admin */ + "-a", /* Mode to unset for channel admin */ "+rd", /* Mode On Reg */ "-r+d", /* Mode on UnReg */ "-r+d", /* Mode on Nick Change */ diff --git a/version.log b/version.log index e03221010..5a78aad68 100644 --- a/version.log +++ b/version.log @@ -8,10 +8,15 @@ VERSION_MAJOR="1" VERSION_MINOR="7" VERSION_PATCH="8" -VERSION_BUILD="589" +VERSION_BUILD="590" # $Log$ # +# BUILD : 1.7.8 (590) +# BUGS : 288 / N/A +# NOTES : Fixed 288, moved updated all set/unset admin/owner calls to use the ircd protocol files. This needs a fair good test, but it seems all ok, and i cant see anything wrong with it :) +# +# # BUILD : 1.7.8 (589) # BUGS : 303 # NOTES : normalizeBuffer() now strips two digit color codes |