HASH_ARRAY_STRING(basilisk,getmessage,hash,vals,hexstr) { int32_t keylen; uint8_t key[64]; if ( myinfo->RELAYID >= 0 ) { keylen = basilisk_messagekey(key,hash,vals); return(basilisk_respond_getmessage(myinfo,key,keylen)); } else return(basilisk_standardservice("MSG",myinfo,0,myinfo->myaddr.persistent,vals,hexstr,1)); }
void gecko_requesthdrs(struct supernet_info *myinfo,struct iguana_info *virt,int32_t hdrsi) { bits256 zero; struct iguana_bundle *bp=0; cJSON *vals; char *retstr; if ( (bp= virt->bundles[hdrsi]) != 0 ) { vals = cJSON_CreateObject(); memset(zero.bytes,0,sizeof(zero)); jaddstr(vals,"symbol",virt->symbol); jaddstr(vals,"type","HDR"); if ( (retstr= basilisk_standardservice("GET",myinfo,0,bp->hashes[0],vals,0,0)) != 0 ) free(retstr); free_json(vals); } else printf("dont have bundle needed\n"); }
HASH_ARRAY_STRING(basilisk,sendmessage,hash,vals,hexstr) { int32_t keylen,datalen; uint8_t key[64],space[16384],*data,*ptr = 0; char *retstr=0; if ( myinfo->RELAYID >= 0 ) { keylen = basilisk_messagekey(key,hash,vals); if ( (data= get_dataptr(BASILISK_HDROFFSET,&ptr,&datalen,space,sizeof(space),hexstr)) != 0 ) retstr = basilisk_respond_addmessage(myinfo,key,keylen,data,datalen,1); if ( ptr != 0 ) free(ptr); if ( retstr != 0 ) free(retstr); } if ( vals != 0 ) jaddnum(vals,"fanout",BASILISK_MAXFANOUT); return(basilisk_standardservice("OUT",myinfo,0,hash,vals,hexstr,1)); }