From d4370c66ad96937a25ca9d7b1fcfe1dc49ad998b Mon Sep 17 00:00:00 2001 From: Andrew Gutekanst Date: Wed, 5 Feb 2020 05:00:20 -0500 Subject: [PATCH] Add MSG_SYS_END to all sent packets --- server/channelserver/session.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/server/channelserver/session.go b/server/channelserver/session.go index 352a895c6..1d6c62545 100644 --- a/server/channelserver/session.go +++ b/server/channelserver/session.go @@ -93,11 +93,20 @@ func (s *Session) sendLoop() { for { // TODO(Andoryuuta): Test making this into a buffered channel and grouping the packet together before sending. rawPacket := <-s.sendPackets + if rawPacket == nil { s.logger.Debug("Got nil from s.SendPackets, exiting send loop") return } - s.cryptConn.SendPacket(rawPacket) + + // Make a copy of the data. + terminatedPacket := make([]byte, len(rawPacket)) + copy(terminatedPacket, rawPacket) + + // Append the MSG_SYS_END tailing opcode. + terminatedPacket = append(terminatedPacket, []byte{0x00, 0x10}...) + + s.cryptConn.SendPacket(terminatedPacket) } }