diff options
| author | Robin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-09-30 18:45:10 +0000 |
|---|---|---|
| committer | Robin Burchell w00t@inspircd.org <Robin Burchell w00t@inspircd.org@5417fbe8-f217-4b02-8779-1006273d7864> | 2008-09-30 18:45:10 +0000 |
| commit | c32c3c99a1e1d395c88e901de200c21b9ca1e84f (patch) | |
| tree | e272e1dc395df2947314ff24f0f9ce12b94f8f53 /src/core | |
| parent | 431918ceacfd5a580d4f28a8ae6077c9bbc44b99 (diff) | |
Made all protocol modules able to be compiled via mostly constifying strings.
Due to the above, also had to constify strings in many other areas.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1202 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/cs_ban.c | 14 | ||||
| -rw-r--r-- | src/core/cs_clear.c | 96 | ||||
| -rw-r--r-- | src/core/cs_modes.c | 22 | ||||
| -rw-r--r-- | src/core/os_clearmodes.c | 66 | ||||
| -rw-r--r-- | src/core/os_mode.c | 6 |
5 files changed, 74 insertions, 130 deletions
diff --git a/src/core/cs_ban.c b/src/core/cs_ban.c index 509790c0e..3031d461e 100644 --- a/src/core/cs_ban.c +++ b/src/core/cs_ban.c @@ -6,8 +6,8 @@ * Please read COPYING and README for further details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * $Id$ * */ @@ -97,7 +97,7 @@ int do_ban(User * u) next = uc->next; if ((ci = uc->chan->ci) && !(ci->flags & CI_VERBOTEN) && check_access(u, ci, CA_BANME)) { - char *av[3]; + const char *av[3]; char mask[BUFSIZE]; /* @@ -115,13 +115,12 @@ int do_ban(User * u) continue; } - av[0] = sstrdup("+b"); + av[0] = "+b"; get_idealban(ci, u, mask, sizeof(mask)); av[1] = mask; anope_cmd_mode(whosends(ci), uc->chan->name, "+b %s", av[1]); chan_set_modes(s_ChanServ, uc->chan, 2, av, 1); - free(av[0]); if ((ci->flags & CI_SIGNKICK) || ((ci->flags & CI_SIGNKICK_LEVEL) @@ -170,15 +169,14 @@ int do_ban(User * u) } else if (ircd->protectedumode && is_protected(u2)) { notice_lang(s_ChanServ, u, PERMISSION_DENIED); } else { - char *av[3]; + const char *av[3]; char mask[BUFSIZE]; - av[0] = sstrdup("+b"); + av[0] = "+b"; get_idealban(ci, u2, mask, sizeof(mask)); av[1] = mask; anope_cmd_mode(whosends(ci), c->name, "+b %s", av[1]); chan_set_modes(s_ChanServ, c, 2, av, 1); - free(av[0]); /* We still allow host banning while not allowing to kick */ if (!is_on_chan(c, u2)) diff --git a/src/core/cs_clear.c b/src/core/cs_clear.c index 8d3556428..4d7cb56da 100644 --- a/src/core/cs_clear.c +++ b/src/core/cs_clear.c @@ -6,8 +6,8 @@ * Please read COPYING and README for further details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * $Id$ * */ @@ -83,92 +83,82 @@ int do_clear(User * u) } else if (!u || !check_access(u, ci, CA_CLEAR)) { notice_lang(s_ChanServ, u, PERMISSION_DENIED); } else if (stricmp(what, "bans") == 0) { - char *av[2]; + const char *av[2]; Entry *ban, *next; if (c->bans && c->bans->count) { for (ban = c->bans->entries; ban; ban = next) { next = ban->next; - av[0] = sstrdup("-b"); - av[1] = sstrdup(ban->mask); + av[0] = "-b"; + av[1] = ban->mask; anope_cmd_mode(whosends(ci), chan, "-b %s", ban->mask); chan_set_modes(whosends(ci), c, 2, av, 0); - free(av[0]); - free(av[1]); } } notice_lang(s_ChanServ, u, CHAN_CLEARED_BANS, chan); } else if (ircd->except && stricmp(what, "excepts") == 0) { - char *av[2]; + const char *av[2]; Entry *except, *next; if (c->excepts && c->excepts->count) { for (except = c->excepts->entries; except; except = next) { next = except->next; - av[0] = sstrdup("-e"); - av[1] = sstrdup(except->mask); + av[0] = "-e"; + av[1] = except->mask; anope_cmd_mode(whosends(ci), chan, "-e %s", except->mask); chan_set_modes(whosends(ci), c, 2, av, 0); - free(av[0]); - free(av[1]); } } notice_lang(s_ChanServ, u, CHAN_CLEARED_EXCEPTS, chan); } else if (ircd->invitemode && stricmp(what, "invites") == 0) { - char *av[2]; + const char *av[2]; Entry *invite, *next; if (c->invites && c->invites->count) { for (invite = c->invites->entries; invite; invite = next) { next = invite->next; - av[0] = sstrdup("-I"); - av[1] = sstrdup(invite->mask); + av[0] = "-I"; + av[1] = invite->mask; anope_cmd_mode(whosends(ci), chan, "-I %s", invite->mask); chan_set_modes(whosends(ci), c, 2, av, 0); - free(av[0]); - free(av[1]); } } notice_lang(s_ChanServ, u, CHAN_CLEARED_INVITES, chan); } else if (stricmp(what, "modes") == 0) { - char *argv[2]; + const char *argv[2]; if (c->mode) { /* Clear modes the bulk of the modes */ anope_cmd_mode(whosends(ci), c->name, "%s", ircd->modestoremove); - argv[0] = sstrdup(ircd->modestoremove); + argv[0] = ircd->modestoremove; chan_set_modes(whosends(ci), c, 1, argv, 0); - free(argv[0]); /* to prevent the internals from complaining send -k, -L, -f by themselves if we need to send them - TSL */ if (c->key) { anope_cmd_mode(whosends(ci), c->name, "-k %s", c->key); - argv[0] = sstrdup("-k"); + argv[0] = "-k"; argv[1] = c->key; chan_set_modes(whosends(ci), c, 2, argv, 0); - free(argv[0]); } if (ircd->Lmode && c->redirect) { anope_cmd_mode(whosends(ci), c->name, "-L %s", c->redirect); - argv[0] = sstrdup("-L"); + argv[0] = "-L"; argv[1] = c->redirect; chan_set_modes(whosends(ci), c, 2, argv, 0); - free(argv[0]); } if (ircd->fmode && c->flood) { if (flood_mode_char_remove) { anope_cmd_mode(whosends(ci), c->name, "%s %s", flood_mode_char_remove, c->flood); - argv[0] = sstrdup(flood_mode_char_remove); + argv[0] = flood_mode_char_remove; argv[1] = c->flood; chan_set_modes(whosends(ci), c, 2, argv, 0); - free(argv[0]); } else { if (debug) { alog("debug: flood_mode_char_remove was not set unable to remove flood/throttle modes"); @@ -180,7 +170,7 @@ int do_clear(User * u) notice_lang(s_ChanServ, u, CHAN_CLEARED_MODES, chan); } else if (stricmp(what, "ops") == 0) { - char *av[6]; /* The max we have to hold: chan, ts, modes(max3), nick, nick, nick */ + const char *av[6]; /* The max we have to hold: chan, ts, modes(max3), nick, nick, nick */ int ac, isop, isadmin, isown, count, i; char buf[BUFSIZE], tmp[BUFSIZE], tmp2[BUFSIZE]; struct c_userlist *cu, *next; @@ -237,10 +227,10 @@ int do_clear(User * u) if (!isop && !isadmin && !isown) continue; - snprintf(tmp, BUFSIZE, "-%s%s%s", (isop ? "o" : ""), (isadmin ? + snprintf(tmp, BUFSIZE, "-%s%s%s", (isop ? "o" : ""), (isadmin ? ircd->adminunset+1 : ""), (isown ? ircd->ownerunset+1 : "")); /* We need to send the IRCd a nick for every mode.. - Viper */ - snprintf(tmp2, BUFSIZE, "%s %s %s", (isop ? cu->user->nick : ""), + snprintf(tmp2, BUFSIZE, "%s %s %s", (isop ? cu->user->nick : ""), (isadmin ? cu->user->nick : ""), (isown ? cu->user->nick : "")); if (ircdcap->tsmode) { @@ -268,7 +258,7 @@ int do_clear(User * u) } notice_lang(s_ChanServ, u, CHAN_CLEARED_OPS, chan); } else if (ircd->halfop && stricmp(what, "hops") == 0) { - char *av[4]; + const char *av[4]; int ac; char buf[BUFSIZE]; struct c_userlist *cu, *next; @@ -280,15 +270,15 @@ int do_clear(User * u) if (ircdcap->tsmode) { snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL)); - av[0] = sstrdup(chan); + av[0] = chan; av[1] = buf; - av[2] = sstrdup("-h"); - av[3] = sstrdup(cu->user->nick); + av[2] = "-h"; + av[3] = cu->user->nick; ac = 4; } else { - av[0] = sstrdup(chan); - av[1] = sstrdup("-h"); - av[2] = sstrdup(cu->user->nick); + av[0] = chan; + av[1] = "-h"; + av[2] = cu->user->nick; ac = 3; } @@ -309,20 +299,10 @@ int do_clear(User * u) av[2]); } do_cmode(s_ChanServ, ac, av); - - if (ircdcap->tsmode) { - free(av[3]); - free(av[2]); - free(av[0]); - } else { - free(av[2]); - free(av[1]); - free(av[0]); - } } notice_lang(s_ChanServ, u, CHAN_CLEARED_HOPS, chan); } else if (stricmp(what, "voices") == 0) { - char *av[4]; + const char *av[4]; int ac; char buf[BUFSIZE]; struct c_userlist *cu, *next; @@ -334,15 +314,15 @@ int do_clear(User * u) if (ircdcap->tsmode) { snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL)); - av[0] = sstrdup(chan); + av[0] = chan; av[1] = buf; - av[2] = sstrdup("-v"); - av[3] = sstrdup(cu->user->nick); + av[2] = "-v"; + av[3] = cu->user->nick; ac = 4; } else { - av[0] = sstrdup(chan); - av[1] = sstrdup("-v"); - av[2] = sstrdup(cu->user->nick); + av[0] = chan; + av[1] = "-v"; + av[2] = cu->user->nick; ac = 3; } @@ -364,16 +344,6 @@ int do_clear(User * u) } } do_cmode(s_ChanServ, ac, av); - - if (ircdcap->tsmode) { - free(av[3]); - free(av[2]); - free(av[0]); - } else { - free(av[2]); - free(av[1]); - free(av[0]); - } } notice_lang(s_ChanServ, u, CHAN_CLEARED_VOICES, chan); } else if (stricmp(what, "users") == 0) { diff --git a/src/core/cs_modes.c b/src/core/cs_modes.c index 824764941..7d3800ba4 100644 --- a/src/core/cs_modes.c +++ b/src/core/cs_modes.c @@ -6,8 +6,8 @@ * Please read COPYING and README for further details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * $Id$ * */ @@ -207,7 +207,7 @@ int do_deprotect(User * u) int do_owner(User * u) { - char *av[2]; + const char *av[2]; char *chan = strtok(NULL, " "); Channel *c; @@ -219,7 +219,7 @@ int do_owner(User * u) } if (!chan) { - av[0] = sstrdup(ircd->ownerset); + av[0] = ircd->ownerset; av[1] = u->nick; /* Sets the mode to the user on every channels he is on. */ @@ -233,7 +233,6 @@ int do_owner(User * u) } } - free(av[0]); return MOD_CONT; } @@ -251,10 +250,9 @@ int do_owner(User * u) anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerset, u->nick); - av[0] = sstrdup(ircd->ownerset); + av[0] = ircd->ownerset; av[1] = u->nick; chan_set_modes(s_ChanServ, c, 2, av, 1); - free(av[0]); } return MOD_CONT; } @@ -263,7 +261,7 @@ int do_owner(User * u) int do_deowner(User * u) { - char *av[2]; + const char *av[2]; char *chan = strtok(NULL, " "); Channel *c; @@ -275,7 +273,7 @@ int do_deowner(User * u) } if (!chan) { - av[0] = sstrdup(ircd->ownerunset); + av[0] = ircd->ownerunset; av[1] = u->nick; /* Sets the mode to the user on every channels he is on. */ @@ -289,7 +287,6 @@ int do_deowner(User * u) } } - free(av[0]); return MOD_CONT; } @@ -307,10 +304,9 @@ int do_deowner(User * u) anope_cmd_mode(whosends(ci), c->name, "%s %s", ircd->ownerunset, u->nick); - av[0] = sstrdup(ircd->ownerunset); + av[0] = ircd->ownerunset; av[1] = u->nick; chan_set_modes(s_ChanServ, c, 2, av, 1); - free(av[0]); } return MOD_CONT; } @@ -319,7 +315,7 @@ int do_deowner(User * u) int do_util(User * u, CSModeUtil * util) { - char *av[2]; + const char *av[2]; char *chan = strtok(NULL, " "); char *nick = strtok(NULL, " "); diff --git a/src/core/os_clearmodes.c b/src/core/os_clearmodes.c index d6a896166..aee4ebd34 100644 --- a/src/core/os_clearmodes.c +++ b/src/core/os_clearmodes.c @@ -6,8 +6,8 @@ * Please read COPYING and README for further details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * $Id$ * */ @@ -70,7 +70,7 @@ void myOperServHelp(User * u) int do_clearmodes(User * u) { char *s; - char *argv[2]; + const char *argv[2]; char *chan = strtok(NULL, " "); Channel *c; int all = 0; @@ -111,22 +111,20 @@ int do_clearmodes(User * u) if (!chan_has_user_status(c, cu->user, CUS_OP)) { continue; } - argv[0] = sstrdup("-o"); + argv[0] = "-o"; argv[1] = cu->user->nick; chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } } else { for (cu = c->users; cu; cu = next) { next = cu->next; if (!chan_has_user_status(c, cu->user, CUS_OP)) continue; - argv[0] = sstrdup("-o"); + argv[0] = "-o"; argv[1] = cu->user->nick; anope_cmd_mode(s_OperServ, c->name, "-o %s", cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } } @@ -137,10 +135,9 @@ int do_clearmodes(User * u) if (!chan_has_user_status(c, cu->user, CUS_VOICE)) { continue; } - argv[0] = sstrdup("-v"); + argv[0] = "-v"; argv[1] = cu->user->nick; chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } } else { /* Clear mode +v */ @@ -148,12 +145,11 @@ int do_clearmodes(User * u) next = cu->next; if (!chan_has_user_status(c, cu->user, CUS_VOICE)) continue; - argv[0] = sstrdup("-v"); + argv[0] = "-v"; argv[1] = cu->user->nick; anope_cmd_mode(s_OperServ, c->name, "-v %s", cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } } @@ -165,22 +161,20 @@ int do_clearmodes(User * u) if (!chan_has_user_status(c, cu->user, CUS_HALFOP)) { continue; } - argv[0] = sstrdup("-h"); + argv[0] = "-h"; argv[1] = cu->user->nick; chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } } else { for (cu = c->users; cu; cu = next) { next = cu->next; if (!chan_has_user_status(c, cu->user, CUS_HALFOP)) continue; - argv[0] = sstrdup("-h"); + argv[0] = "-h"; argv[1] = cu->user->nick; anope_cmd_mode(s_OperServ, c->name, "-h %s", cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } } /* Clear mode Owners */ @@ -191,22 +185,20 @@ int do_clearmodes(User * u) if (!chan_has_user_status(c, cu->user, CUS_HALFOP)) { continue; } - argv[0] = sstrdup(ircd->ownerunset); + argv[0] = ircd->ownerunset; argv[1] = cu->user->nick; chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } } else { for (cu = c->users; cu; cu = next) { next = cu->next; if (!chan_has_user_status(c, cu->user, CUS_OWNER)) continue; - argv[0] = sstrdup(ircd->ownerunset); + argv[0] = ircd->ownerunset; argv[1] = cu->user->nick; anope_cmd_mode(s_OperServ, c->name, "%s %s", ircd->ownerunset, cu->user->nick); chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } } /* Clear mode protected or admins */ @@ -218,22 +210,20 @@ int do_clearmodes(User * u) if (!chan_has_user_status(c, cu->user, CUS_HALFOP)) { continue; } - argv[0] = sstrdup(ircd->adminunset); + argv[0] = ircd->adminunset; argv[1] = cu->user->nick; chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } } else { for (cu = c->users; cu; cu = next) { next = cu->next; if (!chan_has_user_status(c, cu->user, CUS_PROTECT)) continue; - argv[0] = sstrdup(ircd->adminunset); + argv[0] = ircd->adminunset; argv[1] = 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]); } } @@ -243,34 +233,30 @@ int do_clearmodes(User * u) if (c->mode) { /* Clear modes the bulk of the modes */ anope_cmd_mode(s_OperServ, c->name, "%s", ircd->modestoremove); - argv[0] = sstrdup(ircd->modestoremove); + argv[0] = ircd->modestoremove; chan_set_modes(s_OperServ, c, 1, argv, 0); - free(argv[0]); /* to prevent the internals from complaining send -k, -L, -f by themselves if we need to send them - TSL */ if (c->key) { anope_cmd_mode(s_OperServ, c->name, "-k %s", c->key); - argv[0] = sstrdup("-k"); + argv[0] = "-k"; argv[1] = c->key; chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } if (ircd->Lmode && c->redirect) { anope_cmd_mode(s_OperServ, c->name, "-L %s", c->redirect); - argv[0] = sstrdup("-L"); + argv[0] = "-L"; argv[1] = c->redirect; chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } if (ircd->fmode && c->flood) { if (flood_mode_char_remove) { anope_cmd_mode(s_OperServ, c->name, "%s %s", flood_mode_char_remove, c->flood); - argv[0] = sstrdup(flood_mode_char_remove); + argv[0] = flood_mode_char_remove; argv[1] = c->flood; chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); } else { if (debug) { alog("debug: flood_mode_char_remove was not set unable to remove flood/throttle modes"); @@ -283,12 +269,10 @@ int do_clearmodes(User * u) if (c->bans && c->bans->count) { for (entry = c->bans->entries; entry; entry = nexte) { nexte = entry->next; - argv[0] = sstrdup("-b"); - argv[1] = sstrdup(entry->mask); + argv[0] = "-b"; + argv[1] = entry->mask; anope_cmd_mode(s_OperServ, c->name, "-b %s", entry->mask); chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); - free(argv[1]); } } @@ -296,12 +280,10 @@ int do_clearmodes(User * u) if (ircd->except && c->excepts && c->excepts->count) { for (entry = c->excepts->entries; entry; entry = nexte) { nexte = entry->next; - argv[0] = sstrdup("-e"); - argv[1] = sstrdup(entry->mask); + argv[0] = "-e"; + argv[1] = entry->mask; anope_cmd_mode(s_OperServ, c->name, "-e %s", entry->mask); chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); - free(argv[1]); } } @@ -309,12 +291,10 @@ int do_clearmodes(User * u) if (ircd->invitemode && c->invites && c->invites->count) { for (entry = c->invites->entries; entry; entry = nexte) { nexte = entry->next; - argv[0] = sstrdup("-I"); - argv[1] = sstrdup(entry->mask); + argv[0] = "-I"; + argv[1] = entry->mask; anope_cmd_mode(s_OperServ, c->name, "-I %s", entry->mask); chan_set_modes(s_OperServ, c, 2, argv, 0); - free(argv[0]); - free(argv[1]); } } } diff --git a/src/core/os_mode.c b/src/core/os_mode.c index c3d5c6624..53729b2ff 100644 --- a/src/core/os_mode.c +++ b/src/core/os_mode.c @@ -6,8 +6,8 @@ * Please read COPYING and README for further details. * * Based on the original code of Epona by Lara. - * Based on the original code of Services by Andy Church. - * + * Based on the original code of Services by Andy Church. + * * $Id$ * */ @@ -69,7 +69,7 @@ void myOperServHelp(User * u) int do_os_mode(User * u) { int ac; - char **av; + const char **av; char *chan = strtok(NULL, " "), *modes = strtok(NULL, ""); Channel *c; |
