Revision ad2b4651
Added by Greg Sutcliffe about 10 years ago
lib/proxy/dhcp/subnet.rb | ||
---|---|---|
end
|
||
|
||
def [] record
|
||
self.load if not loaded?
|
||
begin
|
||
return has_mac?(record) if validate_mac(record)
|
||
rescue
|
||
nil
|
||
end
|
||
begin
|
||
return has_ip?(record) if validate_ip(record)
|
||
rescue
|
||
nil
|
||
end
|
||
records_for record, :all
|
||
end
|
||
|
||
def has_mac? mac
|
||
r = records.reverse_each {|r| return r if r.mac == mac.downcase}
|
||
def has_mac? mac, type
|
||
r = case type
|
||
when :reservation
|
||
reservations
|
||
when :lease
|
||
leases
|
||
else
|
||
records
|
||
end.reverse_each {|r| return r if r.mac == mac.downcase}
|
||
return false
|
||
end
|
||
|
||
def has_ip? ip
|
||
r = records.reverse_each {|r| return r if r.ip == ip}
|
||
def has_ip? ip, type
|
||
r = case type
|
||
when :reservation
|
||
reservations
|
||
when :lease
|
||
leases
|
||
else
|
||
records
|
||
end.reverse_each {|r| return r if r.ip == ip}
|
||
return false
|
||
end
|
||
|
||
... | ... | |
records.collect{|r| r if r.kind == "lease"}.compact
|
||
end
|
||
|
||
def records_for record, type
|
||
self.load if not loaded?
|
||
return has_mac?(record, type) if (validate_mac(record) rescue nil)
|
||
return has_ip?(record, type) if (validate_ip(record) rescue nil)
|
||
end
|
||
|
||
def reservation_for record
|
||
records_for record, :reservation
|
||
end
|
||
|
||
def lease_for record
|
||
records_for record, :lease
|
||
end
|
||
|
||
def <=> other
|
||
network <=> other.network
|
||
end
|
Also available in: Unified diff
Fixes #5739 - Only look at reservations when deleting a DHCP record