diff options
author | Sergey Poznyakoff <gray@nxc.no> | 2014-06-01 19:38:04 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@nxc.no> | 2014-06-01 19:38:04 +0200 |
commit | c16de06862f9b2106dcb7810fc20856689ef2aa6 (patch) | |
tree | 385af24e0c3a395d747fb22ab7a9f13d242e96b9 | |
parent | 6054989b78b7a481770a1608c809a56e1cf5cc7d (diff) | |
download | vmod-binlog-c16de06862f9b2106dcb7810fc20856689ef2aa6.tar.gz vmod-binlog-c16de06862f9b2106dcb7810fc20856689ef2aa6.tar.bz2 |
Bugfixes in binlogsel
* src/binlogsel.c (selmem): Fix operation in case when all
records are earlier than start_time.
(read_status_fp): Set start_time 1 second later than the
status file time.
Set last_ts.
-rw-r--r-- | src/binlogsel.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/binlogsel.c b/src/binlogsel.c index b3fb75b..9587c2b 100644 --- a/src/binlogsel.c +++ b/src/binlogsel.c @@ -340,11 +340,15 @@ selmem(const char *name, void *base) } break; case 1: - for (; start + 1 >= 0; start--) { - if (start_time < getrec(base, hdr->recsize, start)->ts) + for (; start >= 0; start--) { + if (start_time < + getrec(base, hdr->recsize, start)->ts) { + ++start; break; } - ++start; + } + if (start == 0) + return; } } else start = 0; @@ -917,7 +921,8 @@ read_status_fp(FILE *fp) return 1; timemask |= START_TIME; - start_time = ts; + start_time = ts + 1; + last_ts = start_time; return 0; } |