@@ -22,34 +22,44 @@ import (
22
22
// these are mock service implementations for testing
23
23
func makeAutoNATServicePrivate (t * testing.T ) host.Host {
24
24
h := bhost .NewBlankHost (swarmt .GenSwarm (t ))
25
- h .SetStreamHandler (AutoNATProto , sayAutoNATPrivate )
25
+ h .SetStreamHandler (AutoNATProto , sayPrivateStreamHandler ( t ) )
26
26
return h
27
27
}
28
28
29
- func makeAutoNATServicePublic (t * testing.T ) host.Host {
30
- h := bhost .NewBlankHost (swarmt .GenSwarm (t ))
31
- h .SetStreamHandler (AutoNATProto , sayAutoNATPublic )
32
- return h
33
- }
34
-
35
- func sayAutoNATPrivate (s network.Stream ) {
36
- defer s .Close ()
37
- w := protoio .NewDelimitedWriter (s )
38
- res := pb.Message {
39
- Type : pb .Message_DIAL_RESPONSE .Enum (),
40
- DialResponse : newDialResponseError (pb .Message_E_DIAL_ERROR , "no dialable addresses" ),
29
+ func sayPrivateStreamHandler (t * testing.T ) network.StreamHandler {
30
+ return func (s network.Stream ) {
31
+ defer s .Close ()
32
+ r := protoio .NewDelimitedReader (s , network .MessageSizeMax )
33
+ if err := r .ReadMsg (& pb.Message {}); err != nil {
34
+ t .Error (err )
35
+ return
36
+ }
37
+ w := protoio .NewDelimitedWriter (s )
38
+ res := pb.Message {
39
+ Type : pb .Message_DIAL_RESPONSE .Enum (),
40
+ DialResponse : newDialResponseError (pb .Message_E_DIAL_ERROR , "no dialable addresses" ),
41
+ }
42
+ w .WriteMsg (& res )
41
43
}
42
- w .WriteMsg (& res )
43
44
}
44
45
45
- func sayAutoNATPublic (s network.Stream ) {
46
- defer s .Close ()
47
- w := protoio .NewDelimitedWriter (s )
48
- res := pb.Message {
49
- Type : pb .Message_DIAL_RESPONSE .Enum (),
50
- DialResponse : newDialResponseOK (s .Conn ().RemoteMultiaddr ()),
51
- }
52
- w .WriteMsg (& res )
46
+ func makeAutoNATServicePublic (t * testing.T ) host.Host {
47
+ h := bhost .NewBlankHost (swarmt .GenSwarm (t ))
48
+ h .SetStreamHandler (AutoNATProto , func (s network.Stream ) {
49
+ defer s .Close ()
50
+ r := protoio .NewDelimitedReader (s , network .MessageSizeMax )
51
+ if err := r .ReadMsg (& pb.Message {}); err != nil {
52
+ t .Error (err )
53
+ return
54
+ }
55
+ w := protoio .NewDelimitedWriter (s )
56
+ res := pb.Message {
57
+ Type : pb .Message_DIAL_RESPONSE .Enum (),
58
+ DialResponse : newDialResponseOK (s .Conn ().RemoteMultiaddr ()),
59
+ }
60
+ w .WriteMsg (& res )
61
+ })
62
+ return h
53
63
}
54
64
55
65
func makeAutoNAT (t * testing.T , ash host.Host ) (host.Host , AutoNAT ) {
@@ -173,7 +183,7 @@ func TestAutoNATPublictoPrivate(t *testing.T) {
173
183
)
174
184
expectEvent (t , s , network .ReachabilityPublic )
175
185
176
- hs .SetStreamHandler (AutoNATProto , sayAutoNATPrivate )
186
+ hs .SetStreamHandler (AutoNATProto , sayPrivateStreamHandler ( t ) )
177
187
hps := makeAutoNATServicePrivate (t )
178
188
connect (t , hps , hc )
179
189
identifyAsServer (hps , hc )
0 commit comments