diff --git a/src/transport/efka_heartbeat.erl b/src/transport/efka_heartbeat.erl index 21b103d..77b16bc 100644 --- a/src/transport/efka_heartbeat.erl +++ b/src/transport/efka_heartbeat.erl @@ -100,7 +100,7 @@ code_change(_OldVsn, State, _Extra) -> -spec send_heartbeat(#state{}) -> ok. send_heartbeat(#state{socket = Socket, host = Host, port = Port, uuid = UUID, heartbeat_secret = HeartbeatSecret}) -> - Packet = heartbeat_packet(UUID, HeartbeatSecret), + Packet = heartbeat_packet_iodata(UUID, HeartbeatSecret), case gen_udp:send(Socket, Host, Port, Packet) of ok -> ok; @@ -109,11 +109,11 @@ send_heartbeat(#state{socket = Socket, host = Host, port = Port, uuid = UUID, he ok end. --spec heartbeat_packet(binary(), binary()) -> binary(). -heartbeat_packet(UUID, HeartbeatSecret) when is_binary(UUID), is_binary(HeartbeatSecret) -> +-spec heartbeat_packet_iodata(binary(), binary()) -> iodata(). +heartbeat_packet_iodata(UUID, HeartbeatSecret) when is_binary(UUID), is_binary(HeartbeatSecret) -> UUIDLen = byte_size(UUID), Timestamp = efka_util:timestamp(), Nonce = crypto:strong_rand_bytes(?HEARTBEAT_NONCE_BYTES), Payload = <>, Mac = crypto:mac(hmac, sha256, HeartbeatSecret, Payload), - <>. + [Payload, Mac].