@ -1190,8 +1190,31 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
}
}
}
}
if ( strCommand = = NetMsgType : : REJECT )
{
if ( fDebug ) {
try {
std : : string strMsg ; unsigned char ccode ; std : : string strReason ;
vRecv > > LIMITED_STRING ( strMsg , CMessageHeader : : COMMAND_SIZE ) > > ccode > > LIMITED_STRING ( strReason , MAX_REJECT_MESSAGE_LENGTH ) ;
std : : ostringstream ss ;
ss < < strMsg < < " code " < < itostr ( ccode ) < < " : " < < strReason ;
if ( strCommand = = NetMsgType : : VERSION )
if ( strMsg = = NetMsgType : : BLOCK | | strMsg = = NetMsgType : : TX )
{
uint256 hash ;
vRecv > > hash ;
ss < < " : hash " < < hash . ToString ( ) ;
}
LogPrint ( " net " , " Reject %s \n " , SanitizeString ( ss . str ( ) ) ) ;
} catch ( const std : : ios_base : : failure & ) {
// Avoid feedback loops by preventing reject messages from triggering a new reject message.
LogPrint ( " net " , " Unparseable reject message received \n " ) ;
}
}
}
else if ( strCommand = = NetMsgType : : VERSION )
{
{
// Each connection can only send one version message
// Each connection can only send one version message
if ( pfrom - > nVersion ! = 0 )
if ( pfrom - > nVersion ! = 0 )
@ -2544,31 +2567,6 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr
pfrom - > fRelayTxes = true ;
pfrom - > fRelayTxes = true ;
}
}
else if ( strCommand = = NetMsgType : : REJECT )
{
if ( fDebug ) {
try {
std : : string strMsg ; unsigned char ccode ; std : : string strReason ;
vRecv > > LIMITED_STRING ( strMsg , CMessageHeader : : COMMAND_SIZE ) > > ccode > > LIMITED_STRING ( strReason , MAX_REJECT_MESSAGE_LENGTH ) ;
std : : ostringstream ss ;
ss < < strMsg < < " code " < < itostr ( ccode ) < < " : " < < strReason ;
if ( strMsg = = NetMsgType : : BLOCK | | strMsg = = NetMsgType : : TX )
{
uint256 hash ;
vRecv > > hash ;
ss < < " : hash " < < hash . ToString ( ) ;
}
LogPrint ( " net " , " Reject %s \n " , SanitizeString ( ss . str ( ) ) ) ;
} catch ( const std : : ios_base : : failure & ) {
// Avoid feedback loops by preventing reject messages from triggering a new reject message.
LogPrint ( " net " , " Unparseable reject message received \n " ) ;
}
}
}
else if ( strCommand = = NetMsgType : : FEEFILTER ) {
else if ( strCommand = = NetMsgType : : FEEFILTER ) {
CAmount newFeeFilter = 0 ;
CAmount newFeeFilter = 0 ;
vRecv > > newFeeFilter ;
vRecv > > newFeeFilter ;