/****************************************************************************** * Copyright © 2014-2016 The SuperNET Developers. * * * * See the AUTHORS, DEVELOPER-AGREEMENT and LICENSE files at * * the top-level directory of this distribution for the individual copyright * * holder information and the developer policies on copyright and licensing. * * * * Unless otherwise agreed in a custom licensing agreement, no part of the * * SuperNET software, including this file may be copied, modified, propagated * * or distributed except according to the terms contained in the LICENSE file * * * * Removal or modification of this copyright notice is prohibited. * * * ******************************************************************************/ #include "../../includes/cJSON.h" #include "cdb-0.75/alloc.c" #include "cdb-0.75/buffer.c" #include "cdb-0.75/buffer_copy.c" #include "cdb-0.75/buffer_put.c" #include "cdb-0.75/buffer_get.c" #include "cdb-0.75/byte_copy.c" #include "cdb-0.75/byte_cr.c" #include "cdb-0.75/byte_diff.c" #include "cdb-0.75/cdb.c" #include "cdb-0.75/cdb_hash.c" #include "cdb-0.75/cdb_make.c" #include "cdb-0.75/uint32_pack.c" #include "cdb-0.75/uint32_unpack.c" #include "cdb-0.75/str_len.c" #include "cdb-0.75/seek_cur.c" #include "cdb-0.75/seek_set.c" #include "cdb-0.75/open_read.c" #include "cdb-0.75/open_trunc.c" #include "cdb-0.75/error.c" #include "cdb-0.75/error_str.c" int32_t cdb_jsonmake(cJSON *array,char *dest,char *tmpname) { uint32_t klen,dlen,i,n,h; char *field,*value; int32_t fd; cJSON *item; struct cdb_make cdb; memset(&cdb,0,sizeof(cdb)); if ( (fd= open_trunc(tmpname)) == -1 ) return(-1); if ( cdb_make_start(&cdb,fd) == -1 ) { close(fd); return(-2); } if ( (n= cJSON_GetArraySize(array)) > 0 ) { for (i=0; i 0) { value = jprint(item,0); if ( (dlen= str_len(value)) > 0 ) { if ( klen > 429496720 || dlen > 429496720 || cdb_make_addbegin(&cdb,klen,dlen) == -1 ) { close(fd); free(value); return(-3); } h = CDB_HASHSTART; for (i=0; i