Example #1
0
void CBFreeVersion(void * vself){
	CBVersion * self = vself;
	if (self->addRecv) CBReleaseObject(self->addRecv);
	if (self->addSource) CBReleaseObject(self->addSource);
	if (self->userAgent) CBReleaseObject(self->userAgent);
	CBFreeMessage(self);
}
Example #2
0
void CBFreeBlockHeaders(void * vself) {
    CBBlockHeaders * self = vself;
    for (uint16_t x = 0; x < self->headerNum; x++) {
        CBReleaseObject(self->blockHeaders[x]);
    }
    free(self->blockHeaders);
    CBFreeMessage(self);
}
Example #3
0
void CBFreeChainDescriptor(void * vself){
	CBChainDescriptor * self = vself;
	for (uint16_t x = 0; x < self->hashNum; x++) {
		CBReleaseObject(self->hashes[x]);
	}
	free(self->hashes);
	CBFreeMessage(self);
}
void CBFreeInventoryBroadcast(void * vself){
	CBInventoryBroadcast * self = vself;
	for (uint16_t x = 0; x < self->itemNum; x++) {
		CBReleaseObject(self->items[x]); // Free item
	}
	free(self->items); // Free item pointer memory block.
	CBFreeMessage(self);
}
Example #5
0
void CBFreeTransaction(void * vself){
	CBTransaction * self = vself;
	for (uint32_t x = 0; x < self->inputNum; x++)
		CBReleaseObject(self->inputs[x]);
	free(self->inputs);
	for (uint32_t x = 0; x < self->outputNum; x++)
		CBReleaseObject(self->outputs[x]);
	free(self->outputs);
	CBFreeMessage(CBGetObject(self));
}
Example #6
0
void BRSendPong(BRConnection *c, CBByteArray *nonce, uint32_t length) {
    if (length != 8) {
        fprintf(stderr, "Ping nonce size %d not 8\n", length);
        exit(1);
    }
    printf("Sending pong reply\n");
    CBMessage *m = CBNewMessageByObject();
    CBInitMessageByData(m, nonce);
    BRSendMessage(c, m, "pong");
    CBFreeMessage(m);
}
Example #7
0
void CBFreeBlock(void * vself){
	CBBlock * self = vself;
	if(self->prevBlockHash) CBReleaseObject(self->prevBlockHash);
	if(self->merkleRoot) CBReleaseObject(self->merkleRoot);
	if (self->transactions) { // Check for the loop since the transaction number can be set without having any transactions.
		for (uint32_t x = 0; x < self->transactionNum; x++)
			if(self->transactions[x]) CBReleaseObject(self->transactions[x]);
		free(self->transactions);
	}
	if(self->hash) CBReleaseObject(self->hash);
	CBFreeMessage(CBGetObject(self));
}
Example #8
0
void BRSendPing(BRConnection *c) {
    printf("Sending ping\n");
    
    CBMessage *m = CBNewMessageByObject();
    uint64_t nonce = rand();
    CBByteArray *ba = CBNewByteArrayWithDataCopy((uint8_t *) &nonce, 8);
    CBInitMessageByData(m, ba);

    BRSendMessage(c, m, "ping");

    CBReleaseObject(ba);
    CBFreeMessage(m);
}
Example #9
0
void CBFreeTransactionOutput(void * vself){
	CBTransactionOutput * self = vself;
	if (self->scriptObject) CBReleaseObject(self->scriptObject);
	CBFreeMessage(self);
}
Example #10
0
void CBFreeNetworkAddress(void * vself){
	CBNetworkAddress * self = vself;
	if (self->ip) CBReleaseObject(self->ip); 
	CBFreeMessage(self);
}
Example #11
0
void CBFreeInventoryItem(void * vself){
	CBInventoryItem * self = vself;
	CBReleaseObject(self->hash);
	CBFreeMessage(self);
}
Example #12
0
void CBFreeTransactionInput(void * vself){
	CBTransactionInput * self = vself;
	if (self->scriptObject) CBReleaseObject(self->scriptObject);
	if (self->prevOut.hash) CBReleaseObject(self->prevOut.hash);
	CBFreeMessage(self);
}
Example #13
0
void BRSendVerack(BRConnection *c) {
    printf("Sending verack reply\n");
    CBMessage *m = CBNewMessageByObject();
    BRSendMessage(c, m, "verack");
    CBFreeMessage(m);
}
Example #14
0
void BRSendGetAddr(BRConnection *c) {
    printf("Sending getaddr\n");
    CBMessage *m = CBNewMessageByObject();
    BRSendMessage(c, m, "getaddr");
    CBFreeMessage(m);
}