diff --git a/server/ip_ban.cpp b/server/ip_ban.cpp index 5e6ba2e..38606ce 100644 --- a/server/ip_ban.cpp +++ b/server/ip_ban.cpp @@ -14,7 +14,7 @@ ip_ban::~ip_ban() { if (this->file.empty()) return; - + json jsonfile = this->ban_list; std::ofstream ofs(this->file, std::ofstream::out | std::ofstream::trunc); @@ -33,7 +33,6 @@ void ip_ban::loadFile(fs::path file) void ip_ban::failedAttempt(std::string username, std::string ip) { - printf("%s\n", username.c_str()); std::unique_lock lock(this->m_ban); std::map, time_t>>::iterator it = this->ban_list.insert({ip, {{}, 0}}).first; @@ -45,6 +44,12 @@ void ip_ban::failedAttempt(std::string username, std::string ip) } } +void ip_ban::success(std::string ip) +{ + std::unique_lock lock(this->m_ban); + this->ban_list.erase(ip); +} + bool ip_ban::checkBanned(std::string ip) { std::shared_lock lock(this->m_ban); diff --git a/server/ip_ban.h b/server/ip_ban.h index caaab5f..beff29f 100644 --- a/server/ip_ban.h +++ b/server/ip_ban.h @@ -32,6 +32,7 @@ public: void loadFile(fs::path file); void failedAttempt(std::string username, std::string ip); + void success(std::string ip); bool checkBanned(std::string ip); protected: diff --git a/server/server.cpp b/server/server.cpp index b512a5d..2fe5355 100644 --- a/server/server.cpp +++ b/server/server.cpp @@ -452,6 +452,7 @@ std::string cmdLOGIN(std::vector& received, std::string& loggedInUs } loggedInUsername = received.at(1); + ip_ban::getInstance().success(ip); ldap_unbind_ext_s(ldapHandle, NULL, NULL); return "OK\n";