Incremental Improvements to DHT:

Added Knowledge of Friends, Friends of Friends and Relays.
	- Added bdfriendlist class to store information.
	- New interface function updateKnownPeer().
	- includes IP addresses, if known. (for filtering)

Bad Peer Filtering.
	- Check IDs against known peer IP addresses.
	- Added checks in checkPotentialPeer().
	- Added checks in addPeer().
	- Running in TestMode at the moment (Bad Peers are only flagged).

Other Fixes:
	- Removed some warning about int/uint comparisons.
	- added bdSpace::flagpeer() fn to support above.



git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-dhtmods@4680 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2011-11-22 13:16:03 +00:00
parent 1cfcac7377
commit 4cd7523947
16 changed files with 487 additions and 18 deletions

View file

@ -87,7 +87,7 @@ uint8_t convertCharToUint8(char ch1, char ch2)
int bloomFilter::setFilterBits(const std::string &hex)
{
int bytes = (mFilterBits / BITS_PER_BYTE);
uint32_t bytes = (mFilterBits / BITS_PER_BYTE);
if (mFilterBits % BITS_PER_BYTE)
{
bytes++;
@ -100,7 +100,7 @@ int bloomFilter::setFilterBits(const std::string &hex)
// convert to binary array.
uint8_t *tmparray = (uint8_t *) malloc(bytes);
int i = 0;
uint32_t i = 0;
for(i = 0; i < bytes; i++)
{
@ -186,7 +186,7 @@ uint32_t bloomFilter::filterBits()
uint32_t bloomFilter::countBits()
{
int count = 0;
int i;
uint32_t i;
for(i = 0; i < mFilterBits; i++)
{
if (mBits[i])
@ -206,7 +206,7 @@ void bloomFilter::printFilter(std::ostream &out)
out << std::endl;
out << "BITS: ";
int i;
uint32_t i;
for(i = 0; i < mFilterBits; i++)
{
if ((i > 0) && (i % 32 == 0))
@ -236,7 +236,7 @@ void bloomFilter::setHashFunction(int idx, uint32_t (*hashfn)(const std::string
void bloomFilter::add(const std::string &hex)
{
uint32_t (*hashfn)(const std::string &);
int i;
uint32_t i;
for(i = 0; i < mNoHashs; i++)
{
hashfn = mHashFns[i];
@ -253,7 +253,7 @@ void bloomFilter::add(const std::string &hex)
bool bloomFilter::test(const std::string &hex)
{
uint32_t (*hashfn)(const std::string &);
int i;
uint32_t i;
for(i = 0; i < mNoHashs; i++)
{
hashfn = mHashFns[i];