|
|
@ -9,6 +9,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
static std::multimap<std::string, CZMQAbstractPublishNotifier*> mapPublishNotifiers;
|
|
|
|
static std::multimap<std::string, CZMQAbstractPublishNotifier*> mapPublishNotifiers;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static const char *MSG_HASHBLOCK = "hashblock";
|
|
|
|
|
|
|
|
static const char *MSG_HASHTX = "hashtx";
|
|
|
|
|
|
|
|
static const char *MSG_RAWBLOCK = "rawblock";
|
|
|
|
|
|
|
|
static const char *MSG_RAWTX = "rawtx";
|
|
|
|
|
|
|
|
|
|
|
|
// Internal function to send multipart message
|
|
|
|
// Internal function to send multipart message
|
|
|
|
static int zmq_send_multipart(void *sock, const void* data, size_t size, ...)
|
|
|
|
static int zmq_send_multipart(void *sock, const void* data, size_t size, ...)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -125,7 +130,7 @@ bool CZMQPublishHashBlockNotifier::NotifyBlock(const CBlockIndex *pindex)
|
|
|
|
char data[32];
|
|
|
|
char data[32];
|
|
|
|
for (unsigned int i = 0; i < 32; i++)
|
|
|
|
for (unsigned int i = 0; i < 32; i++)
|
|
|
|
data[31 - i] = hash.begin()[i];
|
|
|
|
data[31 - i] = hash.begin()[i];
|
|
|
|
int rc = zmq_send_multipart(psocket, "hashblock", 9, data, 32, 0);
|
|
|
|
int rc = zmq_send_multipart(psocket, MSG_HASHBLOCK, 9, data, 32, 0);
|
|
|
|
return rc == 0;
|
|
|
|
return rc == 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -136,7 +141,7 @@ bool CZMQPublishHashTransactionNotifier::NotifyTransaction(const CTransaction &t
|
|
|
|
char data[32];
|
|
|
|
char data[32];
|
|
|
|
for (unsigned int i = 0; i < 32; i++)
|
|
|
|
for (unsigned int i = 0; i < 32; i++)
|
|
|
|
data[31 - i] = hash.begin()[i];
|
|
|
|
data[31 - i] = hash.begin()[i];
|
|
|
|
int rc = zmq_send_multipart(psocket, "hashtx", 6, data, 32, 0);
|
|
|
|
int rc = zmq_send_multipart(psocket, MSG_HASHTX, 6, data, 32, 0);
|
|
|
|
return rc == 0;
|
|
|
|
return rc == 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -158,7 +163,7 @@ bool CZMQPublishRawBlockNotifier::NotifyBlock(const CBlockIndex *pindex)
|
|
|
|
ss << block;
|
|
|
|
ss << block;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int rc = zmq_send_multipart(psocket, "rawblock", 8, &(*ss.begin()), ss.size(), 0);
|
|
|
|
int rc = zmq_send_multipart(psocket, MSG_RAWBLOCK, 8, &(*ss.begin()), ss.size(), 0);
|
|
|
|
return rc == 0;
|
|
|
|
return rc == 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -168,6 +173,6 @@ bool CZMQPublishRawTransactionNotifier::NotifyTransaction(const CTransaction &tr
|
|
|
|
LogPrint("zmq", "zmq: Publish rawtx %s\n", hash.GetHex());
|
|
|
|
LogPrint("zmq", "zmq: Publish rawtx %s\n", hash.GetHex());
|
|
|
|
CDataStream ss(SER_NETWORK, PROTOCOL_VERSION);
|
|
|
|
CDataStream ss(SER_NETWORK, PROTOCOL_VERSION);
|
|
|
|
ss << transaction;
|
|
|
|
ss << transaction;
|
|
|
|
int rc = zmq_send_multipart(psocket, "rawtx", 5, &(*ss.begin()), ss.size(), 0);
|
|
|
|
int rc = zmq_send_multipart(psocket, MSG_RAWTX, 5, &(*ss.begin()), ss.size(), 0);
|
|
|
|
return rc == 0;
|
|
|
|
return rc == 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|