@@ -68,10 +68,10 @@ def setup_nodes(self):
68
68
['-listen' , '-debug=net' , '-debug=proxy' , '-proxy=%s:%i' % (self .conf1 .addr ),'-proxyrandomize=1' ],
69
69
['-listen' , '-debug=net' , '-debug=proxy' , '-proxy=%s:%i' % (self .conf1 .addr ),'-onion=%s:%i' % (self .conf2 .addr ),'-proxyrandomize=0' ],
70
70
['-listen' , '-debug=net' , '-debug=proxy' , '-proxy=%s:%i' % (self .conf2 .addr ),'-proxyrandomize=1' ],
71
- ['-listen' , '-debug=net' , '-debug=proxy' , '-proxy=[%s]:%i' % (self .conf3 .addr ),'-proxyrandomize=0' ]
71
+ ['-listen' , '-debug=net' , '-debug=proxy' , '-proxy=[%s]:%i' % (self .conf3 .addr ),'-proxyrandomize=0' , '-noonion' ]
72
72
])
73
73
74
- def node_test (self , node , proxies , auth ):
74
+ def node_test (self , node , proxies , auth , test_onion = True ):
75
75
rv = []
76
76
# Test: outgoing IPv4 connection through node
77
77
node .addnode ("15.61.23.23:1234" , "onetry" )
@@ -99,17 +99,18 @@ def node_test(self, node, proxies, auth):
99
99
assert_equal (cmd .password , None )
100
100
rv .append (cmd )
101
101
102
- # Test: outgoing onion connection through node
103
- node .addnode ("bitcoinostk4e4re.onion:8333" , "onetry" )
104
- cmd = proxies [2 ].queue .get ()
105
- assert (isinstance (cmd , Socks5Command ))
106
- assert_equal (cmd .atyp , AddressType .DOMAINNAME )
107
- assert_equal (cmd .addr , "bitcoinostk4e4re.onion" )
108
- assert_equal (cmd .port , 8333 )
109
- if not auth :
110
- assert_equal (cmd .username , None )
111
- assert_equal (cmd .password , None )
112
- rv .append (cmd )
102
+ if test_onion :
103
+ # Test: outgoing onion connection through node
104
+ node .addnode ("bitcoinostk4e4re.onion:8333" , "onetry" )
105
+ cmd = proxies [2 ].queue .get ()
106
+ assert (isinstance (cmd , Socks5Command ))
107
+ assert_equal (cmd .atyp , AddressType .DOMAINNAME )
108
+ assert_equal (cmd .addr , "bitcoinostk4e4re.onion" )
109
+ assert_equal (cmd .port , 8333 )
110
+ if not auth :
111
+ assert_equal (cmd .username , None )
112
+ assert_equal (cmd .password , None )
113
+ rv .append (cmd )
113
114
114
115
# Test: outgoing DNS name connection through node
115
116
node .addnode ("node.noumenon:8333" , "onetry" )
@@ -139,8 +140,41 @@ def run_test(self):
139
140
assert_equal (len (credentials ), 4 )
140
141
141
142
# proxy on IPv6 localhost
142
- self .node_test (self .nodes [3 ], [self .serv3 , self .serv3 , self .serv3 , self .serv3 ], False )
143
+ self .node_test (self .nodes [3 ], [self .serv3 , self .serv3 , self .serv3 , self .serv3 ], False , False )
144
+
145
+ def networks_dict (d ):
146
+ r = {}
147
+ for x in d ['networks' ]:
148
+ r [x ['name' ]] = x
149
+ return r
150
+
151
+ # test RPC getnetworkinfo
152
+ n0 = networks_dict (self .nodes [0 ].getnetworkinfo ())
153
+ for net in ['ipv4' ,'ipv6' ,'onion' ]:
154
+ assert_equal (n0 [net ]['proxy' ], '%s:%i' % (self .conf1 .addr ))
155
+ assert_equal (n0 [net ]['proxy_randomize_credentials' ], True )
156
+ assert_equal (n0 ['onion' ]['reachable' ], True )
157
+
158
+ n1 = networks_dict (self .nodes [1 ].getnetworkinfo ())
159
+ for net in ['ipv4' ,'ipv6' ]:
160
+ assert_equal (n1 [net ]['proxy' ], '%s:%i' % (self .conf1 .addr ))
161
+ assert_equal (n1 [net ]['proxy_randomize_credentials' ], False )
162
+ assert_equal (n1 ['onion' ]['proxy' ], '%s:%i' % (self .conf2 .addr ))
163
+ assert_equal (n1 ['onion' ]['proxy_randomize_credentials' ], False )
164
+ assert_equal (n1 ['onion' ]['reachable' ], True )
143
165
166
+ n2 = networks_dict (self .nodes [2 ].getnetworkinfo ())
167
+ for net in ['ipv4' ,'ipv6' ,'onion' ]:
168
+ assert_equal (n2 [net ]['proxy' ], '%s:%i' % (self .conf2 .addr ))
169
+ assert_equal (n2 [net ]['proxy_randomize_credentials' ], True )
170
+ assert_equal (n2 ['onion' ]['reachable' ], True )
171
+
172
+ n3 = networks_dict (self .nodes [3 ].getnetworkinfo ())
173
+ for net in ['ipv4' ,'ipv6' ]:
174
+ assert_equal (n3 [net ]['proxy' ], '[%s]:%i' % (self .conf3 .addr ))
175
+ assert_equal (n3 [net ]['proxy_randomize_credentials' ], False )
176
+ assert_equal (n3 ['onion' ]['reachable' ], False )
177
+
144
178
if __name__ == '__main__' :
145
179
ProxyTest ().main ()
146
180
0 commit comments