diff --git a/src/bitdht/bdfilter.cc b/src/bitdht/bdfilter.cc index fca8ca9..2624907 100644 --- a/src/bitdht/bdfilter.cc +++ b/src/bitdht/bdfilter.cc @@ -66,7 +66,7 @@ void bdFilter::writeBannedIpFile() for( std::map::iterator it=mFiltered.begin();it!=mFiltered.end();++it) { - fprintf(fd, "%s %d %ld %ld\n", bdnet_inet_ntoa(it->second.mAddr.sin_addr).c_str(), it->second.mFilterFlags, it->second.mFilterTS, it->second.mLastSeen) ; + fprintf(fd, "%s %u %lu %lu\n", bdnet_inet_ntoa(it->second.mAddr.sin_addr).c_str(), it->second.mFilterFlags, it->second.mFilterTS, it->second.mLastSeen) ; #ifdef DEBUG_FILTER fprintf(stderr, "Storing Peer Address: %s \n", bdnet_inet_ntoa(it->second.mAddr.sin_addr).c_str()) ; #endif @@ -212,11 +212,11 @@ int bdFilter::addPeerToFilter(const struct sockaddr_in& addr, uint32_t flags) // mFiltered[saddr] = *it ; // } // } -// void bdFilter::getFilteredPeers(std::list& peers) -// { -// for(std::map::iterator it = mFiltered.begin(); it != mFiltered.end();++it) -// peers.push_back(it->second) ; -// } +void bdFilter::getFilteredPeers(std::list& peers) +{ + for(std::map::iterator it = mFiltered.begin(); it != mFiltered.end();++it) + peers.push_back(it->second) ; +} /* fast check if the addr is in the structure */ int bdFilter::addrOkay(struct sockaddr_in *addr) { diff --git a/src/bitdht/bdfilter.h b/src/bitdht/bdfilter.h index 2d43f5d..b671270 100644 --- a/src/bitdht/bdfilter.h +++ b/src/bitdht/bdfilter.h @@ -40,11 +40,11 @@ class bdFilteredPeer { - public: - struct sockaddr_in mAddr; - uint32_t mFilterFlags; /* reasons why we are filtering */ - time_t mFilterTS; - time_t mLastSeen; + public: + struct sockaddr_in mAddr; + uint32_t mFilterFlags; /* reasons why we are filtering */ + time_t mFilterTS; + time_t mLastSeen; }; class bdFilter @@ -56,7 +56,7 @@ class bdFilter //bool filtered(std::list &answer); bool filteredIPs(std::list &answer); -void loadFilteredPeers(const std::list& peers) ; +//void loadFilteredPeers(const std::list& peers) ; void getFilteredPeers(std::list &peers); int checkPeer(const bdId *id, uint32_t peerFlags); diff --git a/src/bitdht/bdnode.cc b/src/bitdht/bdnode.cc index 42d597a..9161c69 100644 --- a/src/bitdht/bdnode.cc +++ b/src/bitdht/bdnode.cc @@ -93,10 +93,11 @@ void bdNode::init() setNodeDhtMode(BITDHT_MODE_TRAFFIC_DEFAULT); } -//void bdNode::getFilteredPeers(std::list& peers) -//{ -// mFilterPeers.getFilteredPeers(peers) ; -//} +bool bdNode::getFilteredPeers(std::list& peers) +{ + mFilterPeers.getFilteredPeers(peers) ; + return true ; +} // //void bdNode::loadFilteredPeers(const std::list& peers) //{ diff --git a/src/bitdht/bdnode.h b/src/bitdht/bdnode.h index 79ec716..77ee0d9 100644 --- a/src/bitdht/bdnode.h +++ b/src/bitdht/bdnode.h @@ -149,8 +149,8 @@ class bdNode: public bdNodePublisher void updateStore(); bool addressBanned(const sockaddr_in &raddr) ; - void getFilteredPeers(std::list &peers); - void loadFilteredPeers(const std::list &peers); + bool getFilteredPeers(std::list &peers); + //void loadFilteredPeers(const std::list &peers); /* simplified outgoing msg functions (for the managers) */ virtual void send_ping(bdId *id); /* message out */ diff --git a/src/udp/udpbitdht.cc b/src/udp/udpbitdht.cc index 91be827..5410d50 100644 --- a/src/udp/udpbitdht.cc +++ b/src/udp/udpbitdht.cc @@ -217,6 +217,11 @@ bool UdpBitDht::isAddressBanned(const sockaddr_in &raddr) return mBitDhtManager->addressBanned(raddr) ; } +bool UdpBitDht::getListOfBannedIps(std::list& ipl) +{ + return mBitDhtManager->getFilteredPeers(ipl) ; +} + /* stats and Dht state */ diff --git a/src/udp/udpbitdht.h b/src/udp/udpbitdht.h index b5459ac..3694687 100644 --- a/src/udp/udpbitdht.h +++ b/src/udp/udpbitdht.h @@ -88,6 +88,7 @@ virtual int getDhtQueries(std::map &queries); virtual int getDhtQueryStatus(const bdNodeId *id, bdQuerySummary &query); virtual bool isAddressBanned(const sockaddr_in &raddr) ; + virtual bool getListOfBannedIps(std::list &ipl); /* stats and Dht state */ virtual int startDht(); @@ -111,9 +112,8 @@ virtual int status(std::ostream &out); virtual void run(); /**** do whats to be done ***/ - int tick(); - - private: +int tick(); +private: void clearDataTransferred();