aboutsummaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/messages/types/netFile.go39
1 files changed, 32 insertions, 7 deletions
diff --git a/pkg/messages/types/netFile.go b/pkg/messages/types/netFile.go
index 328900c..c9c587d 100644
--- a/pkg/messages/types/netFile.go
+++ b/pkg/messages/types/netFile.go
@@ -1,17 +1,42 @@
1package messages 1package messages
2 2
3import "github.com/pektezol/bitreader" 3import (
4 "fmt"
5
6 "github.com/pektezol/bitreader"
7)
4 8
5type NetFile struct { 9type NetFile struct {
6 TransferId int32 10 TransferId uint32
7 FileName string 11 FileName string
8 FileRequested bool 12 FileFlags string
13}
14
15type NetFileFlags int
16
17const (
18 ENetFileFlagsNone NetFileFlags = 0
19 ENetFileFlagsFileRequested NetFileFlags = 1
20 ENetFileFlagsUnknown NetFileFlags = 1 << 1
21)
22
23func (netFileFlags NetFileFlags) String() string {
24 switch netFileFlags {
25 case ENetFileFlagsNone:
26 return "None"
27 case ENetFileFlagsFileRequested:
28 return "FileRequested"
29 case ENetFileFlagsUnknown:
30 return "Unknown"
31 default:
32 return fmt.Sprintf("%d", int(netFileFlags))
33 }
9} 34}
10 35
11func ParseNetFile(reader *bitreader.Reader) NetFile { 36func ParseNetFile(reader *bitreader.Reader) NetFile {
12 return NetFile{ 37 return NetFile{
13 TransferId: int32(reader.TryReadBits(32)), 38 TransferId: reader.TryReadUInt32(),
14 FileName: reader.TryReadString(), 39 FileName: reader.TryReadString(),
15 FileRequested: reader.TryReadBool(), 40 FileFlags: NetFileFlags(reader.TryReadBits(2)).String(),
16 } 41 }
17} 42}