p2p2 0.13.0 → 0.13.1
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|