Skip to content

Commit 8224a4a

Browse files
committed
Improve logging in RADIUS server and client
This commit provides the following improvements for the logging: 1. Switch to info from debug in the logging messages for the incoming requests and outgoing responses. There is no big sense in these messages anyway if everything is normal but more useful during debugging process. 2. Add logging to the RADIUS client if hostname can not be resolved. The log messages are added only to the place where we handle secondary/failover RADIUS servers to not spam with such messages. 3. Remove additional log message for the outgoing response. We already have such message from the point 1 which has everything what the removed message had except the RADIUS server name.
1 parent 25c5474 commit 8224a4a

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

src/eradius_client.erl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,8 +435,15 @@ store_upstream_servers(Server) ->
435435
store_radius_server_from_pool(Addr, Port, Retries) when is_tuple(Addr) and is_integer(Port) and is_integer(Retries) ->
436436
ets:insert(?MODULE, {{Addr, Port}, Retries, Retries});
437437
store_radius_server_from_pool(Addr, Port, Retries) when is_list(Addr) and is_integer(Port) and is_integer(Retries) ->
438-
IP = get_ip(Addr),
439-
ets:insert(?MODULE, {{IP, Port}, Retries, Retries});
438+
try
439+
IP = get_ip(Addr),
440+
ets:insert(?MODULE, {{IP, Port}, Retries, Retries})
441+
catch error:badarg ->
442+
?LOG(error, "Can't resolve hostname - ~p", [Addr]),
443+
% Throw again badarg as it was before to catch non-resolvable hostname during eradius start-up
444+
% and exit early to not lost secondary pools.
445+
error(badarg)
446+
end;
440447
store_radius_server_from_pool(Addr, Port, Retries) ->
441448
?LOG(error, "bad RADIUS upstream server specified in RADIUS servers pool configuration ~p", [{Addr, Port, Retries}]),
442449
error(badarg).
@@ -630,6 +637,7 @@ find_suitable_peer([{Host, Port, Secret, Opts} | Pool]) when is_list(Host) ->
630637
IP = get_ip(Host),
631638
find_suitable_peer([{IP, Port, Secret, Opts} | Pool])
632639
catch _:_ ->
640+
?LOG(error, "Can't resolve hostname - ~p", [Host]),
633641
% can't resolve ip by some reasons, just ignore it
634642
find_suitable_peer(Pool)
635643
end;

src/eradius_server.erl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,6 @@ do_radius(ServerPid, ServerName, ReqKey, Handler = {HandlerMod, _}, NasProp, {ud
220220
Nodes = eradius_node_mon:get_module_nodes(HandlerMod),
221221
case run_handler(Nodes, NasProp, Handler, EncRequest) of
222222
{reply, EncReply, {ReqCmd, RespCmd}, Request} ->
223-
?LOG(debug, "~s From: ~s INF: Sending response for request ~p",
224-
[printable_peer(ServerIP, Port), printable_peer(FromIP, FromPort), ReqKey]),
225223
TS2 = erlang:monotonic_time(),
226224
inc_counter({ReqCmd, RespCmd}, ServerName, NasProp, TS2 - TS1, Request),
227225
gen_udp:send(Socket, FromIP, FromPort, EncReply),
@@ -301,7 +299,7 @@ handle_request({HandlerMod, HandlerArg}, NasProp = #nas_prop{secret = Secret, na
301299
case eradius_lib:decode_request(EncRequest, Secret) of
302300
Request = #radius_request{} ->
303301
Sender = {ServerIP, Port, Request#radius_request.reqid},
304-
?LOG(info, "~s", [eradius_log:collect_message(Sender, Request)],
302+
?LOG(debug, "~s", [eradius_log:collect_message(Sender, Request)],
305303
maps:from_list(eradius_log:collect_meta(Sender, Request))),
306304
eradius_log:write_request(Sender, Request),
307305
apply_handler_mod(HandlerMod, HandlerArg, Request, NasProp);
@@ -336,7 +334,7 @@ apply_handler_mod(HandlerMod, HandlerArg, Request, NasProp) ->
336334
EncReply = eradius_lib:encode_reply(Request#radius_request{cmd = ReplyCmd, attrs = ReplyAttrs,
337335
msg_hmac = Request#radius_request.msg_hmac or MsgHMAC or (size(EAPmsg) > 0),
338336
eap_msg = EAPmsg}),
339-
?LOG(info, "~s", [eradius_log:collect_message(Sender, Reply)],
337+
?LOG(debug, "~s", [eradius_log:collect_message(Sender, Reply)],
340338
maps:from_list(eradius_log:collect_meta(Sender, Reply))),
341339
eradius_log:write_request(Sender, Reply),
342340
{reply, EncReply, {Request#radius_request.cmd, ReplyCmd}, Request};

0 commit comments

Comments
 (0)