summaryrefslogtreecommitdiff
path: root/src/channels.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/channels.c')
-rw-r--r--src/channels.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/channels.c b/src/channels.c
index aec70dfe8..87e6a8d05 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -583,8 +583,18 @@ void do_join(const char *source, int ac, char **av)
if (check_kick(user, s, time(NULL)))
continue;
+ time_t ts = time(NULL);
+
+ if (ac == 2) {
+ if (debug) {
+ alog("debug: recieved a new TS for JOIN: %ld",
+ (long int) ts);
+ }
+ ts = strtoul(av[1], NULL, 10);
+ }
+
chan = findchan(s);
- chan = join_user_update(user, chan, s, time(NULL));
+ chan = join_user_update(user, chan, s, ts);
chan_set_correct_modes(user, chan, 1);
send_event(EVENT_JOIN_CHANNEL, 3, EVENT_STOP, source, s);