takumi-server_list_ping 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: ab9563d59354fb854a82377801a19ea5278b7163
4
- data.tar.gz: fca25e186b0465a368fdce48ed9d1f8c2f969bcf
3
+ metadata.gz: 9ac92f66722e316a5335ab7214d2cff2b6552c3e
4
+ data.tar.gz: 4a04f857f2040ffff755d35134377e76041d99ec
5
5
  SHA512:
6
- metadata.gz: 6b8bb4149d8677b677ff62e59aff05e40709b0b08992e49d49325cde7bb4bf018f59ebf7c75fe1d63123f92fabbcdd67c8fc943999fc15aa8d7cb759ed5019af
7
- data.tar.gz: bf44dbd247aa246fc00a869fccca7c98ef9e2506a00226c88c3b7ca80da16edff6943f38505e74b28249cdadbf96af4869643fc2e68c1555cf9a906a7ed20621
6
+ metadata.gz: 799696ce2d564f12fc9414fcc4af797b0a2c685820146f27712c3799cee3f74c1c9971eb7d574fa7c408b5bc7014c1d18d12d6f54e76aa6f767d9a01889cb2f2
7
+ data.tar.gz: 933b7002b4bff7269eab6d9d38a451e2f311c45360d48728eac0d69b6faeda0be5382e754f269e4dca9d66e90ffcbe1ae8f0143d2164483d61752b8752616a12
@@ -1,4 +1,5 @@
1
1
  require 'socket'
2
+ require 'timeout'
2
3
 
3
4
  module Takumi
4
5
  module ServerListPing
@@ -8,7 +9,7 @@ module Takumi
8
9
 
9
10
  module_function
10
11
 
11
- def ping(server_address = 'localhost', port = PORT)
12
+ def ping(server_address = 'localhost', port = PORT, timeout: 60)
12
13
  handshake = Takumi::ServerListPing::Handshake.create({
13
14
  server_address: server_address,
14
15
  port: port
@@ -22,10 +23,17 @@ module Takumi
22
23
  socket.flush
23
24
 
24
25
  packets = "".encode(Encoding::BINARY)
25
- loop do
26
- buf = socket.recv(1024)
27
- break if buf.empty?
28
- packets << buf
26
+
27
+ begin
28
+ Timeout.timeout(timeout) do
29
+ loop do
30
+ buf = socket.recv(1024)
31
+ break if buf.empty? or socket.closed?
32
+ packets << buf
33
+ end
34
+ end
35
+ rescue Timeout::Error
36
+ # ok
29
37
  end
30
38
  Takumi::ServerListPing::StatusResponse.decode(packets)
31
39
  ensure
@@ -1,5 +1,5 @@
1
1
  module Takumi
2
2
  module ServerListPing
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
@@ -22,5 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.add_runtime_dependency "takumi-packet"
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.7"
25
+ spec.add_development_dependency "pry"
25
26
  spec.add_development_dependency "rake", "~> 10.0"
26
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: takumi-server_list_ping
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - block_given?
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake
43
57
  requirement: !ruby/object:Gem::Requirement