Fix if real ip not present in headers.
Exclude more addresses from telegram messages.
This commit is contained in:
parent
5e974da721
commit
2140a165fd
2 changed files with 11 additions and 3 deletions
|
@ -11,7 +11,10 @@ defmodule UiWeb.PageController do
|
||||||
end
|
end
|
||||||
|
|
||||||
def morse(conn, _params) do
|
def morse(conn, _params) do
|
||||||
ip = conn |> Plug.Conn.get_req_header("x-real-ip") |> hd()
|
ip = case Plug.Conn.get_req_header(conn, "x-real-ip") do
|
||||||
|
[h|_tl] -> h
|
||||||
|
_ -> "0.0.0.0"
|
||||||
|
end
|
||||||
LiveView.Controller.live_render(conn, UiWeb.MorseLive, session: %{ip: ip})
|
LiveView.Controller.live_render(conn, UiWeb.MorseLive, session: %{ip: ip})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -13,8 +13,8 @@ defmodule UiWeb.MorseLive do
|
||||||
end
|
end
|
||||||
|
|
||||||
def handle_event("toggle_morse", _value, %{assigns: %{ip: ip}} = socket) do
|
def handle_event("toggle_morse", _value, %{assigns: %{ip: ip}} = socket) do
|
||||||
if not Morse.Server.in_progress?() and ip != "127.0.0.1" do
|
if not Morse.Server.in_progress?() and ip_send_message?(ip) do
|
||||||
spawn fn -> Ui.TelegramBot.message("#{ip} pressed the button!") end
|
spawn(fn -> Ui.TelegramBot.message("#{ip} pressed the button!") end)
|
||||||
end
|
end
|
||||||
|
|
||||||
Morse.Server.toggle_morse()
|
Morse.Server.toggle_morse()
|
||||||
|
@ -38,4 +38,9 @@ defmodule UiWeb.MorseLive do
|
||||||
ip: ip
|
ip: ip
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp ip_send_message?(ip) do
|
||||||
|
not (String.starts_with?(ip, "192.168.") or String.starts_with?(ip, "10.")
|
||||||
|
or ip == "127.0.0.1" or ip == "localhost" or ip == "0.0.0.0")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue