~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to lib/tdb/common/error.c

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
 
 
30
enum TDB_ERROR tdb_error(struct tdb_context *tdb)
 
31
{
 
32
        return tdb->ecode;
 
33
}
 
34
 
 
35
static 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 */
 
49
const 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