#include "tdb1-external-agent.h"
#include "tdb1-lock-tracking.h"
-#include "tdb1-logging.h"
+#include "logging.h"
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <limits.h>
#include <string.h>
#include <errno.h>
-#include <ccan/tdb2/tdb1.h>
#include <ccan/tdb2/tdb1_private.h>
#include <ccan/tap/tap.h>
#include <stdio.h>
#include <stdarg.h>
-static struct tdb1_context *tdb;
+static struct tdb_context *tdb;
static enum agent_return do_operation(enum operation op, const char *name)
{
- TDB1_DATA k;
+ TDB_DATA k;
enum agent_return ret;
- TDB1_DATA data;
+ TDB_DATA data;
- if (op != OPEN && op != OPEN_WITH_CLEAR_IF_FIRST && !tdb) {
+ if (op != OPEN && !tdb) {
diag("external: No tdb open!");
return OTHER_FAILURE;
}
diag("Already have tdb %s open", tdb->name);
return OTHER_FAILURE;
}
- tdb = tdb1_open_ex(name, 0, TDB1_DEFAULT, O_RDWR, 0,
- &taplogctx, NULL);
+ tdb = tdb_open(name, TDB_VERSION1, O_RDWR, 0, &tap_log_attr);
if (!tdb) {
if (!locking_would_block1)
diag("Opening tdb gave %s", strerror(errno));
} else
ret = SUCCESS;
break;
- case OPEN_WITH_CLEAR_IF_FIRST:
- if (tdb)
- return OTHER_FAILURE;
- tdb = tdb1_open_ex(name, 0, TDB1_CLEAR_IF_FIRST, O_RDWR, 0,
- &taplogctx, NULL);
- ret = tdb ? SUCCESS : OTHER_FAILURE;
- break;
case TRANSACTION_START:
- ret = tdb1_transaction_start(tdb) == 0 ? SUCCESS : OTHER_FAILURE;
+ ret = tdb_transaction_start(tdb) == TDB_SUCCESS ? SUCCESS : OTHER_FAILURE;
break;
case FETCH:
- data = tdb1_fetch(tdb, k);
- if (data.dptr == NULL) {
+ if (tdb_fetch(tdb, k, &data) != TDB_SUCCESS) {
if (tdb->last_error == TDB_ERR_NOEXIST)
ret = FAILED;
else
free(data.dptr);
break;
case STORE:
- ret = tdb1_store(tdb, k, k, 0) == 0 ? SUCCESS : OTHER_FAILURE;
+ if (tdb_store(tdb, k, k, 0) == TDB_SUCCESS)
+ ret = SUCCESS;
+ else
+ ret = OTHER_FAILURE;
break;
case TRANSACTION_COMMIT:
- ret = tdb1_transaction_commit(tdb)==0 ? SUCCESS : OTHER_FAILURE;
+ ret = tdb_transaction_commit(tdb) == TDB_SUCCESS ? SUCCESS : OTHER_FAILURE;
break;
case CHECK:
- ret = tdb1_check(tdb, NULL, NULL) == 0 ? SUCCESS : OTHER_FAILURE;
+ ret = tdb_check(tdb, NULL, NULL) == TDB_SUCCESS ? SUCCESS : OTHER_FAILURE;
break;
case NEEDS_RECOVERY:
ret = tdb1_needs_recovery(tdb) ? SUCCESS : FAILED;
break;
case CLOSE:
- ret = tdb1_close(tdb) == 0 ? SUCCESS : OTHER_FAILURE;
+ ret = tdb_close(tdb) == 0 ? SUCCESS : OTHER_FAILURE;
tdb = NULL;
break;
default:
{
switch (op) {
case OPEN: return "OPEN";
- case OPEN_WITH_CLEAR_IF_FIRST: return "OPEN_WITH_CLEAR_IF_FIRST";
case TRANSACTION_START: return "TRANSACTION_START";
case FETCH: return "FETCH";
case STORE: return "STORE";