sparoid 1.0.21 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/sparoid/version.rb +1 -1
- data/lib/sparoid.rb +13 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71f77a00597cb908e5b898603a34ed4e9111fd7fdcd255def5ea1633089c6041
|
4
|
+
data.tar.gz: d4ba950c8fa66e6083e7bf43431618023aa8b163c1d12f6170835532c719ee03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f50ca4d5ebf7c68badec3afe5f49ea3c7d23eaa932448f2f3534fd6dc594b8bcecc8ad7c9e5f4e0b4453538fdbf45884ba6c3a5ab3c645eb6feb4ed5eabbff2
|
7
|
+
data.tar.gz: 77c377f37dfa0dc257af730d25fb7600cb4cc6fe45e1e809e455c55c3fce5bce429abbbc82080cafa1a1f7fbb6dfcfe4fb5dede8d0eea2e904ee023403197d1b
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
## [1.1.0] - 2023-03-03
|
2
|
+
|
3
|
+
- Allow override of public ip, open for someone else by passing `:open_for_ip` to `Sparoid.auth(..., open_for_ip:)` (#11)
|
4
|
+
|
5
|
+
## [1.0.22] - 2023-02-01
|
6
|
+
|
7
|
+
- Fix `Addrinfo SocketError` should raise `Sparoid::ResolvError` (#10)
|
8
|
+
|
1
9
|
## [1.0.21] - 2022-10-12
|
2
10
|
|
3
11
|
- Fix where Sparoid::Instance returned nil for public_ip
|
data/lib/sparoid/version.rb
CHANGED
data/lib/sparoid.rb
CHANGED
@@ -12,11 +12,10 @@ module Sparoid # rubocop:disable Metrics/ModuleLength
|
|
12
12
|
SPAROID_CACHE_PATH = ENV.fetch("SPAROID_CACHE_PATH", "/tmp/.sparoid_public_ip")
|
13
13
|
|
14
14
|
# Send an authorization packet
|
15
|
-
def auth(key, hmac_key, host, port)
|
16
|
-
addrs =
|
17
|
-
|
18
|
-
|
19
|
-
msg = message(cached_public_ip)
|
15
|
+
def auth(key, hmac_key, host, port, open_for_ip: cached_public_ip)
|
16
|
+
addrs = resolve_ip_addresses(host, port)
|
17
|
+
ip = Resolv::IPv4.create(open_for_ip)
|
18
|
+
msg = message(ip)
|
20
19
|
data = prefix_hmac(hmac_key, encrypt(key, msg))
|
21
20
|
sendmsg(addrs, data)
|
22
21
|
|
@@ -156,6 +155,15 @@ module Sparoid # rubocop:disable Metrics/ModuleLength
|
|
156
155
|
end
|
157
156
|
end
|
158
157
|
|
158
|
+
def resolve_ip_addresses(host, port)
|
159
|
+
addresses = Addrinfo.getaddrinfo(host, port, :INET, :DGRAM)
|
160
|
+
raise(ResolvError, "Sparoid failed to resolv #{host}") if addresses.empty?
|
161
|
+
|
162
|
+
addresses
|
163
|
+
rescue SocketError
|
164
|
+
raise(ResolvError, "Sparoid failed to resolv #{host}")
|
165
|
+
end
|
166
|
+
|
159
167
|
class Error < StandardError; end
|
160
168
|
|
161
169
|
class ResolvError < Error; end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sparoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carl Hörberg
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -70,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: '0'
|
72
72
|
requirements: []
|
73
|
-
rubygems_version: 3.
|
73
|
+
rubygems_version: 3.4.5
|
74
74
|
signing_key:
|
75
75
|
specification_version: 4
|
76
76
|
summary: Single Packet Authorisation client
|