fleck 2.1.2 → 2.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fleck/utilities/host_rating.rb +25 -27
- data/lib/fleck/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ba4104d51ed9b8954789594108e46d754a5ebedbb281ebf03b11e4c7af762fd
|
4
|
+
data.tar.gz: 7a7fe6fdac9a8fc0ef6effd8ab321dbd0940b7f580a39dc2cc4132dd5f81d4c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b98ae1a23554c782a5d99001edf83a054ccbba794d57a6778a6322dff7e8bf21d09a5d45f797f9d0e3cb247b4cb5b495959e39976d380edcd6a61bd6a288055a
|
7
|
+
data.tar.gz: 603c304bb7bec0bb967fb83afe6bf0f0a27d9ff71a1ea1e3e8d80539bd7ad2ff9c2fb681418461bbde12a7d2df50bb9aa0968bc82b1e59a8e847ba7bb2b05ba4
|
@@ -64,41 +64,39 @@ module Fleck
|
|
64
64
|
ensure
|
65
65
|
@updated_at = Time.now
|
66
66
|
end
|
67
|
-
end
|
68
67
|
|
69
|
-
|
68
|
+
# Use a socket to test connection latency.
|
69
|
+
def measure_latency
|
70
|
+
socket = create_socket
|
70
71
|
|
71
|
-
|
72
|
-
|
73
|
-
|
72
|
+
started_at = Time.now.to_f
|
73
|
+
begin
|
74
|
+
socket.connect_nonblock(sock_addr)
|
75
|
+
rescue IO::WaitWritable
|
76
|
+
IO.select(nil, [socket], nil, CONN_TIMEOUT) or raise Timeout::Error
|
77
|
+
end
|
74
78
|
|
75
|
-
|
76
|
-
|
77
|
-
socket
|
78
|
-
rescue IO::WaitWritable
|
79
|
-
IO.select(nil, [socket], nil, CONN_TIMEOUT) or raise Timeout::Error
|
79
|
+
(Time.now.to_f - started_at) * 1000 # ms
|
80
|
+
ensure
|
81
|
+
socket&.close
|
80
82
|
end
|
81
83
|
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
# Create a new socket for connection test.
|
88
|
-
def create_socket
|
89
|
-
socket = Socket.new(:AF_INET, :SOCK_STREAM, 0)
|
90
|
-
socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
|
84
|
+
# Create a new socket for connection test.
|
85
|
+
def create_socket
|
86
|
+
socket = Socket.new(:AF_INET, :SOCK_STREAM, 0)
|
87
|
+
socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
|
91
88
|
|
92
|
-
|
93
|
-
|
89
|
+
socket
|
90
|
+
end
|
94
91
|
|
95
|
-
|
96
|
-
|
97
|
-
|
92
|
+
# Resolve domain name in order to obtain IP address to test.
|
93
|
+
def sock_addr
|
94
|
+
return @sock_addr if @sock_addr
|
98
95
|
|
99
|
-
|
100
|
-
|
96
|
+
addr = Socket.getaddrinfo(@host, nil)
|
97
|
+
@sock_addr = Socket.pack_sockaddr_in(@port, addr[0][3])
|
101
98
|
|
102
|
-
|
99
|
+
@sock_addr
|
100
|
+
end
|
103
101
|
end
|
104
102
|
end
|
data/lib/fleck/version.rb
CHANGED