p2p2 0.22.0 → 0.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/p2p2/p1_worker.rb +6 -6
- data/lib/p2p2/p2_worker.rb +15 -15
- data/lib/p2p2/p2pd_worker.rb +15 -15
- 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: 93622e13a1c4a94debd120c4295bed86f0d451f83f05ecfc4bb2b29f63320a83
|
4
|
+
data.tar.gz: edcf0aefb969653a5b73201722ac2ab61a24488f5124a0cba3d78f2c0fc17073
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 558629edb45e53c9a9d0f1ad964e91b3b89c313181e8bbce2477ad0fbdad7aae43db37f59235340e4004dd6390b555817c513b88417c9e95fa9fbcdb2083e772
|
7
|
+
data.tar.gz: 387354b5932fb4a7994a1970e649521d357db94e7eb6521fa33991ccd25a4436c2064e43508e51adeb5827871f309cb41dbe0caf2c22fa18a375d269e8606232
|
data/lib/p2p2/p1_worker.rb
CHANGED
@@ -99,14 +99,14 @@ module P2p2
|
|
99
99
|
else
|
100
100
|
@tund_info[ :dst_exts ].each do | dst_local_port, dst_ext |
|
101
101
|
if dst_ext[ :dst ].closed? && ( now - dst_ext[ :last_continue_at ] > EXPIRE_AFTER )
|
102
|
-
puts "#{ Time.new } expire dst ext
|
102
|
+
puts "#{ Time.new } expire dst ext"
|
103
103
|
del_dst_ext( dst_local_port )
|
104
104
|
end
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
108
108
|
@dst_infos.each do | dst, dst_info |
|
109
|
-
if
|
109
|
+
if now - dst_info[ :last_continue_at ] > EXPIRE_AFTER
|
110
110
|
puts "#{ Time.new } expire dst"
|
111
111
|
set_is_closing( dst )
|
112
112
|
end
|
@@ -519,6 +519,7 @@ module P2p2
|
|
519
519
|
# puts "debug2 write dst #{ written }"
|
520
520
|
data = data[ written..-1 ]
|
521
521
|
dst_info[ from ] = data
|
522
|
+
dst_info[ :last_continue_at ] = Time.new
|
522
523
|
end
|
523
524
|
|
524
525
|
##
|
@@ -673,7 +674,7 @@ module P2p2
|
|
673
674
|
|
674
675
|
# puts "debug2 read dst #{ data.inspect }"
|
675
676
|
dst_info = @dst_infos[ dst ]
|
676
|
-
dst_info[ :
|
677
|
+
dst_info[ :last_continue_at ] = Time.new
|
677
678
|
|
678
679
|
if @tund.closed?
|
679
680
|
puts "#{ Time.new } tund closed, close dst"
|
@@ -751,8 +752,7 @@ module P2p2
|
|
751
752
|
cache: '', # 块读出缓存
|
752
753
|
chunks: [], # 块队列,写前达到块大小时结一个块 filename
|
753
754
|
spring: 0, # 块后缀,结块时,如果块队列不为空,则自增,为空,则置为0
|
754
|
-
|
755
|
-
last_recv_at: nil, # 上一次收到流量的时间,过期关闭
|
755
|
+
last_continue_at: Time.new, # 上一次发生流量的时间
|
756
756
|
is_closing: false # 是否准备关闭
|
757
757
|
}
|
758
758
|
add_read( dst, :dst )
|
@@ -769,7 +769,7 @@ module P2p2
|
|
769
769
|
is_src_closed: false, # src是否已关闭
|
770
770
|
biggest_src_pack_id: 0, # src最大包号码
|
771
771
|
completed_pack_id: 0, # 完成到几(对面收到几)
|
772
|
-
last_continue_at: Time.new #
|
772
|
+
last_continue_at: Time.new # 上一次发生流量的时间
|
773
773
|
}
|
774
774
|
end
|
775
775
|
|
data/lib/p2p2/p2_worker.rb
CHANGED
@@ -100,14 +100,14 @@ module P2p2
|
|
100
100
|
else
|
101
101
|
@tun_info[ :src_exts ].each do | src_id, src_ext |
|
102
102
|
if src_ext[ :src ].closed? && ( now - src_ext[ :last_continue_at ] > EXPIRE_AFTER )
|
103
|
-
puts "#{ Time.new } expire src ext
|
103
|
+
puts "#{ Time.new } expire src ext"
|
104
104
|
del_src_ext( src_id )
|
105
105
|
end
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
109
109
|
@src_infos.each do | src, src_info |
|
110
|
-
if
|
110
|
+
if now - src_info[ :last_continue_at ] > EXPIRE_AFTER
|
111
111
|
puts "#{ Time.new } expire src"
|
112
112
|
set_is_closing( src )
|
113
113
|
end
|
@@ -263,7 +263,7 @@ module P2p2
|
|
263
263
|
@tun = tun
|
264
264
|
@tun_info = tun_info
|
265
265
|
add_read( tun, :tun )
|
266
|
-
add_tun_ctlmsg( @room, @p2pd_addr )
|
266
|
+
add_tun_ctlmsg( [ '2', @room ].join, @p2pd_addr )
|
267
267
|
end
|
268
268
|
|
269
269
|
##
|
@@ -546,6 +546,7 @@ module P2p2
|
|
546
546
|
# puts "debug2 write src #{ written }"
|
547
547
|
data = data[ written..-1 ]
|
548
548
|
src_info[ from ] = data
|
549
|
+
src_info[ :last_continue_at ] = Time.new
|
549
550
|
end
|
550
551
|
|
551
552
|
##
|
@@ -697,16 +698,15 @@ module P2p2
|
|
697
698
|
# puts "debug1 accept a src #{ addrinfo.inspect } #{ id }"
|
698
699
|
|
699
700
|
@src_infos[ src ] = {
|
700
|
-
id: id,
|
701
|
-
biggest_pack_id: 0,
|
702
|
-
rbuffs: [],
|
703
|
-
wbuff: '',
|
704
|
-
cache: '',
|
705
|
-
chunks: [],
|
706
|
-
spring: 0,
|
707
|
-
|
708
|
-
|
709
|
-
is_closing: false # 是否准备关闭
|
701
|
+
id: id, # id
|
702
|
+
biggest_pack_id: 0, # 最大包号码
|
703
|
+
rbuffs: [], # p1端dst未准备好,暂存流量 [ pack_id, data ]
|
704
|
+
wbuff: '', # 写前
|
705
|
+
cache: '', # 块读出缓存
|
706
|
+
chunks: [], # 块队列,写前达到块大小时结一个块 filename
|
707
|
+
spring: 0, # 块后缀,结块时,如果块队列不为空,则自增,为空,则置为0
|
708
|
+
last_continue_at: Time.new, # 上一次发生流量的时间
|
709
|
+
is_closing: false # 是否准备关闭
|
710
710
|
}
|
711
711
|
|
712
712
|
add_read( src, :src )
|
@@ -726,7 +726,7 @@ module P2p2
|
|
726
726
|
is_dst_closed: false, # dst是否已关闭
|
727
727
|
biggest_dst_pack_id: 0, # dst最大包号码
|
728
728
|
completed_pack_id: 0, # 完成到几(对面收到几)
|
729
|
-
last_continue_at: Time.new #
|
729
|
+
last_continue_at: Time.new # 上一次发生流量的时间
|
730
730
|
}
|
731
731
|
|
732
732
|
@tun_info[ :src_exts ][ id ] = src_ext
|
@@ -750,7 +750,7 @@ module P2p2
|
|
750
750
|
|
751
751
|
# puts "debug2 read src #{ data.inspect }"
|
752
752
|
src_info = @src_infos[ src ]
|
753
|
-
src_info[ :
|
753
|
+
src_info[ :last_continue_at ] = Time.new
|
754
754
|
src_id = src_info[ :id ]
|
755
755
|
src_ext = @tun_info[ :src_exts ][ src_id ]
|
756
756
|
|
data/lib/p2p2/p2pd_worker.rb
CHANGED
@@ -32,17 +32,21 @@ module P2p2
|
|
32
32
|
data, addrinfo, rflags, *controls = p2pd.recvmsg
|
33
33
|
return if ( data.bytesize == 1 ) || ( data.bytesize > 255 ) || ( data =~ /\/|\.|\ / )
|
34
34
|
|
35
|
+
if data[0] == '2'
|
36
|
+
is_p2 = true
|
37
|
+
data = data[ 1..-1 ]
|
38
|
+
else
|
39
|
+
is_p2 = false
|
40
|
+
end
|
41
|
+
|
35
42
|
from_addr = addrinfo.to_sockaddr
|
36
43
|
room_path = File.join( @p2pd_tmp_dir, data.gsub( "\u0000" , '' ) )
|
37
44
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
if Time.new - File.mtime( room_path ) > EXPIRE_AFTER
|
45
|
-
puts "#{ Time.new } overwrite #{ room_path } #{ addrinfo.inspect }"
|
45
|
+
if is_p2
|
46
|
+
unless File.exist?( room_path )
|
47
|
+
return
|
48
|
+
end
|
49
|
+
else
|
46
50
|
write_room( room_path, from_addr )
|
47
51
|
return
|
48
52
|
end
|
@@ -50,13 +54,9 @@ module P2p2
|
|
50
54
|
op_addr = IO.binread( room_path )
|
51
55
|
op_addrinfo = Addrinfo.new( op_addr )
|
52
56
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
puts "#{ Time.new } paired #{ addrinfo.inspect } #{ op_addrinfo.inspect }"
|
57
|
-
send_pack( [ [ 0, PEER_ADDR ].pack( 'Q>C' ), op_addr ].join, from_addr )
|
58
|
-
send_pack( [ [ 0, PEER_ADDR ].pack( 'Q>C' ), from_addr ].join, op_addr )
|
59
|
-
end
|
57
|
+
puts "#{ Time.new } paired #{ addrinfo.inspect } #{ op_addrinfo.inspect }"
|
58
|
+
send_pack( [ [ 0, PEER_ADDR ].pack( 'Q>C' ), op_addr ].join, from_addr )
|
59
|
+
send_pack( [ [ 0, PEER_ADDR ].pack( 'Q>C' ), from_addr ].join, op_addr )
|
60
60
|
end
|
61
61
|
|
62
62
|
def write_room( room_path, data )
|
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.
|
4
|
+
version: 0.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- takafan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-21 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: 内网里的任意应用,访问另一个内网里的应用服务端。
|
14
14
|
email:
|