r19423: merge some tdb changes from SAMBA_3_0 to SAMBA_4_0
authorAndrew Tridgell <tridge@samba.org>
Fri, 20 Oct 2006 08:06:14 +0000 (08:06 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:21:29 +0000 (14:21 -0500)
this is in preparation of a merge in the other direction

source/lib/tdb/common/io.c
source/lib/tdb/common/open.c
source/lib/tdb/common/tdb.c
source/lib/tdb/common/transaction.c
source/lib/tdb/include/tdb.h

index 383023e88a4912fc7f23233cf1f2fd06ea6085b5..5d2c5c8e2ee03435a814289983d31d01ef22e477 100644 (file)
@@ -102,7 +102,7 @@ static int tdb_write(struct tdb_context *tdb, tdb_off_t off,
 /* Endian conversion: we only ever deal with 4 byte quantities */
 void *tdb_convert(void *buf, u32 size)
 {
-       u32 i, *p = buf;
+       u32 i, *p = (u32 *)buf;
        for (i = 0; i < size / 4; i++)
                p[i] = TDB_BYTEREV(p[i]);
        return buf;
@@ -282,7 +282,8 @@ int tdb_expand(struct tdb_context *tdb, tdb_off_t size)
        tdb->map_size += size;
 
        if (tdb->flags & TDB_INTERNAL) {
-               char *new_map_ptr = realloc(tdb->map_ptr, tdb->map_size);
+               char *new_map_ptr = (char *)realloc(tdb->map_ptr,
+                                                   tdb->map_size);
                if (!new_map_ptr) {
                        tdb->map_size -= size;
                        goto fail;
index 29ce1242ccf9922f6f3704addd6fef6cf6fc5736..e1f21aa8560b3e02bfadc2e0a61914de30f5f7da 100644 (file)
@@ -54,7 +54,7 @@ static int tdb_new_database(struct tdb_context *tdb, int hash_size)
 
        /* We make it up in memory, then write it out if not internal */
        size = sizeof(struct tdb_header) + (hash_size+1)*sizeof(tdb_off_t);
-       if (!(newdb = calloc(size, 1)))
+       if (!(newdb = (struct tdb_header *)calloc(size, 1)))
                return TDB_ERRCODE(TDB_ERR_OOM, -1);
 
        /* Fill in the header */
@@ -140,7 +140,7 @@ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int tdb_flags,
        unsigned char *vp;
        u32 vertest;
 
-       if (!(tdb = calloc(1, sizeof *tdb))) {
+       if (!(tdb = (struct tdb_context *)calloc(1, sizeof *tdb))) {
                /* Can't log this */
                errno = ENOMEM;
                goto fail;
@@ -263,7 +263,8 @@ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int tdb_flags,
        tdb->map_size = st.st_size;
        tdb->device = st.st_dev;
        tdb->inode = st.st_ino;
-       tdb->locked = calloc(tdb->header.hash_size+1, sizeof(tdb->locked[0]));
+       tdb->locked = (struct tdb_lock_type *)calloc(tdb->header.hash_size+1,
+                                                    sizeof(tdb->locked[0]));
        if (!tdb->locked) {
                TDB_LOG((tdb, TDB_DEBUG_ERROR, "tdb_open_ex: "
                         "failed to allocate lock structure for %s\n",
index 52e2d633b0a39a56c092485410945b4888db6a52..8d067ebeccf8eeb2f445ff8d650e9a2b15fae198 100644 (file)
@@ -423,3 +423,8 @@ int tdb_get_seqnum(struct tdb_context *tdb)
        tdb_ofs_read(tdb, TDB_SEQNUM_OFS, &seqnum);
        return seqnum;
 }
+
+int tdb_hash_size(struct tdb_context *tdb)
+{
+       return tdb->header.hash_size;
+}
index 526aef7d0389e4ca9ee74e0633d5df539f0e2d35..7dff9a95e345ec9df1ce9c07adb537a9ac18cfaa 100644 (file)
@@ -258,7 +258,8 @@ static int transaction_write(struct tdb_context *tdb, tdb_off_t off,
             off > tdb->transaction->old_map_size)) {
                unsigned char *data = best_el->data;
                el = best_el;
-               el->data = realloc(el->data, el->length + len);
+               el->data = (unsigned char *)realloc(el->data,
+                                                   el->length + len);
                if (el->data == NULL) {
                        tdb->ecode = TDB_ERR_OOM;
                        tdb->transaction->transaction_error = 1;
@@ -275,7 +276,7 @@ static int transaction_write(struct tdb_context *tdb, tdb_off_t off,
        }
 
        /* add a new entry at the end of the list */
-       el = malloc(sizeof(*el));
+       el = (struct tdb_transaction_el *)malloc(sizeof(*el));
        if (el == NULL) {
                tdb->ecode = TDB_ERR_OOM;
                tdb->transaction->transaction_error = 1;                
@@ -285,7 +286,7 @@ static int transaction_write(struct tdb_context *tdb, tdb_off_t off,
        el->prev = tdb->transaction->elements_last;
        el->offset = off;
        el->length = len;
-       el->data = malloc(len);
+       el->data = (unsigned char *)malloc(len);
        if (el->data == NULL) {
                free(el);
                tdb->ecode = TDB_ERR_OOM;
@@ -411,7 +412,8 @@ int tdb_transaction_start(struct tdb_context *tdb)
                return -1;
        }
 
-       tdb->transaction = calloc(sizeof(struct tdb_transaction), 1);
+       tdb->transaction = (struct tdb_transaction *)
+               calloc(sizeof(struct tdb_transaction), 1);
        if (tdb->transaction == NULL) {
                tdb->ecode = TDB_ERR_OOM;
                return -1;
@@ -437,7 +439,8 @@ int tdb_transaction_start(struct tdb_context *tdb)
 
        /* setup a copy of the hash table heads so the hash scan in
           traverse can be fast */
-       tdb->transaction->hash_heads = calloc(tdb->header.hash_size+1, sizeof(tdb_off_t));
+       tdb->transaction->hash_heads = (u32 *)
+               calloc(tdb->header.hash_size+1, sizeof(u32));
        if (tdb->transaction->hash_heads == NULL) {
                tdb->ecode = TDB_ERR_OOM;
                goto fail;
@@ -684,7 +687,7 @@ static int transaction_setup_recovery(struct tdb_context *tdb,
                return -1;
        }
 
-       data = malloc(recovery_size + sizeof(*rec));
+       data = (unsigned char *)malloc(recovery_size + sizeof(*rec));
        if (data == NULL) {
                tdb->ecode = TDB_ERR_OOM;
                return -1;
@@ -966,7 +969,7 @@ int tdb_transaction_recover(struct tdb_context *tdb)
 
        recovery_eof = rec.key_len;
 
-       data = malloc(rec.data_len);
+       data = (unsigned char *)malloc(rec.data_len);
        if (data == NULL) {
                TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to allocate recovery data\n"));         
                tdb->ecode = TDB_ERR_OOM;
index af3792cbfef7b5e311145267b664207014b6cf4a..8a2110ba6e7d79ac5ac02034a8b86c9e91665cef 100644 (file)
@@ -123,6 +123,7 @@ int tdb_transaction_commit(struct tdb_context *tdb);
 int tdb_transaction_cancel(struct tdb_context *tdb);
 int tdb_transaction_recover(struct tdb_context *tdb);
 int tdb_get_seqnum(struct tdb_context *tdb);
+int tdb_hash_size(struct tdb_context *tdb);
 
 /* Low level locking functions: use with care */
 int tdb_chainlock(struct tdb_context *tdb, TDB_DATA key);