Revision 26ba9dba

b/nfdhcpd
79 79
server_ip = ip_addr()
80 80
dhcp_queue = integer(min=0, max=65535)
81 81
nameservers = ip_addr_list(family=4)
82
domain = string(default=None)
82 83

  
83 84
[ipv6]
84 85
enable_ipv6 = boolean(default=True)
......
293 294
                 rs_queue_num=None, ns_queue_num=None,
294 295
                 dhcp_lease_lifetime=DEFAULT_LEASE_LIFETIME,
295 296
                 dhcp_lease_renewal=DEFAULT_LEASE_RENEWAL,
297
                 dhcp_domain='',
296 298
                 dhcp_server_ip=DHCP_DUMMY_SERVER_IP, dhcp_nameservers=None,
297 299
                 ra_period=DEFAULT_RA_PERIOD, ipv6_nameservers=None):
298 300

  
299 301
        self.data_path = data_path
300 302
        self.lease_lifetime = dhcp_lease_lifetime
301 303
        self.lease_renewal = dhcp_lease_renewal
304
        self.dhcp_domain = dhcp_domain
302 305
        self.dhcp_server_ip = dhcp_server_ip
303 306
        self.ra_period = ra_period
304 307
        if dhcp_nameservers is None:
......
558 561
        logging.info("%s from %s on %s", DHCP_TYPES.get(req_type, "UNKNOWN"),
559 562
                     binding.mac, iface)
560 563

  
564
        if self.dhcp_domain:
565
            domainname = self.dhcp_domain
566
        else:
567
            domainname = binding.hostname.split('.', 1)[-1]
568

  
561 569
        if req_type == DHCPREQUEST and requested_addr != binding.ip:
562 570
            resp_type = DHCPNAK
563 571
            logging.info("Sending DHCPNAK to %s on %s: requested %s"
......
569 577
            resp.yiaddr = self.clients[mac].ip
570 578
            dhcp_options += [
571 579
                 ("hostname", binding.hostname),
572
                 ("domain", binding.hostname.split('.', 1)[-1]),
580
                 ("domain", domainname),
573 581
                 ("router", subnet.gw),
574 582
                 ("broadcast_address", str(subnet.broadcast)),
575 583
                 ("subnet_mask", str(subnet.netmask)),
......
582 590
            resp_type = DHCP_REQRESP[req_type]
583 591
            dhcp_options += [
584 592
                 ("hostname", binding.hostname),
585
                 ("domain", binding.hostname.split('.', 1)[-1]),
593
                 ("domain", domainname),
586 594
            ]
587 595
            dhcp_options += [("name_server", x) for x in self.dhcp_nameservers]
588 596

  
......
735 743
        """
736 744
        self.build_config()
737 745

  
738
        # Yes, we are accessing _fd directly, but it's the only way to have a 
746
        # Yes, we are accessing _fd directly, but it's the only way to have a
739 747
        # single select() loop ;-)
740 748
        iwfd = self.notifier._fd # pylint: disable=W0212
741 749

  
......
883 891
            "dhcp_lease_renewal": config["dhcp"].as_int("lease_renewal"),
884 892
            "dhcp_server_ip": config["dhcp"]["server_ip"],
885 893
            "dhcp_nameservers": config["dhcp"]["nameservers"],
894
            "dhcp_domain": config["dhcp"]["domain"],
886 895
        })
887 896

  
888 897
    if config["ipv6"].as_bool("enable_ipv6"):
b/nfdhcpd.conf
15 15
dhcp_queue = 42 # NFQUEUE number to listen on for DHCP requests
16 16
# IPv4 nameservers to include in DHCP responses
17 17
nameservers = 192.0.2.2, 192.0.2.3
18
# Optional domain to serve with the replies
19
#domain = example.com
18 20

  
19 21
## IPv6-related functionality
20 22
[ipv6]

Also available in: Unified diff