+ } else if (op == OPEN || op == OPEN_WITH_CLEAR_IF_FIRST || op == CLOSE) {
+ tdb_close(tdb);
+ tdb = NULL;
+ return 1;
+ } else if (op == STORE_KEEP_OPENED) {
+ if (tdb_store(tdb, k, d, 0) != 0)
+ return -2;
+ return 1;
+ } else if (op == FETCH_KEEP_OPENED) {
+ TDB_DATA ret;
+ ret = tdb_fetch(tdb, k);
+ if (ret.dptr == NULL) {
+ if (tdb_error(tdb) == TDB_ERR_NOEXIST)
+ return 1;
+ return -3;
+ }
+ if (ret.dsize != 1 || *(char *)ret.dptr != 'b')
+ return -4;
+ free(ret.dptr);
+ return 1;
+ } else if (op == CHECK_KEEP_OPENED) {
+ return tdb_check(tdb, NULL, 0) == 0;
+ } else if (op == NEEDS_RECOVERY_KEEP_OPENED) {
+ return tdb_maybe_needs_recovery(tdb);