diff --git a/common/ip-packet-requests/src/request.rs b/common/ip-packet-requests/src/request.rs index 9f59b8ba0e..3bf1cd5d98 100644 --- a/common/ip-packet-requests/src/request.rs +++ b/common/ip-packet-requests/src/request.rs @@ -83,6 +83,34 @@ impl IpPacketRequest { } } + pub fn new_ping(reply_to: Recipient) -> (Self, u64) { + let request_id = generate_random(); + ( + Self { + version: CURRENT_VERSION, + data: IpPacketRequestData::Ping(PingRequest { + request_id, + reply_to, + }), + }, + request_id, + ) + } + + pub fn new_health_request(reply_to: Recipient) -> (Self, u64) { + let request_id = generate_random(); + ( + Self { + version: CURRENT_VERSION, + data: IpPacketRequestData::Health(HealthRequest { + request_id, + reply_to, + }), + }, + request_id, + ) + } + pub fn id(&self) -> Option { match &self.data { IpPacketRequestData::StaticConnect(request) => Some(request.request_id), diff --git a/common/ip-packet-requests/src/response.rs b/common/ip-packet-requests/src/response.rs index d2baf16f6e..c788a8974e 100644 --- a/common/ip-packet-requests/src/response.rs +++ b/common/ip-packet-requests/src/response.rs @@ -144,6 +144,35 @@ impl IpPacketResponse { } } + pub fn new_pong(request_id: u64, reply_to: Recipient) -> Self { + Self { + version: CURRENT_VERSION, + data: IpPacketResponseData::Pong(PongResponse { + request_id, + reply_to, + }), + } + } + + pub fn new_health_response( + request_id: u64, + reply_to: Recipient, + build_info: nym_bin_common::build_information::BinaryBuildInformationOwned, + routable: Option, + ) -> Self { + Self { + version: CURRENT_VERSION, + data: IpPacketResponseData::Health(HealthResponse { + request_id, + reply_to, + reply: HealthResponseReply { + build_info, + routable, + }, + }), + } + } + pub fn id(&self) -> Option { match &self.data { IpPacketResponseData::StaticConnect(response) => Some(response.request_id),