Browse Source

test

release/v0.1
jl777 8 years ago
parent
commit
420e9b2d01
  1. 40
      basilisk/basilisk_MSG.c
  2. 3
      basilisk/basilisk_swap.c

40
basilisk/basilisk_MSG.c

@ -128,6 +128,7 @@ char *basilisk_respond_OUT(struct supernet_info *myinfo,char *CMD,void *addr,cha
int32_t keylen; uint8_t key[64];
keylen = basilisk_messagekey(key,hash,valsobj);
//printf("keylen.%d datalen.%d\n",keylen,datalen);
char str[65]; printf("add message channel.%u msgid.%x %s\n",juint(valsobj,"channel"),juint(valsobj,"msgid"),bits256_str(str,hash));
return(basilisk_respond_addmessage(myinfo,key,keylen,data,datalen,1));
}
@ -199,31 +200,46 @@ int32_t basilisk_channelsend(struct supernet_info *myinfo,bits256 hash,uint32_t
return(retval);
}
int32_t basilisk_message_returned(uint8_t *data,int32_t maxlen,cJSON *item)
{
char *hexstr=0; cJSON *msgobj; int32_t datalen=0,retval = -1;
if ( (msgobj= jobj(item,"message")) != 0 )
{
if ( (hexstr= jstr(msgobj,"data")) != 0 && (datalen= is_hexstr(hexstr,0)) > 0 )
{
if ( datalen < maxlen )
{
decode_hex(data,datalen,hexstr);
retval = datalen;
} else printf("datalen.%d < maxlen.%d\n",datalen,maxlen);
} else printf("no hexstr.%p or datalen.%d\n",hexstr,datalen);
}
return(retval);
}
int32_t basilisk_channelget(struct supernet_info *myinfo,bits256 hash,uint32_t channel,uint32_t msgid,uint8_t *data,int32_t maxlen)
{
char *retstr,*hexstr=0; cJSON *valsobj,*retarray,*item,*msgobj; int32_t datalen=0,retval = -1;
char *retstr; cJSON *valsobj,*retarray,*item; int32_t i,datalen=0,retval = -1;
valsobj = cJSON_CreateObject();
jaddnum(valsobj,"channel",channel);
jaddnum(valsobj,"msgid",msgid);
jaddnum(valsobj,"fanout",1);
if ( (retstr= basilisk_getmessage(myinfo,0,0,0,hash,valsobj,0)) != 0 )
{
//printf("getmessage.(%s)\n",retstr);
if ( (retarray= cJSON_Parse(retstr)) != 0 )
{
if ( is_cJSON_Array(retarray) != 0 )
item = jitem(retarray,0);
else item = retarray;
if ( (msgobj= jobj(item,"message")) != 0 )
{
if ( (hexstr= jstr(msgobj,"data")) != 0 && (datalen= is_hexstr(hexstr,0)) > 0 )
for (i=0; i<cJSON_GetArraySize(retarray); i++)
{
if ( datalen < maxlen )
{
decode_hex(data,datalen,hexstr);
retval = datalen;
} else printf("datalen.%d < maxlen.%d\n",datalen,maxlen);
} else printf("no hexstr.%p or datalen.%d\n",hexstr,datalen);
} else printf("no message object.(%s)\n",retstr);
item = jitem(retarray,i);
if ( (datalen= basilisk_message_returned(data,maxlen,jitem(retarray,i))) > 0 )
break;
}
} else datalen = basilisk_message_returned(data,maxlen,retarray);
if ( datalen > 0 )
retval = 0;
free_json(retarray);
} else printf("cant parse message\n");
free(retstr);

3
basilisk/basilisk_swap.c

@ -742,14 +742,11 @@ struct basilisk_swap *basilisk_thread_start(struct supernet_info *myinfo,struct
printf("START swap requestid.%u\n",rp->requestid);
if ( bitcoin_swapinit(myinfo,swap) != 0 )
{
//#ifdef __APPLE__
fprintf(stderr,"launch.%d %d\n",myinfo->numswaps,(int32_t)(sizeof(myinfo->swaps)/sizeof(*myinfo->swaps)));
if ( OS_thread_create(malloc(sizeof(pthread_t)),NULL,(void *)basilisk_swaploop,(void *)swap) != 0 )
{
}
//iguana_launch(iguana_coinfind("BTCD"),"basilisk_swaploop",basilisk_swaploop,swap,IGUANA_PERMTHREAD);
//#endif
myinfo->swaps[myinfo->numswaps++] = swap;
}
}

Loading…
Cancel
Save