Cleaned up Peer States. Three Important States (DHT, Connection, Request).

* Fixed up peer state display.
 * added Callback Error notification in GUI.
 * Added ConnectionRequest State Handling (and interaction with BitDHT)
 * Improved Testing Script with analysis scripts to find ERROR/WARNING/etc




git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-peernet@4318 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2011-06-22 13:26:57 +00:00
parent d92f368c24
commit 0b72e4e795
7 changed files with 1019 additions and 638 deletions

View File

@ -1,500 +1,500 @@
203.217.170.217 30874
80.78.101.200 61523
77.39.38.204 37985
202.133.55.164 33171
178.218.48.18 1099
96.51.81.67 34848
80.252.240.10 35691
78.234.176.210 1127
109.110.92.246 32296
87.2.122.2 62144
178.121.100.139 20767
85.210.38.111 20002
91.203.26.250 35691
95.190.88.173 6881
85.210.38.111 19969
188.112.100.65 48383
87.179.236.249 59052
86.208.6.127 12626
61.94.131.92 20868
78.100.208.50 49167
76.105.119.12 51907
77.232.141.42 1091
92.126.119.204 64747
123.48.140.103 61951
94.64.163.174 57313
69.108.1.1 56567
178.251.108.66 61945
115.118.45.148 35892
88.170.1.199 60144
190.167.138.244 26974
182.177.82.129 27209
24.15.140.50 39343
86.97.72.240 54516
112.205.59.68 62449
197.1.100.218 40227
116.71.174.200 26046
188.114.16.34 53426
122.150.252.60 29049
46.247.199.83 51000
193.151.81.140 2541
69.171.163.146 38809
95.79.92.140 27822
189.115.166.104 40939
188.134.60.83 34466
83.128.66.50 23306
217.173.21.18 44913
75.37.76.247 54498
182.18.209.111 55175
78.87.36.96 52234
217.151.50.135 34663
178.177.15.116 64559
213.108.169.251 52642
82.44.220.175 17627
174.59.66.22 45542
68.102.204.198 45538
46.240.114.178 1035
92.73.220.200 37808
184.155.124.198 1760
116.68.205.230 17766
93.6.71.124 6881
27.106.45.102 17129
78.224.127.28 51413
62.198.147.128 53000
50.53.11.193 20252
190.250.203.79 28940
122.168.160.76 64204
142.68.150.203 25265
77.111.38.57 6112
178.158.129.156 53156
80.90.168.147 12107
82.36.28.38 53598
80.245.125.101 18281
78.9.112.104 60101
81.236.213.187 55702
77.37.173.222 17952
87.120.81.236 24099
94.143.40.37 15029
46.138.56.95 12460
82.170.50.47 12077
70.65.69.190 61162
95.139.201.69 26942
137.186.166.21 60083
61.36.189.19 28156
109.196.27.89 19426
88.218.40.50 64051
95.134.37.74 19759
178.176.213.37 62907
67.191.251.240 6948
74.13.82.14 23671
175.142.137.43 16580
69.231.200.182 1232
118.100.188.133 26823
65.0.147.109 52384
173.180.193.221 45097
108.18.183.88 28878
178.123.26.34 35691
118.175.28.40 62040
67.182.148.53 52368
71.235.255.153 42753
178.131.149.74 1024
89.254.200.15 29205
71.137.205.162 58833
2.102.201.255 56665
115.137.13.82 32102
95.134.241.47 14246
94.181.132.96 41286
118.100.202.71 15457
24.64.255.168 60790
182.185.162.177 49767
82.229.248.131 53867
84.126.150.250 48969
94.196.180.219 29278
89.189.169.9 64036
71.23.6.10 33593
89.134.11.198 5920
92.99.142.104 40298
111.255.13.248 8303
88.224.46.15 12428
187.147.33.33 10324
85.227.133.190 7180
122.164.119.251 16089
195.1.121.159 49701
66.57.69.241 10926
94.31.150.58 35691
188.49.91.110 40169
210.203.254.254 51413
85.210.38.111 19949
85.210.38.111 19909
96.48.192.208 53836
182.64.124.126 38168
88.172.13.116 51413
109.92.112.129 22936
117.196.161.248 51910
82.84.223.109 56185
190.232.74.186 10033
85.166.14.181 23781
78.14.205.151 24322
93.125.159.58 58601
78.14.205.151 24519
109.228.69.62 47894
142.68.95.81 19369
81.9.142.95 18940
109.254.45.134 57844
125.27.17.134 12232
86.28.116.226 2668
180.194.46.228 8276
90.176.46.150 21697
98.210.187.110 19898
178.65.64.14 57445
67.234.252.161 11927
74.32.95.253 53323
89.83.53.151 65024
94.190.193.155 55228
188.24.117.90 62312
212.104.80.34 31862
109.197.112.31 61609
195.97.110.132 52875
74.88.46.11 61209
109.187.214.177 15322
46.162.95.240 52703
178.203.129.209 47916
84.237.163.170 41656
109.124.82.91 16013
80.95.21.118 42418
41.228.227.238 31781
85.26.164.93 16730
49.49.125.183 13162
124.8.223.131 16880
77.120.141.223 37934
24.215.67.68 22373
62.176.15.8 10243
189.115.31.189 13424
108.28.196.97 29891
79.175.118.223 14775
119.42.69.50 27990
123.178.142.202 17496
80.216.132.26 50931
121.54.54.36 3023
195.114.142.104 51981
178.203.144.149 18216
90.23.215.122 38441
88.173.100.176 54193
83.134.13.245 6880
92.142.104.243 48000
186.206.12.33 8291
109.254.49.13 15322
95.34.58.144 48642
91.217.91.11 39192
144.85.175.55 51319
88.189.82.239 5666
89.163.47.59 42236
61.26.132.128 20467
85.141.182.218 26551
124.86.55.118 12808
174.89.132.196 60002
93.81.173.161 20440
90.155.221.225 39205
70.78.210.9 1298
95.190.121.226 31234
109.53.138.103 50703
93.132.90.224 5188
89.134.230.77 62153
134.106.236.73 32092
78.92.198.104 40643
77.85.131.21 21310
85.210.38.111 20071
41.224.125.14 55307
189.69.114.40 1076
67.188.133.52 41610
84.212.113.134 37675
41.230.228.52 29852
178.90.39.54 15769
85.210.38.111 20040
99.241.83.62 1723
174.78.66.72 38024
31.47.172.92 1044
119.246.23.104 7579
84.101.63.207 18016
79.105.169.154 22075
212.178.11.237 36412
118.173.147.186 12775
76.183.242.116 56806
178.162.242.146 37592
85.210.38.111 20029
109.203.19.10 47776
188.95.214.180 25538
41.137.23.157 21536
85.210.38.111 19869
76.174.241.230 59344
218.186.99.145 21190
189.82.4.53 47779
2.82.216.224 28160
85.210.38.111 19951
187.0.225.7 60317
46.48.170.112 39721
85.210.38.111 19868
164.8.221.24 31547
91.139.186.168 27947
95.211.8.11 25896
69.198.251.177 22146
68.93.74.85 25378
122.176.245.208 45682
125.59.156.33 32401
134.106.236.63 7584
83.128.120.21 51431
95.52.104.115 14112
85.210.38.111 19898
109.70.52.238 44500
95.26.117.116 64874
85.210.38.111 19957
88.149.180.60 51414
201.75.105.21 43298
78.100.236.49 40809
92.49.178.248 21131
92.154.124.137 47816
90.220.199.212 42682
46.177.118.125 48545
85.210.38.111 19828
207.81.138.15 1975
46.187.39.136 44658
109.229.0.181 11795
85.210.38.111 19693
71.64.109.64 54232
216.108.187.36 22975
140.122.103.182 13143
88.186.107.212 8660
101.140.84.139 61461
81.234.194.192 61049
95.30.219.148 46630
95.30.94.188 37915
186.32.81.120 13178
116.199.161.210 18875
78.112.75.247 16969
112.164.232.8 17207
85.210.38.111 19790
201.6.182.65 29017
92.114.3.126 35521
46.185.40.138 35691
85.210.38.111 19849
71.203.222.193 11243
88.198.183.157 32257
85.151.56.108 50040
107.10.32.153 6881
89.47.86.152 63650
85.210.38.111 20044
88.179.250.21 42329
221.153.66.253 40650
95.27.131.41 42799
77.80.249.28 32894
98.221.3.209 23762
84.3.163.246 44384
92.37.54.96 11558
94.21.92.231 38888
78.8.66.173 25367
83.230.136.117 13910
66.229.58.188 43794
46.211.230.178 15475
213.113.105.94 38453
92.81.13.245 39663
88.125.45.122 30097
92.133.95.85 52910
85.210.38.111 15658
114.17.132.233 19663
88.104.22.104 27257
109.9.10.137 18441
217.27.42.102 63452
92.44.86.3 16896
84.228.48.61 10335
81.232.49.39 16471
188.18.63.93 23310
173.186.45.157 37950
76.200.122.172 55578
94.213.103.5 37531
92.142.169.56 13452
80.202.97.14 64178
85.66.15.212 40149
79.83.138.75 43384
76.20.98.207 37009
78.144.232.59 57786
86.30.240.5 55315
85.210.38.111 15685
189.155.48.178 14898
74.13.82.14 23671
89.217.155.87 51413
83.240.122.86 20710
117.195.46.183 50932
193.231.163.24 20385
112.140.12.221 10677
189.235.140.51 27844
121.169.204.131 23467
92.81.221.104 51868
89.211.184.120 38643
62.201.84.120 36698
175.110.122.13 16029
84.43.183.51 27571
85.210.38.111 15692
85.210.38.111 15666
131.123.1.227 55013
78.72.37.248 58953
85.210.38.111 15638
85.210.38.111 15667
85.210.38.111 15620
95.211.8.11 1140
88.178.72.2 7812
93.103.72.182 49529
79.131.185.51 28886
213.107.66.202 41381
95.80.59.11 55494
69.118.24.163 43611
120.51.210.154 443
85.210.38.111 19695
90.149.130.169 39191
83.157.69.174 20504
85.210.38.111 15728
189.129.2.99 23463
85.210.38.111 15674
76.107.46.7 16170
85.210.38.111 15808
211.217.145.63 58587
110.55.23.91 20417
2.82.216.224 28160
85.210.38.111 15612
85.210.38.111 15774
85.210.38.111 15681
85.210.38.111 15593
85.210.38.111 15631
78.58.1.213 39032
93.96.27.58 58144
85.210.38.111 15682
85.210.38.111 15590
85.210.38.111 15603
85.21.159.120 33978
85.210.38.111 15632
85.210.38.111 15597
85.210.38.111 15644
76.105.119.12 51907
61.36.189.19 28156
82.44.220.175 17627
71.235.255.153 42753
173.180.193.221 45097
118.175.28.40 62040
62.68.146.175 35691
91.179.145.10 33893
109.70.52.238 44500
81.9.142.95 18940
80.95.21.118 42418
142.68.150.203 25265
109.124.82.91 16013
142.68.95.81 19369
108.28.196.97 29891
123.178.142.202 17496
78.100.236.49 40809
89.134.230.77 62153
95.34.58.144 48642
99.241.83.62 1723
31.47.172.92 1044
67.188.133.52 41610
144.85.175.55 51319
79.105.169.154 22075
186.206.12.33 8291
85.235.253.178 15010
88.149.180.60 51414
78.112.75.247 16969
83.128.120.21 51431
79.135.216.60 51652
164.8.221.24 31547
188.95.214.180 25538
95.30.219.148 46630
50.90.175.187 60001
24.3.223.212 43041
68.93.74.85 25378
76.174.241.230 59344
125.59.156.33 32401
124.244.217.44 50221
187.0.225.7 60317
86.28.116.226 2668
130.243.191.202 24410
93.103.72.182 49529
77.80.249.28 32894
109.207.196.189 14146
65.96.192.106 20277
68.2.142.67 39571
85.210.38.111 20024
189.103.144.5 12351
78.48.11.9 46913
90.149.130.169 39191
107.10.32.153 6881
71.203.222.193 11243
79.131.185.51 28886
174.42.210.123 35053
94.30.130.58 18116
88.171.224.208 54755
85.210.38.111 20043
62.147.204.92 7812
188.80.161.77 52343
77.41.99.77 60590
85.210.38.111 20033
178.123.85.47 38504
92.248.226.221 55061
216.137.133.89 44376
201.11.235.148 33618
85.210.38.111 19789
178.223.136.94 10060
78.137.52.144 19547
78.139.231.192 50734
85.210.38.111 19954
221.24.70.141 61625
69.199.102.6 48234
85.15.70.92 53210
85.210.38.111 19992
82.244.203.153 21428
76.199.97.225 62729
189.82.213.9 61402
50.88.148.45 38303
87.10.130.213 26436
176.14.55.15 51813
110.254.168.210 40626
80.60.161.46 53490
120.51.210.154 443
213.107.66.202 41381
62.165.228.234 24958
217.197.6.47 30000
93.152.129.100 26707
62.165.228.234 24958
85.210.38.111 19866
86.106.214.64 35691
77.78.172.9 23574
85.15.70.92 53210
78.139.231.192 50734
93.132.90.224 5188
174.1.101.83 9406
187.127.72.162 21380
84.247.22.75 25850
46.186.54.192 26016
61.210.66.191 36578
178.94.154.111 23923
109.110.94.70 30954
95.52.255.62 63245
82.224.136.52 7890
91.116.191.138 4662
213.250.22.253 50254
85.210.38.111 19926
87.228.93.4 51915
62.228.21.148 15495
200.86.205.61 34635
94.59.178.235 10379
1.175.139.234 27959
65.94.96.85 48004
88.152.129.72 29440
109.93.217.79 11526
95.211.8.11 1140
50.104.19.222 27902
77.66.238.64 41810
85.210.38.111 19935
27.32.111.217 40217
178.222.42.90 29384
80.149.19.153 32528
92.142.169.56 13452
217.211.244.154 24932
1.83.139.64 16001
46.72.130.102 55045
85.210.38.111 19894
178.235.29.152 41661
59.113.155.14 21775
221.145.157.133 41323
78.144.43.115 42272
83.145.228.244 23147
69.59.103.85 22750
85.210.38.111 19697
93.81.73.84 44144
200.86.205.61 34635
91.116.191.138 4662
221.24.70.141 61625
84.40.83.186 1660
121.167.12.118 39840
79.100.162.25 54856
178.49.145.136 12665
85.210.38.111 19784
217.164.118.188 13026
83.26.8.229 9849
63.234.11.132 27352
125.27.93.175 16816
83.193.168.78 44075
174.53.219.63 57942
85.210.38.111 19955
46.1.73.188 6881
190.44.21.47 17082
85.210.38.111 19749
85.210.38.111 20025
78.229.223.205 36531
90.220.124.142 39540
79.113.218.66 63123
79.116.206.103 58889
24.1.118.110 27704
85.210.38.111 19851
79.119.95.94 46983
77.232.20.26 43250
223.218.101.122 62548
41.227.56.179 22716
95.90.231.148 35420
217.211.244.154 24932
94.101.207.170 62580
78.14.205.151 24211
85.210.38.111 19962
112.119.180.21 59328
81.92.179.110 47662
85.210.38.111 19736
46.185.19.224 21714
88.135.170.12 13761
61.18.255.9 50239
94.188.38.151 63933
86.106.214.64 35691
82.232.0.124 9156
24.64.255.14 42832
189.121.6.224 45063
86.62.100.113 44610
220.224.225.94 23365
85.210.38.111 19755
75.23.9.181 51498
89.102.166.183 18088
178.222.42.90 29384
78.229.223.205 36531
69.59.103.85 22750
77.232.20.26 43250
190.44.21.47 17082
65.94.96.85 48004
27.32.111.217 40217
79.113.248.160 59750
77.41.71.131 43240
79.164.138.217 20214
84.0.14.117 34245
46.9.235.202 6881
78.25.142.245 25505
94.181.187.209 38043
67.166.179.95 51679
93.12.199.146 50797
98.183.153.23 39212
213.5.222.186 3142
84.238.34.216 55202
85.210.38.111 19826
178.235.29.152 41661
134.106.236.63 7584
188.26.171.65 37450
213.245.73.220 15641
90.191.77.198 44825
75.137.112.233 16873
93.100.44.38 23175
223.217.219.211 21119
183.83.51.187 12904
99.66.229.86 30732
69.122.99.119 54701
98.64.93.81 46213
62.65.221.25 59745
93.139.101.103 58439
88.187.80.252 49180
188.26.171.65 37450
93.24.229.80 20696
94.21.112.229 46570
124.6.181.195 30186
188.48.117.225 16814
81.234.250.180 28382
122.118.26.19 24793
178.90.16.213 23732
89.122.61.69 49001
46.158.127.89 57492
94.180.186.80 38312
92.149.49.162 7816
91.225.23.236 35691
68.118.94.35 33288
92.246.222.219 11335
99.70.88.225 43139
88.78.69.59 31441
90.148.148.73 34106
188.52.71.90 13213
85.210.38.111 20045
212.152.53.78 14254
115.23.249.109 16823
85.210.38.111 19724
67.162.186.239 28803
89.217.250.98 16190
85.210.38.111 19999
111.250.168.97 22261
109.251.146.80 51027
92.149.49.162 7812
91.66.51.19 33548
84.41.72.126 49059
85.210.38.111 19915
178.117.36.48 26529
85.210.38.111 19730
91.202.134.248 54118
87.252.162.209 43996
24.55.87.176 27129
85.210.38.111 19739
85.210.38.111 19905
76.216.226.150 34974
85.210.38.111 19692
85.210.38.111 19893
85.210.38.111 20067
85.210.38.111 19831
85.210.38.111 20008
85.210.38.111 19883
85.210.38.111 20015
85.210.38.111 19984
85.210.38.111 19794
85.210.38.111 19972
85.210.38.111 19728
85.210.38.111 19766
85.210.38.111 19923
85.210.38.111 19997
85.210.38.111 19764
85.210.38.111 19900
85.210.38.111 19791
85.210.38.111 19970
184.166.168.30 35691
67.162.186.239 28803
189.1.29.210 65123
124.8.223.131 16880
61.18.255.9 50239
114.45.68.143 8856
85.210.38.111 15779
93.183.216.171 16220
82.226.181.145 43643
99.99.189.213 10061
119.74.167.148 20643
88.189.63.143 20348
77.28.179.245 48808
88.187.80.252 49180
99.66.229.86 30732
186.136.77.234 14974
60.48.219.49 16407
93.12.199.146 50797
119.15.212.95 9787
123.2.57.90 18763
24.1.118.110 27704
77.241.136.193 48402
81.228.144.87 48865
24.79.172.54 20661
201.95.29.34 20932
60.51.122.36 16881
87.250.168.72 26497
81.4.163.154 48066
85.210.38.111 15613
122.118.26.19 24793
85.210.38.111 15780
124.191.35.38 50369
85.210.38.111 15781
92.50.80.105 49232
200.206.196.18 38972
80.57.236.73 44357
85.210.38.111 15790
151.83.37.110 58558
85.210.38.111 15610
77.34.110.130 13687
85.210.38.111 15794
85.210.38.111 15669
65.34.76.217 62453
213.150.55.196 15030
84.29.225.174 6881
94.196.193.82 39512
60.8.87.30 12543
85.210.38.111 15615
46.164.30.196 19818
46.183.2.146 37299
79.92.2.217 43791
85.210.38.111 15617
213.60.50.230 39805
83.239.183.218 46153
121.7.22.119 36748
176.14.115.172 52218
173.61.88.200 59733
70.31.157.90 16667
85.210.38.111 15751
84.228.209.103 56467
124.244.43.30 48033
188.4.223.46 56420
173.66.20.234 6881
81.236.195.180 18203
151.27.33.148 10016
24.64.255.14 42832
85.210.38.111 15594
85.210.38.111 15706
85.210.38.111 15784
70.140.96.89 39408
85.210.38.111 15626
78.101.171.111 32349
81.152.33.128 60371
79.119.95.94 46983
84.41.72.126 49059
200.96.131.61 11189
91.217.91.11 39192
157.157.203.120 60474
96.48.200.166 29285
2.102.201.65 56665
125.26.253.83 32071
111.192.15.183 16001
74.56.99.15 30046
85.210.38.111 15694
213.111.220.24 60004
78.244.100.110 51623
85.235.24.51 51413
85.210.38.111 15599
86.95.163.76 52413
76.226.84.74 26334
85.210.38.111 15625
119.155.117.63 51550
85.210.38.111 15662
195.34.242.110 35352
194.112.217.73 11279
142.161.198.77 44740
89.240.201.241 10371
82.232.0.124 9156
80.234.99.71 21756
112.225.28.127 16001
85.210.38.111 15697
75.138.42.54 6881
71.136.39.215 1171
85.210.38.111 15585
85.210.38.111 15704
58.115.83.248 15959
90.142.190.91 49688
85.210.38.111 15665
85.210.38.111 15712
85.210.38.111 15715
85.210.38.111 15641
187.149.168.72 25300
1.160.232.123 18254
85.210.38.111 15623
85.210.38.111 15647
216.110.99.160 16749
85.210.38.111 15679
99.116.4.75 35916
122.19.243.220 48788
122.133.5.65 47338
218.166.126.94 17175
61.178.17.210 15152
77.242.145.133 51413
82.254.41.81 57189
173.217.246.214 13494
46.118.224.174 63196
80.186.135.251 37585
85.210.38.111 15713
109.94.66.154 62185
188.2.33.6 47050
89.89.18.218 13783
68.193.187.110 39233
151.15.11.42 35363
220.241.211.145 33830
84.209.76.94 39078
68.174.120.114 50424
85.210.38.111 15608
85.210.38.111 15643
142.167.140.26 45059
85.210.38.111 15671
85.210.38.111 15708
89.77.18.144 57420
78.159.38.59 41621
87.56.51.50 39107
2.50.21.232 53135
85.210.38.111 15604
151.20.181.199 39886
85.210.38.111 15711
182.64.118.74 11244
85.210.38.111 15607
213.16.121.172 7380
90.216.117.77 26903
77.206.26.166 49807
124.169.135.216 20627
85.210.38.111 15652
85.210.38.111 15621
123.238.65.20 60431
85.210.38.111 15655
134.106.236.73 32092
85.210.38.111 15660
67.45.198.80 10275
85.210.38.111 15677
85.210.38.111 15605
85.210.38.111 15614
78.96.192.198 20544
178.122.91.204 50491
82.244.203.153 21428
95.166.77.224 51413
79.111.48.157 42921
109.63.170.93 51767
124.180.53.163 24425
85.210.38.111 15709
88.162.79.68 12574
188.226.4.247 61384
96.3.14.184 14029
66.177.245.122 10328
125.178.8.35 51413
85.210.38.111 15691
178.203.129.209 47916
121.16.195.218 33700
96.254.114.126 26982
70.65.69.190 61162
189.26.147.115 23755
113.53.178.125 11685
98.14.74.49 50918
87.126.123.205 55118
77.77.59.2 7868
24.162.155.137 23221
69.111.152.82 58513
93.106.57.71 17012
126.10.205.181 26408
62.147.204.92 7812
202.161.27.236 29020
91.66.51.19 33548
178.203.144.149 18216
85.210.38.111 15645
77.120.20.53 19094
88.170.1.199 60144
69.125.102.230 64736
85.210.38.111 15701
142.177.163.124 24663
212.15.159.70 52349
77.70.96.130 14146
221.190.131.95 46545
182.64.117.176 19106
81.53.57.54 27721
93.21.120.104 50100
87.229.13.157 51888
174.5.200.186 22115
201.210.6.209 15475
85.210.38.111 15722
77.37.236.54 6881
79.114.69.125 12563
201.43.14.4 17607
220.145.224.43 51188
201.15.217.137 38971
221.202.84.134 8793
85.210.38.111 15723
201.78.165.4 58026
86.150.142.72 49740
46.47.102.170 6881
219.79.181.184 35997
85.210.38.111 15664
89.181.200.105 21518
67.160.20.111 46292
187.39.23.126 22015
95.165.134.29 55258
85.247.202.169 32566
75.25.147.26 51413
85.210.38.111 15737
89.157.128.104 33931
94.41.220.97 61538
50.22.214.88 15003
188.95.111.46 41736
2.226.2.251 46917
85.241.42.187 45224
91.154.8.204 44742
77.35.141.3 33457
85.210.38.111 15690
86.135.109.40 17662
88.189.82.239 5666
85.210.38.111 15739
217.24.244.196 46851
94.27.71.210 38180
88.148.38.107 23695
114.32.10.189 6882
190.177.150.208 61830
85.210.38.111 15627
85.210.38.111 15640
59.113.155.14 21775
88.161.167.243 18722
76.122.32.160 13272
85.210.38.111 15648
85.210.38.111 15747
85.210.38.111 15606
92.154.124.137 47816
213.22.190.219 59746
67.167.245.246 63188
24.7.144.73 29585
178.46.48.131 22442
218.67.244.18 18119
189.61.101.171 44535
85.210.38.111 15591
83.20.118.241 14433
77.100.181.253 53042
85.210.38.111 15668
95.78.238.94 54157
201.75.12.64 8599
86.6.193.240 59203
85.210.38.111 15628
88.198.183.157 32257
80.149.19.153 32528
85.210.38.111 15639
85.210.38.111 15622
92.52.37.169 24456
140.184.38.236 26038
76.22.208.42 48036
198.53.231.242 41343
190.105.1.61 31276
85.210.38.111 15609
85.210.38.111 15589
85.210.38.111 15611
216.249.207.179 49264
85.210.38.111 15600
91.205.174.9 64081
85.210.38.111 15676
85.27.92.249 6881
89.235.211.154 54082
95.79.114.90 54480
94.98.237.189 22423
174.50.75.23 40107
50.8.231.183 6895
199.15.222.2 41932
85.210.38.111 15654
85.210.38.111 15727
123.89.205.188 27728
85.210.38.111 15587
85.210.38.111 15661
85.210.38.111 15672
193.251.90.143 64101
94.19.219.159 62495
85.210.38.111 15588
76.227.0.63 31540
85.210.38.111 15680
85.210.38.111 15598
85.210.38.111 15642
85.210.38.111 15683
174.116.40.53 18169
85.210.38.111 15673
85.210.38.111 15601
85.210.38.111 15616
85.210.38.111 15596
46.188.4.2 32546
85.210.38.111 15633
85.210.38.111 15663
85.210.38.111 15761
85.210.38.111 15651
85.210.38.111 15684
85.210.38.111 15602
85.210.38.111 15618
85.210.38.111 15759
85.210.38.111 15649
85.210.38.111 15734
85.210.38.111 15586
85.210.38.111 15689
85.210.38.111 15688
85.210.38.111 15716
178.171.98.228 35691
94.99.70.34 13738

View File

@ -67,6 +67,26 @@ def generateNet(basefolder, npeers, nfriends, fracProxy, fracRelay, nguis):
fd = open(scriptfilename, 'w');
fd.write('#!/bin/sh\n\n');
#
analysisfilename = '%s/checkforerrs.sh' % (basefolder);
fd2 = open(analysisfilename, 'w');
fd2.write('#!/bin/sh\n\n');
#
warningfilename = '%s/checkforwarnings.sh' % (basefolder);
fd3 = open(warningfilename, 'w');
fd3.write('#!/bin/sh\n\n');
#
exprfilename = '%s/checkforexpr.sh' % (basefolder);
fd4 = open(exprfilename, 'w');
fd4.write('#!/bin/sh\n\n');
fd4.write('if [$# -lt 2]\n');
fd4.write('then\n');
fd4.write(' echo \"script needs expression as argument\"\n');
fd4.write('fi\n\n')
for i in range(npeers):
random.shuffle(shuffledIdxs);
print 'Peer %d : %s' % (i+1, ids[i]);
@ -77,8 +97,11 @@ def generateNet(basefolder, npeers, nfriends, fracProxy, fracRelay, nguis):
friends = [];
for j in range(nfriends):
fid = shuffledIdxs[j];
print '\t\tIdx: %d Port: %d Id: %s' % (fid, ports[fid], ids[fid])
friends.append(ids[fid]);
if (fid != i):
print '\t\tIdx: %d Port: %d Id: %s' % (fid, ports[fid], ids[fid])
friends.append(ids[fid]);
else:
print '\t\tSkipping Self as Peer!'
folder = '%s/%s' % (basefolder, folders[i]);
if (os.path.exists(folder)):
@ -96,8 +119,30 @@ def generateNet(basefolder, npeers, nfriends, fracProxy, fracRelay, nguis):
fd.write('./run.sh &\n');
fd.write('cd ..\n\n');
fd2.write('echo ------------ PEER FOLDER: %s\n' % folders[i]);
fd2.write('cd %s\n' % folders[i]);
fd2.write('grep -n ERROR pn.log\n');
fd2.write('cd ..\n\n');
fd3.write('echo ------------ PEER FOLDER: %s\n' % folders[i]);
fd3.write('cd %s\n' % folders[i]);
fd3.write('grep -n WARNING pn.log\n');
fd3.write('cd ..\n\n');
fd4.write('echo ------------ PEER FOLDER: %s\n' % folders[i]);
fd4.write('cd %s\n' % folders[i]);
fd4.write('grep -n -A 10 $1 pn.log\n');
fd4.write('cd ..\n\n');
fd.close();
fd2.close();
fd3.close();
fd4.close();
os.chmod(scriptfilename, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IROTH);
os.chmod(analysisfilename, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IROTH);
os.chmod(warningfilename, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IROTH);
os.chmod(exprfilename, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IROTH);
return;
@ -133,8 +178,8 @@ def makePeerRunScript(folder, gui, port, proxyblock, proxyrange, relayblock, rel
fd.write('#/bin/sh\n\n');
fd.write('EXEC=%s\n\n' % execpath);
fd.write(('$EXEC %s -l -p %d -r %d-%d -R %d-%d -c . > /dev/null 2>&1' % (noguistr, port, proxyblock, proxyblock+proxyrange, relayblock, relayblock+relayrange)));
#fd.write(('$EXEC %s -l -p %d -r %d-%d -R %d-%d -c . > pn.log 2>&1' % (noguistr, port, proxyblock, proxyblock+proxyrange, relayblock, relayblock+relayrange)));
#fd.write(('$EXEC %s -l -p %d -r %d-%d -R %d-%d -c . > /dev/null 2>&1' % (noguistr, port, proxyblock, proxyblock+proxyrange, relayblock, relayblock+relayrange)));
fd.write(('$EXEC %s -l -p %d -r %d-%d -R %d-%d -c . > pn.log 2>&1' % (noguistr, port, proxyblock, proxyblock+proxyrange, relayblock, relayblock+relayrange)));
fd.close();
os.chmod(filename, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR | stat.S_IRGRP | stat.S_IROTH);

View File

@ -242,14 +242,22 @@ void MainWindow::updateNetPeers()
int nRelayPeers = 0;
#define PTW_COL_PEERID 0
#define PTW_COL_DHT_STATUS 1
#define PTW_COL_DHT_ADDRESS 2
#define PTW_COL_DHT_UPDATETS 3
#define PTW_COL_PEERID 0
#define PTW_COL_DHT_STATUS 1
#define PTW_COL_PEER_CONNECT_STATUS 2
#define PTW_COL_PEER_CONNECT_MODE 3
#define PTW_COL_PEER_REQ_STATUS 4
#define PTW_COL_PEER_CB_MSG 5
#define PTW_COL_PEER_STATUS 4
#define PTW_COL_PEER_ADDRESS 5
#define PTW_COL_PEER_UPDATETS 6
// These aren't that important.
#define PTW_COL_PEER_CB_MODE 6
#define PTW_COL_PEER_CB_PROXY 7
#define PTW_COL_DHT_ADDRESS 8
#define PTW_COL_DHT_UPDATETS 9
/* clear old entries */
int itemCount = peerTreeWidget->topLevelItemCount();
@ -276,6 +284,7 @@ void MainWindow::updateNetPeers()
}
}
time_t now = time(NULL);
for(it = peerIds.begin(); it != peerIds.end(); it++)
{
/* find the entry */
@ -302,7 +311,7 @@ void MainWindow::updateNetPeers()
/* update the data */
PeerStatus status;
mPeerNet->get_peer_status(*it, status);
time_t now = time(NULL);
std::ostringstream dhtipstr;
if ((status.mDhtState == PN_DHT_STATE_ONLINE) || (status.mDhtState == PN_DHT_STATE_UNREACHABLE))
@ -314,25 +323,73 @@ void MainWindow::updateNetPeers()
std::ostringstream dhtupdatestr;
dhtupdatestr << now - status.mDhtUpdateTS << " secs ago";
std::ostringstream peeripstr;
//if (status.mPeerState == PN_PEER_STATE_ONLINE)
{
peeripstr << inet_ntoa(status.mPeerAddr.sin_addr);
peeripstr << ":" << ntohs(status.mPeerAddr.sin_port);
}
std::ostringstream peerupdatestr;
peerupdatestr << now - status.mPeerUpdateTS << " secs ago";
//std::ostringstream peerupdatestr;
//peerupdatestr << now - status.mPeerUpdateTS << " secs ago";
peer_item -> setData(PTW_COL_PEERID, Qt::DisplayRole, QString::fromStdString(*it));
peer_item -> setData(PTW_COL_DHT_STATUS, Qt::DisplayRole, QString::fromStdString(status.mDhtStatusMsg));
peer_item -> setData(PTW_COL_DHT_ADDRESS, Qt::DisplayRole, QString::fromStdString(dhtipstr.str()));
peer_item -> setData(PTW_COL_DHT_UPDATETS, Qt::DisplayRole, QString::fromStdString(dhtupdatestr.str()));
peer_item -> setData(PTW_COL_PEER_STATUS, Qt::DisplayRole, QString::fromStdString(status.mPeerStatusMsg));
peer_item -> setData(PTW_COL_PEER_ADDRESS, Qt::DisplayRole, QString::fromStdString(peeripstr.str()));
peer_item -> setData(PTW_COL_PEER_UPDATETS, Qt::DisplayRole, QString::fromStdString(peerupdatestr.str()));
// NOW CONNECT STATE
std::ostringstream cpmstr;
switch(status.mPeerConnectMode)
{
case BITDHT_CONNECT_MODE_DIRECT:
cpmstr << "Direct";
break;
case BITDHT_CONNECT_MODE_PROXY:
cpmstr << "Proxy VIA ";
bdStdPrintId(cpmstr, &(status.mPeerConnectProxyId));
break;
case BITDHT_CONNECT_MODE_RELAY:
cpmstr << "Relay VIA ";
bdStdPrintId(cpmstr, &(status.mPeerConnectProxyId));
break;
default:
cpmstr << "None";
break;
}
peer_item -> setData(PTW_COL_PEER_CONNECT_STATUS, Qt::DisplayRole, QString::fromStdString(status.mPeerConnectMsg));
if (status.mPeerConnectState == PN_PEER_CONN_DISCONNECTED)
{
peer_item -> setData(PTW_COL_PEER_CONNECT_MODE, Qt::DisplayRole, "");
}
else
{
peer_item -> setData(PTW_COL_PEER_CONNECT_MODE, Qt::DisplayRole, QString::fromStdString(cpmstr.str()));
}
// NOW REQ STATE.
std::ostringstream reqstr;
switch(status.mPeerReqState)
{
case PN_PEER_REQ_RUNNING:
reqstr << "Request Active";
break;
case PN_PEER_REQ_STOPPED:
reqstr << "No Request";
break;
default:
reqstr << "Unknown";
break;
}
peer_item -> setData(PTW_COL_PEER_REQ_STATUS, Qt::DisplayRole, QString::fromStdString(reqstr.str()));
// NOW CB
std::ostringstream cbmstr;
cpmstr << status.mPeerCbMode;
std::ostringstream cbpstr;
bdStdPrintId(cbpstr, &(status.mPeerCbProxyId));
peer_item -> setData(PTW_COL_PEER_CB_MSG, Qt::DisplayRole, QString::fromStdString(status.mPeerCbMsg));
peer_item -> setData(PTW_COL_PEER_CB_MODE, Qt::DisplayRole, QString::fromStdString(cbmstr.str()));
peer_item -> setData(PTW_COL_PEER_CB_PROXY, Qt::DisplayRole, QString::fromStdString(cbpstr.str()));
switch(status.mDhtState)
@ -353,24 +410,25 @@ void MainWindow::updateNetPeers()
}
switch(status.mPeerState)
switch(status.mPeerConnectState)
{
default:
case PN_PEER_STATE_DISCONNECTED:
case PN_PEER_CONN_DISCONNECTED:
nDisconnPeers++;
break;
case PN_PEER_STATE_CONNECTED:
case PN_PEER_CONN_UDP_STARTED:
case PN_PEER_CONN_CONNECTED:
{
switch(status.mPeerConnectMode)
{
default:
case PN_CONNECT_UDP_DIRECT:
case BITDHT_CONNECT_MODE_DIRECT:
nDirectPeers++;
break;
case PN_CONNECT_UDP_PROXY:
case BITDHT_CONNECT_MODE_PROXY:
nProxyPeers++;
break;
case PN_CONNECT_UDP_RELAY:
case BITDHT_CONNECT_MODE_RELAY:
nRelayPeers++;
break;
}
@ -407,27 +465,23 @@ void MainWindow::updateNetPeers()
/* update the data */
PeerStatus status;
mPeerNet->get_failedpeer_status(*it, status);
time_t now = time(NULL);
std::ostringstream peeripstr;
//if (status.mPeerState == PN_PEER_STATE_ONLINE)
{
peeripstr << inet_ntoa(status.mPeerAddr.sin_addr);
peeripstr << ":" << ntohs(status.mPeerAddr.sin_port);
}
std::ostringstream peerupdatestr;
peerupdatestr << now - status.mPeerUpdateTS << " secs ago";
peer_item -> setData(PTW_COL_PEERID, Qt::DisplayRole, QString::fromStdString(*it));
peer_item -> setData(PTW_COL_DHT_STATUS, Qt::DisplayRole, "Unknown Peer");
peer_item -> setData(PTW_COL_DHT_ADDRESS, Qt::DisplayRole, "");
peer_item -> setData(PTW_COL_DHT_UPDATETS, Qt::DisplayRole, "");
peer_item -> setData(PTW_COL_PEER_STATUS, Qt::DisplayRole, QString::fromStdString(status.mPeerStatusMsg));
peer_item -> setData(PTW_COL_PEER_ADDRESS, Qt::DisplayRole, QString::fromStdString(peeripstr.str()));
peer_item -> setData(PTW_COL_PEER_UPDATETS, Qt::DisplayRole, QString::fromStdString(peerupdatestr.str()));
// NOW CONNECT STATE
peer_item -> setData(PTW_COL_PEER_CONNECT_STATUS, Qt::DisplayRole, QString::fromStdString(status.mPeerConnectMsg));
peer_item -> setData(PTW_COL_PEER_CONNECT_MODE, Qt::DisplayRole, "");
peer_item -> setData(PTW_COL_PEER_REQ_STATUS, Qt::DisplayRole, "None");
// NOW CB
peer_item -> setData(PTW_COL_PEER_CB_MSG, Qt::DisplayRole, QString::fromStdString(status.mPeerCbMsg));
peer_item -> setData(PTW_COL_PEER_CB_MODE, Qt::DisplayRole, "");
peer_item -> setData(PTW_COL_PEER_CB_PROXY, Qt::DisplayRole, "None");
}

View File

@ -160,6 +160,36 @@
<string>Dht Status</string>
</property>
</column>
<column>
<property name="text">
<string>Connect Status</string>
</property>
</column>
<column>
<property name="text">
<string>Connect Mode</string>
</property>
</column>
<column>
<property name="text">
<string>Request Status</string>
</property>
</column>
<column>
<property name="text">
<string>Cb Status</string>
</property>
</column>
<column>
<property name="text">
<string>Cb Mode</string>
</property>
</column>
<column>
<property name="text">
<string>Cb Address</string>
</property>
</column>
<column>
<property name="text">
<string>Dht Address</string>
@ -170,21 +200,6 @@
<string>Dht Update</string>
</property>
</column>
<column>
<property name="text">
<string>Connect Status</string>
</property>
</column>
<column>
<property name="text">
<string>Connect Address</string>
</property>
</column>
<column>
<property name="text">
<string>Connect Update</string>
</property>
</column>
</widget>
</item>
</layout>

View File

@ -153,13 +153,13 @@ PeerNetStateBox::PeerNetStateBox()
/* Parameters set externally */
mStunDhtSet = false;
//time_t mStunDhtTS;
//bool mStunDhtStable;
time_t mStunDhtTS = 0;
bool mStunDhtStable = false;
//struct sockaddr_in mStunDhtAddr;
mStunProxySet = false;
//time_t mStunProxyTS;
//bool mStunProxyStable;
time_t mStunProxyTS = 0;
bool mStunProxyStable = false;
//struct sockaddr_in mStunProxyAddr;
mUPnPSet = false;

View File

@ -16,7 +16,7 @@ PeerNet::PeerNet(std::string id, std::string configpath, uint16_t port)
{
mDoUdpStackRestrictions = false;
mLocalNetTesting = false;
mMinuteTS = 0;
std::cerr << "PeerNet::PeerNet()" << std::endl;
std::cerr << "Using Id: " << id;
@ -263,10 +263,33 @@ int PeerNet::add_peer(std::string id)
it->second.mDhtState = PN_DHT_STATE_SEARCHING;
it->second.mDhtUpdateTS = time(NULL);
it->second.mPeerStatusMsg = "Disconnected";
bdsockaddr_clear(&(it->second.mPeerAddr));
it->second.mPeerState = PN_PEER_STATE_DISCONNECTED;
it->second.mPeerUpdateTS = time(NULL);
// Initialise Everything.
it->second.mPeerReqStatusMsg = "Just Added";
it->second.mPeerReqState = PN_PEER_REQ_STOPPED;
it->second.mPeerReqMode = 0;
//it->second.mPeerReqProxyId;
it->second.mPeerReqTS = time(NULL);
it->second.mPeerCbMsg = "No CB Yet";
it->second.mPeerCbMode = 0;
it->second.mPeerCbPoint = 0;
//it->second.mPeerCbProxyId = 0;
//it->second.mPeerCbDestId = 0;
it->second.mPeerCbTS = 0;
it->second.mPeerConnectState = PN_PEER_CONN_DISCONNECTED;
it->second.mPeerConnectMsg = "Disconnected";
it->second.mPeerConnectFd = 0;
it->second.mPeerConnectMode = 0;
//it->second.mPeerConnectProxyId;
it->second.mPeerConnectPoint = 0;
it->second.mPeerConnectUdpTS = 0;
it->second.mPeerConnectTS = 0;
it->second.mPeerConnectClosedTS = 0;
bdsockaddr_clear(&(it->second.mPeerConnectAddr));
addedPeer = true;
}
@ -508,11 +531,13 @@ int PeerNet::get_failedpeer_status(std::string id, PeerStatus &status)
int PeerNet::get_relayends(std::list<UdpRelayEnd> &relayEnds)
{
mRelayReceiver->getRelayEnds(relayEnds);
return 1;
}
int PeerNet::get_relayproxies(std::list<UdpRelayProxy> &relayProxies)
{
mRelayReceiver->getRelayProxies(relayProxies);
return 1;
}
@ -662,8 +687,7 @@ int PeerNet::dhtNodeCallback(const bdId *id, uint32_t peerflags)
#endif
}
if ((peerflags & BITDHT_PEER_STATUS_DHT_APPL)
&& (peerflags & BITDHT_PEER_STATUS_DHT_APPL_VERSION))
if (peerflags & BITDHT_PEER_STATUS_DHT_ENGINE_VERSION)
{
#ifdef PEERNET_DEBUG
std::cerr << "PeerNet::dhtNodeCallback() Passing Local Peer to DhtStunner: ";
@ -721,13 +745,13 @@ int PeerNet::dhtPeerCallback(const bdId *id, uint32_t status)
break;
case BITDHT_MGR_QUERY_PEER_OFFLINE:
{
it->second.mDhtStatusMsg = "Peer Offline";
it->second.mDhtStatusMsg = "Offline";
it->second.mDhtState = PN_DHT_STATE_OFFLINE;
}
break;
case BITDHT_MGR_QUERY_PEER_UNREACHABLE:
{
it->second.mDhtStatusMsg = "Peer Unreachable";
it->second.mDhtStatusMsg = "Unreachable";
it->second.mDhtState = PN_DHT_STATE_UNREACHABLE;
it->second.mDhtAddr = id->addr;
@ -736,7 +760,7 @@ int PeerNet::dhtPeerCallback(const bdId *id, uint32_t status)
break;
case BITDHT_MGR_QUERY_PEER_ONLINE:
{
it->second.mDhtStatusMsg = "Peer Online";
it->second.mDhtStatusMsg = "Online";
it->second.mDhtState = PN_DHT_STATE_ONLINE;
it->second.mDhtAddr = id->addr;
@ -764,13 +788,10 @@ int PeerNet::dhtPeerCallback(const bdId *id, uint32_t status)
int PeerNet::OnlinePeerCallback_locked(const bdId *id, uint32_t status, PeerStatus *peerStatus)
{
if ((peerStatus->mPeerState == PN_PEER_STATE_CONNECTION_INITIATED) ||
(peerStatus->mPeerState == PN_PEER_STATE_CONNECTION_AUTHORISED) ||
(peerStatus->mPeerState == PN_PEER_STATE_UDP_STARTED) ||
(peerStatus->mPeerState == PN_PEER_STATE_CONNECTED))
if (peerStatus->mPeerConnectState != PN_PEER_CONN_DISCONNECTED)
{
std::cerr << "dhtPeerCallback. Peer Online, but connection already underway: ";
std::cerr << "dhtPeerCallback. WARNING Ignoring Callback. Peer Online, but connection already underway: ";
bdStdPrintId(std::cerr, id);
std::cerr << std::endl;
}
@ -797,12 +818,9 @@ int PeerNet::OnlinePeerCallback_locked(const bdId *id, uint32_t status, PeerStat
int PeerNet::UnreachablePeerCallback_locked(const bdId *id, uint32_t status, PeerStatus *peerStatus)
{
if ((peerStatus->mPeerState == PN_PEER_STATE_CONNECTION_INITIATED) ||
(peerStatus->mPeerState == PN_PEER_STATE_CONNECTION_AUTHORISED) ||
(peerStatus->mPeerState == PN_PEER_STATE_UDP_STARTED) ||
(peerStatus->mPeerState == PN_PEER_STATE_CONNECTED))
if (peerStatus->mPeerConnectState != PN_PEER_CONN_DISCONNECTED)
{
std::cerr << "dhtPeerCallback. Peer Unreachable, but connection already underway: ";
std::cerr << "dhtPeerCallback. WARNING Ignoring Callback, Peer Unreachable, but connection already underway: ";
bdStdPrintId(std::cerr, id);
std::cerr << std::endl;
@ -889,6 +907,32 @@ int PeerNet::dhtValueCallback(const bdNodeId *id, std::string key, uint32_t stat
return 1;
}
PeerStatus *PeerNet::getPeerStatus_locked(const bdId *peerId)
{
std::cerr << "PeerNet::getPeerStatus_locked() for: ";
bdStdPrintId(std::cerr,peerId);
std::cerr << std::endl;
std::ostringstream str;
bdStdPrintNodeId(str, &(peerId->id));
std::string id = str.str();
/* check if they are in our friend list */
std::map<std::string, PeerStatus>::iterator it = mPeers.find(id);
if (it == mPeers.end())
{
std::cerr << "PeerNet::getPeerStatus_locked() WARNING Failed to find PeerStatus for: ";
bdStdPrintId(std::cerr,peerId);
std::cerr << std::endl;
return NULL;
}
return &(it->second);
}
int PeerNet::dhtConnectCallback(const bdId *srcId, const bdId *proxyId, const bdId *destId,
uint32_t mode, uint32_t point, uint32_t cbtype, uint32_t errcode)
{
@ -915,6 +959,7 @@ int PeerNet::dhtConnectCallback(const bdId *srcId, const bdId *proxyId, const bd
*/
bdId peerId;
time_t now = time(NULL);
switch(point)
{
@ -1169,7 +1214,79 @@ int PeerNet::dhtConnectCallback(const bdId *srcId, const bdId *proxyId, const bd
std::cerr << " ErrorType: " << errtype;
std::cerr << std::endl;
bdStackMutex stack(mPeerMutex); /********** LOCKED MUTEX ***************/
PeerStatus *ps = getPeerStatus_locked(&peerId);
if (ps)
{
ps->mPeerCbMsg = "ERROR : ";
ps->mPeerCbMsg += decodeConnectionError(errcode);
ps->mPeerCbMode = mode;
ps->mPeerCbPoint = point;
ps->mPeerCbProxyId = *proxyId;
ps->mPeerCbDestId = peerId;
ps->mPeerCbTS = now;
}
else
{
std::cerr << "dhtConnectionCallback() ";
std::cerr << "ERROR Unknown Peer";
std::cerr << std::endl;
}
}
break;
case BITDHT_CONNECT_CB_REQUEST:
{
std::cerr << "dhtConnectionCallback() Local Connection Request Feedback:";
bdStdPrintId(std::cerr, &(peerId));
std::cerr << std::endl;
std::cerr << "dhtConnectionCallback() Proxy:";
bdStdPrintId(std::cerr, proxyId);
std::cerr << std::endl;
if (point != BD_PROXY_CONNECTION_START_POINT)
{
std::cerr << "dhtConnectionCallback() ERROR Cannot find PeerStatus";
std::cerr << std::endl;
return 0;
}
bdStackMutex stack(mPeerMutex); /********** LOCKED MUTEX ***************/
PeerStatus *ps = getPeerStatus_locked(&peerId);
if (ps)
{
if (errcode)
{
ps->mPeerReqStatusMsg = "STOPPED: ";
ps->mPeerReqStatusMsg += decodeConnectionError(errcode);
ps->mPeerReqState = PN_PEER_REQ_STOPPED;
ps->mPeerReqTS = now;
}
else // a new connection attempt.
{
ps->mPeerReqStatusMsg = "Connect Attempt";
ps->mPeerReqState = PN_PEER_REQ_RUNNING;
ps->mPeerReqMode = mode;
ps->mPeerReqProxyId = *proxyId;
ps->mPeerReqTS = now;
// This also is flagged into the instant Cb info.
ps->mPeerCbMsg = "Local Connect Attempt";
ps->mPeerCbMode = mode;
ps->mPeerCbPoint = point;
ps->mPeerCbProxyId = *proxyId;
ps->mPeerCbDestId = peerId;
ps->mPeerCbTS = now;
}
}
else
{
std::cerr << "dhtConnectionCallback() ERROR Cannot find PeerStatus";
std::cerr << std::endl;
}
}
break;
@ -1223,6 +1340,7 @@ int PeerNet::minuteTick()
netStateTick();
mRelayReceiver->checkRelays();
}
return 1;
}
#define DHT_PEERS_ACTIVE 2
@ -1244,6 +1362,8 @@ int PeerNet::netStateTick()
{
mNetStateBox.setAddressStunProxy(&extAddr, extStable != 0);
}
return 1;
}
@ -1253,6 +1373,7 @@ int PeerNet::doActions()
std::cerr << "PeerNet::doActions()" << std::endl;
#endif
time_t now = time(NULL);
while(mActions.size() > 0)
{
@ -1280,12 +1401,16 @@ int PeerNet::doActions()
std::cerr << " mode: " << action.mMode;
std::cerr << std::endl;
bool connectionRequested = false;
if ((action.mMode == BITDHT_CONNECT_MODE_DIRECT) ||
(action.mMode == BITDHT_CONNECT_MODE_RELAY))
{
struct sockaddr_in laddr; // We zero this address. The DHT layer should be able to handle this!
sockaddr_clear(&laddr);
mUdpBitDht->ConnectionRequest(&laddr, &(action.mDestId.id), action.mMode);
uint32_t start = 1;
mUdpBitDht->ConnectionRequest(&laddr, &(action.mDestId.id), action.mMode, start);
connectionRequested = true;
}
else if (action.mMode == BITDHT_CONNECT_MODE_PROXY)
{
@ -1302,7 +1427,9 @@ int PeerNet::doActions()
std::cerr << " is OkGo as we have Stable Own External Proxy Address";
std::cerr << std::endl;
mUdpBitDht->ConnectionRequest(&extaddr, &(action.mDestId.id), action.mMode);
int start = 1;
mUdpBitDht->ConnectionRequest(&extaddr, &(action.mDestId.id), action.mMode, start);
connectionRequested = true;
}
else
{
@ -1320,6 +1447,26 @@ int PeerNet::doActions()
std::cerr << std::endl;
}
}
if (connectionRequested)
{
bdStackMutex stack(mPeerMutex); /********** LOCKED MUTEX ***************/
PeerStatus *ps = getPeerStatus_locked(&(action.mDestId));
if (ps)
{
ps->mPeerReqStatusMsg = "Connect Request";
ps->mPeerReqState = PN_PEER_REQ_RUNNING;
ps->mPeerReqMode = action.mMode;
ps->mPeerReqTS = now;
}
else
{
std::cerr << "PeerAction: Connect ERROR Cannot find PeerStatus";
std::cerr << std::endl;
}
}
}
break;
@ -1335,6 +1482,44 @@ int PeerNet::doActions()
mUdpBitDht->ConnectionAuth(&(action.mSrcId), &(action.mProxyId), &(action.mDestId),
action.mMode, action.mPoint, action.mAnswer);
// Only feedback to the gui if we are at END.
if (action.mPoint == BD_PROXY_CONNECTION_END_POINT)
{
bdStackMutex stack(mPeerMutex); /********** LOCKED MUTEX ***************/
PeerStatus *ps = getPeerStatus_locked(&(action.mSrcId));
if (ps)
{
if (action.mAnswer)
{
ps->mPeerCbMsg = "WE DENIED AUTH: ERROR : ";
ps->mPeerCbMsg += decodeConnectionError(action.mAnswer);
}
else
{
ps->mPeerCbMsg = "We AUTHED";
}
ps->mPeerCbMode = action.mMode;
ps->mPeerCbPoint = action.mPoint;
ps->mPeerCbProxyId = action.mProxyId;
ps->mPeerCbDestId = action.mSrcId;
ps->mPeerCbTS = now;
}
// Not an error if AUTH_DENIED - cos we don't know them! (so won't be in peerList).
else if (action.mAnswer | BITDHT_CONNECT_ERROR_AUTH_DENIED)
{
std::cerr << "PeerAction Authorise Connection ";
std::cerr << "Denied Unknown Peer";
std::cerr << std::endl;
}
else
{
std::cerr << "PeerAction Authorise Connection ";
std::cerr << "ERROR Unknown Peer & !DENIED ???";
std::cerr << std::endl;
}
}
}
break;
@ -1458,29 +1643,38 @@ int PeerNet::checkConnectionAllowed(const bdId *peerId, int mode)
/* flag as failed */
it->second.mId = id;
it->second.mPeerAddr = peerId->addr;
it->second.mDhtStatusMsg = "Unknown";
it->second.mDhtState = PN_DHT_STATE_UNKNOWN;
it->second.mDhtUpdateTS = now;
it->second.mPeerStatusMsg = "Denied Non-Friend";
it->second.mPeerState = PN_PEER_STATE_DENIED_NOT_FRIEND;
it->second.mPeerUpdateTS = now;
it->second.mPeerReqStatusMsg = "Denied Non-Friend";
it->second.mPeerReqState = PN_PEER_REQ_STOPPED;
it->second.mPeerReqTS = now;
it->second.mPeerReqMode = 0;
//it->second.mPeerProxyId;
it->second.mPeerReqTS = now;
it->second.mPeerCbMsg = "Denied Non-Friend";
it->second.mPeerConnectMsg = "Denied Non-Friend";
it->second.mPeerConnectState = PN_PEER_CONN_DISCONNECTED;
return 0;
//return NOT_FRIEND;
}
/* are a friend */
if (it->second.mPeerState == PN_PEER_STATE_CONNECTED)
if (it->second.mPeerConnectState == PN_PEER_CONN_CONNECTED)
{
std::cerr << "PeerNet::checkConnectionAllowed() Peer Already Connected, DENIED";
std::cerr << "PeerNet::checkConnectionAllowed() ERROR Peer Already Connected, DENIED";
std::cerr << std::endl;
it->second.mPeerStatusMsg = "2nd Connection Attempt!";
it->second.mPeerUpdateTS = now;
// STATUS UPDATE DONE IN ACTION.
//it->second.mPeerStatusMsg = "2nd Connection Attempt!";
//it->second.mPeerUpdateTS = now;
return 0;
//return ALREADY_CONNECTED;
}
@ -1500,15 +1694,14 @@ int PeerNet::checkConnectionAllowed(const bdId *peerId, int mode)
}
#endif
it->second.mPeerAddr = peerId->addr;
it->second.mPeerStatusMsg = "Connection Authorised";
it->second.mPeerState = PN_PEER_STATE_CONNECTION_AUTHORISED;
it->second.mPeerUpdateTS = now;
return 1;
//return CONNECTION_OKAY;
}
void PeerNet::initiateConnection(const bdId *srcId, const bdId *proxyId, const bdId *destId, uint32_t mode, uint32_t loc, uint32_t answer)
{
std::cerr << "PeerNet::initiateConnection()";
@ -1550,6 +1743,15 @@ void PeerNet::initiateConnection(const bdId *srcId, const bdId *proxyId, const b
std::map<std::string, PeerStatus>::iterator it = mPeers.find(peerId);
if (it == mPeers.end())
{
std::cerr << "PeerNet::initiateConnection() ERROR Peer not found";
std::cerr << std::endl;
return;
}
if (it->second.mPeerConnectState != PN_PEER_CONN_DISCONNECTED)
{
std::cerr << "PeerNet::initiateConnection() ERROR Peer is not Disconnected";
std::cerr << std::endl;
return;
}
@ -1581,8 +1783,10 @@ void PeerNet::initiateConnection(const bdId *srcId, const bdId *proxyId, const b
return;
}
it->second.mPeerFd = fd;
it->second.mPeerConnectFd = fd;
it->second.mPeerConnectProxyId = *proxyId;
it->second.mPeerConnectPeerId = peerConnectId;
#define PEERNET_DIRECT_CONN_PERIOD 5
#define PEERNET_PROXY_CONN_PERIOD 30
@ -1616,9 +1820,9 @@ void PeerNet::initiateConnection(const bdId *srcId, const bdId *proxyId, const b
}
/* store results in Status */
it->second.mPeerStatusMsg = "UDP started";
it->second.mPeerState = PN_PEER_STATE_UDP_STARTED;
it->second.mPeerConnTS = time(NULL);
it->second.mPeerConnectMsg = "UDP started";
it->second.mPeerConnectState = PN_PEER_CONN_UDP_STARTED;
it->second.mPeerConnectUdpTS = time(NULL);
it->second.mPeerConnectMode = mode;
it->second.mPeerConnectPoint = loc;
@ -1672,10 +1876,7 @@ int PeerNet::installRelayConnection(const bdId *srcId, const bdId *destId)
return 0;
//return CONNECT_MODE_OVERLOADED;
}
/* these todo */
std::cerr << "PeerNet::installRelayConnection() TODO";
std::cerr << std::endl;
return 0;
}
@ -1709,37 +1910,81 @@ void PeerNet::monitorConnections()
time_t now = time(NULL);
for(it = mPeers.begin(); it != mPeers.end(); it++)
{
if (it->second.mPeerState == PN_PEER_STATE_UDP_STARTED)
if (it->second.mPeerConnectState == PN_PEER_CONN_UDP_STARTED)
{
std::cerr << "PeerNet::monitorConnections() Connection in progress to: " << it->second.mId;
std::cerr << std::endl;
int fd = it->second.mPeerFd;
int fd = it->second.mPeerConnectFd;
if (tou_connected(fd))
{
std::cerr << "PeerNet::monitorConnections() InProgress Connection Now Active: " << it->second.mId;
std::cerr << std::endl;
/* switch state! */
it->second.mPeerState = PN_PEER_STATE_CONNECTED;
it->second.mPeerStatusMsg = "Connected!";
it->second.mPeerConnectState = PN_PEER_CONN_CONNECTED;
it->second.mPeerConnectTS = time(NULL);
std::ostringstream msg;
msg << "Connected in " << it->second.mPeerConnectTS - it->second.mPeerConnectUdpTS;
msg << " secs";
it->second.mPeerConnectMsg = msg.str();
// Remove the Connection Request.
if (it->second.mPeerReqState == PN_PEER_REQ_RUNNING)
{
std::cerr << "PeerNet::monitorConnections() Request Active, Stopping Request";
std::cerr << std::endl;
struct sockaddr_in tmpaddr;
bdsockaddr_clear(&tmpaddr);
int start = 0;
mUdpBitDht->ConnectionRequest(&tmpaddr, &(it->second.mPeerConnectPeerId.id), it->second.mPeerConnectMode, start);
}
// only an error if we initiated the connection.
else if (it->second.mPeerConnectPoint == BD_PROXY_CONNECTION_START_POINT)
{
std::cerr << "PeerNet::monitorConnections() ERROR Request not active, can't stop";
std::cerr << std::endl;
}
}
else if (now - it->second.mPeerConnTS > PEERNET_CONNECT_TIMEOUT)
else if (now - it->second.mPeerConnectUdpTS > PEERNET_CONNECT_TIMEOUT)
{
std::cerr << "PeerNet::monitorConnections() InProgress Connection Failed: " << it->second.mId;
std::cerr << std::endl;
/* shut id down */
it->second.mPeerState = PN_PEER_STATE_UDP_FAILED;
it->second.mPeerStatusMsg = "UDP Failed";
it->second.mPeerConnectState = PN_PEER_CONN_DISCONNECTED;
it->second.mPeerConnectMsg = "UDP Failed";
tou_close(fd);
if (it->second.mPeerReqState == PN_PEER_REQ_RUNNING)
{
std::cerr << "PeerNet::monitorConnections() Request Active (Paused)... restarting";
std::cerr << std::endl;
// tell it to keep going.
struct sockaddr_in tmpaddr;
bdsockaddr_clear(&tmpaddr);
int start = 1;
mUdpBitDht->ConnectionRequest(&tmpaddr, &(it->second.mPeerConnectPeerId.id), it->second.mPeerConnectMode, start);
}
// only an error if we initiated the connection.
else if (it->second.mPeerConnectPoint == BD_PROXY_CONNECTION_START_POINT)
{
std::cerr << "PeerNet::monitorConnections() ERROR Request not active, can't stop";
std::cerr << std::endl;
}
}
}
if (it->second.mPeerState == PN_PEER_STATE_CONNECTED)
if (it->second.mPeerConnectState == PN_PEER_CONN_CONNECTED)
{
/* fd should be valid, check it */
int fd = it->second.mPeerFd;
int fd = it->second.mPeerConnectFd;
if (tou_connected(fd))
{
/* check for traffic */
@ -1749,33 +1994,16 @@ void PeerNet::monitorConnections()
if (read > 0)
{
std::string msg(buf);
std::cerr << "TS: " << time(NULL) << " From: " << it->second.mId;
std::cerr << " RawMsg: " << msg;
std::cerr << std::endl;
#if 1
for(int i = 0; i < msg.size(); )
{
if (msg[i] == '^')
{
msg.erase(i,1);
}
else
{
i++;
}
}
#endif
if (msg.size() > 0)
{
//std::cerr << "PeerNet::monitorConnections() Read from Connection: " << it->second.mId;
//std::cerr << std::endl;
//std::cerr << "PeerNet::monitorConnections() CleanedMsg: " << msg;
//std::cerr << std::endl;
std::cerr << "TS: " << time(NULL) << " From: " << it->second.mId;
std::cerr << " RawMsg: " << msg;
std::cerr << std::endl;
it->second.mPeerIncoming += msg;
}
}
@ -1785,8 +2013,12 @@ void PeerNet::monitorConnections()
std::cerr << "PeerNet::monitorConnections() Active Connection Closed: " << it->second.mId;
std::cerr << std::endl;
it->second.mPeerState = PN_PEER_STATE_UDP_CLOSED;
it->second.mPeerStatusMsg = "Connection Closed";
it->second.mPeerConnectState = PN_PEER_CONN_DISCONNECTED;
it->second.mPeerConnectClosedTS = time(NULL);
std::ostringstream msg;
msg << "Closed, Alive for: " << it->second.mPeerConnectClosedTS - it->second.mPeerConnectTS;
msg << " secs";
it->second.mPeerConnectMsg = msg.str();
tou_close(fd);
}
}
@ -1798,17 +2030,17 @@ void PeerNet::sendMessage(std::string msg)
{
bdStackMutex stack(mPeerMutex); /********** LOCKED MUTEX ***************/
std::cerr << "PeerNet::sendMessage() : " << msg;
std::cerr << std::endl;
//std::cerr << "PeerNet::sendMessage() : " << msg;
//std::cerr << std::endl;
std::map<std::string, PeerStatus>::iterator it;
for(it = mPeers.begin(); it != mPeers.end(); it++)
{
if (it->second.mPeerState == PN_PEER_STATE_CONNECTED)
if (it->second.mPeerConnectState == PN_PEER_CONN_CONNECTED)
{
/* fd should be valid, check it */
int fd = it->second.mPeerFd;
int fd = it->second.mPeerConnectFd;
if (tou_connected(fd))
{
int written = tou_write(fd, msg.c_str(), msg.size());
@ -1820,8 +2052,8 @@ void PeerNet::sendMessage(std::string msg)
}
else
{
std::cerr << "PeerNet::sendMessage() Sent to " << it->second.mId;
std::cerr << std::endl;
//std::cerr << "PeerNet::sendMessage() Sent to " << it->second.mId;
//std::cerr << std::endl;
}
}
}

View File

@ -29,6 +29,7 @@
#define PN_DHT_STATE_UNREACHABLE 4
#define PN_DHT_STATE_ONLINE 5
#if 0
#define PN_PEER_STATE_DISCONNECTED 1
#define PN_PEER_STATE_DENIED_NOT_FRIEND 2
#define PN_PEER_STATE_DENIED_UNAVAILABLE_MODE 3
@ -40,12 +41,20 @@
#define PN_PEER_STATE_CONNECTION_AUTHORISED 8
#define PN_PEER_STATE_UDP_STARTED 9
#define PN_PEER_STATE_CONNECTED 10
#endif
#define PN_CONNECT_UDP_DIRECT 1
#define PN_CONNECT_UDP_PROXY 2
#define PN_CONNECT_UDP_RELAY 3
//#define PN_CONNECT_UDP_DIRECT 1
//#define PN_CONNECT_UDP_PROXY 2
//#define PN_CONNECT_UDP_RELAY 3
#define PN_PEER_CONN_DISCONNECTED 1
#define PN_PEER_CONN_UDP_STARTED 2
#define PN_PEER_CONN_CONNECTED 3
#define PN_PEER_REQ_STOPPED 1
#define PN_PEER_REQ_RUNNING 2
class DhtPeer
{
@ -64,17 +73,39 @@ class PeerStatus
struct sockaddr_in mDhtAddr;
time_t mDhtUpdateTS;
/* Connection Status */
std::string mPeerStatusMsg;
uint32_t mPeerState;
struct sockaddr_in mPeerAddr;
time_t mPeerUpdateTS;
int mPeerFd;
/* Connection Request Status */
std::string mPeerReqStatusMsg;
uint32_t mPeerReqState;
uint32_t mPeerReqMode;
bdId mPeerReqProxyId;
time_t mPeerReqTS;
/* Callback Info */
std::string mPeerCbMsg;
uint32_t mPeerCbMode;
uint32_t mPeerCbPoint;
bdId mPeerCbProxyId;
bdId mPeerCbDestId;
time_t mPeerCbTS;
/* Actual Connection Status */
uint32_t mPeerConnectState;
std::string mPeerConnectMsg;
int mPeerConnectFd;
uint32_t mPeerConnectMode;
bdId mPeerConnectPeerId;
bdId mPeerConnectProxyId;
struct sockaddr_in mPeerConnectAddr;
uint32_t mPeerConnectPoint;
time_t mPeerConnTS;
time_t mPeerConnectUdpTS;
time_t mPeerConnectTS;
time_t mPeerConnectClosedTS;
/* Chat Messages */
std::string mPeerIncoming;
};
@ -185,6 +216,10 @@ int UnreachablePeerCallback_locked(const bdId *id,
private:
// Utility functions.
PeerStatus *getPeerStatus_locked(const bdId *peerId);
/* The Two Stacks */
UdpStack *mUdpStack;
UdpStack *mUdpProxyStack;