summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrob rob@31f1291d-b8d6-0310-a050-a5561fc1590b <rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2005-03-02 20:45:12 +0000
committerrob rob@31f1291d-b8d6-0310-a050-a5561fc1590b <rob rob@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2005-03-02 20:45:12 +0000
commita8ed2b9244ab81f4073bac0070f1329d7d15a7f6 (patch)
tree3797d16f33d0fab31066f6d6fbf77fb4f5a268b7 /src
parent4e33836bd5069a153bf7916756f48d7a8cb2696e (diff)
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 :)
git-svn-id: svn://svn.anope.org/anope/trunk@590 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@440 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r--src/bahamut.c2
-rw-r--r--src/chanserv.c57
-rw-r--r--src/dreamforge.c2
-rw-r--r--src/hybrid.c2
-rw-r--r--src/operserv.c11
-rw-r--r--src/plexus.c2
-rw-r--r--src/ptlink.c2
-rw-r--r--src/rageircd.c2
-rw-r--r--src/ratbox.c2
-rw-r--r--src/solidircd.c2
-rw-r--r--src/ultimate2.c2
-rw-r--r--src/ultimate3.c2
-rw-r--r--src/unreal31.c2
-rw-r--r--src/unreal32.c2
-rw-r--r--src/viagra.c2
15 files changed, 66 insertions, 28 deletions
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 */