MCPcopy Create free account
hub / github.com/BTCGPU/BTCGPU / Check_

Method Check_

src/addrman.cpp:397–471  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

395
396#ifdef DEBUG_ADDRMAN
397int CAddrMan::Check_()
398{
399 std::set<int> setTried;
400 std::map<int, int> mapNew;
401
402 if (vRandom.size() != (size_t)(nTried + nNew))
403 return -7;
404
405 for (const auto& entry : mapInfo) {
406 int n = entry.first;
407 const CAddrInfo& info = entry.second;
408 if (info.fInTried) {
409 if (!info.nLastSuccess)
410 return -1;
411 if (info.nRefCount)
412 return -2;
413 setTried.insert(n);
414 } else {
415 if (info.nRefCount < 0 || info.nRefCount > ADDRMAN_NEW_BUCKETS_PER_ADDRESS)
416 return -3;
417 if (!info.nRefCount)
418 return -4;
419 mapNew[n] = info.nRefCount;
420 }
421 if (mapAddr[info] != n)
422 return -5;
423 if (info.nRandomPos < 0 || (size_t)info.nRandomPos >= vRandom.size() || vRandom[info.nRandomPos] != n)
424 return -14;
425 if (info.nLastTry < 0)
426 return -6;
427 if (info.nLastSuccess < 0)
428 return -8;
429 }
430
431 if (setTried.size() != (size_t)nTried)
432 return -9;
433 if (mapNew.size() != (size_t)nNew)
434 return -10;
435
436 for (int n = 0; n < ADDRMAN_TRIED_BUCKET_COUNT; n++) {
437 for (int i = 0; i < ADDRMAN_BUCKET_SIZE; i++) {
438 if (vvTried[n][i] != -1) {
439 if (!setTried.count(vvTried[n][i]))
440 return -11;
441 if (mapInfo[vvTried[n][i]].GetTriedBucket(nKey) != n)
442 return -17;
443 if (mapInfo[vvTried[n][i]].GetBucketPosition(nKey, false, n) != i)
444 return -18;
445 setTried.erase(vvTried[n][i]);
446 }
447 }
448 }
449
450 for (int n = 0; n < ADDRMAN_NEW_BUCKET_COUNT; n++) {
451 for (int i = 0; i < ADDRMAN_BUCKET_SIZE; i++) {
452 if (vvNew[n][i] != -1) {
453 if (!mapNew.count(vvNew[n][i]))
454 return -12;

Callers

nothing calls this directly

Calls 7

GetTriedBucketMethod · 0.80
GetBucketPositionMethod · 0.80
sizeMethod · 0.45
insertMethod · 0.45
countMethod · 0.45
eraseMethod · 0.45
IsNullMethod · 0.45

Tested by

no test coverage detected