diff --git a/src/keys.ml b/src/keys.ml index 18ec76ad..ef67bb0b 100644 --- a/src/keys.ml +++ b/src/keys.ml @@ -53,6 +53,17 @@ module Make (Conn : Pg.CONN) : S = struct let find_signkey pub = Pg.find_signkey conn pub |> unwrap_err_caqti let find_denomination h_pub = Pg.find_denom conn h_pub |> unwrap_err_caqti + let warn_key_state = + let first = ref true in + fun () -> + if !first then ( + Logs.warn (fun m -> + m + "some keys found in database are missing from secmod, (unclean \ + database/secmod state?)"); + first := false; + ()) + let signkeys () : Signkey.t list result = let now = Timestamp.of_ptime @@ Ptime_clock.now () in let+ l = Pg.get_signkeys conn ~now |> unwrap_err_caqti in @@ -64,10 +75,7 @@ module Make (Conn : Pg.CONN) : S = struct match missing_l with | [] -> l | _ -> - Logs.warn (fun m -> - m - "some signkeys found in database are missing from secmod, \ - (unclean database/secmod state?)"); + warn_key_state (); Logs.debug (fun m -> m "found %d active signkey(s)" (List.length l)); l @@ -81,10 +89,7 @@ module Make (Conn : Pg.CONN) : S = struct match missing_l with | [] -> l | _ -> - Logs.warn (fun m -> - m - "some denominations found in database are missing from secmod, \ - (unclean database/secmod state?)"); + warn_key_state (); Logs.debug (fun m -> m "found %d active denomination(s)" (List.length l)); l