Changeset 559

Show
Ignore:
Timestamp:
04/27/07 03:05:51 (16 months ago)
Author:
hyriand
Message:

Preliminary IP blocked framework

Location:
museek+/trunk/sources/Museek
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • museek+/trunk/sources/Museek/Museek.cc

    r462 r559  
    161161        return false; 
    162162} 
     163bool Museek::is_ip_blocked(const std::string& ip) const { 
     164        return false; 
     165} 
     166 
    163167void Museek::mu_set_user_warnings(bool uw) { 
    164168        mUserWarnings = uw; 
  • museek+/trunk/sources/Museek/Museek.hh

    r462 r559  
    110110        virtual bool is_banned(const std::string& user) const; 
    111111        virtual bool is_trusted(const std::string& user) const; 
     112        virtual bool is_ip_blocked(const std::string& ip) const; 
    112113 
    113114        inline bool have_buddy_shares() const { return mBuddySharesHave; } 
  • museek+/trunk/sources/Museek/PeerListener.cc

    r312 r559  
    127127                return false; 
    128128         
     129        sockaddr_in addr; 
     130        socklen_t addrlen = sizeof(addr); 
     131        if(! getpeername(sock, (sockaddr*)&addr, &addrlen)) { 
     132                unsigned int ip = ntohl(addr.sin_addr.s_addr); 
     133                char ip_c_str[16]; 
     134                snprintf(ip_c_str, 16, "%i.%i.%i.%i", (ip >> 24) & 0xff, (ip >> 16) & 0xff, (ip >> 8) & 0xff, ip & 0xff); 
     135                std::string ip_str(ip_c_str); 
     136                if(mMuseek->is_ip_blocked(ip_str)) { 
     137                        DEBUG("Blocking incoming connection from %s\n", ip_c_str); 
     138                        close(sock); 
     139                        return true; 
     140                } 
     141        } 
     142         
    129143        new PreConnection(this, sock); 
    130144