Skip to content

Commit 43676fe

Browse files
committed
app/resolver.ml: print stats on SIGINT
1 parent 1c29ecc commit 43676fe

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

app/resolver.ml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,16 @@ let main () =
1616
Dns_resolver.create ~dnssec:true ~ip_protocol:`Ipv4_only
1717
(Mirage_mtime.elapsed_ns ()) Mirage_crypto_rng.generate primary_t
1818
in
19-
let _fn = Resolver.resolver ~port:53530 stack resolver in
19+
let resolver = Resolver.resolver ~port:53530 stack resolver in
20+
let _ : Sys.signal_behavior =
21+
Sys.signal Sys.sigint
22+
(Signal_handle
23+
(fun _ ->
24+
let stats = Resolver.stats resolver in
25+
Fmt.pr "Queries %u@ Errors %u@ Clients %u@ Blocked %u\n%!"
26+
stats.queries stats.errors (Ipaddr.Set.cardinal stats.clients) stats.blocked;
27+
exit 0))
28+
in
2029
Tcpip_stack_socket.V4V6.listen stack >|= fun () ->
2130
Ok ()
2231

0 commit comments

Comments
 (0)