p2p2 0.10.0 → 0.11.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3a8d2cfcbc87835a4412869ae872fb7cba49c48b8e4f94c81cf5678b39f34746
4
- data.tar.gz: c39358930d074c99c8260c9207d821ab6f94f6bb424cc0d32af0165c1218d196
3
+ metadata.gz: c0ed72836f10cc9afc6e1cadf43b2e2c817a86c4ea1c3519f1c8c028f361b792
4
+ data.tar.gz: f0040b2538df25c2b68d96c4341dacd984bacdf66d07f8743589bbd24b286312
5
5
  SHA512:
6
- metadata.gz: 6c64ac875943bafca20918e9a44a8588ddc77cff74ce52965facf4014fa79c87e8b7fb95164419bed4c015d90765330d2f4700b04c1cafe33c08cc4483f4e482
7
- data.tar.gz: ce6fe66c73e8bbc676ac8d23c1de988c89dbcead089fc6c4c7ae65845954f48306926c6beb5d6abc8d3f07bf8f8ec2c4e2ea1b0694830530887b334be14bc855
6
+ metadata.gz: 3bbad24d31ba85bfd00c91cedfcea41f51097bfd2e7ddb44f631605a0ac36b497432667d78d9dd12bcef886c33b9b881e941bf4357d4819cb98ecc10070fc1d0
7
+ data.tar.gz: a06e1edf7702560b9e5b61e59937e11ec90f89a11015d1ddfc2429d66df4f21731ab3b3c2ac1dc91ade411a0f32f3b9d94694736aace0c70d281f39632f01c66
@@ -55,7 +55,6 @@ module P2p2
55
55
  puts 'looping'
56
56
 
57
57
  new_appd
58
- new_p2
59
58
 
60
59
  loop do
61
60
  rs, ws = IO.select( @reads, @writes )
@@ -134,6 +133,10 @@ module P2p2
134
133
  return
135
134
  end
136
135
 
136
+ if @p2.nil? || @p2.closed?
137
+ new_p2
138
+ end
139
+
137
140
  app_id = app.object_id
138
141
 
139
142
  @socks[ app_id ] = app
@@ -388,7 +391,8 @@ module P2p2
388
391
  info[ :fin2s ].delete( app_id )
389
392
  when P1_FIN
390
393
  return if sockaddr != info[ :p1_addr ]
391
- raise "recv p1 fin #{ Time.new }"
394
+ puts "recv p1 fin #{ Time.new }"
395
+ add_closing( p2 )
392
396
  end
393
397
 
394
398
  return
@@ -511,7 +515,8 @@ module P2p2
511
515
  #
512
516
  def write_p2( p2 )
513
517
  if @closings.include?( p2 )
514
- quit!
518
+ close_p2( p2 )
519
+ return
515
520
  end
516
521
 
517
522
  now = Time.new
@@ -843,6 +848,19 @@ module P2p2
843
848
  add_write( sock )
844
849
  end
845
850
 
851
+ def close_p2( p2 )
852
+ info = close_sock( p2 )
853
+
854
+ info[ :chunks ].each do | filename |
855
+ begin
856
+ File.delete( File.join( @p2_chunk_dir, filename ) )
857
+ rescue Errno::ENOENT
858
+ end
859
+ end
860
+
861
+ info[ :app_exts ].each{ | _, ext | add_closing( ext[ :app ] ) }
862
+ end
863
+
846
864
  def close_app( app )
847
865
  info = close_sock( app )
848
866
  p2 = info[ :p2 ]
@@ -88,7 +88,7 @@ module P2p2
88
88
 
89
89
  def read_p2pd( p2pd )
90
90
  data, addrinfo, rflags, *controls = p2pd.recvmsg
91
- return if data.size > 255
91
+ return if ( data.bytesize > 255 ) || ( data =~ /\/|\.|\ / )
92
92
 
93
93
  sockaddr = addrinfo.to_sockaddr
94
94
  title_path = File.join( @p2pd_dir, data )
@@ -118,7 +118,7 @@ module P2p2
118
118
  begin
119
119
  # puts "debug write title #{ title_path } #{ Time.new }"
120
120
  IO.binwrite( title_path, sockaddr )
121
- rescue Errno::ENOENT, ArgumentError => e
121
+ rescue Errno::EISDIR, Errno::ENAMETOOLONG, Errno::ENOENT, ArgumentError => e
122
122
  puts "binwrite #{ e.class } #{ Time.new }"
123
123
  end
124
124
  end
@@ -1,3 +1,3 @@
1
1
  module P2p2
2
- VERSION = "0.10.0"
2
+ VERSION = "0.11.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: p2p2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - takafan