Project

General

Profile

« Previous | Next » 

Revision b215329a

Added by Ohad Levy over 13 years ago

  • ID b215329aa29f1943727379af52a407cc778ecacb

Added timestamps to subnets data

based on pikelly patches

View differences:

lib/proxy/dhcp/subnet.rb
module Proxy::DHCP
# Represents a DHCP Subnet
class Subnet
attr_reader :network, :netmask, :server, :leases
attr_reader :network, :netmask, :server, :leases, :timestamp
attr_accessor :options
include Proxy::DHCP
......
include Proxy::Validations
def initialize server, network, netmask
@server = validate_server server
@network = validate_ip network
@netmask = validate_ip netmask
@options = {}
@records = {}
@loaded = false
raise Proxy::DHCP::Error, "unable to Add Subnet" unless @server.add_subnet(self)
@server = validate_server server
@network = validate_ip network
@netmask = validate_ip netmask
@options = {}
@records = {}
@timestamp = Time.now
@loaded = false
raise Proxy::DHCP::Error, "Unable to Add Subnet" unless @server.add_subnet(self)
end
def include? ip
......
return false if loaded?
@loaded = true
server.loadSubnetData self
logger.debug "lazy loaded #{to_s} records"
logger.debug "Lazy loaded #{to_s} records"
end
def reload
......
end
def [] record
self.load if not loaded?
begin
return has_mac?(record) if validate_mac(record)
rescue
......
# TODO: check for a more faster / portable way
`ping -q -c 1 #{ip} >/dev/null`
if $? == 0 or Ping.pingecho(ip,1)
logger.info "found a pingable IP(#{ip}) address which don't have a Proxy::DHCP record"
logger.info "Found a pingable IP(#{ip}) address which does not have a Proxy::DHCP record"
else
logger.debug "found free ip #{ip} out of a total of #{free_ips.size} free ips"
logger.debug "Found free ip #{ip} out of a total of #{free_ips.size} free ips"
return ip
end
end

Also available in: Unified diff