mirror of
https://github.com/internetee/registry.git
synced 2025-06-10 14:44:47 +02:00
Fix error handling in processing request IP
This commit is contained in:
parent
5cc85980d4
commit
5a82d7c2c0
1 changed files with 8 additions and 3 deletions
|
@ -41,10 +41,15 @@ class WhiteIp < ApplicationRecord
|
|||
class << self
|
||||
# rubocop:disable Style/CaseEquality
|
||||
def include_ip?(ip)
|
||||
ipv4 = select { |white_ip| IPAddr.new(white_ip.ipv4, Socket::AF_INET) === IPAddr.new(ip) }
|
||||
ipv6 = select { |white_ip| IPAddr.new(white_ip.ipv6, Socket::AF_INET6) === IPAddr.new(ip) }
|
||||
ids = (ipv4 + ipv6).pluck(:id).flatten.uniq
|
||||
new_ip4 = IPAddr.new(ip, Socket::AF_INET)
|
||||
new_ip6 = IPAddr.new(ip, Socket::AF_INET6)
|
||||
|
||||
result = self.all.select { |white_ip| IPAddr.new(white_ip.ipv4, Socket::AF_INET) === new_ip4 ||
|
||||
IPAddr.new(white_ip.ipv6, Socket::AF_INET6) === new_ip6 }
|
||||
ids = result.pluck(:id).flatten.uniq
|
||||
where(id: ids).any?
|
||||
rescue IPAddr::InvalidAddressError => _e
|
||||
false
|
||||
end
|
||||
# rubocop:enable Style/CaseEquality
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue