app: use x-forwarded-for header to get ips
This commit is contained in:
		
							parent
							
								
									414cba561b
								
							
						
					
					
						commit
						c1e39c9bf2
					
				
					 1 changed files with 10 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -9,7 +9,16 @@ defmodule PrymnWeb.ServerController do
 | 
			
		|||
  validating their registration token.
 | 
			
		||||
  """
 | 
			
		||||
  def register(conn, %{"token" => token}) do
 | 
			
		||||
    case Servers.register_server(token, conn.remote_ip) do
 | 
			
		||||
    ip =
 | 
			
		||||
      with [ip] <- Plug.Conn.get_req_header(conn, "x-forwarded-for"),
 | 
			
		||||
           {:ok, ip} <- :inet.parse_address(to_charlist(ip)) do
 | 
			
		||||
        ip
 | 
			
		||||
      else
 | 
			
		||||
        {:error, reason} -> raise "Could not parse ip address: #{inspect(reason)}"
 | 
			
		||||
        [] -> conn.remote_ip
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
    case Servers.register_server(token, ip) do
 | 
			
		||||
      {:ok, _server} ->
 | 
			
		||||
        json(conn, %{"connected" => true})
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue