From 5f0ff799a533435d141e74a0cb7c512a52e37c57 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 4 Sep 2016 09:57:11 -0300 Subject: [PATCH] test --- iguana/iguana_ramchain.c | 44 +++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/iguana/iguana_ramchain.c b/iguana/iguana_ramchain.c index cd00e47ae..4b3322e88 100755 --- a/iguana/iguana_ramchain.c +++ b/iguana/iguana_ramchain.c @@ -2043,9 +2043,26 @@ void iguana_ramchain_disp(struct iguana_ramchain *ramchain) } } +void iguana_blockdelete(struct iguana_info *coin,bits256 hash2,int32_t i) +{ + char fname[512]; int32_t checki,hdrsi; bits256 zero; + memset(&zero,0,sizeof(zero)); + fname[0] = 0; + if ( (checki= iguana_peerfname(coin,&hdrsi,GLOBAL_TMPDIR,fname,0,hash2,zero,1,1)) != i ) + { + //printf("checki.%d vs %d mismatch? %s\n",checki,i,fname); + } + if ( fname[0] != 0 ) + { + OS_removefile(fname,0); + strcat(fname,".tmp"); + OS_removefile(fname,0); + } +} + void iguana_blockunmark(struct iguana_info *coin,struct iguana_block *block,struct iguana_bundle *bp,int32_t i,int32_t deletefile) { - void *ptr; int32_t recvlen,hdrsi,checki; char fname[1024]; static const bits256 zero; + void *ptr; int32_t recvlen; if ( 0 && bp != 0 ) printf("UNMARK.[%d:%d]\n",bp->hdrsi,i); if ( block != 0 ) @@ -2067,19 +2084,7 @@ void iguana_blockunmark(struct iguana_info *coin,struct iguana_block *block,stru } } if ( deletefile != 0 ) - { - fname[0] = 0; - if ( block != 0 && (checki= iguana_peerfname(coin,&hdrsi,GLOBAL_TMPDIR,fname,0,block->RO.hash2,zero,1,1)) != i ) - { - //printf("checki.%d vs %d mismatch? %s\n",checki,i,fname); - } - if ( fname[0] != 0 ) - { - OS_removefile(fname,0); - strcat(fname,".tmp"); - OS_removefile(fname,0); - } - } + iguana_blockdelete(coin,block->RO.hash2,i); } int32_t iguana_oldbundlefiles(struct iguana_info *coin,uint32_t *ipbits,void **ptrs,long *filesizes,struct iguana_bundle *bp) @@ -2457,12 +2462,12 @@ int32_t iguana_mapchaininit(char *fname,struct iguana_info *coin,struct iguana_r // helper threads: NUM_HELPERS int32_t iguana_bundlesaveHT(struct supernet_info *myinfo,struct iguana_info *coin,struct OS_memspace *mem,struct OS_memspace *memB,struct iguana_bundle *bp,uint32_t starttime) // helper thread { - static int depth; static const bits256 zero; + static int depth; RAMCHAIN_DESTDECLARE; RAMCHAIN_DECLARE; RAMCHAIN_ZEROES; void **ptrs; long *filesizes; uint32_t *ipbits; char fname[1024]; struct iguana_ramchain *R,*mapchain,*dest,newchain; uint32_t fpipbits; bits256 prevhash2; int32_t i,starti,endi,bp_n,numtxids,valid,sigspace,pubkeyspace,numunspents,numspends,numpkinds,numexternaltxids,scriptspace; struct iguana_block *block; long fpos; - struct OS_memspace HASHMEM; int32_t err,j,num,hdrsi,bundlei,firsti= 1,retval = -1; + struct OS_memspace HASHMEM; int32_t err,j,num,bundlei,firsti= 1,retval = -1; memset(&HASHMEM,0,sizeof(HASHMEM)); starti = 0, endi = bp->n - 1; //B = 0, Ux = 0, Sx = 0, P = 0, A = 0, X = 0, Kspace = TXbits = PKbits = 0, U = 0, S = 0, T = 0; @@ -2626,14 +2631,15 @@ int32_t iguana_bundlesaveHT(struct supernet_info *myinfo,struct iguana_info *coi //printf("delete %d files hdrs.[%d] retval.%d bp_n.%d\n",num,bp->hdrsi,retval,bp_n); if ( iguana_bundleload(coin,&newchain,bp,0) == 0 ) retval = -1; - else if ( bp_n == bp->n && bp->n == coin->chain->bundlesize && bp->hdrsi < coin->bundlescount-3 ) + else //if ( bp_n == bp->n && bp->n == coin->chain->bundlesize && bp->hdrsi < coin->bundlescount-3 ) { for (j=starti; j<=endi; j++) - { + iguana_blockdelete(coin,bp->hashes[j],j); + /*{ if ( iguana_peerfname(coin,&hdrsi,GLOBAL_TMPDIR,fname,0,bp->hashes[j],zero,1,1) >= 0 && coin->peers != 0 ) coin->peers->numfiles -= OS_removefile(fname,0); else printf("error removing.(%s)\n",fname); - } + }*/ //sprintf(dirname,"%s/%s/%d",GLOBAL_TMPDIR,coin->symbol,bp->bundleheight), OS_portable_rmdir(dirname,1); } //sleep(1);