mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-17 13:30:36 -04:00
Started implementation of ban list. For now, just gathers the list of banned IPs from
the DHT and is not used to reject IPs yet (the DHT list is, even if DHT is desactivated). Next steps: GUI with switch controls, exchange of IP ban lists between friends, handling IP ranges. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@8297 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
5200f30a32
commit
047977b645
13 changed files with 337 additions and 204 deletions
|
@ -66,7 +66,7 @@ void bdFilter::writeBannedIpFile()
|
|||
|
||||
for( std::map<uint32_t,bdFilteredPeer>::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<bdFilteredPeer>& peers)
|
||||
// {
|
||||
// for(std::map<uint32_t,bdFilteredPeer>::iterator it = mFiltered.begin(); it != mFiltered.end();++it)
|
||||
// peers.push_back(it->second) ;
|
||||
// }
|
||||
void bdFilter::getFilteredPeers(std::list<bdFilteredPeer>& peers)
|
||||
{
|
||||
for(std::map<uint32_t,bdFilteredPeer>::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)
|
||||
{
|
||||
|
|
|
@ -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<bdFilteredPeer> &answer);
|
||||
bool filteredIPs(std::list<struct sockaddr_in> &answer);
|
||||
|
||||
void loadFilteredPeers(const std::list<bdFilteredPeer>& peers) ;
|
||||
//void loadFilteredPeers(const std::list<bdFilteredPeer>& peers) ;
|
||||
void getFilteredPeers(std::list<bdFilteredPeer> &peers);
|
||||
|
||||
int checkPeer(const bdId *id, uint32_t peerFlags);
|
||||
|
|
|
@ -93,10 +93,11 @@ void bdNode::init()
|
|||
setNodeDhtMode(BITDHT_MODE_TRAFFIC_DEFAULT);
|
||||
|
||||
}
|
||||
//void bdNode::getFilteredPeers(std::list<bdFilteredPeer>& peers)
|
||||
//{
|
||||
// mFilterPeers.getFilteredPeers(peers) ;
|
||||
//}
|
||||
bool bdNode::getFilteredPeers(std::list<bdFilteredPeer>& peers)
|
||||
{
|
||||
mFilterPeers.getFilteredPeers(peers) ;
|
||||
return true ;
|
||||
}
|
||||
//
|
||||
//void bdNode::loadFilteredPeers(const std::list<bdFilteredPeer>& peers)
|
||||
//{
|
||||
|
|
|
@ -149,8 +149,8 @@ class bdNode: public bdNodePublisher
|
|||
void updateStore();
|
||||
|
||||
bool addressBanned(const sockaddr_in &raddr) ;
|
||||
void getFilteredPeers(std::list<bdFilteredPeer> &peers);
|
||||
void loadFilteredPeers(const std::list<bdFilteredPeer> &peers);
|
||||
bool getFilteredPeers(std::list<bdFilteredPeer> &peers);
|
||||
//void loadFilteredPeers(const std::list<bdFilteredPeer> &peers);
|
||||
|
||||
/* simplified outgoing msg functions (for the managers) */
|
||||
virtual void send_ping(bdId *id); /* message out */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue