From 8e1d188be6ee848a09b246a28e17cee578e54160 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 9 Apr 2017 13:27:28 +0300 Subject: [PATCH] Test --- .gitignore | 2 ++ basilisk/basilisk_swap.c | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index e0bb44855..873950923 100755 --- a/.gitignore +++ b/.gitignore @@ -282,3 +282,5 @@ iguana/DB/SWAPS/3408402932-4088991610 iguana/DB/SWAPS/3772541120-2007204891 iguana/DB/SWAPS/784303571-1929722462 + +iguana/DB/SWAPS/3221116355-3522779294 diff --git a/basilisk/basilisk_swap.c b/basilisk/basilisk_swap.c index f0f8e80da..21f0bb3ce 100755 --- a/basilisk/basilisk_swap.c +++ b/basilisk/basilisk_swap.c @@ -1164,7 +1164,7 @@ int32_t basilisk_swapget(struct supernet_info *myinfo,struct basilisk_swap *swap if ( swap->subsock >= 0 ) nn_close(swap->subsock), swap->subsock = -1; swap->connected = 0; - basilisk_psockinit(myinfo,swap,0); + basilisk_psockinit(myinfo,swap,swap->I.iambob != 0); } mp = &swap->messages[i]; if ( msgbits != 0x80000000 ) @@ -1199,7 +1199,7 @@ uint32_t basilisk_swapsend(struct supernet_info *myinfo,struct basilisk_swap *sw nn_close(swap->pushsock), swap->pushsock = -1; if ( swap->subsock >= 0 ) nn_close(swap->subsock), swap->subsock = -1; - swap->connected = 0; + swap->connected = swap->I.iambob != 0 ? -1 : 0; } } //else printf("send.[%d] %x offset.%d datalen.%d [%llx]\n",sentbytes,msgbits,offset,datalen,*(long long *)data); @@ -2232,7 +2232,7 @@ void basilisk_psockinit(struct supernet_info *myinfo,struct basilisk_swap *swap, return; } sprintf(keystr,"%08x-%08x",swap->I.req.requestid,swap->I.req.quoteid); - if ( (retstr= _dex_kvsearch(myinfo,"KV",keystr)) != 0 ) + if ( swap->connected == 0 && (retstr= _dex_kvsearch(myinfo,"KV",keystr)) != 0 ) { if ( (retjson= cJSON_Parse(retstr)) != 0 ) { @@ -2258,7 +2258,7 @@ void basilisk_psockinit(struct supernet_info *myinfo,struct basilisk_swap *swap, printf("KVsearch.(%s) connected.%d socks.(%d %d)\n",retstr,swap->connected,swap->pushsock,swap->subsock); free(retstr); } - if ( swap->connected == 0 && amlp != 0 ) + if ( swap->connected <= 0 && amlp != 0 ) { if ( (retstr= _dex_psock(myinfo,"{}")) != 0 ) { @@ -2349,7 +2349,7 @@ void basilisk_swaploop(void *_swap) dex_channelsend(myinfo,swap->I.req.srchash,swap->I.req.desthash,channel,0x4000000,(void *)&swap->I.req.requestid,sizeof(swap->I.req.requestid)); //,60); if ( swap->connected == 0 ) basilisk_psockinit(myinfo,swap,swap->I.iambob != 0); - if ( swap->connected != 0 ) + if ( swap->connected > 0 ) { printf("A r%u/q%u swapstate.%x\n",swap->I.req.requestid,swap->I.req.quoteid,swap->I.statebits); basilisk_sendstate(myinfo,swap,data,maxlen);