X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftdb2%2Ftdb1_error.c;fp=ccan%2Ftdb2%2Ftdb1_error.c;h=e5558059a96656d4ca2dfc829d9debb775adf0da;hb=19e6c1a250ade1e7204ada17163294855585e825;hp=0000000000000000000000000000000000000000;hpb=476567430be6962625bf399192e20938985232c7;p=ccan diff --git a/ccan/tdb2/tdb1_error.c b/ccan/tdb2/tdb1_error.c new file mode 100644 index 00000000..e5558059 --- /dev/null +++ b/ccan/tdb2/tdb1_error.c @@ -0,0 +1,56 @@ + /* + Unix SMB/CIFS implementation. + + trivial database library + + Copyright (C) Andrew Tridgell 1999-2005 + Copyright (C) Paul `Rusty' Russell 2000 + Copyright (C) Jeremy Allison 2000-2003 + + ** NOTE! The following LGPL license applies to the tdb + ** library. This does NOT imply that all of Samba is released + ** under the LGPL + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, see . +*/ + +#include "tdb1_private.h" + +_PUBLIC_ enum TDB1_ERROR tdb1_error(struct tdb1_context *tdb) +{ + return tdb->ecode; +} + +static struct tdb1_errname { + enum TDB1_ERROR ecode; const char *estring; +} emap[] = { {TDB1_SUCCESS, "Success"}, + {TDB1_ERR_CORRUPT, "Corrupt database"}, + {TDB1_ERR_IO, "IO Error"}, + {TDB1_ERR_LOCK, "Locking error"}, + {TDB1_ERR_OOM, "Out of memory"}, + {TDB1_ERR_EXISTS, "Record exists"}, + {TDB1_ERR_NOLOCK, "Lock exists on other keys"}, + {TDB1_ERR_EINVAL, "Invalid parameter"}, + {TDB1_ERR_NOEXIST, "Record does not exist"}, + {TDB1_ERR_RDONLY, "write not permitted"} }; + +/* Error string for the last tdb error */ +_PUBLIC_ const char *tdb1_errorstr(struct tdb1_context *tdb) +{ + uint32_t i; + for (i = 0; i < sizeof(emap) / sizeof(struct tdb1_errname); i++) + if (tdb->ecode == emap[i].ecode) + return emap[i].estring; + return "Invalid error code"; +}