@@ -67,10 +67,12 @@ func asPacket(data string) constant.PacketAdapter {
67
67
return pktAdp
68
68
}
69
69
70
- func testQuicSniffer (data []string , async bool ) (string , error ) {
70
+ const fakeHost = "fake.host.com"
71
+
72
+ func testQuicSniffer (data []string , async bool ) (string , string , error ) {
71
73
q , err := NewQuicSniffer (SnifferConfig {})
72
74
if err != nil {
73
- return "" , err
75
+ return "" , "" , err
74
76
}
75
77
76
78
resultCh := make (chan * constant.Metadata , 1 )
@@ -79,7 +81,7 @@ func testQuicSniffer(data []string, async bool) (string, error) {
79
81
sender := q .WrapperSender (emptySender , true )
80
82
81
83
go func () {
82
- meta := constant.Metadata {}
84
+ meta := constant.Metadata {Host : fakeHost }
83
85
err := sender .DoSniff (& meta )
84
86
if err != nil {
85
87
panic (err )
@@ -96,14 +98,15 @@ func testQuicSniffer(data []string, async bool) (string, error) {
96
98
}
97
99
98
100
meta := <- resultCh
99
- return meta .SniffHost , nil
101
+ return meta .SniffHost , meta . Host , nil
100
102
}
101
103
102
104
func TestQuicHeaders (t * testing.T ) {
103
105
104
106
cases := []struct {
105
- input []string
106
- domain string
107
+ input []string
108
+ domain string
109
+ invalid bool
107
110
}{
108
111
//Normal domain quic sniff
109
112
{
@@ -161,16 +164,31 @@ func TestQuicHeaders(t *testing.T) {
161
164
},
162
165
domain : "www.google.com" ,
163
166
},
167
+ // invalid packet
168
+ {
169
+ input : []string {"00000000000000000000" },
170
+ invalid : true ,
171
+ },
164
172
}
165
173
166
174
for _ , test := range cases {
167
- data , err := testQuicSniffer (test .input , true )
175
+ data , host , err := testQuicSniffer (test .input , true )
168
176
assert .NoError (t , err )
169
177
assert .Equal (t , test .domain , data )
178
+ if test .invalid {
179
+ assert .Equal (t , fakeHost , host )
180
+ } else {
181
+ assert .Equal (t , test .domain , host )
182
+ }
170
183
171
- data , err = testQuicSniffer (test .input , false )
184
+ data , host , err = testQuicSniffer (test .input , false )
172
185
assert .NoError (t , err )
173
186
assert .Equal (t , test .domain , data )
187
+ if test .invalid {
188
+ assert .Equal (t , fakeHost , host )
189
+ } else {
190
+ assert .Equal (t , test .domain , host )
191
+ }
174
192
}
175
193
}
176
194
0 commit comments