1 /* 2 Unix SMB/CIFS implementation. 3 4 trivial database library 5 6 Copyright (C) Andrew Tridgell 1999-2005 7 Copyright (C) Paul `Rusty' Russell 2000 8 Copyright (C) Jeremy Allison 2000-2003 9 10 ** NOTE! The following LGPL license applies to the tdb 11 ** library. This does NOT imply that all of Samba is released 12 ** under the LGPL 13 14 This library is free software; you can redistribute it and/or 15 modify it under the terms of the GNU Lesser General Public 16 License as published by the Free Software Foundation; either 17 version 3 of the License, or (at your option) any later version. 18 19 This library is distributed in the hope that it will be useful, 20 but WITHOUT ANY WARRANTY; without even the implied warranty of 21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 22 Lesser General Public License for more details. 23 24 You should have received a copy of the GNU Lesser General Public 25 License along with this library; if not, see <http://www.gnu.org/licenses/>. 26*/ 27 28#include "tdb_private.h" 29 30enum TDB_ERROR tdb_error(struct tdb_context *tdb) 31{ 32 return tdb->ecode; 33} 34 35static struct tdb_errname { 36 enum TDB_ERROR ecode; const char *estring; 37} emap[] = { {TDB_SUCCESS, "Success"}, 38 {TDB_ERR_CORRUPT, "Corrupt database"}, 39 {TDB_ERR_IO, "IO Error"}, 40 {TDB_ERR_LOCK, "Locking error"}, 41 {TDB_ERR_OOM, "Out of memory"}, 42 {TDB_ERR_EXISTS, "Record exists"}, 43 {TDB_ERR_NOLOCK, "Lock exists on other keys"}, 44 {TDB_ERR_EINVAL, "Invalid parameter"}, 45 {TDB_ERR_NOEXIST, "Record does not exist"}, 46 {TDB_ERR_RDONLY, "write not permitted"} }; 47 48/* Error string for the last tdb error */ 49const char *tdb_errorstr(struct tdb_context *tdb) 50{ 51 uint32_t i; 52 for (i = 0; i < sizeof(emap) / sizeof(struct tdb_errname); i++) 53 if (tdb->ecode == emap[i].ecode) 54 return emap[i].estring; 55 return "Invalid error code"; 56} 57 58