diff options
| author | drstein 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 |
|---|---|---|
| committer | drstein 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 |
| commit | 2a08701f557179d6a3787aae896d7dd9eb6e8982 (patch) | |
| tree | ff5b7ef0575d94496e85256718da08cba4db84b2 /src/chanserv.c | |
| parent | 1baff08ad8255b254149d456c632c853d3dc5c81 (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.c | 29 |
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); |
