Module: DevDNSd::Aliases
- Extended by:
- ActiveSupport::Concern
- Included in:
- Application
- Defined in:
- lib/devdnsd/aliases.rb
Overview
Methods to handle interfaces aliases.
Instance Method Summary (collapse)
-
- (Array) compute_addresses(type = :all)
Computes the list of address to manage.
-
- (Boolean) ipv4?(address)
(also: #is_ipv4?)
Checks if an address is a valid IPv4 address.
-
- (Boolean) ipv6?(address)
Checks if an address is a valid IPv6 address.
-
- (Boolean) manage_address(type, address, dry_run = false)
Adds or removes an alias from the interface.
-
- (Boolean) manage_aliases(operation, message, options)
Manages aliases.
Instance Method Details
- (Array) compute_addresses(type = :all)
Computes the list of address to manage.
59 60 61 62 |
# File 'lib/devdnsd/aliases.rb', line 59 def compute_addresses(type = :all) config = self.config config.addresses.present? ? filter_addresses(config, type) : generate_addresses(config, type) end |
- (Boolean) ipv4?(address) Also known as: is_ipv4?
Checks if an address is a valid IPv4 address.
68 69 70 71 72 73 |
# File 'lib/devdnsd/aliases.rb', line 68 def ipv4?(address) address = address.ensure_string mo = /\A(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\Z/.match(address) (mo && mo.captures.all? { |i| i.to_i < 256 }) ? true : false end |
- (Boolean) ipv6?(address)
Checks if an address is a valid IPv6 address.
80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/devdnsd/aliases.rb', line 80 def ipv6?(address) address = address.ensure_string catch(:valid) do # IPv6 (normal) check_normal_ipv6(address) # IPv6 (IPv4 compat) check_compat_ipv6(address) false end end |
- (Boolean) manage_address(type, address, dry_run = false)
Adds or removes an alias from the interface.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/devdnsd/aliases.rb', line 40 def manage_address(type, address, dry_run = false) rv, command, prefix = setup_management(type, address) # Now execute if rv if !dry_run execute_manage(command, prefix, type, address, config) else log_management(:dry_run, prefix, type, i18n.remove, i18n.add, address, config) end end rv end |
- (Boolean) manage_aliases(operation, message, options)
Manages aliases.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/devdnsd/aliases.rb', line 19 def manage_aliases(operation, , ) config = self.config .each { |k, v| config.send("#{k}=", v) if config.respond_to?("#{k}=") } addresses = compute_addresses if addresses.present? # Now, for every address, call the command addresses.all? { |address| manage_address(operation, address, [:dry_run]) } else @logger.error() false end end |