takumi-server_list_ping 0.0.4 → 0.0.5

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