X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-dhcp.git/blobdiff_plain/15cc0f64d318944b13e6244b5302b192ef73f9fc..40b9d8a1ad275d53fc17a601a27fe9afc8fb2346:/invirt-dhcpserver diff --git a/invirt-dhcpserver b/invirt-dhcpserver index 2c36b22..438d80d 100755 --- a/invirt-dhcpserver +++ b/invirt-dhcpserver @@ -15,10 +15,8 @@ import time from invirt import database from invirt.config import structs as config -dhcp_options = {'subnet_mask': config.dhcp.netmask, - 'router': config.dhcp.gateway, - 'domain_name_server': ','.join(config.dhcp.dns), - 'ip_address_lease_time': 60*60*24} +dhcp_options = {'domain_name_server': ','.join(config.dhcp.dns), + 'ip_address_lease_time': config.dhcp.leasetime if config.dhcp.has_key('leasetime') else 60*60*24} class DhcpBackend: def __init__(self): @@ -102,6 +100,8 @@ class DhcpBackend: return False options = {} + options['subnet_mask'] = nic.netmask.encode("utf-8") + options['router'] = nic.gateway.encode("utf-8") if nic.hostname and '.' in nic.hostname: options['host_name'], options['domain_name'] = nic.hostname.encode('utf-8').split('.', 1) elif nic.machine.name: @@ -113,17 +113,15 @@ class DhcpBackend: options['host_name'] += '.' + options['domain_name'] del options['domain_name'] options['domain_search'] = [config.dhcp.search_domain] - if ip is not None: - ip = ipv4(ip) - s.syslog(s.LOG_DEBUG,"dhcp_backend : Discover result = "+str(ip)) - packet_parameters = self.getParameters(**options) + ip = ipv4(ip) + s.syslog(s.LOG_DEBUG,"dhcp_backend : Discover result = "+str(ip)) + packet_parameters = self.getParameters(**options) - # FIXME: Other offer parameters go here - packet_parameters["yiaddr"] = ip.list() - - packet.SetMultipleOptions(packet_parameters) - return True - return False + # FIXME: Other offer parameters go here + packet_parameters["yiaddr"] = ip.list() + + packet.SetMultipleOptions(packet_parameters) + return True def Request(self, packet): s.syslog(s.LOG_DEBUG, "dhcp_backend : Request")