// Copyright (c) 2012 Pieter Wuille
// Distributed under the MIT/X11 software license, see the accompanying
-// file license.txt or http://www.opensource.org/licenses/mit-license.php.
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef _BITCOIN_ADDRMAN
#define _BITCOIN_ADDRMAN 1
#include "netbase.h"
#include "protocol.h"
#include "util.h"
+#include "sync.h"
#include <map>
// where knowledge about this address first came from
CNetAddr source;
- // last succesfull connection by us
+ // last successful connection by us
int64 nLastSuccess;
// last try whatsoever by us:
// int64 CAddress::nLastTry
- // connection attempts since last succesful attempt
+ // connection attempts since last successful attempt
int nAttempts;
// reference count in new sets (memory only)
// * Bucket selection is based on cryptographic hashing, using a randomly-generated 256-bit key, which should not
// be observable by adversaries.
// * Several indexes are kept for high performance. Defining DEBUG_ADDRMAN will introduce frequent (and expensive)
-// consistency checks for the entire datastructure.
+// consistency checks for the entire data structure.
// total number of buckets for tried addresses
#define ADDRMAN_TRIED_BUCKET_COUNT 64
// last used nId
int nIdCount;
- // table with information about all nId's
+ // table with information about all nIds
std::map<int, CAddrInfo> mapInfo;
// find an nId based on its network address
std::map<CNetAddr, int> mapAddr;
- // randomly-ordered vector of all nId's
+ // randomly-ordered vector of all nIds
std::vector<int> vRandom;
// number of "tried" entries
CAddrInfo* Create(const CAddress &addr, const CNetAddr &addrSource, int *pnId = NULL);
// Swap two elements in vRandom.
- void SwapRandom(int nRandomPos1, int nRandomPos2);
+ void SwapRandom(unsigned int nRandomPos1, unsigned int nRandomPos2);
// Return position in given bucket to replace.
int SelectTried(int nKBucket);
// This is the only place where actual deletes occur.
// They are never deleted while in the "tried" table, only possibly evicted back to the "new" table.
int ShrinkNew(int nUBucket);
-
+
// Move an entry from the "new" table(s) to the "tried" table
// @pre vvUnkown[nOrigin].count(nId) != 0
void MakeTried(CAddrInfo& info, int nId, int nOrigin);
// * nNew
// * nTried
// * number of "new" buckets
- // * all nNew addrinfo's in vvNew
- // * all nTried addrinfo's in vvTried
+ // * all nNew addrinfos in vvNew
+ // * all nTried addrinfos in vvTried
// * for each bucket:
// * number of elements
// * for each element: index