summaryrefslogtreecommitdiff
path: root/internal/server/handlers/protocol_formatter.go
blob: 0bd223ac3fcbd56580b0598bd6394f46f3987dcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package handlers

import (
	"bytes"
	"strconv"

	"github.com/mimecast/dtail/internal/protocol"
)

const defaultTransmittedPerc = "100"

func formatRemoteHeader(buf *bytes.Buffer, hostname, transmittedPerc string, lineNum uint64, sourceID string) {
	buf.WriteString("REMOTE")
	buf.WriteString(protocol.FieldDelimiter)
	buf.WriteString(hostname)
	buf.WriteString(protocol.FieldDelimiter)
	buf.WriteString(transmittedPerc)
	buf.WriteString(protocol.FieldDelimiter)
	buf.WriteString(strconv.FormatUint(lineNum, 10))
	buf.WriteString(protocol.FieldDelimiter)
	buf.WriteString(sourceID)
	buf.WriteString(protocol.FieldDelimiter)
}

func formatRemoteLine(buf *bytes.Buffer, hostname, transmittedPerc string, lineNum uint64, sourceID string, content []byte) {
	formatRemoteHeader(buf, hostname, transmittedPerc, lineNum, sourceID)
	buf.Write(content)
	buf.WriteByte(protocol.MessageDelimiter)
}

func formatServerMessage(buf *bytes.Buffer, hostname, message string, plain bool) {
	if !plain {
		buf.WriteString("SERVER")
		buf.WriteString(protocol.FieldDelimiter)
		buf.WriteString(hostname)
		buf.WriteString(protocol.FieldDelimiter)
	}
	buf.WriteString(message)
	buf.WriteByte(protocol.MessageDelimiter)
}