@@ -19,7 +19,7 @@ import (
19
19
// TestClientNoServer tests how the client handles a server address it cannot connect to.
20
20
// NewClient should return a ConnectError.
21
21
func TestClientNoServer (t * testing.T ) {
22
- c , err := client .NewClient (& client.Config {
22
+ c , _ , err := client .NewClient (& client.Config {
23
23
ServerAddr : & net.UDPAddr {IP : net .IPv4 (127 , 0 , 0 , 1 ), Port : 55666 },
24
24
})
25
25
assert .Nil (t , c )
@@ -46,7 +46,7 @@ func TestClientServerBadAuth(t *testing.T) {
46
46
go s .Serve ()
47
47
48
48
// Create client
49
- c , err := client .NewClient (& client.Config {
49
+ c , _ , err := client .NewClient (& client.Config {
50
50
ServerAddr : udpAddr ,
51
51
Auth : "badpassword" ,
52
52
TLSConfig : client.TLSConfig {InsecureSkipVerify : true },
@@ -75,7 +75,7 @@ func TestClientServerUDPDisabled(t *testing.T) {
75
75
go s .Serve ()
76
76
77
77
// Create client
78
- c , err := client .NewClient (& client.Config {
78
+ c , _ , err := client .NewClient (& client.Config {
79
79
ServerAddr : udpAddr ,
80
80
TLSConfig : client.TLSConfig {InsecureSkipVerify : true },
81
81
})
@@ -113,7 +113,7 @@ func TestClientServerTCPEcho(t *testing.T) {
113
113
go echoServer .Serve ()
114
114
115
115
// Create client
116
- c , err := client .NewClient (& client.Config {
116
+ c , _ , err := client .NewClient (& client.Config {
117
117
ServerAddr : udpAddr ,
118
118
TLSConfig : client.TLSConfig {InsecureSkipVerify : true },
119
119
})
@@ -160,7 +160,7 @@ func TestClientServerUDPEcho(t *testing.T) {
160
160
go echoServer .Serve ()
161
161
162
162
// Create client
163
- c , err := client .NewClient (& client.Config {
163
+ c , _ , err := client .NewClient (& client.Config {
164
164
ServerAddr : udpAddr ,
165
165
TLSConfig : client.TLSConfig {InsecureSkipVerify : true },
166
166
})
@@ -181,3 +181,100 @@ func TestClientServerUDPEcho(t *testing.T) {
181
181
assert .Equal (t , sData , rData )
182
182
assert .Equal (t , echoAddr , rAddr )
183
183
}
184
+
185
+ // TestClientServerHandshakeInfo tests that the client returns the correct handshake info.
186
+ func TestClientServerHandshakeInfo (t * testing.T ) {
187
+ // Create server 1, UDP enabled, unlimited bandwidth
188
+ udpConn , udpAddr , err := serverConn ()
189
+ assert .NoError (t , err )
190
+ auth := mocks .NewMockAuthenticator (t )
191
+ auth .EXPECT ().Authenticate (mock .Anything , mock .Anything , mock .Anything ).Return (true , "nobody" )
192
+ s , err := server .NewServer (& server.Config {
193
+ TLSConfig : serverTLSConfig (),
194
+ Conn : udpConn ,
195
+ Authenticator : auth ,
196
+ })
197
+ assert .NoError (t , err )
198
+ go s .Serve ()
199
+
200
+ // Create client 1, with specified tx bandwidth
201
+ c , info , err := client .NewClient (& client.Config {
202
+ ServerAddr : udpAddr ,
203
+ TLSConfig : client.TLSConfig {InsecureSkipVerify : true },
204
+ BandwidthConfig : client.BandwidthConfig {
205
+ MaxTx : 123456 ,
206
+ },
207
+ })
208
+ assert .NoError (t , err )
209
+ assert .Equal (t , & client.HandshakeInfo {
210
+ UDPEnabled : true ,
211
+ Tx : 123456 ,
212
+ }, info )
213
+
214
+ // Close server 1 and client 1
215
+ _ = s .Close ()
216
+ _ = c .Close ()
217
+
218
+ // Create server 2, UDP disabled, limited rx bandwidth
219
+ udpConn , udpAddr , err = serverConn ()
220
+ assert .NoError (t , err )
221
+ s , err = server .NewServer (& server.Config {
222
+ TLSConfig : serverTLSConfig (),
223
+ Conn : udpConn ,
224
+ BandwidthConfig : server.BandwidthConfig {
225
+ MaxRx : 100000 ,
226
+ },
227
+ DisableUDP : true ,
228
+ Authenticator : auth ,
229
+ })
230
+ assert .NoError (t , err )
231
+ go s .Serve ()
232
+
233
+ // Create client 2, with specified tx bandwidth
234
+ c , info , err = client .NewClient (& client.Config {
235
+ ServerAddr : udpAddr ,
236
+ TLSConfig : client.TLSConfig {InsecureSkipVerify : true },
237
+ BandwidthConfig : client.BandwidthConfig {
238
+ MaxTx : 123456 ,
239
+ },
240
+ })
241
+ assert .NoError (t , err )
242
+ assert .Equal (t , & client.HandshakeInfo {
243
+ UDPEnabled : false ,
244
+ Tx : 100000 ,
245
+ }, info )
246
+
247
+ // Close server 2 and client 2
248
+ _ = s .Close ()
249
+ _ = c .Close ()
250
+
251
+ // Create server 3, UDP enabled, ignore client bandwidth
252
+ udpConn , udpAddr , err = serverConn ()
253
+ assert .NoError (t , err )
254
+ s , err = server .NewServer (& server.Config {
255
+ TLSConfig : serverTLSConfig (),
256
+ Conn : udpConn ,
257
+ IgnoreClientBandwidth : true ,
258
+ Authenticator : auth ,
259
+ })
260
+ assert .NoError (t , err )
261
+ go s .Serve ()
262
+
263
+ // Create client 3, with specified tx bandwidth
264
+ c , info , err = client .NewClient (& client.Config {
265
+ ServerAddr : udpAddr ,
266
+ TLSConfig : client.TLSConfig {InsecureSkipVerify : true },
267
+ BandwidthConfig : client.BandwidthConfig {
268
+ MaxTx : 123456 ,
269
+ },
270
+ })
271
+ assert .NoError (t , err )
272
+ assert .Equal (t , & client.HandshakeInfo {
273
+ UDPEnabled : true ,
274
+ Tx : 0 ,
275
+ }, info )
276
+
277
+ // Close server 3 and client 3
278
+ _ = s .Close ()
279
+ _ = c .Close ()
280
+ }
0 commit comments