From a2947a3adb85189742673f332a79d5bb153e21ae Mon Sep 17 00:00:00 2001 From: Sudo-Ivan Date: Tue, 31 Dec 2024 17:07:23 -0600 Subject: [PATCH] update announce.go --- pkg/announce/announce.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/pkg/announce/announce.go b/pkg/announce/announce.go index 869ad4b..8083359 100644 --- a/pkg/announce/announce.go +++ b/pkg/announce/announce.go @@ -261,3 +261,32 @@ func (a *Announce) CreatePacket() []byte { return packet } + +type AnnouncePacket struct { + Data []byte +} + +func NewAnnouncePacket(pubKey []byte, appData []byte, announceID []byte) *AnnouncePacket { + packet := &AnnouncePacket{} + + // Build packet data + packet.Data = make([]byte, 0, len(pubKey)+len(appData)+len(announceID)+4) + + // Add header + packet.Data = append(packet.Data, PACKET_TYPE_ANNOUNCE) + packet.Data = append(packet.Data, ANNOUNCE_IDENTITY) + + // Add public key + packet.Data = append(packet.Data, pubKey...) + + // Add app data length and content + appDataLen := make([]byte, 2) + binary.BigEndian.PutUint16(appDataLen, uint16(len(appData))) + packet.Data = append(packet.Data, appDataLen...) + packet.Data = append(packet.Data, appData...) + + // Add announce ID + packet.Data = append(packet.Data, announceID...) + + return packet +}