Class | ACL::ACLEntry |
In: |
lib/drb/acl.rb
|
Parent: | Object |
# File lib/drb/acl.rb, line 13 13: def initialize(str) 14: if str == '*' or str == 'all' 15: @pat = [:all] 16: elsif str.include?('*') 17: @pat = [:name, dot_pat(str)] 18: else 19: begin 20: @pat = [:ip, IPAddr.new(str)] 21: rescue ArgumentError 22: @pat = [:name, dot_pat(str)] 23: end 24: end 25: end
# File lib/drb/acl.rb, line 42 42: def match(addr) 43: case @pat[0] 44: when :all 45: true 46: when :ip 47: begin 48: ipaddr = IPAddr.new(addr[3]) 49: ipaddr = ipaddr.ipv4_mapped if @pat[1].ipv6? && ipaddr.ipv4? 50: rescue ArgumentError 51: return false 52: end 53: (@pat[1].include?(ipaddr)) ? true : false 54: when :name 55: (@pat[1] =~ addr[2]) ? true : false 56: else 57: false 58: end 59: end
# File lib/drb/acl.rb, line 36 36: def dot_pat(str) 37: exp = "^" + dot_pat_str(str) + "$" 38: Regexp.new(exp) 39: end