summaryrefslogtreecommitdiff
path: root/src/chanserv.c
diff options
context:
space:
mode:
authordrstein drstein@31f1291d-b8d6-0310-a050-a5561fc1590b <drstein drstein@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2008-02-05 19:16:42 +0000
committerdrstein drstein@31f1291d-b8d6-0310-a050-a5561fc1590b <drstein drstein@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864>2008-02-05 19:16:42 +0000
commit2a08701f557179d6a3787aae896d7dd9eb6e8982 (patch)
treeff5b7ef0575d94496e85256718da08cba4db84b2 /src/chanserv.c
parent1baff08ad8255b254149d456c632c853d3dc5c81 (diff)
BUILD : 1.7.21 (1374) BUGS : 820 NOTES : do_cmode() called without passing TS
git-svn-id: svn://svn.anope.org/anope/trunk@1374 31f1291d-b8d6-0310-a050-a5561fc1590b git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1089 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/chanserv.c')
-rw-r--r--src/chanserv.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/src/chanserv.c b/src/chanserv.c
index 2797feadb..d2fcc4d60 100644
--- a/src/chanserv.c
+++ b/src/chanserv.c
@@ -1484,7 +1484,9 @@ int check_kick(User * user, char *chan, time_t chants)
AutoKick *akick;
int i;
NickCore *nc;
- char *av[3];
+ char *av[4];
+ int ac;
+ char buf[BUFSIZE];
char mask[BUFSIZE];
const char *reason;
Timeout *t;
@@ -1578,11 +1580,26 @@ int check_kick(User * user, char *chan, time_t chants)
}
if (c) {
- av[0] = chan;
- av[1] = sstrdup("+b");
- av[2] = mask;
- do_cmode(whosends(ci), 3, av);
- free(av[1]);
+ if (ircdcap->tsmode) {
+ snprintf(buf, BUFSIZE - 1, "%ld", (long int) time(NULL));
+ av[0] = chan;
+ av[1] = buf;
+ av[2] = sstrdup("+b");
+ av[3] = mask;
+ ac = 4;
+ } else {
+ av[0] = chan;
+ av[1] = sstrdup("+b");
+ av[2] = mask;
+ ac = 3;
+ }
+
+ do_cmode(whosends(ci), ac, av);
+
+ if (ircdcap->tsmode)
+ free(av[2]);
+ else
+ free(av[1]);
}
anope_cmd_mode(whosends(ci), chan, "+b %s", mask);