diff --git a/lib/node/client.ml b/lib/node/client.ml index 71fa904..5109468 100644 --- a/lib/node/client.ml +++ b/lib/node/client.ml @@ -85,3 +85,6 @@ let request node request recipient = let post node message = !node.disseminator <- Disseminator.post !node.disseminator message + +let broadcast node message = + Message.{ message with recipients = peers !node } |> Networking.send_to node diff --git a/lib/node/client.mli b/lib/node/client.mli index eb4c2ce..da30142 100644 --- a/lib/node/client.mli +++ b/lib/node/client.mli @@ -46,3 +46,7 @@ val request : node ref -> bytes -> Address.t -> Message.t Lwt.t val create_post : node ref -> ?request_ack:bool -> bytes -> Message.t val create_ack : node ref -> Message.t -> Message.t + +(** [broadcast node message] immediately sends a [Message.t] of the {i Post category} + to all the peers of the given node. The message is sent only once. *) +val broadcast : node ref -> Message.t -> unit Lwt.t