From 9902b5ac726c702a0e798efddf0b9e33f1b72f7b Mon Sep 17 00:00:00 2001 From: Maciej Szlosarczyk Date: Tue, 30 Jul 2019 10:46:11 +0300 Subject: [PATCH] Add logging of IP address and process number At the beginning of each client connection, log the IP address along with Erlang's process number associated with the socket. This allows us to pinpoint clients who encounter problems and help them out. --- apps/epp_proxy/src/epp_tls_worker.erl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/epp_proxy/src/epp_tls_worker.erl b/apps/epp_proxy/src/epp_tls_worker.erl index bb3c84d..0f7bba0 100644 --- a/apps/epp_proxy/src/epp_tls_worker.erl +++ b/apps/epp_proxy/src/epp_tls_worker.erl @@ -40,6 +40,7 @@ handle_cast(serve, State = #state{socket = Socket, session_id = _SessionId}) -> {ok, {PeerIp, _PeerPort}} = ssl:peername(Socket), + log_opened_connection(PeerIp), case ssl:handshake(Socket) of {ok, SecureSocket} -> NewState = state_from_socket(SecureSocket, State), @@ -168,6 +169,11 @@ log_on_invalid_handshake(Ip, Error) -> [ReadableIp, Error]), exit(normal). +log_opened_connection(Ip) -> + ReadableIp = epp_util:readable_ip(Ip), + lager:info("New client connection. IP: ~s, Process: ~p.~n", + [ReadableIp, self()]). + %% Extract state info from socket. Fail if you must. state_from_socket(Socket, State) -> {ok, PeerCert} = ssl:peercert(Socket),