From 22a6c5ea7776982f5505d2f4687cfd765557d053 Mon Sep 17 00:00:00 2001 From: Ambika Eshwar Date: Wed, 6 Jul 2022 16:10:33 -0500 Subject: [PATCH] Added broadcast function for posting without a server --- lib/node/client.ml | 3 +++ lib/node/client.mli | 4 ++++ 2 files changed, 7 insertions(+) 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