Browse Source

pending accepts Q

release/v0.1
jl777 9 years ago
parent
commit
5f10e8f76e
  1. 1
      iguana/iguana777.h
  2. 20
      iguana/iguana_accept.c
  3. 2
      iguana/iguana_peers.c

1
iguana/iguana777.h

@ -693,6 +693,7 @@ 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();
int32_t iguana_pendingaccept(struct iguana_info *coin);
extern queue_t bundlesQ;

20
iguana/iguana_accept.c

@ -93,7 +93,7 @@ void iguana_acceptloop(void *args)
ptr->ipbits = ipbits;
ptr->sock = sock;
ptr->port = coin->chain->portp2p;
printf("NEED TO DEAL WITH PENDING ACCEPTS\n");
printf("queue PENDING ACCEPTS\n");
queue_enqueue("acceptQ",&coin->acceptQ,&ptr->DL,0);
}
else
@ -107,6 +107,24 @@ void iguana_acceptloop(void *args)
}
}
int32_t iguana_pendingaccept(struct iguana_info *coin)
{
struct iguana_accept *ptr; char ipaddr[64]; struct iguana_peer *addr;
if ( (ptr= queue_dequeue(&coin->acceptQ,0)) != 0 )
{
if ( (addr= iguana_peerslot(coin,ptr->ipbits)) != 0 )
{
expand_ipbits(ipaddr,ptr->ipbits);
printf("iguana_pendingaccept LAUNCH DEDICATED THREAD for %s\n",ipaddr);
addr->usock = ptr->sock;
strcpy(addr->symbol,coin->symbol);
iguana_launch(coin,"accept",iguana_dedicatedglue,addr,IGUANA_CONNTHREAD);
myfree(ptr,sizeof(*ptr));
return(1);
} else queue_enqueue("requeue_acceptQ",&coin->acceptQ,&ptr->DL,0);
}
return(0);
}
/*int32_t iguana_acceptport(struct iguana_info *coin,uint16_t port)
{
if ( OS_thread_create(malloc(sizeof(pthread_t)),NULL,(void *)iguana_acceptloop,(void *)coin) != 0 )

2
iguana/iguana_peers.c

@ -670,6 +670,8 @@ uint32_t iguana_possible_peer(struct iguana_info *coin,char *ipaddr)
queue_enqueue("possibleQ",&coin->possibleQ,queueitem(ipaddr),1);
return((uint32_t)time(NULL));
}
else if ( iguana_pendingaccept(coin) != 0 )
return((uint32_t)time(NULL));
else if ( (ipaddr= queue_dequeue(&coin->possibleQ,1)) == 0 )
return((uint32_t)time(NULL));
#ifdef IGUANA_DISABLEPEERS

Loading…
Cancel
Save