diff options
author | Gavin Andresen <gavinandresen@gmail.com> | 2013-10-28 16:28:00 +1000 |
---|---|---|
committer | Gavin Andresen <gavinandresen@gmail.com> | 2013-10-29 11:20:14 +1000 |
commit | 9038b18f4655a5b8ad119d768decd1c693ebd7dd (patch) | |
tree | 6c1f93a7b83201ef029347bfdbf388a9216860b8 /src/net.h | |
parent | d5d1425657d0dd2dc76f4938c8141a387a81a5a8 (diff) |
-fuzzmessagestest=N : randomly corrupt 1-of-N sent messages
I needed this to test the new "reject" p2p message, but it should be generally
useful for fuzz-testing network message handling code.
Diffstat (limited to 'src/net.h')
-rw-r--r-- | src/net.h | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -218,6 +218,9 @@ protected: static CCriticalSection cs_setBanned; int nMisbehavior; + // Basic fuzz-testing + void Fuzz(int nChance); // modifies ssSend + public: uint256 hashContinue; CBlockIndex* pindexLastGetBlocksBegin; @@ -434,12 +437,17 @@ public: // TODO: Document the precondition of this function. Is cs_vSend locked? void EndMessage() UNLOCK_FUNCTION(cs_vSend) { - if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) + // The -*messagestest options are intentionally not documented in the help message, + // since they are only used during development to debug the networking code and are + // not intended for end-users. + if (mapArgs.count("-dropmessagestest") && GetRand(GetArg("-dropmessagestest", 2)) == 0) { LogPrint("net", "dropmessages DROPPING SEND MESSAGE\n"); AbortMessage(); return; } + if (mapArgs.count("-fuzzmessagestest")) + Fuzz(GetArg("-fuzzmessagestest", 10)); if (ssSend.size() == 0) return; |