p2p2 0.22.0 → 0.23.0
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/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:
|