Commit 4cc873d 1 parent 8497e5d commit 4cc873d Copy full SHA for 4cc873d
File tree 1 file changed +19
-1
lines changed
1 file changed +19
-1
lines changed Original file line number Diff line number Diff line change 1
1
module RbProxy
2
2
module Helpers
3
+ require 'resolv'
4
+
3
5
def read_hosts_file
4
6
hosts_hash = Hash . new { |hash , key | hash [ key ] = [ ] }
5
7
File . readlines ( '/etc/hosts' ) . each do |line |
@@ -13,7 +15,7 @@ def read_hosts_file
13
15
end
14
16
15
17
def update_hosts_file
16
- manager_registration_ip = node [ 'redborder' ] [ 'manager_registration_ip' ] if node [ 'redborder' ] && node [ 'redborder' ] [ 'manager_registration_ip' ]
18
+ manager_registration_ip = managerToIp ( node [ 'redborder' ] [ 'manager_registration_ip' ] ) if node [ 'redborder' ] && node [ 'redborder' ] [ 'manager_registration_ip' ]
17
19
18
20
return unless manager_registration_ip
19
21
@@ -53,5 +55,21 @@ def update_hosts_file
53
55
end
54
56
hosts_entries
55
57
end
58
+
59
+ def managerToIp ( str )
60
+ ipv4_regex = /\A (\d {1,3}\. ){3}\d {1,3}\z /
61
+ ipv6_regex = /\A (?:[A-Fa-f0-9]{1,4}:){7}[A-Fa-f0-9]{1,4}\z /
62
+ dns_regex = /\A [a-zA-Z0-9-]+\. [a-zA-Z0-9-.]+\z /
63
+
64
+ return str if str =~ ipv4_regex || str =~ ipv6_regex
65
+
66
+ if str =~ dns_regex
67
+ begin
68
+ return Resolv . getaddress ( str ) . to_s
69
+ rescue Resolv ::ResolvError
70
+ return nil
71
+ end
72
+ end
73
+ end
56
74
end
57
75
end
You can’t perform that action at this time.
0 commit comments