Skip to content

Commit 25e237a

Browse files
committed
Improve reflector
1 parent e5293b3 commit 25e237a

1 file changed

Lines changed: 33 additions & 52 deletions

File tree

reflector/server.go

Lines changed: 33 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,6 @@ func handleConnection(conn net.Conn) {
2626

2727
version := -1
2828

29-
var blobHash string
30-
blobSize := -1
31-
32-
var sdBlobHash string
33-
sdBlobSize := -1
34-
3529
for {
3630
var data map[string]any
3731

@@ -45,10 +39,10 @@ func handleConnection(conn net.Conn) {
4539
continue
4640
}
4741

48-
versionValue, hasVersion := data["version"].(int)
42+
versionValue, hasVersion := data["version"]
4943
if version == -1 {
5044
if hasVersion {
51-
version = versionValue
45+
version = int(versionValue.(float64))
5246
jsonEncoder.Encode(map[string]any{
5347
"version": version,
5448
})
@@ -58,52 +52,30 @@ func handleConnection(conn net.Conn) {
5852
return
5953
}
6054

61-
blobHashValue, hasBlobHash := data["blob_hash"].(string)
62-
blobSizeValue, hasBlobSize := data["blob_size"].(int)
55+
blobHashValue, hasBlobHash := data["blob_hash"]
56+
blobSizeValue, hasBlobSize := data["blob_size"]
6357

64-
sdBlobHashValue, hasSDBlobHash := data["sd_blob_hash"].(string)
65-
sdBlobSizeValue, hasSDBlobSize := data["sd_blob_size"].(int)
58+
sdBlobHashValue, hasSDBlobHash := data["sd_blob_hash"]
59+
sdBlobSizeValue, hasSDBlobSize := data["sd_blob_size"]
6660

67-
if blobHash == "" && version >= 0 {
68-
if hasBlobHash && hasBlobSize {
69-
if len(blobHashValue) != 96 || blobSizeValue <= 0 || blobSizeValue > 2097152 {
70-
conn.Close()
71-
return
72-
}
61+
if version >= 0 && hasBlobHash && hasBlobSize {
62+
blobHash := blobHashValue.(string)
63+
blobSize := int(blobSizeValue.(float64))
7364

74-
blobHash = blobHashValue
75-
blobSize = blobSizeValue
76-
77-
jsonEncoder.Encode(map[string]any{
78-
"send_blob": false, // TODO: Improve response
79-
})
80-
continue
65+
if len(blobHash) != 96 || blobSize <= 0 || blobSize > 2097152 {
66+
conn.Close()
67+
return
8168
}
82-
}
83-
84-
if sdBlobHash == "" && version >= 1 {
85-
if hasSDBlobHash && hasSDBlobSize {
86-
if len(blobHashValue) != 96 || blobSizeValue <= 0 || blobSizeValue > 2097152 {
87-
conn.Close()
88-
return
89-
}
9069

91-
sdBlobHash = sdBlobHashValue
92-
sdBlobSize = sdBlobSizeValue
93-
94-
jsonEncoder.Encode(map[string]any{
95-
"send_sd_blob": false, // TODO: Improve response
96-
})
97-
continue
98-
}
99-
}
70+
jsonEncoder.Encode(map[string]any{
71+
"send_blob": true, // TODO: Improve response
72+
})
10073

101-
if blobHash != "" {
10274
blobData := make([]byte, blobSize)
10375
_, err := io.ReadFull(conn, blobData)
10476

10577
//TODO Process blob data
106-
fmt.Printf("%+v\n", blobData)
78+
fmt.Printf("BLOB = %+v\n", blobData)
10779

10880
jsonEncoder.Encode(map[string]any{
10981
"received_blob": err == nil,
@@ -112,17 +84,29 @@ func handleConnection(conn net.Conn) {
11284
conn.Close()
11385
return
11486
}
115-
116-
blobHash = ""
117-
blobSize = -1
11887
continue
88+
11989
}
120-
if sdBlobHash != "" {
90+
91+
if version >= 1 && hasSDBlobHash && hasSDBlobSize {
92+
sdBlobHash := sdBlobHashValue.(string)
93+
sdBlobSize := int(sdBlobSizeValue.(float64))
94+
95+
if len(sdBlobHash) != 96 || sdBlobSize <= 0 || sdBlobSize > 2097152 {
96+
97+
conn.Close()
98+
return
99+
}
100+
101+
jsonEncoder.Encode(map[string]any{
102+
"send_sd_blob": true, // TODO: Improve response
103+
})
104+
121105
sdBlobData := make([]byte, sdBlobSize)
122106
_, err := io.ReadFull(conn, sdBlobData)
123107

124108
//TODO Process SD blob data
125-
fmt.Printf("%+v\n", sdBlobData)
109+
fmt.Printf("SD BLOB = %+v\n", string(sdBlobData))
126110

127111
jsonEncoder.Encode(map[string]any{
128112
"received_sd_blob": err == nil,
@@ -131,9 +115,6 @@ func handleConnection(conn net.Conn) {
131115
conn.Close()
132116
return
133117
}
134-
135-
sdBlobHash = ""
136-
sdBlobSize = -1
137118
continue
138119
}
139120

0 commit comments

Comments
 (0)