From 5197f89a474d9af15c801f0820cee3457bbd1799 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sat, 14 Jan 2017 02:18:48 +0200 Subject: [PATCH 1/3] fix --- iguana/dpow/dpow_network.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/iguana/dpow/dpow_network.c b/iguana/dpow/dpow_network.c index 86c81a22e..8c971c69d 100755 --- a/iguana/dpow/dpow_network.c +++ b/iguana/dpow/dpow_network.c @@ -52,7 +52,7 @@ int32_t signed_nn_send(void *ctx,bits256 privkey,int32_t sock,void *packet,int32 } return(-1); } - +//dex* api int32_t signed_nn_recv(void **freeptrp,void *ctx,struct dpow_entry *notaries,int32_t n,int32_t sock,void *packetp) { int32_t i,recvbytes; uint8_t pubkey33[33]; bits256 packethash; struct signed_nnpacket *sigpacket=0; @@ -243,7 +243,7 @@ char *_dex_reqsend(struct supernet_info *myinfo,char *handler,uint8_t *data,int3 pfd.events = NN_POLLOUT; if ( nn_poll(&pfd,1,100) > 0 ) { - sentbytes = signed_nn_send(myinfo->ctx,myinfo->persistent_priv,myinfo->reqsock,dexp,size); + sentbytes = nn_send(myinfo->reqsock,dexp,size,0); //printf(" sent.%d:%d datalen.%d\n",sentbytes,size,datalen); break; } @@ -258,7 +258,7 @@ char *_dex_reqsend(struct supernet_info *myinfo,char *handler,uint8_t *data,int3 ipbits = 0; if ( strcmp(handler,"DEX") == 0 ) ipbits = *retptr; - else + else if ( retptr != 0 ) { retstr = clonestr((char *)retptr); if ( (retjson= cJSON_Parse(retstr)) != 0 ) @@ -288,7 +288,7 @@ char *_dex_reqsend(struct supernet_info *myinfo,char *handler,uint8_t *data,int3 printf("%d: subscribe connect (%s)\n",myinfo->numdexipbits,str); } } - nn_connect(myinfo->reqsock,nanomsg_tcpname(0,str,ipaddr,REP_SOCK)); + //nn_connect(myinfo->reqsock,nanomsg_tcpname(0,str,ipaddr,REP_SOCK)); printf("%d: req connect (%s)\n",myinfo->numdexipbits,str); } } @@ -693,7 +693,7 @@ int32_t dex_subsock_poll(struct supernet_info *myinfo) if ( myinfo->subsock >= 0 && (size= signed_nn_recv(&freeptr,myinfo->ctx,myinfo->notaries,myinfo->numnotaries,myinfo->subsock,&dexp)) >= 0 ) { //printf("SUBSOCK.%08x recv.%d datalen.%d\n",dexp->crc32,size,dexp->datalen); - if ( dex_packetcheck(myinfo,dexp,size) == 0 ) + if ( dexp != 0 && dex_packetcheck(myinfo,dexp,size) == 0 ) { //printf("SUBSOCK.%08x ",dexp->crc32); dex_packet(myinfo,dexp,size); @@ -1564,7 +1564,7 @@ int32_t dpow_nanomsg_update(struct supernet_info *myinfo) } if ( myinfo->repsock >= 0 ) // from clients { - if ( (size= signed_nn_recv(&freeptr,myinfo->ctx,myinfo->notaries,myinfo->numnotaries,myinfo->repsock,&dexp)) > 0 ) + if ( (size= nn_recv(myinfo->repsock,&dexp,NN_MSG,0)) > 0 ) { num++; //fprintf(stderr,"%d ",size); @@ -1596,8 +1596,10 @@ int32_t dpow_nanomsg_update(struct supernet_info *myinfo) } } //printf("GOT DEX rep PACKET.%d\n",size); - if ( freeptr != 0 ) - nn_freemsg(freeptr), dexp = 0, freeptr = 0; + //if ( freeptr != 0 ) + // nn_freemsg(freeptr), dexp = 0, freeptr = 0; + if ( dexp != 0 ) + nn_freemsg(dexp), dexp = 0; } } portable_mutex_unlock(&myinfo->dpowmutex); From f330a7a02202f931e2e0d23252d6c1a5fb764199 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sat, 14 Jan 2017 02:23:25 +0200 Subject: [PATCH 2/3] test --- iguana/dpow/dpow_network.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/iguana/dpow/dpow_network.c b/iguana/dpow/dpow_network.c index 8c971c69d..16460247c 100755 --- a/iguana/dpow/dpow_network.c +++ b/iguana/dpow/dpow_network.c @@ -253,7 +253,7 @@ char *_dex_reqsend(struct supernet_info *myinfo,char *handler,uint8_t *data,int3 // printf("%02x",((uint8_t *)data)[i]); if ( (recvbytes= signed_nn_recv(&freeptr,myinfo->ctx,myinfo->notaries,myinfo->numnotaries,myinfo->reqsock,&retptr)) >= 0 ) { - //printf("req returned.[%d]\n",recvbytes); + printf("req returned.[%d]\n",recvbytes); portable_mutex_lock(&myinfo->dexmutex); ipbits = 0; if ( strcmp(handler,"DEX") == 0 ) @@ -1568,10 +1568,11 @@ int32_t dpow_nanomsg_update(struct supernet_info *myinfo) { num++; //fprintf(stderr,"%d ",size); - //printf("REP got %d\n",size); + printf("REP got %d\n",size); if ( (retstr= dex_response(&broadcastflag,myinfo,dexp)) != 0 ) { signed_nn_send(myinfo->ctx,myinfo->persistent_priv,myinfo->repsock,retstr,(int32_t)strlen(retstr)+1); + printf("send back[%ld]\n",strlen(retstr)+1); free(retstr); if ( broadcastflag != 0 ) { @@ -1585,13 +1586,13 @@ int32_t dpow_nanomsg_update(struct supernet_info *myinfo) { r = myinfo->dpowipbits[rand() % m]; signed_nn_send(myinfo->ctx,myinfo->persistent_priv,myinfo->repsock,&r,sizeof(r)); - //printf("REP.%08x <- rand ip m.%d %x\n",dexp->crc32,m,r); + printf("REP.%08x <- rand ip m.%d %x\n",dexp->crc32,m,r); } else printf("illegal state without dpowipbits?\n"); if ( dex_packetcheck(myinfo,dexp,size) == 0 ) { signed_nn_send(myinfo->ctx,myinfo->persistent_priv,myinfo->dexsock,dexp,size); signed_nn_send(myinfo->ctx,myinfo->persistent_priv,myinfo->pubsock,dexp,size); - //printf("REP.%08x -> dexbus and pub, t.%d lag.%d\n",dexp->crc32,dexp->timestamp,(int32_t)(time(NULL)-dexp->timestamp)); + printf("REP.%08x -> dexbus and pub, t.%d lag.%d\n",dexp->crc32,dexp->timestamp,(int32_t)(time(NULL)-dexp->timestamp)); dex_packet(myinfo,dexp,size); } } From 5f6ab3476f77f137a921fc3acc67b8d0de406f82 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sat, 14 Jan 2017 02:27:12 +0200 Subject: [PATCH 3/3] fix dex* serverside --- iguana/dpow/dpow_network.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/iguana/dpow/dpow_network.c b/iguana/dpow/dpow_network.c index 16460247c..d2cded61d 100755 --- a/iguana/dpow/dpow_network.c +++ b/iguana/dpow/dpow_network.c @@ -1568,11 +1568,11 @@ int32_t dpow_nanomsg_update(struct supernet_info *myinfo) { num++; //fprintf(stderr,"%d ",size); - printf("REP got %d\n",size); + //printf("REP got %d\n",size); if ( (retstr= dex_response(&broadcastflag,myinfo,dexp)) != 0 ) { signed_nn_send(myinfo->ctx,myinfo->persistent_priv,myinfo->repsock,retstr,(int32_t)strlen(retstr)+1); - printf("send back[%ld]\n",strlen(retstr)+1); + //printf("send back[%ld]\n",strlen(retstr)+1); free(retstr); if ( broadcastflag != 0 ) { @@ -1586,13 +1586,13 @@ int32_t dpow_nanomsg_update(struct supernet_info *myinfo) { r = myinfo->dpowipbits[rand() % m]; signed_nn_send(myinfo->ctx,myinfo->persistent_priv,myinfo->repsock,&r,sizeof(r)); - printf("REP.%08x <- rand ip m.%d %x\n",dexp->crc32,m,r); + //printf("REP.%08x <- rand ip m.%d %x\n",dexp->crc32,m,r); } else printf("illegal state without dpowipbits?\n"); if ( dex_packetcheck(myinfo,dexp,size) == 0 ) { signed_nn_send(myinfo->ctx,myinfo->persistent_priv,myinfo->dexsock,dexp,size); signed_nn_send(myinfo->ctx,myinfo->persistent_priv,myinfo->pubsock,dexp,size); - printf("REP.%08x -> dexbus and pub, t.%d lag.%d\n",dexp->crc32,dexp->timestamp,(int32_t)(time(NULL)-dexp->timestamp)); + //printf("REP.%08x -> dexbus and pub, t.%d lag.%d\n",dexp->crc32,dexp->timestamp,(int32_t)(time(NULL)-dexp->timestamp)); dex_packet(myinfo,dexp,size); } }