diff options
author | Lennart Poettering <lennart@poettering.net> | 2003-08-26 21:43:31 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2003-08-26 21:43:31 +0000 |
commit | 3bc3ad24a2c089b4ee80fc1765fab3d2af378d00 (patch) | |
tree | 632a002b1c9a507ab49c11875eb373a6642902fb /src/history.c | |
parent | d4a8a10792c7f9b777487b2d15ab56c737e7e35c (diff) |
Initial commit
git-svn-id: file:///home/lennart/svn/public/syrep/trunk@2 07ea20a6-d2c5-0310-9e02-9ef735347d72
Diffstat (limited to 'src/history.c')
-rw-r--r-- | src/history.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/history.c b/src/history.c new file mode 100644 index 0000000..f8fbe63 --- /dev/null +++ b/src/history.c @@ -0,0 +1,48 @@ +#include <assert.h> +#include <string.h> +#include <time.h> + +#include "history.h" +#include "dbstruct.h" + +int history(struct syrep_db_context *c) { + int r = -1, ret; + DBC *cursor = NULL; + DBT key, data; + + assert(c && c->db_version_timestamp); + + if ((ret = c->db_version_timestamp->cursor(c->db_version_timestamp, NULL, &cursor, 0)) != 0) { + c->db_version_timestamp->err(c->db_version_timestamp, ret, "version_timestamp::cursor()"); + goto finish; + } + + memset(&key, 0, sizeof(key)); + memset(&data, 0, sizeof(data)); + + while ((ret = cursor->c_get(cursor, &key, &data, DB_NEXT)) == 0) { + struct syrep_version *version; + struct syrep_timestamp *timestamp; + + version = key.data; + timestamp = data.data; + + assert(version && timestamp); + + fprintf(stderr, "%4u %10u %s", version->v, timestamp->t, ctime((time_t*) (×tamp->t))); + } + + if (ret != DB_NOTFOUND) { + c->db_version_timestamp->err(c->db_version_timestamp, ret, "version_timestamp::c_get()"); + goto finish; + } + + r = 0; + +finish: + + if (cursor) + cursor->c_close(cursor); + + return r; +} |