summaryrefslogtreecommitdiff
path: root/lib/chessh/ssh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chessh/ssh')
-rw-r--r--lib/chessh/ssh/daemon.ex22
1 files changed, 11 insertions, 11 deletions
diff --git a/lib/chessh/ssh/daemon.ex b/lib/chessh/ssh/daemon.ex
index cd0d466..9f17f75 100644
--- a/lib/chessh/ssh/daemon.ex
+++ b/lib/chessh/ssh/daemon.ex
@@ -22,24 +22,24 @@ defmodule Chessh.SSH.Daemon do
end
def pwd_authenticate(username, password, inet) do
- [jail_timeout_ms, jail_threshold] =
+ [jail_timeout_ms, jail_attempt_threshold] =
Application.get_env(:chessh, RateLimits)
- |> Keyword.take([:jail_timeout_ms, :jail_threshold])
+ |> Keyword.take([:jail_timeout_ms, :jail_attempt_threshold])
|> Keyword.values()
{ip, _port} = inet
rateId = "failed_password_attempts:#{Enum.join(Tuple.to_list(ip), ".")}"
- case Hammer.check_rate(rateId, jail_timeout_ms, jail_threshold) do
- {:allow, _count} ->
- pwd_authenticate(username, password) ||
- (fn ->
- Hammer.check_rate_inc(rateId, jail_timeout_ms, jail_threshold, 1)
- false
- end).()
+ if pwd_authenticate(username, password) do
+ true
+ else
+ case Hammer.check_rate_inc(rateId, jail_timeout_ms, jail_attempt_threshold, 1) do
+ {:allow, _count} ->
+ false
- {:deny, _limit} ->
- :disconnect
+ {:deny, _limit} ->
+ :disconnect
+ end
end
end