diff --git a/iguana/iguana777.h b/iguana/iguana777.h index 4f60efbf9..499321781 100755 --- a/iguana/iguana777.h +++ b/iguana/iguana777.h @@ -688,6 +688,7 @@ int32_t iguana_bundleiters(struct iguana_info *coin,struct iguana_bundle *bp,int void ramcoder_test(void *data,int64_t len); void SuperNET_init(void *args); char *SuperNET_parser(struct supernet_info *myinfo,char *agent,char *method,cJSON *json,char *remoteaddr); +void iguana_exit(); extern queue_t bundlesQ; diff --git a/iguana/iguana_json.c b/iguana/iguana_json.c index 6be5d4431..b31dd9d7e 100755 --- a/iguana/iguana_json.c +++ b/iguana/iguana_json.c @@ -384,6 +384,12 @@ void SuperNET_parsepeers(struct supernet_info *myinfo,cJSON *array,int32_t n,int #include "../includes/iguana_apidefs.h" +ZERO_ARGS(SuperNET,stop) +{ + iguana_exit(); + return(clonestr("{\"result\":\"exit started\"}")); +} + TWO_ARRAYS(SuperNET,mypeers,supernet,rawpeers) { SuperNET_parsepeers(myinfo,supernet,cJSON_GetArraySize(supernet),1); diff --git a/iguana/iguana_peers.c b/iguana/iguana_peers.c index 1698d2f56..d7464d0d0 100755 --- a/iguana/iguana_peers.c +++ b/iguana/iguana_peers.c @@ -397,7 +397,7 @@ int32_t iguana_queue_send(struct iguana_info *coin,struct iguana_peer *addr,int3 packet->embargo.millis += delay; } memcpy(packet->serialized,serialized,datalen); - printf("%p queue send.(%s) %d to (%s)\n",packet,serialized+4,datalen,addr->ipaddr); + //printf("%p queue send.(%s) %d to (%s)\n",packet,serialized+4,datalen,addr->ipaddr); queue_enqueue("sendQ",&addr->sendQ,&packet->DL,0); return(datalen); } @@ -735,7 +735,7 @@ int32_t iguana_pollsendQ(struct iguana_info *coin,struct iguana_peer *addr) struct iguana_packet *packet; if ( (packet= queue_dequeue(&addr->sendQ,0)) != 0 ) { - if ( addr->supernet != 0 || strcmp((char *)&packet->serialized[4],"SuperNET") == 0 ) + if ( 0 && (addr->supernet != 0 || strcmp((char *)&packet->serialized[4],"SuperNET") == 0) ) printf("%s: send.(%s).%d usock.%d dead.%u ready.%u supernet.%d\n",addr->ipaddr,packet->serialized+4,packet->datalen,addr->usock,addr->dead,addr->ready,addr->supernet); if ( strcmp((char *)&packet->serialized[4],"getdata") == 0 ) { @@ -750,7 +750,7 @@ int32_t iguana_pollsendQ(struct iguana_info *coin,struct iguana_peer *addr) } else { - printf("embargo.x %llu %f\n",(long long)packet->embargo.x,tai_diff(packet->embargo,tai_now())); + //printf("embargo.x %llu %f\n",(long long)packet->embargo.x,tai_diff(packet->embargo,tai_now())); queue_enqueue("embargo",&addr->sendQ,&packet->DL,0); } } diff --git a/iguana/main.c b/iguana/main.c index a338844a2..b73bd6df3 100644 --- a/iguana/main.c +++ b/iguana/main.c @@ -71,10 +71,10 @@ int32_t iguana_jsonQ() } if ( (ptr= queue_dequeue(&jsonQ,0)) != 0 ) { -printf("process.(%s)\n",ptr->jsonstr); +//printf("process.(%s)\n",ptr->jsonstr); if ( (*ptr->retjsonstrp= SuperNET_jsonstr(ptr->myinfo,ptr->jsonstr,ptr->remoteaddr)) == 0 ) *ptr->retjsonstrp = clonestr("{\"error\":\"null return from iguana_jsonstr\"}"); - printf("finished.(%s) -> (%s)\n",ptr->jsonstr,*ptr->retjsonstrp!=0?*ptr->retjsonstrp:"null return"); +//printf("finished.(%s) -> (%s)\n",ptr->jsonstr,*ptr->retjsonstrp!=0?*ptr->retjsonstrp:"null return"); queue_enqueue("finishedQ",&finishedQ,&ptr->DL,0); return(1); } @@ -100,7 +100,7 @@ char *iguana_blockingjsonstr(struct supernet_info *myinfo,char *jsonstr,uint64_t usleep(100); if ( retjsonstr != 0 ) { - printf("got blocking retjsonstr.(%s) delete allocsize.%d:%d\n",retjsonstr,allocsize,ptr->allocsize); + //printf("got blocking retjsonstr.(%s) delete allocsize.%d:%d\n",retjsonstr,allocsize,ptr->allocsize); queue_delete(&finishedQ,&ptr->DL,ptr->allocsize,1); return(retjsonstr); } @@ -192,6 +192,7 @@ char *SuperNET_p2p(struct iguana_info *coin,int32_t *delaymillisp,char *ipaddr,u void iguana_exit() { int32_t i,j,k; + printf("start EXIT\n"); for (i=0; i -void sigint_func() { printf("SIGINT\n"); iguana_exit(); } -void sigillegal_func() { printf("SIGILL\n"); iguana_exit(); } -void sighangup_func() { printf("SIGHUP\n"); iguana_exit(); } -void sigkill_func() { printf("SIGKILL\n"); iguana_exit(); } -void sigabort_func() { printf("SIGABRT\n"); iguana_exit(); } -void sigquit_func() { printf("SIGQUIT\n"); iguana_exit(); } -void sigchild_func() { printf("SIGCHLD\n"); signal(SIGCHLD,sigchild_func); } -void sigalarm_func() { printf("SIGALRM\n"); signal(SIGALRM,sigalarm_func); } -void sigcontinue_func() { printf("SIGCONT\n"); signal(SIGCONT,sigcontinue_func); } +void sigint_func() { printf("\nSIGINT\n"); iguana_exit(); } +void sigillegal_func() { printf("\nSIGILL\n"); iguana_exit(); } +void sighangup_func() { printf("\nSIGHUP\n"); iguana_exit(); } +void sigkill_func() { printf("\nSIGKILL\n"); iguana_exit(); } +void sigabort_func() { printf("\nSIGABRT\n"); iguana_exit(); } +void sigquit_func() { printf("\nSIGQUIT\n"); iguana_exit(); } +void sigchild_func() { printf("\nSIGCHLD\n"); signal(SIGCHLD,sigchild_func); } +void sigalarm_func() { printf("\nSIGALRM\n"); signal(SIGALRM,sigalarm_func); } +void sigcontinue_func() { printf("\nSIGCONT\n"); signal(SIGCONT,sigcontinue_func); } void iguana_main(void *arg) { diff --git a/includes/iguana_apideclares.h b/includes/iguana_apideclares.h index 29de3da2b..8930884bc 100755 --- a/includes/iguana_apideclares.h +++ b/includes/iguana_apideclares.h @@ -18,6 +18,7 @@ TWO_STRINGS(SuperNET,html,agentform,htmlfile); STRING_ARG(SuperNET,bitcoinrpc,setcoin); STRING_ARG(SuperNET,getpeers,activecoin); TWO_ARRAYS(SuperNET,mypeers,supernet,rawpeers); +ZERO_ARGS(SuperNET,stop); STRING_ARG(iguana,peers,activecoin); STRING_AND_INT(iguana,maxpeers,activecoin,max);