forked from l1va/gofins
-
Notifications
You must be signed in to change notification settings - Fork 0
/
header.go
40 lines (34 loc) · 1 KB
/
header.go
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 gofins
// Header A FINS frame header
type Header struct {
messageType uint8
responseRequired bool
src finsAddress
dst finsAddress
serviceID byte
gatewayCount uint8
}
const (
// MessageTypeCommand Command message type
MessageTypeCommand uint8 = iota
// MessageTypeResponse Response message type
MessageTypeResponse uint8 = iota
)
func defaultHeader(messageType uint8, responseRequired bool, src finsAddress, dst finsAddress, serviceID byte) Header {
h := Header{}
h.messageType = messageType
h.responseRequired = responseRequired
h.gatewayCount = 2
h.src = src
h.dst = dst
h.serviceID = serviceID
return h
}
func defaultCommandHeader(src finsAddress, dst finsAddress, serviceID byte) Header {
h := defaultHeader(MessageTypeCommand, true, src, dst, serviceID)
return h
}
func defaultResponseHeader(commandHeader Header) Header {
h := defaultHeader(MessageTypeResponse, false, commandHeader.dst, commandHeader.src, commandHeader.serviceID)
return h
}