Sha256: 086464919978ee194c91e59f7a2cdb0d655e82779fed545d9a4d5dff9f2c5fea
Contents?: true
Size: 1.7 KB
Versions: 1
Compression:
Stored size: 1.7 KB
Contents
require 'ipaddr' module Dyndnsd class Helper # @param hostname [String] # @param domain [String] # @return [Boolean] def self.fqdn_valid?(hostname, domain) return false if hostname.length < domain.length + 2 return false if !hostname.end_with?(domain) name = hostname.chomp(domain) return false if !name.match(/^[a-zA-Z0-9_-]+\.$/) true end # @param ip [String] # @return [Boolean] def self.ip_valid?(ip) IPAddr.new(ip) true rescue ArgumentError false end # @param username [String] # @param password [String] # @param users [Hash] # @return [Boolean] def self.user_allowed?(username, password, users) (users.key? username) && (users[username]['password'] == password) end # @param hostname [String] # @param myips [Array] # @param hosts [Hash] # @return [Boolean] def self.changed?(hostname, myips, hosts) # myips order is always deterministic ((!hosts.include? hostname) || (hosts[hostname] != myips)) && !myips.empty? end # @param operation [String] # @param block [Proc] # @return [void] def self.span(operation, &block) scope = OpenTracing.start_active_span(operation) span = scope.span span.set_tag('component', 'dyndnsd') span.set_tag('span.kind', 'server') begin block.call(span) rescue StandardError => e span.set_tag('error', true) span.log_kv( event: 'error', 'error.kind': e.class.to_s, 'error.object': e, message: e.message, stack: e.backtrace.join("\n") ) raise ensure scope.close end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dyndnsd-2.1.0 | lib/dyndnsd/helper.rb |