Browse Source

stop api

release/v0.1
jl777 9 years ago
parent
commit
fa3d99dbf5
  1. 1
      iguana/iguana777.h
  2. 6
      iguana/iguana_json.c
  3. 6
      iguana/iguana_peers.c
  4. 26
      iguana/main.c
  5. 1
      includes/iguana_apideclares.h

1
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;

6
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);

6
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);
}
}

26
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<IGUANA_MAXCOINS; i++)
{
if ( Coins[i] != 0 )
@ -216,19 +217,20 @@ void iguana_exit()
}
}
}
printf("sockets closed, now EXIT\n");
exit(0);
}
#include <signal.h>
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)
{

1
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);

Loading…
Cancel
Save