p2p2 0.13.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/p2p2/head.rb +1 -0
- data/lib/p2p2/p1.rb +14 -10
- data/lib/p2p2/p2.rb +12 -10
- data/lib/p2p2/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 005d9edef0301a013f19fd3a2e0eb5bf9d379f0aa525110c7a897e00b6470fb1
|
4
|
+
data.tar.gz: 37f62fb12e229618dfb7e9fe89f7fb056d0ee6fc08cf2b74b3efc67f1478d43f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 044470f121c082f378fd738fe287cfc0fe83cae57d4b76a96d568e92447c778497cc440255530fd9e590dbc6e07c2be716e24f90e5273e293ba94396ceff4fce
|
7
|
+
data.tar.gz: b30f178973e03d883345c0aaff52c4704bcb3aa909dad7471cde0146eed4521fe2fa9e38be1c6b17f249ce0c10e2b2c0097cc41c9810f545f4d532b56f5d6901
|
data/lib/p2p2/head.rb
CHANGED
data/lib/p2p2/p1.rb
CHANGED
@@ -178,15 +178,15 @@ module P2p2
|
|
178
178
|
peer_addr = data[ 9..-1 ]
|
179
179
|
info[ :peer_addr ] = data[ 9..-1 ]
|
180
180
|
# puts "debug peer addr #{ Addrinfo.new( info[ :peer_addr ] ).ip_unpack.inspect } #{ Time.new }"
|
181
|
-
|
181
|
+
loop_punch_peer( p1 )
|
182
182
|
when HEARTBEAT
|
183
183
|
return if info[ :p2_addr ] || ( sockaddr != info[ :peer_addr ] )
|
184
184
|
|
185
185
|
info[ :p2_addr ] = sockaddr
|
186
186
|
# puts "debug p2 addr #{ Addrinfo.new( info[ :p2_addr ] ).ip_unpack.inspect } #{ Time.new }"
|
187
187
|
info[ :last_traffic_at ] = now
|
188
|
+
loop_send_heartbeat( p1 )
|
188
189
|
loop_send_status( p1 )
|
189
|
-
loop_expire( p1 )
|
190
190
|
when A_NEW_APP
|
191
191
|
return if sockaddr != info[ :p2_addr ]
|
192
192
|
|
@@ -621,7 +621,7 @@ module P2p2
|
|
621
621
|
is_timeout = true
|
622
622
|
|
623
623
|
12.times do
|
624
|
-
sleep
|
624
|
+
sleep HEARTBEAT_INTERVAL
|
625
625
|
|
626
626
|
if p1.closed?
|
627
627
|
is_timeout = false
|
@@ -648,7 +648,7 @@ module P2p2
|
|
648
648
|
end
|
649
649
|
end
|
650
650
|
|
651
|
-
def
|
651
|
+
def loop_punch_peer( p1 )
|
652
652
|
Thread.new do
|
653
653
|
20.times do
|
654
654
|
break if p1.closed?
|
@@ -674,20 +674,24 @@ module P2p2
|
|
674
674
|
end
|
675
675
|
end
|
676
676
|
|
677
|
-
def
|
677
|
+
def loop_send_heartbeat( p1 )
|
678
678
|
Thread.new do
|
679
679
|
loop do
|
680
|
-
sleep
|
680
|
+
sleep HEARTBEAT_INTERVAL
|
681
681
|
break if p1.closed?
|
682
682
|
|
683
683
|
p1_info = @infos[ p1 ]
|
684
684
|
|
685
|
-
|
686
|
-
|
685
|
+
if Time.new - p1_info[ :last_traffic_at ] > EXPIRE_AFTER
|
686
|
+
@mutex.synchronize do
|
687
687
|
@ctlw.write( [ CTL_CLOSE, p1.object_id ].pack( 'CQ>' ) )
|
688
|
-
else
|
689
|
-
send_heartbeat( p1, p1_info[ :p2_addr ] )
|
690
688
|
end
|
689
|
+
|
690
|
+
return
|
691
|
+
end
|
692
|
+
|
693
|
+
@mutex.synchronize do
|
694
|
+
send_heartbeat( p1, p1_info[ :p2_addr ] )
|
691
695
|
end
|
692
696
|
end
|
693
697
|
end
|
data/lib/p2p2/p2.rb
CHANGED
@@ -231,15 +231,15 @@ module P2p2
|
|
231
231
|
|
232
232
|
info[ :peer_addr ] = data[ 9..-1 ]
|
233
233
|
# puts "debug peer addr #{ Addrinfo.new( info[ :peer_addr ] ).ip_unpack.inspect } #{ Time.new }"
|
234
|
-
|
234
|
+
loop_punch_peer( p2 )
|
235
235
|
when HEARTBEAT
|
236
236
|
return if info[ :p1_addr ] || ( sockaddr != info[ :peer_addr ] )
|
237
237
|
|
238
238
|
info[ :p1_addr ] = sockaddr
|
239
239
|
# puts "debug p1 addr #{ Addrinfo.new( info[ :p1_addr ] ).ip_unpack.inspect } #{ Time.new }"
|
240
240
|
info[ :last_traffic_at ] = now
|
241
|
+
loop_send_heartbeat( p2 )
|
241
242
|
loop_send_status( p2 )
|
242
|
-
loop_expire( p2 )
|
243
243
|
when PAIRED
|
244
244
|
return if sockaddr != info[ :p1_addr ]
|
245
245
|
|
@@ -651,7 +651,7 @@ module P2p2
|
|
651
651
|
is_timeout = true
|
652
652
|
|
653
653
|
12.times do
|
654
|
-
sleep
|
654
|
+
sleep HEARTBEAT_INTERVAL
|
655
655
|
|
656
656
|
if p2.closed?
|
657
657
|
is_timeout = false
|
@@ -678,7 +678,7 @@ module P2p2
|
|
678
678
|
end
|
679
679
|
end
|
680
680
|
|
681
|
-
def
|
681
|
+
def loop_punch_peer( p2 )
|
682
682
|
Thread.new do
|
683
683
|
20.times do
|
684
684
|
break if p2.closed?
|
@@ -704,10 +704,10 @@ module P2p2
|
|
704
704
|
end
|
705
705
|
end
|
706
706
|
|
707
|
-
def
|
707
|
+
def loop_send_heartbeat( p2 )
|
708
708
|
Thread.new do
|
709
709
|
loop do
|
710
|
-
sleep
|
710
|
+
sleep HEARTBEAT_INTERVAL
|
711
711
|
break if p2.closed?
|
712
712
|
|
713
713
|
p2_info = @infos[ p2 ]
|
@@ -716,10 +716,12 @@ module P2p2
|
|
716
716
|
@mutex.synchronize do
|
717
717
|
@ctlw.write( [ CTL_CLOSE, p2.object_id ].pack( 'CQ>' ) )
|
718
718
|
end
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
719
|
+
|
720
|
+
break
|
721
|
+
end
|
722
|
+
|
723
|
+
@mutex.synchronize do
|
724
|
+
send_heartbeat( p2, p2_info[ :p1_addr ] )
|
723
725
|
end
|
724
726
|
end
|
725
727
|
end
|
data/lib/p2p2/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: p2p2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- takafan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-31 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 内网里的任意应用,访问另一个内网里的应用服务端。
|
14
14
|
email:
|