forked from macronut/godivert
/
const.go
130 lines (113 loc) · 2.44 KB
/
const.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package godivert
import "fmt"
type Direction int
func (d Direction) String() string {
if d == WinDivertDirectionInbound {
return "Inbound"
}
return "Outbound"
}
const (
PacketBufferSize = 1500
PacketChanCapacity = 256
WinDivertDirectionOutbound Direction = 1
WinDivertDirectionInbound Direction = 0
)
type OpenFlag uint8
const (
OpenFlagNone OpenFlag = 0x00
OpenFlagSniff OpenFlag = 0x01
OpenFlagDrop OpenFlag = 0x02
OpenFlagReceiveOnly OpenFlag = 0x04
OpenFlagSendOnly OpenFlag = 0x08
OpenFlagNoInstall OpenFlag = 0x10
OpenFlagFragments OpenFlag = 0x20
)
type Layer int
const (
// Network packets to/from the local machine.
LayerNetwork Layer = iota
// Network packets passing through the local machine.
LayerForward
// Network flow established/deleted events.
LayerFlow
// Socket operation events.
LayerSocket
// WinDivert handle events.
LayerReflect
)
func (l Layer) String() string {
switch l {
case LayerNetwork:
return "Network"
case LayerForward:
return "Forward"
case LayerFlow:
return "Flow"
case LayerSocket:
return "Socket"
case LayerReflect:
return "Reflect"
default:
return fmt.Sprintf("InvalidLayer(%d)", int(l))
}
}
type Priority int16
const (
// The highest priority a handle can have.
PriorityMax = 30000
// The default handle priority.
//
// Note that multiple handles should not have the same priority.
PriorityDefault = 0
// The lowest priority a handle can have.
PriorityLowest = -PriorityMax
)
type ChecksumFlag int64
const (
ChecksumAll = 0x00
ChecksumNoIP = 0x01
ChecksumNoICMP = 0x02
ChecksumNoICMPv6 = 0x04
ChecksumNoTCP = 0x08
ChecksumNoUDP = 0x10
)
type Event int
const (
EventNetworkPacket Event = iota
EventFlowEstablished
EventFlowDeleted
EventSocketBind
EventSocketConnect
EventSocketListen
EventSocketAccept
EventSocketClose
EventReflectOpen
EventReflectClose
)
func (e Event) String() string {
switch e {
case EventNetworkPacket:
return "NetworkPacket"
case EventFlowEstablished:
return "FlowEstablished"
case EventFlowDeleted:
return "FlowDeleted"
case EventSocketBind:
return "SocketBind"
case EventSocketConnect:
return "SocketConnect"
case EventSocketListen:
return "SocketListen"
case EventSocketAccept:
return "SocketAccept"
case EventSocketClose:
return "SocketClose"
case EventReflectOpen:
return "ReflectOpen"
case EventReflectClose:
return "ReflectClose"
default:
return "InvalidEvent"
}
}