Class: ACL::ACLEntry

Inherits:
Object
  • Object
show all
Defined in:
lib/drb/acl.rb

Instance Method Summary collapse

Constructor Details

#initialize(str) ⇒ ACLEntry

Returns a new instance of ACLEntry.



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/drb/acl.rb', line 13

def initialize(str)
  if str == '*' or str == 'all'
  @pat = [:all]
  elsif str.include?('*')
    @pat = [:name, dot_pat(str)]
  else
  begin
    @pat = [:ip, IPAddr.new(str)]
  rescue ArgumentError
    @pat = [:name, dot_pat(str)]
  end
  end
end

Instance Method Details

#match(addr) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/drb/acl.rb', line 42

def match(addr)
  case @pat[0]
  when :all
  true
  when :ip
  begin
    ipaddr = IPAddr.new(addr[3])
    ipaddr = ipaddr.ipv4_mapped if @pat[1].ipv6? && ipaddr.ipv4?
  rescue ArgumentError
    return false
  end
  (@pat[1].include?(ipaddr)) ? true : false
  when :name
  (@pat[1] =~ addr[2]) ? true : false
  else
  false
  end
end