Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 14 additions & 8 deletions src/datum_submitblock.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,17 @@ const char *submitblock_ptr = NULL;
bool submitblock_ptr_owned = false;
char submitblock_hash[256] = { 0 };

void preciousblock(CURL *curl, char *blockhash) {
static
void preciousblock(CURL * const curl, const char * const url, const char * const blockhash) {
json_t *json;
char rpc_data[384];

snprintf(rpc_data, sizeof(rpc_data), "{\"method\":\"preciousblock\",\"params\":[\"%s\"],\"id\":1}", blockhash);
json = bitcoind_json_rpc_call(curl, &datum_config, rpc_data);
if (url) {
json = json_rpc_call(curl, url, NULL, rpc_data);
} else {
json = bitcoind_json_rpc_call(curl, &datum_config, rpc_data);
}
if (!json) return;

json_decref(json);
Expand Down Expand Up @@ -102,7 +107,7 @@ bool datum_submitblock_log_reply(const json_t *reply, const char *block_hash_hex
}
}

void datum_submitblock_doit(CURL *tcurl, char *url, const char *submitblock_req, const char *block_hash_hex) {
void datum_submitblock_doit_and_log(CURL * const tcurl, const char * const url, const char * const submitblock_req, const char * const block_hash_hex) {
json_t *r;
// TODO: Move these types of things to the conf file
if (!url) {
Expand All @@ -112,9 +117,6 @@ void datum_submitblock_doit(CURL *tcurl, char *url, const char *submitblock_req,
}
datum_submitblock_log_reply(r, block_hash_hex);
if (r) json_decref(r);

// precious block!
preciousblock(tcurl, submitblock_hash);
}

void *datum_submitblock_thread(void *ptr) {
Expand All @@ -141,12 +143,16 @@ void *datum_submitblock_thread(void *ptr) {
if (submitblock_ptr != NULL) {
DLOG_DEBUG("SUBMITTING BLOCK TO OUR NODE!");

datum_submitblock_doit(tcurl,NULL,submitblock_ptr,submitblock_hash);
datum_submitblock_doit_and_log(tcurl, NULL, submitblock_ptr, submitblock_hash);
preciousblock(tcurl, NULL, submitblock_hash);

if (datum_config.extra_block_submissions_count > 0) {
for(i=0;i<datum_config.extra_block_submissions_count;i++) {
DLOG_DEBUG("SUBMITTING BLOCK TO EXTRA NODE %d!",i+1);
datum_submitblock_doit(tcurl,(char *)datum_config.extra_block_submissions_urls[i],submitblock_ptr,submitblock_hash);
datum_submitblock_doit_and_log(tcurl, datum_config.extra_block_submissions_urls[i], submitblock_ptr, submitblock_hash);
}
for (i = 0; i < datum_config.extra_block_submissions_count; ++i) {
preciousblock(tcurl, datum_config.extra_block_submissions_urls[i], submitblock_hash);
}
}
if (submitblock_ptr_owned) free((void *)submitblock_ptr);
Expand Down
Loading