--- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.postinst +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.postinst @@ -0,0 +1,89 @@ +#!/bin/sh +# +# + +set -e + +case "$1" in + configure) + # continue below + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + exit 0 + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +# Handle debconf +. /usr/share/debconf/confmodule + +# We generate several files during the postinst, and we don't want +# them to be readable only by root. +umask 022 + +INITCONFFILE=/etc/default/isc-dhcp-relay + +# Generate configuration file if it does not exist, using default values. +[ -r "${INITCONFFILE}" ] || { + echo Generating ${INITCONFFILE}... >&2 + cat >${INITCONFFILE} <<'EOFMAGICNUMBER1234' +# Defaults for isc-dhcp-relay initscript +# sourced by /etc/init.d/isc-dhcp-relay +# installed at /etc/default/isc-dhcp-relay by the maintainer scripts + +# +# This is a POSIX shell fragment +# + +# What servers should the DHCP relay forward requests to? +SERVERS="172.16.0.10" + +# On what interfaces should the DHCP relay (dhrelay) serve DHCP requests? +INTERFACES="eth0" + +# Additional options that are passed to the DHCP relay daemon? +OPTIONS="" +EOFMAGICNUMBER1234 +} + +# ------------------------- Debconf questions start --------------------- + +db_get isc-dhcp-relay/interfaces || true +INTERFACES="${RET}" + +TMPFILE=`mktemp -q /tmp/dhcp.config.XXXXXX` +sed -e "s/^[[:space:]]*INTERFACES[[:space:]]*=.*/INTERFACES=\"${INTERFACES}\"/" \ + <${INITCONFFILE} >${TMPFILE} +cp ${TMPFILE} ${INITCONFFILE} +rm ${TMPFILE} + +db_get isc-dhcp-relay/servers || true +SERVERS="${RET}" + +TMPFILE=`mktemp -q /tmp/dhcp.config.XXXXXX` +sed -e "s/^[[:space:]]*SERVERS[[:space:]]*=.*/SERVERS=\"${SERVERS}\"/" \ + <${INITCONFFILE} >${TMPFILE} +cp ${TMPFILE} ${INITCONFFILE} +rm ${TMPFILE} + +db_get isc-dhcp-relay/options || true +OPTIONS="${RET}" + +TMPFILE=`mktemp -q /tmp/dhcp.config.XXXXXX` +sed -e "s/^[[:space:]]*OPTIONS[[:space:]]*=.*/OPTIONS=\"${OPTIONS}\"/" \ + <${INITCONFFILE} >${TMPFILE} +cp ${TMPFILE} ${INITCONFFILE} +rm ${TMPFILE} + +# ------------------------- Debconf questions end --------------------- + +db_stop + +#DEBHELPER# + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client.install +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client.install @@ -0,0 +1,7 @@ +usr/sbin/dhclient sbin +etc/dhcp/dhclient.conf +usr/share/man/man8/dhclient.8 +usr/share/man/man8/dhclient-script.8 +usr/share/man/man5/dhclient.conf.5 +usr/share/man/man5/dhclient.leases.5 +etc/apparmor.d/sbin.dhclient --- isc-dhcp-4.1.ESV-R4.orig/debian/dhclient-script.linux.udeb +++ isc-dhcp-4.1.ESV-R4/debian/dhclient-script.linux.udeb @@ -0,0 +1,182 @@ +#!/bin/sh + +set -e + +# reduced dhclient-script for the Debian installer +# changes by Joshua Kwan , +# Bastian Blank + +# dhclient-script for Linux. Dan Halbert, March, 1997. +# Updated for Linux 2.[12] by Brian J. Murrell, January 1999. +# Modified for Debian. Matt Zimmerman and Eloy Paris, December 2003 + +# update /etc/resolv.conf based on received values +make_resolv_conf() { + local new_resolv_conf + + # DHCPv4 + if [ -n "$new_domain_name" ] || [ -n "$new_domain_name_servers" ]; then + new_resolv_conf=/etc/resolv.conf.dhclient-new + rm -f $new_resolv_conf + + if [ -n "$new_domain_name" ]; then + echo "search $new_domain_name" >>$new_resolv_conf + fi + + if [ -n "$new_domain_name_servers" ]; then + for nameserver in $new_domain_name_servers; do + echo "nameserver $nameserver" >>$new_resolv_conf + done + else # keep 'old' nameservers + grep -i '^nameserver' /etc/resolv.conf >>$new_resolv_conf + fi + + mv $new_resolv_conf /etc/resolv.conf + # DHCPv6 + elif [ -n "$new_dhcp6_domain_search" ] || [ -n "$new_dhcp6_name_servers" ]; then + new_resolv_conf=/etc/resolv.conf.dhclient-new + rm -f $new_resolv_conf + + if [ -n "$new_dhcp6_domain_search" ]; then + echo "search $new_dhcp6_domain_search" >> $new_resolv_conf + fi + + if [ -n "$new_dhcp6_name_servers" ]; then + for nameserver in $new_dhcp6_name_servers; do + echo "nameserver $nameserver" >>$new_resolv_conf + done + else # keep 'old' nameservers + grep -i '^nameserver' /etc/resolv.conf >>$new_resolv_conf + fi + + mv $new_resolv_conf /etc/resolv.conf + fi +} + +set_hostname() { + local current_hostname + current_hostname=$(cat /proc/sys/kernel/hostname) + + if [ -z "$current_hostname" ] || [ "$current_hostname" = "(none)" ]; then + echo "$new_host_name" > /proc/sys/kernel/hostname + fi +} + +# set up some variables for DHCP handlers below +if [ -n "$new_subnet_mask" ]; then + new_mask="/$(ptom $new_subnet_mask)" +fi +if [ -n "$old_subnet_mask" ]; then + old_mask="/$(ptom $old_subnet_mask)" +fi + +if [ -n "$new_broadcast_address" ]; then + new_broadcast_arg="broadcast $new_broadcast_address" +fi +if [ -n "$old_broadcast_address" ]; then + old_broadcast_arg="broadcast $old_broadcast_address" +fi + +# Execute the operation +case "$reason" in + + ### DHCPv4 Handlers + + MEDIUM|ARPCHECK|ARPSEND) + # Do nothing + ;; + PREINIT) + ip link set dev $interface up + + # We need to give the kernel some time to get the interface up. + sleep 1 + + ;; + + BOUND|RENEW|REBIND|REBOOT) + set_hostname + + if [ -n "$old_ip_address" ] && + [ "$old_ip_address" != "$new_ip_address" ]; then + ip -4 addr flush dev $interface + fi + + if [ -z "$old_ip_address" ] || + [ "$old_ip_address" != "$new_ip_address" ] || + [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then + ip -4 addr add $new_ip_address$new_mask $new_broadcast_arg dev $interface + + if [ -n "$new_interface_mtu" ]; then + ip link set $interface mtu $new_interface_mtu || true + fi + + for router in $new_routers; do + ip -4 route add default via $router dev $interface + done + fi + + make_resolv_conf + + # Get the domain name into a file suitable for netcfg to read. + printf "$new_domain_name" > /tmp/domain_name + + if [ -n "$new_ntp_servers" ]; then + printf "$new_ntp_servers" > /tmp/dhcp-ntp-servers + fi + + ;; + + EXPIRE|FAIL|RELEASE|STOP) + if [ -n "$old_ip_address" ]; then + ip -4 addr flush dev $interface + fi + + ;; + + TIMEOUT) + ip link set $interface down + + ;; + + ### DHCPv6 Handlers + # TODO handle prefix change: ?based on ${old_ip6_prefix} and ${new_ip6_prefix}? + + PREINIT6) + # ensure interface is up + ip link set $interface up + + # flush any stale global permanent IPs from interface + ip -6 addr flush dev $interface scope global permanent + + ;; + + BOUND6|RENEW6|REBIND6) + if [ "$new_ip6_address" ] && [ "$new_ip6_prefixlen" ]; then + ip -6 addr add $new_ip6_address/$new_ip6_prefixlen \ + dev $interface scope global + fi + + make_resolv_conf + + # Get the domain name into a file suitable for netcfg to read. + printf "${new_dhcp6_domain_search%% *}" > /tmp/domain_name + + ;; + + DEPREF6) + if [ "$new_ip6_prefixlen" ]; then + ip -6 addr change $cur_ip6_address/$cur_ip6_prefixlen \ + dev $interface scope global preferred_lft 0 + fi + + ;; + + EXPIRE6|RELEASE6|STOP6) + if [ "$old_ip6_address" ] && [ "$old_ip6_prefixlen" ]; then + ip -6 addr del $old_ip6_address/$old_ip6_prefixlen dev $interface + fi + + ;; +esac + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server-ldap.preinst +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server-ldap.preinst @@ -0,0 +1,16 @@ +#!/bin/sh + +set -e + +if [ "$1" = install -o "$1" = upgrade ]; then + if dpkg-divert --list /usr/sbin/dhcpd \ + | grep -q "by isc-dhcp-server-ldap"; + then + exit 0 + fi + + dpkg-divert --package isc-dhcp-server-ldap --add --rename \ + --divert /usr/sbin/dhcpd-noldap /usr/sbin/dhcpd +fi + +#DEBHELPER# --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server-ldap.lintian-overrides +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server-ldap.lintian-overrides @@ -0,0 +1 @@ +isc-dhcp-server-ldap: possible-gpl-code-linked-with-openssl --- isc-dhcp-4.1.ESV-R4.orig/debian/copyright +++ isc-dhcp-4.1.ESV-R4/debian/copyright @@ -0,0 +1,33 @@ +This package was debianized by Andrew Pollock on +Sun, 02 Mar 2008 21:18:00 -0800. + +It was downloaded from http://ftp.isc.org/isc/dhcp/ + +Upstream Author: Internet Systems Consortium (ISC) + +Copyright: 2004-2007 by Internet Systems Consortium, Inc. ("ISC") + 1995-2003 by Internet Software Consortium + +License: + +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +# Internet Systems Consortium, Inc. +# 950 Charter Street +# Redwood City, CA 94063 +# +# http://www.isc.org/ + +The Debian packaging is (C) 2008, Andrew Pollock and +is licensed under the GPL, see `/usr/share/common-licenses/GPL'. --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-dev.install +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-dev.install @@ -0,0 +1,4 @@ +usr/include +usr/lib +usr/share/man/man3/dhcpctl.3 +usr/share/man/man3/omapi.3 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.examples +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.examples @@ -0,0 +1 @@ +server/dhcpd.conf --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client.postrm +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client.postrm @@ -0,0 +1,18 @@ +#!/bin/sh -e +# +# + +if [ "$1" = "purge" ]; then + # Remove lease database + rm -f /var/lib/dhcp/dhclient.leases* + + # Try to remove directory + if [ -d /var/lib/dhcp ]; then + rmdir --ignore-fail-on-non-empty /var/lib/dhcp/ + fi + + rmdir --ignore-fail-on-non-empty /etc/dhcp + +fi + +#DEBHELPER# --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.prerm +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.prerm @@ -0,0 +1,14 @@ +#!/bin/sh +# +# + +set -e + +init_script_error_handler() +{ + return 0 +} + +#DEBHELPER# + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/dhcp-on-linux.txt +++ isc-dhcp-4.1.ESV-R4/debian/dhcp-on-linux.txt @@ -0,0 +1,54 @@ +From: mellon@hoffman.vix.com (Ted Lemon) +Subject: Re: Linux 2.0/2.1/2.2 -- Anyway to avoid different binaries?? +Date: 4 Feb 1999 17:30:11 -0400 +Message-ID: <199902041802.NAA01184@grosse.fugue.com> + + *** From dhcp-client -- To unsubscribe, see the end of this message. *** + +> Any way to avoid having to have different binaries for the various Linux +> kernels? On one or two boxes, it's no big deal to maintain, but in an +> enterprise it can be real pain. + +Yes. Send email to the Linux kernel network people requesting that +they revisit the issue of whether or not to allow network interfaces +to be configured with IP addresses of 0.0.0.0. + +The reason behind switching to lpf is that in 2.1.100 (or thereabouts) +somebody noticed that if you configured a network interface with an IP +address of 0.0.0.0 and some other machine arped for 0.0.0.0, it would +respond, which is incorrect. This bug was fixed by making it +impossible to configure an interface with that address. A preferable, +and equally effective fix would have been to hack the ARP code to +never reply to requests of this kind. + +Since DHCP clients depend on being able to send requests from the +0.0.0.0 IP address, which is a perfectly legitimate thing to do, and +since this is no longer permitted in Linux, DHCP clients and servers +for 2.0 and 2.1/2.2 are not interchangeable. An additional +consequence is that it is not possible to run the DHCP server or +client on a Linux 2.1/2.2 box connected to a token ring network, +because the physical layer encapsulation protocol is different, and +with lpf the application has to do the physical layer encapsulation (I +kid you not!). This can be worked around by adding code to support +token ring - there's already similar code to support FDDI. But my +take on this is that it's really the O.S.'s job to do physical layer +encapsulation, and doing it in the application is just needless +duplication. + +I've tried arguing this point with the Linux network gods, but for +some reason they concluded that my motivation was to avoid having to +do extra work, not that my concern was legitimate, so they refused to +back out the change. A sufficiently vocal response from real Linux +users like you might change their minds. + + _MelloN_ + + +------------------------------------------------------------------------------ +To unsubscribe from this list, please visit http://www.fugue.com/dhcp/lists +If you are without web access, or if you are having trouble with the web page, +please send mail to dhcp-request@fugue.com. Please try to use the web +page first - it will take a long time for your request to be processed by hand. +------------------------------------------------------------------------------ + + --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.lintian-overrides +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.lintian-overrides @@ -0,0 +1 @@ +isc-dhcp-server: possible-gpl-code-linked-with-openssl --- isc-dhcp-4.1.ESV-R4.orig/debian/control +++ isc-dhcp-4.1.ESV-R4/debian/control @@ -0,0 +1,267 @@ +Source: isc-dhcp +Section: net +Priority: important +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian ISC DHCP maintainers +Uploaders: Andrew Pollock +Vcs-Git: git://git.debian.org/pkg-dhcp/isc-dhcp.git +Vcs-Browser: http://git.debian.org/?p=pkg-dhcp/isc-dhcp.git;a=summary +Build-Depends: debhelper (>= 7.4.20ubuntu6), dpkg-dev (>= 1.13.2), groff, dpatch, po-debconf, libldap2-dev, libssl-dev, autoconf, automake, pkg-config, libcap-dev, hardening-wrapper, dh-apport, dh-apparmor +Standards-Version: 3.9.2 + +Package: isc-dhcp-server +Priority: optional +Architecture: any +Depends: debianutils (>= 2.8.2), isc-dhcp-common (= ${binary:Version}), lsb-base, adduser, ${shlibs:Depends}, ${misc:Depends} +Provides: dhcp3-server +Conflicts: dhcp +Replaces: dhcp3-server +Suggests: isc-dhcp-server-ldap, apparmor +Description: ISC DHCP server for automatic IP address assignment + This is the server from the Internet Software Consortium's implementation of + DHCP. For more information, visit http://www.isc.org. + . + Dynamic Host Configuration Protocol (DHCP) is a protocol like BOOTP + (actually dhcpd includes much of the functionality of bootpd). It + gives client machines "leases" for IP addresses and can + automatically set their network configuration. + . + This server can handle multiple ethernet interfaces. + +Package: isc-dhcp-server-dbg +Section: debug +Priority: extra +Architecture: any +Depends: debianutils (>= 2.8.2), isc-dhcp-common (= ${binary:Version}), lsb-base, ${shlibs:Depends}, ${misc:Depends} +Conflicts: dhcp +Suggests: isc-dhcp-server-ldap +Description: ISC DHCP server for automatic IP address assignment (debug) + This is the server from the Internet Software Consortium's implementation of + DHCP. For more information, visit http://www.isc.org. + . + This package contains the debugging symbols for isc-dhcp-server + . + Dynamic Host Configuration Protocol (DHCP) is a protocol like BOOTP + (actually dhcpd includes much of the functionality of bootpd). It + gives client machines "leases" for IP addresses and can + automatically set their network configuration. + . + This server can handle multiple ethernet interfaces. + +Package: isc-dhcp-server-ldap +Priority: optional +Architecture: any +Depends: debianutils (>= 2.8.2), isc-dhcp-common (= ${binary:Version}), isc-dhcp-server (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: dhcp3-server-ldap +Conflicts: dhcp +Replaces: dhcp3-server-ldap +Enhances: isc-dhcp-server +Description: DHCP server able to use LDAP as backend + This is the server from the Internet Software Consortium's implementation of + DHCP. For more information, visit http://www.isc.org. + . + Dynamic Host Configuration Protocol (DHCP) is a protocol like BOOTP + (actually dhcpd includes much of the functionality of bootpd). It + gives client machines "leases" for IP addresses and can + automatically set their network configuration. + . + This is the DHCP server with LDAP patches applied to it. + +Package: isc-dhcp-common +Architecture: any +Section: net +Provides: dhcp3-common +Replaces: dhcp3-common +Depends: debianutils (>= 2.8.2), ${shlibs:Depends}, ${misc:Depends} +Description: common files used by all the isc-dhcp* packages + This package contains the files used by all the packages from ISC + DHCP. + +Package: isc-dhcp-dev +Priority: optional +Architecture: any +Section: devel +Provides: dhcp3-dev +Replaces: dhcp3-dev +Depends: libc6-dev, ${misc:Depends} +Description: API for accessing and modifying the DHCP server and client state + OMAPI is an API for accessing and modifying the DHCP server and + client state. + +Package: isc-dhcp-client +Architecture: any +Depends: debianutils (>= 2.8.2), isc-dhcp-common (= ${binary:Version}), iproute [linux-any], ${shlibs:Depends}, ${misc:Depends} +Suggests: resolvconf, avahi-autoipd, apparmor +Provides: dhcp3-client +Conflicts: dhcp-client (<< 3.0), samba-common (<< 3.0.0beta1-2), resolvconf (<= 1.45), ifupdown (<< 0.6.8+nmu3) +Replaces: dhcp3-client +Breaks: network-manager (<< 0.8.2~rc1) +Description: ISC DHCP client + This is the client from the Internet Software Consortium's implementation of + DHCP. For more information visit http://www.isc.org. + . + Dynamic Host Configuration Protocol (DHCP) is a protocol like BOOTP + (actually dhcpd includes much of the functionality of bootpd). It + gives client machines "leases" for IP addresses and can + automatically set their network configuration. If your machine + depends on DHCP (especially likely if it's a workstation on a large + network, or a laptop, or attached to a cable modem), keep this or + another DHCP client installed. + . + Extra documentation can be found in the package isc-dhcp-common. + +Package: isc-dhcp-client-dbg +Section: debug +Priority: extra +Architecture: any +Depends: debianutils (>= 2.8.2), isc-dhcp-common (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Suggests: resolvconf, avahi-autoipd +Conflicts: dhcp-client (<< 3.0), samba-common (<< 3.0.0beta1-2) +Description: ISC DHCP client (debugging symbols) + This is the client from the Internet Software Consortium's implementation of + DHCP. For more information visit http://www.isc.org. + . + This package contains the debugging symbols for isc-dhcp-client + . + Dynamic Host Configuration Protocol (DHCP) is a protocol like BOOTP + (actually dhcpd includes much of the functionality of bootpd). It + gives client machines "leases" for IP addresses and can + automatically set their network configuration. If your machine + depends on DHCP (especially likely if it's a workstation on a large + network, or a laptop, or attached to a cable modem), keep this or + another DHCP client installed. + . + Extra documentation can be found in the package isc-dhcp-common. + +Package: isc-dhcp-client-udeb +Priority: extra +Architecture: any +Section: debian-installer +Depends: ${shlibs:Depends} +XC-Package-Type: udeb +Description: ISC DHCP Client for debian-installer + dhcp-client-udeb is a minimal dhcp package used by the debian-installer. + +Package: isc-dhcp-relay +Priority: optional +Architecture: any +Depends: debianutils (>= 2.8.2), isc-dhcp-common (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: dhcp3-relay +Conflicts: dhcp-relay +Replaces: dhcp3-relay +Description: ISC DHCP relay daemon + This is the relay from the Internet Software Consortium's implementation of + DHCP. For more information visit + http://www.isc.org. + . + Installing this package will make the machine a DHCP relay, which + requires a reachable DHCP or BOOTP server in order to function. + . + Extra documentation can be found in the package isc-dhcp-common. + +Package: isc-dhcp-relay-dbg +Section: debug +Priority: extra +Architecture: any +Depends: debianutils (>= 2.8.2), isc-dhcp-common (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Conflicts: dhcp-relay +Description: DHCP relay daemon (debugging symbols) + This is the relay from the Internet Software Consortium's implementation of + DHCP. For more information visit + http://www.isc.org. + . + This package contains the debugging symbols for isc-dhcp-relay + . + Installing this package will make the machine a DHCP relay, which + requires a reachable DHCP or BOOTP server in order to function. + . + Extra documentation can be found in the package isc-dhcp-common. + +Package: dhcp3-server +Priority: extra +Section: oldlibs +Architecture: all +Depends: isc-dhcp-server, ${misc:Depends} +Description: ISC DHCP server (transitional package) + This is the server from the Internet Software Consortium's implementation of + DHCP. For more information, visit http://www.isc.org. + . + Dynamic Host Configuration Protocol (DHCP) is a protocol like BOOTP + (actually dhcpd includes much of the functionality of bootpd). It + gives client machines "leases" for IP addresses and can + automatically set their network configuration. + . + This server can handle multiple ethernet interfaces. + . + This is a dummy package to aid in transitioning from the v3 DHCP packages + to the new-style DHCP packages. + . + This dummy package may be safely removed after upgrading to squeeze + +Package: dhcp3-client +Priority: extra +Section: oldlibs +Architecture: all +Depends: isc-dhcp-client, ${misc:Depends} +Description: ISC DHCP server (transitional package) + This is the client from the Internet Software Consortium's implementation of + DHCP. For more information visit http://www.isc.org. + . + Dynamic Host Configuration Protocol (DHCP) is a protocol like BOOTP + (actually dhcpd includes much of the functionality of bootpd). It + gives client machines "leases" for IP addresses and can + automatically set their network configuration. If your machine + depends on DHCP (especially likely if it's a workstation on a large + network, or a laptop, or attached to a cable modem), keep this or + another DHCP client installed. + . + This is a dummy package to aid in transitioning from the v3 DHCP packages + to the new-style DHCP packages. + . + This dummy package may be safely removed after upgrading to squeeze + +Package: dhcp3-relay +Priority: extra +Section: oldlibs +Architecture: all +Depends: isc-dhcp-relay, ${misc:Depends} +Description: ISC DHCP relay (transitional package) + This is the relay from the Internet Software Consortium's implementation of + DHCP. For more information visit + http://www.isc.org. + . + Installing this package will make the machine a DHCP relay, which + requires a reachable DHCP or BOOTP server in order to function. + . + This is a dummy package to aid in transitioning from the v3 DHCP packages + to the new-style DHCP packages. + . + This dummy package may be safely removed after upgrading to squeeze + +Package: dhcp3-common +Priority: extra +Section: oldlibs +Architecture: all +Depends: isc-dhcp-common, ${misc:Depends} +Description: ISC DHCP common files (transitional package) + This package contains the files used by all the packages from ISC + DHCP. + . + This is a dummy package to aid in transitioning from the v3 DHCP packages + to the new-style DHCP packages. + . + This dummy package may be safely removed after upgrading to squeeze + +Package: dhcp3-dev +Priority: extra +Section: oldlibs +Architecture: all +Depends: isc-dhcp-dev, ${misc:Depends} +Description: ISC DHCP development files (transitional package) + This package contains development files for the Internet Software Consortium's + implementation of DHCP. For more information visit http://www.isc.org. + . + This is a dummy package to aid in transitioning from the v3 DHCP packages + to the new-style DHCP packages. + . + This dummy package may be safely removed after upgrading to squeeze --- isc-dhcp-4.1.ESV-R4.orig/debian/changelog +++ isc-dhcp-4.1.ESV-R4/debian/changelog @@ -0,0 +1,2763 @@ +isc-dhcp (4.1.ESV-R4-0ubuntu5.6) precise-proposed; urgency=low + + [ Scott Moser ] + * debian/apparmor-profile.dhcpd: use include directory to enable + other packages to re-use isc-dhcp-server. (LP: #1049177) + + [ Stéphane Graber ] + * Update onetry_retry_after_initial_success to disable the onetry variable + early enough to actually prevent dhclient from exiting. (LP: #974284) + * Update droppriv patch to also call initgroups() (LP: #727837) + + -- Stéphane Graber Tue, 18 Sep 2012 10:34:10 -0400 + +isc-dhcp (4.1.ESV-R4-0ubuntu5.5) precise-security; urgency=low + + [ Jamie Strandboge ] + * debian/dhclient-script.linux: Explicitly set the PATH to that of + ENV_SUPATH in /etc/login.defs and unset various other variables. We need + to do this so /sbin/dhclient cannot abuse the environment to escape + AppArmor confinement via this script. Don't worry about + debian/dhclient-script.linux.udeb or debian/dhclient-script.kfreebsd* + since AppArmor isn't used in these environments. + - LP: #1045986 + + [ Marc Deslauriers ] + * SECURITY UPDATE: denial of service via ipv6 lease expiration time + reduction + - debian/patches/CVE-2012-3955.patch: properly handle time reduction in + server/dhcpv6.c, server/mdb6.c. + - CVE-2012-3955 + + -- Marc Deslauriers Fri, 14 Sep 2012 12:58:33 -0400 + +isc-dhcp (4.1.ESV-R4-0ubuntu5.2) precise-security; urgency=low + + * SECURITY UPDATE: denial of service via malformed client identifiers + - debian/patches/CVE-2012-3571.dpatch: validate packets in + common/options.{c,h}. + - CVE-2012-3571.dpatch + * SECURITY UPDATE: denial of service via memory leaks + - debian/patches/CVE-2012-3954.dpatch: properly manage memory in + common/options.c and server/dhcpv6.c. + - CVE-2012-3954 + + -- Marc Deslauriers Wed, 25 Jul 2012 17:04:18 -0400 + +isc-dhcp (4.1.ESV-R4-0ubuntu5.1) precise-proposed; urgency=low + + * Set -pf option for both isc-dhcp-server and isc-dhcp-server6 so they + create their pid files in a path that's actually writable. (LP: #985417) + * Also allow read access to the pid file in the apparmor profile, + otherwise only the initial start succeeds. (LP: #1005062) + * On upgrade from dhcp3-server, move /etc/default/dhcp3-server to + /etc/default/isc-dhcp-server. (LP: #1003971) + * On upgrade from dhcp3-relay, remove /etc/default/dhcp3-relay. + (LP: #1005547) + * Try to preseed isc-dhcp-relay with the values from + /etc/default/dhcp3-relay. (LP: #1005547) + + -- Stéphane Graber Sun, 27 May 2012 20:41:13 -0400 + +isc-dhcp (4.1.ESV-R4-0ubuntu5) precise; urgency=low + + * When dhclient is called with -1, exit on failure to get a lease only + when getting the initial lease. Once backgrounded, behave exactly like + in normal mode. (LP: #974284) + + -- Stéphane Graber Tue, 10 Apr 2012 14:19:23 +0200 + +isc-dhcp (4.1.ESV-R4-0ubuntu4) precise; urgency=low + + * debian/apparmor-profile.dhcpd: + - allow writes to the compiled in default pid file (LP: #974054) + - allow reads to /var/lib/wicd/* (LP: #588635) + + -- Jamie Strandboge Thu, 05 Apr 2012 07:19:11 -0500 + +isc-dhcp (4.1.ESV-R4-0ubuntu3) precise; urgency=low + + * Spawn separate IPv4 and IPv6 daemons. (LP: #944849) + + * Convert /etc/init.d/isc-dhcp-server to two upstart jobs: + - /etc/init/isc-dhcp-server.conf (using /etc/isc-dhcp-server/dhcpd.conf) + - /etc/init/isc-dhcp-server6.conf (using /etc/isc-dhcp-server/dhcpd6.conf) + + * Convert /etc/init.d/isc-dhcp-relay to two upstart jobs: + - /etc/init/isc-dhcp-relay.conf (using /etc/default/isc-dhcp-relay) + - /etc/init/isc-dhcp-relay6.conf (using /etc/default/isc-dhcp-relay6) + + * To enable isc-dhcp-server6, create /etc/isc-dhcp-server/dhcpd6.conf + * To enable isc-dhcp-relay6, configure /etc/default/isc-dhcp-relay6 + + -- Stéphane Graber Tue, 06 Mar 2012 13:22:41 -0500 + +isc-dhcp (4.1.ESV-R4-0ubuntu2) precise; urgency=low + + * debian/control: Build-Depends on dh-apparmor (LP: #948132) + + -- Jamie Strandboge Tue, 06 Mar 2012 09:58:59 -0600 + +isc-dhcp (4.1.ESV-R4-0ubuntu1) precise; urgency=low + + * New upstream release (4.1-ESV-R4) (LP: #937169) + https://deepthought.isc.org/article/AA-00566 + * Removed patches (now upstream): + - CVE-2010-3611.dpatch + - CVE-2011-0413.dpatch + - CVE-2011-0997.dpatch + - CVE-2011-2748-2749.dpatch + - CVE-2011-4539.dpatch + - dhclient-initial-random-delay-option.dpatch + - fix_groff_warnings.dpatch + - no-libcrypto.dpatch + * Refreshed patches: + - dhcp-4.1.0-ldap-code.dpatch + - fix_exit_hook_doc_manpage.dpatch + + -- Stéphane Graber Mon, 20 Feb 2012 13:05:01 -0500 + +isc-dhcp (4.1.1-P1-17ubuntu13) precise; urgency=low + + * debian/apparmor-profile.dhclient: allow the new pid file for dhclient which + NetworkManager will use. (LP: #869635) + + -- Mathieu Trudel-Lapierre Thu, 16 Feb 2012 17:01:19 -0500 + +isc-dhcp (4.1.1-P1-17ubuntu12) precise; urgency=low + + * SECURITY UPDATE: denial of service via regular expressions + - debian/patches/CVE-2011-4539.dpatch: add check for null pointer in + common/tree.c. + - CVE-2011-4539 + + -- Marc Deslauriers Wed, 14 Dec 2011 15:49:11 -0500 + +isc-dhcp (4.1.1-P1-17ubuntu11) precise; urgency=low + + * debian/dhclient-script.linux: fix for read-only /etc (LP: #857524) + + -- Scott Moser Mon, 24 Oct 2011 22:28:35 -0400 + +isc-dhcp (4.1.1-P1-17ubuntu10) oneiric; urgency=low + + * make sure writing of /etc/resolv.conf actually waits until the file is + writable (LP: #856984) + + -- Scott Moser Fri, 23 Sep 2011 11:26:29 -0400 + +isc-dhcp (4.1.1-P1-17ubuntu9) oneiric; urgency=low + + * debian/dhclient-script.linux.udeb: Leave previous nameservers in + resolv.conf if we don't get any in the current lease (matching the + non-udeb variant). + + -- Colin Watson Mon, 19 Sep 2011 21:40:33 +0100 + +isc-dhcp (4.1.1-P1-17ubuntu8) oneiric; urgency=low + + * debian/patches/dhclient-safer-timeout.dpatch: Increase default + timeout to ensure we don't hit it. Closes LP: #838968. + + -- Steve Langasek Fri, 02 Sep 2011 14:34:52 -0700 + +isc-dhcp (4.1.1-P1-17ubuntu7) oneiric; urgency=low + + * Add IPv6 support to udeb dhclient-script (forwarded as Debian #635897). + + -- Colin Watson Tue, 30 Aug 2011 14:44:23 +0100 + +isc-dhcp (4.1.1-P1-17ubuntu6) oneiric; urgency=low + + * SECURITY UPDATE: denial of service via specially crafted packets + - debian/patches/CVE-2011-2748-2749.dpatch: tighten up restriction in + common/discover.c, properly calculate length in common/options.c, + validate packet->options in server/dhcp.c. + - CVE-2011-2748 + - CVE-2011-2749 + + -- Marc Deslauriers Thu, 11 Aug 2011 11:14:46 -0400 + +isc-dhcp (4.1.1-P1-17ubuntu5) oneiric; urgency=low + + * debian/isc-dhcp-{server,client}.apport: use new apport MAC function + instead of parsing and attaching AppArmor events here. + + -- Marc Deslauriers Fri, 15 Jul 2011 08:21:11 -0400 + +isc-dhcp (4.1.1-P1-17ubuntu4) oneiric; urgency=low + + * adjust AppArmor profile for /var/run -> /run (LP: #810270) + + -- Jamie Strandboge Thu, 14 Jul 2011 08:26:44 -0500 + +isc-dhcp (4.1.1-P1-17ubuntu3) oneiric; urgency=low + + * Add DHCPv6 client configuration to dhclient.conf (LP: #770324) + + -- Stéphane Graber Mon, 20 Jun 2011 09:41:26 -0400 + +isc-dhcp (4.1.1-P1-17ubuntu2) oneiric; urgency=low + + * debian/apparmor-profile.dhcpd: modify AppArmor profile for DHCP server to + work with IPv6 thanks to Launchpad user nikolas for the patch. LP: #787212 + + -- Brian Murray Fri, 03 Jun 2011 13:55:44 -0700 + +isc-dhcp (4.1.1-P1-17ubuntu1) oneiric; urgency=low + + * Merge from debian unstable. Remaining changes: + - Deroot server (Debian #308832). + - Send hostname to DHCP server by default (LP #10239, Debian #151820). + - dhclient-onetry-call-clientscript.dpatch: Call 'dhclient-script FAIL' + when failing to get an address also when operating in oneshot mode + (-1). This fixes avahi-autoipd invocation through dhcdbd. + - dhcpd.conf-subnet-examples.dpatch: Give an example for subnet-mask in + dhcpd.conf. + - dhclient-more-debug.dpatch: Show the requested/offered client IP in + log output, for better debugging. + - debian/dhclient-script.linux: Wait for /etc/resolv.conf to become + writable; this isn't the case when ifup is called from an Upstart job + triggered by udev (Ubuntu-specific until Debian uses this rule, too). + Rewritten for 4.1.1-P1-17 changes. + - revert-next-server.dpatch: Revert the need of the next-server option + in dhcpd.conf so it points to the own IP again for tftp if the option + is not set (patch by Oliver Grawert; disputed upstream). + - debian/isc-dhcp-server.init.d: Allow LTSP to override default + configuration in /etc/ltsp/dhcpd.conf. Point that out in a header + comment in debian/dhcpd.conf (Ubuntu-specific). + - debian/isc-dhcp-server.config: Drop debconf question to medium + (Ubuntu-specific). + - Enable build hardening. Add hardening-wrapper build dependency + (Ubuntu-specific). + - Add enforcing AppArmor profile for DHCP client and server. + - Install apport hooks. + - debian/dhclient-script.linux: Fix regression in host_name option + handling, so that it's always honored when /etc/hostname is not set. + - dhclient-fix-backoff.dpatch, + dhclient-initial-random-delay-option.dpatch: Speed up DHCP negotiation + (Debian #509089). + - Fix configure test for ber_init to work correctly with 'ld + --no-add-needed'. + - isc-dhcp-client Breaks: network-manager (<< 0.8.2~rc1), since earlier + versions were patched in Ubuntu to hardcode assumptions for + dhcp3-client. + - debian/patches/multi-ip-addr-per-if.dpatch: Resolve issue of + interfaces not being able to have more than one IP address assigned. + - debian/isc-dhcp-client.links: fix symlink ordering for new ISC + package + - debian/rules: add call to dh_link to get package symlinks back + + -- Marc Deslauriers Mon, 30 May 2011 13:30:57 -0400 + +isc-dhcp (4.1.1-P1-17) unstable; urgency=low + + * Incorporate and acknowledge NMU + * Apply a multitude of patches from Peter Marschall (closes: #609408) + - fix domain_name in domain_search check in dhclient-script + (closes: #567141) + - fix indentation in dhclient-script to improve readability + - remove bashisms from dhclient-script + - fix setting of hostname in dhclient-script + - remove bashisms from rfc3442-classless-routes hook + - check for $new_domain_search in dhclient-script + - synchronize the Linux dhclient-script more with the kFreeBSD one + - general readability improvements to dhclient-script + - add DHCPv6 support to the Linux dhclient-script (closes: #591589) + - expand the variables reported by the debug hooks + - remove unused variables from dhclient-script + - convert the Linux dhclient-script to use iproute2 (closes: #275653) + * debian/control: bumped Standards-Version (no changes) + + -- Andrew Pollock Wed, 18 May 2011 23:02:44 -0700 + +isc-dhcp (4.1.1-P1-16.1ubuntu1) oneiric; urgency=low + + * Merge from debian unstable. Remaining changes: + - Deroot server (Debian #308832). + - Send hostname to DHCP server by default (LP #10239, Debian #151820). + - dhclient-onetry-call-clientscript.dpatch: Call 'dhclient-script FAIL' + when failing to get an address also when operating in oneshot mode + (-1). This fixes avahi-autoipd invocation through dhcdbd. + - dhcpd.conf-subnet-examples.dpatch: Give an example for subnet-mask in + dhcpd.conf. + - dhclient-more-debug.dpatch: Show the requested/offered client IP in + log output, for better debugging. + - debian/dhclient-script.linux: Wait for /etc/resolv.conf to become + writable; this isn't the case when ifup is called from an Upstart job + triggered by udev (Ubuntu-specific until Debian uses this rule, too). + - revert-next-server.dpatch: Revert the need of the next-server option + in dhcpd.conf so it points to the own IP again for tftp if the option + is not set (patch by Oliver Grawert; disputed upstream). + - debian/isc-dhcp-server.init.d: Allow LTSP to override default + configuration in /etc/ltsp/dhcpd.conf. Point that out in a header + comment in debian/dhcpd.conf (Ubuntu-specific). + - debian/isc-dhcp-server.config: Drop debconf question to medium + (Ubuntu-specific). + - Enable build hardening. Add hardening-wrapper build dependency + (Ubuntu-specific). + - Add enforcing AppArmor profile for DHCP client and server. + - Install apport hooks. + - debian/dhclient-script.linux: Fix regression in host_name option + handling, so that it's always honored when /etc/hostname is not set. + - dhclient-fix-backoff.dpatch, + dhclient-initial-random-delay-option.dpatch: Speed up DHCP negotiation + (Debian #509089). + - Fix configure test for ber_init to work correctly with 'ld + --no-add-needed'. + - isc-dhcp-client Breaks: network-manager (<< 0.8.2~rc1), since earlier + versions were patched in Ubuntu to hardcode assumptions for + dhcp3-client. + - debian/patches/multi-ip-addr-per-if.dpatch: Resolve issue of + interfaces not being able to have more than one IP address assigned. + - debian/isc-dhcp-client.links: fix symlink ordering for new ISC + package + - debian/rules: add call to dh_link to get package symlinks back + + -- Marc Deslauriers Wed, 18 May 2011 09:49:05 -0400 + +isc-dhcp (4.1.1-P1-16.1) unstable; urgency=high + + * Non-maintainer upload. + * Fix cve-2011-0997: remote code execution vulnerability in dhclient + (closes: #621099). + * Fix ftbfs with 'ld --no-as-needed' (closes: #602312). + + -- Michael Gilbert Sat, 09 Apr 2011 10:57:14 -0400 + +isc-dhcp (4.1.1-P1-16) unstable; urgency=high + + * Patch by Raphael Geissert from 4.1-ESV for CVE-2011-0413 (closes: #611217) + + -- Andrew Pollock Thu, 03 Feb 2011 22:20:55 -0800 + +isc-dhcp (4.1.1-P1-15ubuntu9) natty; urgency=low + + * SECURITY UPDATE: arbitrary code execution via crafted hostname + - Patch for CVE-2011-0997 was getting reverted during the build + because of special quilt handling in debian/rules for the ldap + patches. + - debian/patches/00list: move CVE-2011-0997 patch before the ldap + patches, and add comment. + - CVE-2011-0997 + + -- Marc Deslauriers Tue, 19 Apr 2011 08:45:56 -0400 + +isc-dhcp (4.1.1-P1-15ubuntu8) natty; urgency=low + + * apparmor-profile.dhclient: update to also allow leases in /var/lib/dhcp3 + (LP: #755724) + + -- Jamie Strandboge Mon, 11 Apr 2011 07:56:15 -0500 + +isc-dhcp (4.1.1-P1-15ubuntu7) natty; urgency=low + + * SECURITY UPDATE: arbitrary code execution via crafted hostname + - debian/patches/CVE-2011-0997.dpatch: filter strings in + client/dhclient.c, common/options.c. + - CVE-2011-0997 + + -- Marc Deslauriers Fri, 08 Apr 2011 14:43:35 -0400 + +isc-dhcp (4.1.1-P1-15ubuntu6) natty; urgency=low + + * debian/patches/multi-ip-addr-per-if.dpatch: Resolve issue of interfaces + not being able to have more than one IP address assigned. Patch courtesy + of Daniel Nurmi, Eucalyptus Systems. (LP: #717166) + + -- Dave Walker (Daviey) Wed, 16 Mar 2011 07:55:33 +0000 + +isc-dhcp (4.1.1-P1-15ubuntu5) natty; urgency=low + + * debian/isc-dhcp-client.links: fix symlink ordering for new ISC package + (LP: #724556). + + -- Kees Cook Thu, 24 Feb 2011 14:16:30 -0800 + +isc-dhcp (4.1.1-P1-15ubuntu4) natty; urgency=low + + * debian/rules: add call to dh_link to get package symlinks back + (Closes: #614992). + + -- Kees Cook Thu, 24 Feb 2011 10:21:54 -0800 + +isc-dhcp (4.1.1-P1-15ubuntu3) natty; urgency=low + + * SECURITY UPDATE: denial of service via processing of message from an address + that was previously declined, causing assert failure. (LP: #720729) + - debian/patches/CVE-2011-0413.dpatch: Reclaim the previously abandoned + address in isc-dhcp/server/mdb6.c, by retagging the lease and adding + a sane expiration value. Based on changes between upstream releases + 4.1.2 and 4.1.2-P1 + - CVE-2011-0413 + + -- Dave Walker (Daviey) Thu, 17 Feb 2011 16:24:57 +0000 + +isc-dhcp (4.1.1-P1-15ubuntu2) natty; urgency=low + + * debian/apparmor-profile.dhcpd: allow read access to @{PROC}/[0-9]*/net/dev + LP: #688186 + * debian/apparmor-profile.dhclient: tighten to allow access to + @{PROC}/[0-9]*/net/**, not @{PROC}/sys/net + * debian/isc-dhcp-client.postinst: move the old dhclient3 AppArmor aside on + upgrade. This is needed to properly support upgrades to 11.04 and 12.04. + LP: #688191 + + -- Jamie Strandboge Thu, 09 Dec 2010 11:21:53 -0600 + +isc-dhcp (4.1.1-P1-15ubuntu1) natty; urgency=low + + * Resynchronise with Debian. Remaining changes: + - Deroot server (Debian #308832). + - Send hostname to DHCP server by default (LP #10239, Debian #151820). + - dhclient-onetry-call-clientscript.dpatch: Call 'dhclient-script FAIL' + when failing to get an address also when operating in oneshot mode + (-1). This fixes avahi-autoipd invocation through dhcdbd. + - dhcpd.conf-subnet-examples.dpatch: Give an example for subnet-mask in + dhcpd.conf. + - dhclient-more-debug.dpatch: Show the requested/offered client IP in + log output, for better debugging. + - debian/dhclient-script.linux: Wait for /etc/resolv.conf to become + writable; this isn't the case when ifup is called from an Upstart job + triggered by udev (Ubuntu-specific until Debian uses this rule, too). + - revert-next-server.dpatch: Revert the need of the next-server option + in dhcpd.conf so it points to the own IP again for tftp if the option + is not set (patch by Oliver Grawert; disputed upstream). + - debian/isc-dhcp-server.init.d: Allow LTSP to override default + configuration in /etc/ltsp/dhcpd.conf. Point that out in a header + comment in debian/dhcpd.conf (Ubuntu-specific). + - debian/isc-dhcp-server.config: Drop debconf question to medium + (Ubuntu-specific). + - Enable build hardening. Add hardening-wrapper build dependency + (Ubuntu-specific). + - Add enforcing AppArmor profile for DHCP client and server. + - Install apport hooks. + - debian/dhclient-script.linux: Fix regression in host_name option + handling, so that it's always honored when /etc/hostname is not set. + - dhclient-fix-backoff.dpatch, + dhclient-initial-random-delay-option.dpatch: Speed up DHCP negotiation + (Debian #509089). + - Fix configure test for ber_init to work correctly with 'ld + --no-add-needed'. + - isc-dhcp-client Breaks: network-manager (<< 0.8.2~rc1), since earlier + versions were patched in Ubuntu to hardcode assumptions for + dhcp3-client. + + -- Colin Watson Mon, 06 Dec 2010 14:29:49 +0000 + +isc-dhcp (4.1.1-P1-15) unstable; urgency=low + + * Remove isc-dhcp/server/dhcpv6.c.orig from CVE-2010-3611.dpatch + + -- Andrew Pollock Sat, 27 Nov 2010 09:42:20 -0800 + +isc-dhcp (4.1.1-P1-14) unstable; urgency=low + + * Backport fix for CVE-2010-3611 from 4.1.2 + + -- Andrew Pollock Fri, 19 Nov 2010 20:54:19 -0800 + +isc-dhcp (4.1.1-P1-13) unstable; urgency=low + + * Updated Spanish debconf template translation (closes: #603122) + + -- Andrew Pollock Sun, 14 Nov 2010 13:16:13 -0800 + +isc-dhcp (4.1.1-P1-12) unstable; urgency=low + + * Updated patch to correct groff warnings in man pages, to be more + anatomically correct (thanks to Colin Watson) (closes: #602114) + * Updated Vietnamese debconf template translation (closes: #601535) + * Added patch that came from Ubuntu by way of Colin Watson to update + dhclient-script(8) to mention the exit hook functionality (closes: #469203) + + -- Andrew Pollock Tue, 02 Nov 2010 23:27:59 -0700 + +isc-dhcp (4.1.1-P1-11ubuntu1) natty; urgency=low + + * Resynchronise with Debian. Remaining changes: + - Deroot server (Debian #308832). + - Send hostname to DHCP server by default (LP #10239, Debian #151820). + - dhclient-onetry-call-clientscript.dpatch: Call 'dhclient-script FAIL' + when failing to get an address also when operating in oneshot mode + (-1). This fixes avahi-autoipd invocation through dhcdbd. + - dhcpd.conf-subnet-examples.dpatch: Give an example for subnet-mask in + dhcpd.conf. + - dhclient-more-debug.dpatch: Show the requested/offered client IP in + log output, for better debugging. + - debian/dhclient-script.linux: Wait for /etc/resolv.conf to become + writable; this isn't the case when ifup is called from an Upstart job + triggered by udev (Ubuntu-specific until Debian uses this rule, too). + - revert-next-server.dpatch: Revert the need of the next-server option + in dhcpd.conf so it points to the own IP again for tftp if the option + is not set (patch by Oliver Grawert; disputed upstream). + - debian/isc-dhcp-server.init.d: Allow LTSP to override default + configuration in /etc/ltsp/dhcpd.conf. Point that out in a header + comment in debian/dhcpd.conf (Ubuntu-specific). + - debian/isc-dhcp-server.config: Drop debconf question to medium + (Ubuntu-specific). + - Enable build hardening. Add hardening-wrapper build dependency + (Ubuntu-specific). + - Add enforcing AppArmor profile for DHCP client and server. + - Install apport hooks. + - debian/dhclient-script.linux: Fix regression in host_name option + handling, so that it's always honored when /etc/hostname is not set. + - dhclient-fix-backoff.dpatch, + dhclient-initial-random-delay-option.dpatch: Speed up DHCP negotiation + (Debian #509089). + - fix_exit_hook_doc_manpage.diff: Modify client/dhclient-script(8) to + include information about the script directories + /etc/dhcp/dhclient-enter-hooks.d and /etc/dhcp/dhclient-enter-hooks.d. + * Drop preinst code to set AppArmor to complain mode on upgrades from very + old Ubuntu releases, predating the last LTS. + * Fix syntax errors in isc-dhcp-server apport hook. + * Use dh_apport. + * Make isc-dhcp-server depend on adduser for its postinst. + * Fix configure test for ber_init to work correctly with 'ld + --no-add-needed'. + * isc-dhcp-client Breaks: network-manager (<< 0.8.2~rc1), since earlier + versions were patched in Ubuntu to hardcode assumptions for + dhcp3-client. + + -- Colin Watson Tue, 09 Nov 2010 17:40:49 +0000 + +isc-dhcp (4.1.1-P1-11) unstable; urgency=low + + * debian/control: make isc-dhcp-client's dependency on iproute Linux-only + (closes: #601154) + + -- Andrew Pollock Sat, 23 Oct 2010 14:26:41 -0700 + +isc-dhcp (4.1.1-P1-10) unstable; urgency=low + + * Updated Japanese debconf template translation (closes: #590239) + * Updated Russian debconf template translation (closes: #591240) + * Updated Swedish debconf template translation (closes: #592044) + * Updated Spanish debconf template translation (closes: #592173) + * Updated Galacian debconf template translation (closes: #592810) + * Updated Czech debconf template translation (closes: #593228) + * Updated Italian debconf template translation (closes: #593576) + * debian/dhcp3-server.postinst: reinstate, remove obsolete init script + (closes: #594527) + * debian/dhcp3-relay.postinst: reinstate, remove obsolete init script + * debian/control: make all of the transitional dummy packages Priority: extra + and Section: oldlibs (closes: #594339) + * debian/control: add iproute to dependencies of isc-dhcp-client + * Updated Portugeuse debconf template translation (closes: #597143) + * Added Danish debconf template translation (closes: #600748) + * debian/control: bumped Standards-Version (no changes) + * debian/control: added pkg-config to Build-Depends + * Added patch from Simon McVittie to stop unnecessary linking with libcrypto + (closes: #592361) + * debian/control: added Vcs-Git and Vcs-Browser fields + * debian/README.source: made a more explicit mention of how the build works + * Add debian/source/format (sticking with 1.0 for now) + + -- Andrew Pollock Thu, 21 Oct 2010 22:25:59 -0700 + +isc-dhcp (4.1.1-P1-9) unstable; urgency=high + + * debian/control: really don't make the new packages conflict with the + old/transitional packages (closes: #590186) + * debian/control: rather than depend on the version of ifupdown that invokes + dhclient correctly, conflict with older versions of ifupdown that do not + (closes: #546883, #590092) + * Updated Russian debconf template translation (closes: #589252) + * Updated Swedish debconf template translation (closes: #589261) + * Updated French debconf template translation (closes: #589492) + * Updated German debconf template translation (closes: #589578) + + -- Andrew Pollock Sat, 24 Jul 2010 10:33:04 -0700 + +isc-dhcp (4.1.1-P1-8) unstable; urgency=low + + * debian/dhcp3-client.postrm: bring back to clean up cruft (closes: #588203) + * debian/dhcp3-server.postrm: bring back to clean up cruft + * Updated French debconf templates translation (closes: #588281) + * debian/isc-dhcp-server.templates: corrected /etc/dhcp3 -> /etc/dhcp + * debian/rules: correctly build LDAP-enabled DHCP server (closes: #574754) + * debian/control: build-depend on autoconf and automake + * debian/control: bump Standards-Version (no changes) + + -- Andrew Pollock Wed, 14 Jul 2010 22:28:21 -0700 + +isc-dhcp (4.1.1-P1-7) unstable; urgency=low + + * The "There goes the neighbourhood" release + * No changes rebuild to upload to unstable + + -- Andrew Pollock Sun, 04 Jul 2010 22:58:02 -0700 + +isc-dhcp (4.1.1-P1-6) experimental; urgency=low + + * debian/rules: configure client to use correct path for DHCPv6 leases file + (closes: #587884) + + -- Andrew Pollock Fri, 02 Jul 2010 21:04:16 -0700 + +isc-dhcp (4.1.1-P1-5) experimental; urgency=low + + * split out the udeb dhclient-script so there's one for Linux and one for + kFreeBSD (closes: #551054) + + -- Andrew Pollock Tue, 29 Jun 2010 22:34:06 -0700 + +isc-dhcp (4.1.1-P1-4) experimental; urgency=low + + * debian/rules: really enable DHCPv6 (closes: #587269) + * debian/control: conflict with resolvconf <= 1.45 (closes: #586095) + + -- Andrew Pollock Sat, 26 Jun 2010 22:33:43 -0700 + +isc-dhcp (4.1.1-P1-3) experimental; urgency=low + + * debian/rules: stop invoking dh_installinit with --noscripts so the + update-rc.d stuff is done properly + * debian/isc-dhcp-{relay,server}.{postinst,postrm}: remove calls to + update-rc.d and invoke-rc.d, let dh_installinit handle it + * debian/isc-dhcp-server.init.d: add a start-time dependency on $named + (closes: #586035) + * debian/{rules,isc-dhcp-server.{prerm,postinst}}: ignore failure to start + the DHCP server + + -- Andrew Pollock Tue, 15 Jun 2010 23:20:30 -0700 + +isc-dhcp (4.1.1-P1-2) experimental; urgency=low + + * debian/isc-dhcp-{server,relay}.init: go back to not mentioning any + runlevels for Default-Stop + * debian/isc-dhcp-server.postinst: don't specify any runlevels for stop + scripts when invoking update-rc.d + + -- Andrew Pollock Mon, 07 Jun 2010 19:41:25 -0700 + +isc-dhcp (4.1.1-P1-1) experimental; urgency=low + + * New Upstream Version + - Fix for fencepost error on zero-length client identifier + - CVE-2010-2156 + - VU#541921 + * debian/isc-dhcp-{server,relay}.init: adjust Default-Stop to match + invocation of update-rc.d in postinst to avoid warning from update-rc.d + + -- Andrew Pollock Mon, 07 Jun 2010 09:41:34 -0700 + +isc-dhcp (4.1.1-3) experimental; urgency=low + + * debian/control: don't make the new packages conflict with the + old/transitional packages + + -- Andrew Pollock Sun, 06 Jun 2010 20:01:22 -0700 + +isc-dhcp (4.1.1-2) experimental; urgency=low + + * debian/control: make dhcp3-* packages match what the override file says + * debian/rules: DHCPv6 support builds now, stop disabling (closes: #549060) + * debian/README.Debian: stop mentioning DHCPv6 is disabled + + -- Andrew Pollock Fri, 04 Jun 2010 10:46:42 -0700 + +isc-dhcp (4.1.1-1) experimental; urgency=low + + * New Upstream Version + * Re-add LDAP patches + * debian/control: bump Standards-Version (no changes) + * debian/isc-dhcp-server.init.d: don't mention any runlevels for Default-Stop + + -- Andrew Pollock Sat, 06 Mar 2010 18:59:54 -0800 + +isc-dhcp (4.1.0-2) experimental; urgency=low + + * debian/README.Debian: update for current upstream version, specifically + mention that DHCPv6 is disabled + * debian/rules: provide a pointer to why DHCPv6 is disabled + * Fix dhclient-script so that changes in the DHCP-provided hostname + cause a hostname change to occur on the client + * Remove unnecessary sleep from dhclient-script + * Updated LDAP patch + + -- Andrew Pollock Sun, 01 Nov 2009 15:02:10 -0800 + +isc-dhcp (4.1.0-1) experimental; urgency=low + + * The "throw everything out and start over" release + * New upstream release + * debian/control: drop 3 from the binary package names, adjust dependencies, + maintainer scripts, accordingly + * use debhelper more extensively, de-cruft debian/rules + * remove dhcp-server preinst + * add debug packages + * add transitional packages + * add debian/README.source + * debian/control: bumped Standards-Version + * debian/isc-dhcp-server.postinst: transfer existing config and lease files + when upgrading from dhcp3-server + * debian/isc-dhcp-client.postinst: transfer existing config file when + upgrading from dhcp3-client + * debian/changelog: added marker for legacy malformed changelog entry to + placate Lintian + * add a patch to correct groff warnings in man pages + * add a patch to ignore checksums on the loopback interface + * debian/control: make isc-dhcp-client depend on ifupdown that invokes + /sbin/dhclient correctly + + -- Andrew Pollock Wed, 02 Sep 2009 22:34:25 -0700 + +dhcp3 (3.1.3-2ubuntu6) maverick; urgency=low + + * update to use dh_apparmor: + - debian/rules, debian/{dhcp3-client,dhcp3-server}-post{inst,rm}: updated + to use dh_apparmor + - debian/control: Build-Depends on debhelper >= 7.4.20ubuntu6 + * debian/apparmor-profile*: use local include + * debian/dhcp3-client.*: remove old check for if-pre-up.d's + dhclient3-apparmor on upgrade, as well as the no longer used conffile + functions + + -- Jamie Strandboge Fri, 06 Aug 2010 15:34:54 -0500 + +dhcp3 (3.1.3-2ubuntu5) maverick; urgency=low + + * debian/patches/fix_exit_hook_doc_manpage.diff: fix LP: #53024, + Modified client/dhclient-script.8 manpage to include information about + the script folders /etc/dhcp3/dhclient-enter-hooks.d and + /etc/dhcp3/dhclient-enter-hooks.d. + + -- Dustin Kirkland Tue, 27 Jul 2010 15:55:09 -0400 + +dhcp3 (3.1.3-2ubuntu4) maverick; urgency=low + + * Speed up DHCP negotiation: + - Add dhclient-fix-backoff.dpatch: Fix the delays between consecutive + requests (the backoff algorithm). + - Add dhclient-initial-random-delay-option.dpatch: Provide an option for + the intial random delay instead of hardcoding it, and set it to 0 by + default. + - Thanks to Michel Lespinasse for the patches! See patch + headers and Debian #509089 for details. + + -- Martin Pitt Fri, 25 Jun 2010 11:44:00 +0200 + +dhcp3 (3.1.3-2ubuntu3) lucid; urgency=low + + * debian/dhclient-script.linux: Fix regression in host_name option + handling, so that it's always honored when /etc/hostname is not set, + fixes LP: #537978, #482313, #90388, #476491 + + -- Thierry Carrez Thu, 01 Apr 2010 16:52:36 +0200 + +dhcp3 (3.1.3-2ubuntu2) lucid; urgency=low + + * Fix missing fi in debian/dhclient-script.linux (LP: #519206). + + -- Evan Dandrea Tue, 09 Feb 2010 10:41:24 +0000 + +dhcp3 (3.1.3-2ubuntu1) lucid; urgency=low + + * Merge from debian testing. Remaining changes: + - Deroot server (Debian #308832): + + droppriv.dpatch, deroot-server.dpatch: Code changes. + + debian/control: Add libcap-dev build dependency. + + debian/dhcp3-server.postinst: Create dhcpd system user. + + debian/dhcp3-server.init.d: Create paths with appropriate permissions + for dhcpd system user access. + - Send hostname to DHCP server by default (LP #10239, Debian #151820): + + debian/patches/dynamic-hostname.dpatch: Add support for a new string + type 'h' which behaves like 't' except that '' is changed to + the current hostname. Change 'host-name' DHCP option type from 't' to + 'h'. + + debian/dhclient.conf: Enable send-hostname by default. + - dhclient-onetry-call-clientscript.dpatch: Call 'dhclient-script FAIL' + when failing to get an address also when operating in oneshot mode (-1). + This fixes avahi-autoipd invocation through dhcdbd. (Debian #486520) + - debian/patches/dhcpd.conf-subnet-examples.dpatch: Give an example for + subnet-mask in dhcpd.conf. (LP #26661) + - dhclient-more-debug.dpatch: Show the requested/offered client IP in log + output, for better debugging. (LP #35265, Debian #486611) + - debian/dhclient-script.linux: Wait for /etc/resolv.conf to become + writable; this isn't the case when udev's 85-ifupdown.rules calls ifup + early. (Ubuntu specific until Debian uses this rule, too) + - revert-next-server.dpatch: Revert the need of the next-server option in + dhcpd.conf so it points to the own IP again for tftp if the option is + not set. (Patch by Oliver Grawert; disputed upstream) + - debian/dhcp3-server.init.d: Allow LTSP to override default configuration + in /etc/ltsp/dhcpd.conf. Point that out in a header comment in + debian/dhcpd.conf. (Ubuntu specific) + - debian/dhcp3-server.config: Drop debconf question to medium. (Ubuntu + specific) + - debian/rules: Enable build hardening. Add hardening-wrapper build + dependency. (Ubuntu specific) + - debian/dhclient-script.linux: Drop keeping of old search/domain values + if we didn't get any from the DHCP response. It is inconsistent with + resolvconf and should rather use default/supercede options in + /etc/dhcp3/dhclient.conf. + - add enforcing Apparmor profile for dhcp3 client and server: + + debian/control: Suggests apparmor + + debian/dhcp3-{client,server}.dirs: add etc/apparmor.d/force-complain + + debian/dhcp3-{client,server}.preinst: force-complain on upgrades from + dhcp3-server earlier than Ubuntu 7.04 + + debian/dhcp3-{client,server}.postinst: reload apparmor + + debian/dhcp3-{client,server}.postrm: remove force-complain link + + debian/rules: copy profile into DESTDIR + + debian/dhcp3-server.files: install usr.sbin.dhcpd3 + + debian/dhcp3-client.files: install sbin.dhclient3 + + debian/README.Debian: add note on Apparmor + + Adjust dhclient AppArmor profile to call dhclient-script with Uxr instead + of Pxr with its own unrestricted profile. This simplifies the profile, + + debian/dhcp3-client.postinst: adjust to reload only the dhlient3 profile. + + debian/dhcp3-server.postinst: adjust to reload only the dhcpd3 profile. + - add ifupdown hook so the dhclient3 Apparmor profile is loaded before + calling dhclient3, which can happen under certain conditions with udev + + debian/dhcp3-client.files: install dhclient3-apparmor ifup script + + debian/dhcp3-client.dirs: add etc/network/if-pre-up.d + + debian/rules: copy ifup script into DESTDIR + - simplify ifupdown logic since we will mount securityfs in mountkern.sh + instead of trying to wait around for it here. Thanks to Scott James + Remnant for analysis (LP: #399954) + + [Chuck Short] + * debian/rules, debian/apport/dhcp3-server.py, debian/apport/dhcp3-client.py, + debian/dhcp3-client.files, debian/dhcp3-server.files, debian/dhcp3-common.dirs: + Install apport hook, apart of the server-lucid-apport-hooks specification. + + -- Chuck Short Wed, 27 Jan 2010 08:04:48 +0000 + +dhcp3 (3.1.3-1ubuntu3) lucid; urgency=low + + * drop patch for CVE-2009-0692 as this was fixed in 3.1.3 + - http://oldwww.isc.org/sw/dhcp/dhcp_rel2.php?noframes=1 + + -- Jamie Strandboge Tue, 26 Jan 2010 21:28:23 -0600 + +dhcp3 (3.1.3-1ubuntu2) lucid; urgency=low + + * debian/dhcp3-client.links: install symlink for early loading of + dhclient AppArmor profile. + + -- Kees Cook Tue, 15 Dec 2009 11:31:21 -0800 + +dhcp3 (3.1.3-1ubuntu1) lucid; urgency=low + + * Merge from debian testing. Remaining changes: + - Deroot server (Debian #308832) + + droppriv.dpatch, deroot-server.dpatch: Code changes. + + debian/control: Add libcap-dev build dependency. + + debian/dhcp3-server.postinst: Create dhcpd system user. + + debian/dhcp3-server.init.d: Create paths with appropriate permissions + for dhcpd system user access. + - Send hostname to DHCP server by default (LP #10239, Debian #151820): + + debian/patches/dynamic-hostname.dpatch: Add support for a new string + type 'h' which behaves like 't' except that '' is changed to + the current hostname. Change 'host-name' DHCP option type from 't' to + 'h' + + debian/dhclient.conf: Enable send-hostname by default. + - dhclient-onetry-call-clientscript.dpatch: Call 'dhclient-script FAIL' + when failing to get an address also when operating in oneshot mode (-1). + This fixes avahi-autoipd invocation through dhcdbd. (Debian #486520) + - debian/patches/dhcpd.conf-subnet-examples.dpatch: Give an example for + subnet-mask in dhcpd.conf. (LP #26661) + - dhclient-more-debug.dpatch: Show the requested/offered client IP in log + output, for better debugging. (LP #35265, Debian #486611) + - debian/dhclient-script.linux: Wait for /etc/resolv.conf to become + writable; this isn't the case when udev's 85-ifupdown.rules calls ifup + early. (Ubuntu specific until Debian uses this rule, too) + - revert-next-server.dpatch: Revert the need of the next-server option in + dhcpd.conf so it points to the own IP again for tftp if the option is + not set. (Patch by Oliver Grawert; disputed upstream) + - debian/dhcp3-server.init.d: Allow LTSP to override default configuration + in /etc/ltsp/dhcpd.conf. Point that out in a header comment in + debian/dhcpd.conf. (Ubuntu specific) + - debian/dhcp3-server.config: Drop debconf question to medium. (Ubuntu + specific) + - debian/rules: Enable build hardening. Add hardening-wrapper build + dependency. (Ubuntu specific) + - debian/dhclient-script.linux: Drop keeping of old search/domain values + if we didn't get any from the DHCP response. It is inconsistent with + resolvconf and should rather use default/supercede options in + /etc/dhcp3/dhclient.conf. + - add enforcing Apparmor profile for dhcp3 client and server: + - debian/control: Suggests apparmor + - debian/dhcp3-{client,server}.dirs: add etc/apparmor.d/force-complain + - debian/dhcp3-{client,server}.preinst: force-complain on upgrades from + dhcp3-server earlier than Ubuntu 7.04 + - debian/dhcp3-{client,server}.postinst: reload apparmor + - debian/dhcp3-{client,server}.postrm: remove force-complain link + - debian/rules: copy profile into DESTDIR + - debian/dhcp3-server.files: install usr.sbin.dhcpd3 + - debian/dhcp3-client.files: install sbin.dhclient3 + - debian/README.Debian: add note on Apparmor + - Adjust dhclient AppArmor profile to call dhclient-script with Uxr instead + of Pxr with its own unrestricted profile. This simplifies the profile, + - debian/dhcp3-client.postinst: adjust to reload only the dhlient3 profile. + - debian/dhcp3-server.postinst: adjust to reload only the dhcpd3 profile. + - add ifupdown hook so the dhclient3 Apparmor profile is loaded before + calling dhclient3, which can happen under certain conditions with udev + - debian/dhcp3-client.files: install dhclient3-apparmor ifup script + - debian/dhcp3-client.dirs: add etc/network/if-pre-up.d + - debian/rules: copy ifup script into DESTDIR + - simplify ifupdown logic since we will mount securityfs in mountkern.sh + instead of trying to wait around for it here. Thanks to Scott James + Remnant for analysis (LP: #399954) + + -- Chuck Short Mon, 23 Nov 2009 18:15:20 +0000 + +dhcp3 (3.1.2-1ubuntu7) karmic; urgency=low + + * Remove if-pre-up workaround for AppArmor now that it is started + from the initramfs. This solves unexpected behavior when apparmor + is temporarily disabled on a system using DHCP. + + -- Kees Cook Wed, 07 Oct 2009 16:27:10 -0700 + +dhcp3 (3.1.2-1ubuntu6) karmic; urgency=low + + * debian/apparmor-profile.dhclient3: allow access to lease files and + script for synce-hal to work. (LP: #445442) + + -- Jamie Strandboge Wed, 07 Oct 2009 09:04:07 -0500 + +dhcp3 (3.1.2-1ubuntu5) karmic; urgency=low + + * debian/apparmor-dhclient3.ifupdown: use profile name instead of stdin. + + -- Kees Cook Fri, 17 Jul 2009 12:07:19 -0700 + +dhcp3 (3.1.2-1ubuntu4) karmic; urgency=low + + * Adjust dhclient AppArmor profile to call dhclient-script with Uxr instead + of Pxr with its own unrestricted profile. This simplifies the profile, + does not change the security stance of the profile, and works around an + AppArmor regression in Ubuntu kernel 2.6.31-3.19. (LP: #400349) + * debian/dhcp3-client.postinst: adjust to reload only the dhlient3 profile, + not all of AppArmor + * debian/dhcp3-server.postinst: adjust to reload only the dhcpd3 profile, + not all of AppArmor + + -- Jamie Strandboge Fri, 17 Jul 2009 09:57:19 -0500 + +dhcp3 (3.1.2-1ubuntu3) karmic; urgency=low + + * simplify ifupdown logic since we will mount securityfs in mountkern.sh + instead of trying to wait around for it here. Thanks to Scott James + Remnant for analysis (LP: #399954) + + -- Jamie Strandboge Thu, 16 Jul 2009 11:25:40 -0500 + +dhcp3 (3.1.2-1ubuntu2) karmic; urgency=low + + * SECURITY UPDATE: stack overflow when connecting to malicious DHCP v4 + server + - debian/patches/CVE-2009-0692.dpatch: update script_write_params() in + dhclient.c to verify that length of data is not longer than netmask + (iaddr) + - CVE-2009-0692 + + -- Jamie Strandboge Mon, 13 Jul 2009 15:01:19 -0500 + +dhcp3 (3.1.2-1ubuntu1) karmic; urgency=low + + * Merge from Debian unstable. Remaining Ubuntu changes: + - Deroot server (Debian #308832) + + droppriv.dpatch, deroot-server.dpatch: Code changes. + + debian/control: Add libcap-dev build dependency. + + debian/dhcp3-server.postinst: Create dhcpd system user. + + debian/dhcp3-server.init.d: Create paths with appropriate permissions + for dhcpd system user access. + - Send hostname to DHCP server by default (LP #10239, Debian #151820): + + debian/patches/dynamic-hostname.dpatch: Add support for a new string + type 'h' which behaves like 't' except that '' is changed to + the current hostname. Change 'host-name' DHCP option type from 't' to + 'h'. + + debian/dhclient.conf: Enable send-hostname by default. + - dhclient-onetry-call-clientscript.dpatch: Call 'dhclient-script FAIL' + when failing to get an address also when operating in oneshot mode (-1). + This fixes avahi-autoipd invocation through dhcdbd. (Debian #486520) + - debian/patches/dhcpd.conf-subnet-examples.dpatch: Give an example for + subnet-mask in dhcpd.conf. (LP #26661) + - dhclient-more-debug.dpatch: Show the requested/offered client IP in log + output, for better debugging. (LP #35265, Debian #486611) + - debian/dhclient-script.linux: Wait for /etc/resolv.conf to become + writable; this isn't the case when udev's 85-ifupdown.rules calls ifup + early. (Ubuntu specific until Debian uses this rule, too) + - revert-next-server.dpatch: Revert the need of the next-server option in + dhcpd.conf so it points to the own IP again for tftp if the option is + not set. (Patch by Oliver Grawert; disputed upstream) + - debian/dhcp3-server.init.d: Allow LTSP to override default configuration + in /etc/ltsp/dhcpd.conf. Point that out in a header comment in + debian/dhcpd.conf. (Ubuntu specific) + - debian/dhcp3-server.config: Drop debconf question to medium. (Ubuntu + specific) + - debian/rules: Enable build hardening. Add hardening-wrapper build + dependency. (Ubuntu specific) + - debian/dhclient-script.linux: Drop keeping of old search/domain values + if we didn't get any from the DHCP response. It is inconsistent with + resolvconf and should rather use default/supercede options in + /etc/dhcp3/dhclient.conf. + - add enforcing Apparmor profile for dhcp3 client and server: + - debian/control: Suggests apparmor + - debian/dhcp3-{client,server}.dirs: add etc/apparmor.d/force-complain + - debian/dhcp3-{client,server}.preinst: force-complain on upgrades from + dhcp3-server earlier than Ubuntu 7.04 + - debian/dhcp3-{client,server}.postinst: reload apparmor + - debian/dhcp3-{client,server}.postrm: remove force-complain link + - debian/rules: copy profile into DESTDIR + - debian/dhcp3-server.files: install usr.sbin.dhcpd3 + - debian/dhcp3-client.files: install sbin.dhclient3 + - debian/README.Debian: add note on Apparmor + - add ifupdown hook so the dhclient3 Apparmor profile is loaded before + calling dhclient3, which can happen under certain conditions with udev + - debian/dhcp3-client.files: install dhclient3-apparmor ifup script + - debian/dhcp3-client.dirs: add etc/network/if-pre-up.d + - debian/rules: copy ifup script into DESTDIR + + -- Steve Langasek Fri, 08 May 2009 22:52:58 +0000 + +dhcp3 (3.1.2-1) unstable; urgency=low + + * New upstream release + * Removed pretty_print_option() patch (incorporated upstream) + * debian/dhclient-script.linux: apply patch from Kees Cook to ignore + DHCP-supplied MTUs below 576 (closes: #513616) + * debian/dhclient.conf: (re)add ntp-servers to the request list (closes: + #407667) + * debian/rfc3442-classless-routes: also run for REBOOT reason (closes: + #515756) + * debian/control: bumped Standards-Version (no changes) + * debian/compat: bump compatibility to 5 + * debian/dhcp3-server.NEWS: adjust indenting to please Lintian + * debian/control: added ${misc:Depends} to dependencies of dhcp-client and + dhcp3-dev + + -- Andrew Pollock Wed, 01 Apr 2009 22:26:51 -0700 + +dhcp3 (3.1.1-7) unstable; urgency=low + + * debian/control: make dhcp-client Priority: extra + + -- Andrew Pollock Sun, 01 Feb 2009 22:37:55 -0800 + +dhcp3 (3.1.1-6) unstable; urgency=low + + * debian/dhcp3-server.init: use -q in test_config() + * debian/dhcp3-server.NEWS: added a mention of the requirement for + consistent naming of failover peers (closes: #513506) + * debian/dhcp3-server.NEWS: merged NEWS.Debian, removed + debian/dhcp3-server.docs + + -- Andrew Pollock Sun, 01 Feb 2009 18:51:06 -0800 + +dhcp3 (3.1.1-5ubuntu8) jaunty; urgency=low + + * debian/dhclient.conf: Request ntp-servers by default (LP: #74164) + + -- Jonathan Marsden Mon, 23 Mar 2009 19:42:32 -0700 + +dhcp3 (3.1.1-5ubuntu7) jaunty; urgency=low + + * debian/apparmor-profile.dhclient3: adjust to allow NetworkManager and + connmann access to dbus (LP: #342235) + + -- Jamie Strandboge Tue, 17 Mar 2009 17:26:19 -0500 + +dhcp3 (3.1.1-5ubuntu6) jaunty; urgency=low + + * debian/apparmor-profile.dhclient3: adjust to support connman. Patch + thanks to Mark Shuttleworth. (LP: #333711) + + -- Jamie Strandboge Tue, 24 Feb 2009 08:47:29 -0600 + +dhcp3 (3.1.1-5ubuntu5) jaunty; urgency=low + + * don't wait in ifupdown script if apparmor isn't installed (LP: #331444) + + -- Jamie Strandboge Thu, 19 Feb 2009 07:44:45 -0600 + +dhcp3 (3.1.1-5ubuntu4) jaunty; urgency=low + + * add enforcing Apparmor profile for dhcp3-client: + - debian/control: Suggests apparmor + - debian/dhcp3-client.dirs: add etc/apparmor.d/force-complain + - debian/dhcp3-client.preinst: force-complain on upgrades from dhcp3-client + earlier than Ubuntu 7.04 + - debian/dhcp3-client.postinst: reload apparmor + - debian/dhcp3-client.postrm: remove force-complain link + - debian/rules: copy profile into DESTDIR + - debian/dhcp3-client.files: install sbin.dhclient3 + - debian/README.Debian: expand note on Apparmor + * add ifupdown hook so the dhclient3 Apparmor profile is loaded before + calling dhclient3, which can happen under certain conditions with udev + - debian/dhcp3-client.files: install dhclient3-apparmor ifup script + - debian/dhcp3-client.dirs: add etc/network/if-pre-up.d + - debian/rules: copy ifup script into DESTDIR + * rename debian/apparmor-profile to debian/apparmor-profile.dhcpd3 + * debian/apparmor-profile.dhcpd3: allow eucalyptus paths + * References + - https://wiki.ubuntu.com/ApparmorProfileMigration + + -- Jamie Strandboge Wed, 18 Feb 2009 08:23:14 -0600 + +dhcp3 (3.1.1-5ubuntu3) jaunty; urgency=low + + * add enforcing Apparmor profile: + - debian/control: Suggests apparmor + - debian/dhcp3-server.dirs: add etc/apparmor.d/force-complain + - debian/dhcp3-server.preinst: force-complain on upgrades from dhcp3-server + earlier than Ubuntu 7.04 + - debian/dhcp3-server.postinst: reload apparmor + - debian/dhcp3-server.postrm: remove force-complain link + - debian/rules: copy profile into DESTDIR + - debian/dhcp3-server.files: install usr.sbin.dhcpd3 + - debian/README.Debian: add note on Apparmor + * References + - https://wiki.ubuntu.com/ApparmorProfileMigration + + -- Jamie Strandboge Tue, 10 Feb 2009 15:08:42 -0600 + +dhcp3 (3.1.1-5ubuntu2) jaunty; urgency=low + + * Raise minimum valid MTU to 577 to avoid broken devices that send 576, + which is unlikely to be correct either (LP: #274069, debian bug #513616). + + -- Kees Cook Fri, 30 Jan 2009 11:13:15 -0800 + +dhcp3 (3.1.1-5ubuntu1) jaunty; urgency=low + + * Merge from Debian unstable. Remaining Ubuntu changes: + - Deroot server (Debian #308832) + + droppriv.dpatch, deroot-server.dpatch: Code changes. + + debian/control: Add libcap-dev build dependency. + + debian/dhcp3-server.postinst: Create dhcpd system user. + + debian/dhcp3-server.init.d: Create paths with appropriate permissions + for dhcpd system user access. + - Send hostname to DHCP server by default (LP #10239, Debian #151820): + + debian/patches/dynamic-hostname.dpatch: Add support for a new string + type 'h' which behaves like 't' except that '' is changed to + the current hostname. Change 'host-name' DHCP option type from 't' to 'h'. + + debian/dhclient.conf: Enable send-hostname by default. + - dhclient-onetry-call-clientscript.dpatch: Call 'dhclient-script FAIL' + when failing to get an address also when operating in oneshot mode (-1). + This fixes avahi-autoipd invocation through dhcdbd. (Debian #486520) + - debian/patches/dhcpd.conf-subnet-examples.dpatch: Give an example for + subnet-mask in dhcpd.conf. (LP #26661) + - dhclient-more-debug.dpatch: Show the requested/offered client IP in log + output, for better debugging. (LP #35265, Debian #486611) + - debian/dhclient-script.linux: Wait for /etc/resolv.conf to become + writable; this isn't the case when udev's 85-ifupdown.rules calls ifup + early. (Ubuntu specific until Debian uses this rule, too) + - revert-next-server.dpatch: Revert the need of the next-server option in + dhcpd.conf so it points to the own IP again for tftp if the option is not + set. (Patch by Oliver Grawert; disputed upstream) + - debian/dhcp3-server.init.d: Allow LTSP to override default configuration + in /etc/ltsp/dhcpd.conf. Point that out in a header comment in + debian/dhcpd.conf. (Ubuntu specific) + - debian/dhcp3-server.config: Drop debconf question to medium. (Ubuntu + specific) + - debian/rules: Enable build hardening. Add hardening-wrapper build + dependency. (Ubuntu specific) + * debian/dhclient-script.linux: Drop keeping of old search/domain values if + we didn't get any from the DHCP response. It is inconsistent with + resolvconf and should rather use default/supercede options in + /etc/dhcp3/dhclient.conf. (see Debian #486535) + + -- Martin Pitt Tue, 11 Nov 2008 13:38:53 +0100 + +dhcp3 (3.1.1-5) unstable; urgency=high + + * Really incorporate previous (3.1.1-3.1) NMU (closes: #484424, #484261) + * Updated Brazilian Portugeuse debconf template translation (closes: + #501641) + + -- Andrew Pollock Thu, 16 Oct 2008 22:29:41 -0700 + +dhcp3 (3.1.1-4) unstable; urgency=high + + * Acknowledge and incorporate previous NMU (closes: #484424) + * debian/dhcp3-server.postinst: run restorecon to correct the SELinux + context (closes: #499266) + * Updated Swedish debconf template translation (closes: #491762) + + -- Andrew Pollock Sat, 04 Oct 2008 12:54:42 -0700 + +dhcp3 (3.1.1-3) unstable; urgency=low + + * debian/dhcp3-server.init: correct typoed invocation of log_daemon_msg + (closes: #489506) + + -- Andrew Pollock Sun, 06 Jul 2008 14:08:21 -0700 + +dhcp3 (3.1.1-2) unstable; urgency=low + + * The "ISC will get domain-search right one of these releases" release + * Patch pretty_print_option() to return all domains provided in the + domain-search option (code taken from 4.0.0) + * debian/control: add Suggests/Enhances relationship between + dhcp3-server/dhcp3-server-ldap + * debian/control: add a dhcp-client dummy package for transitioning from + etch to lenny + * debian/control: bumped Standards-Version (no changes) + * debian/control: s/Uploader/Uploaders/ + * debian/rules: removed some old cruft predating use of dpatch for patch + management + * removed debian/scripts, nothing in there is referenced any more + + * debian/debug-{enter,exit}: update debug hooks to also log the + domain-search option + * Added hook to dhclient to support RFC3442 (classless static route option) + and add rfc3442-classless-static-routes to the options requested (closes: + #396545) + * Updated debian/patches/dhcp-3.1.0-ldap-code.dpatch (gracias José): + - Corrected to use /var/lib/dhcp3 directory (closes: #484424) + - Fixed LDAP bind connection (closes: #484261) + * debian/dhcp3-client.prerm: removed, it wasn't doing anything + * Added Lintian override for possible-gpl-code-linked-with-openssl to + dhcp3-server-ldap + * debian/dhclient-script.{linux,kfreebsd}: stop stripping out literal \032 + from $new_domain_search. It only gets in there if the domain-search is + incorrectly specified as a single string of multiple space-separated + domains. + * debian/dhclient-script.{linux,kfreebsd}: only prepend the contents of the + domain-name option to the contents of the domain-search option if it is + not already present + * debian/rules: remove client/scripts/debian on clean (closes: #486514) + * debian/{dhcp3-server.init.d,dhcp3-server.postinst}: apply patch from + Martin Pitt to not call init script on halt/reboot. Also remove stop + symlinks from runlevels 0 and 6 for people upgrading (closes: #486518) + * debian/dhcp3-server.init: applied patch from Martin Pitt to use LSB + functions (closes: #486508) + * debian/control: add lsb-base to dependencies of dhcp3-server + + -- Andrew Pollock Mon, 16 Jun 2008 21:11:57 -0700 + +dhcp3 (3.1.1-1) unstable; urgency=low + + * New upstream release + * Refit debian/patches/dhclient.c.stale-pids.dpatch + * Remove debian/patches/fix-agent-options.dpatch (fixed upstream) + * debian/dhcp3-server.init: add slapd to Should-{Start,Stop} (closes: + #478662) + * Apply kfreebsd patch unconditionally (closes: #470989) + * debian/dhclient-script.{linux,kfreebsd}: Applied patch from Bart Oldeman + to really fix support for point-to-point Ethernet (closes: #472962) + + -- Andrew Pollock Wed, 14 May 2008 22:44:23 -0700 + +dhcp3 (3.1.0-5) unstable; urgency=low + + * debian/control: Make priority of dhcp3-server-ldap optional (closes: + #469514) + + -- Andrew Pollock Tue, 11 Mar 2008 12:02:43 -0700 + +dhcp3 (3.1.0-4) unstable; urgency=low + + * Created a dhcp3-server-ldap package (Gracias José L. Redrejo Rodríguez) + (Closes: #215968): + - debian/control: added needed dependencies for building the new package. + - created debian/patches/dhcp-3.1.0-ldap-docs.dpatch and + debian/patches/dhcp-3.1.0-ldap-code.dpatch files. + - debian/rules: modified to build both versions of dhcp3-server. + - Added needed debian/dhcp3-server-ldap.* files. + * debian/copyright: revamped + * debian/control: formally becoming the maintainer after 3 years + + -- Andrew Pollock Sun, 02 Mar 2008 22:26:51 -0800 + +dhcp3 (3.1.0-3) unstable; urgency=low + + * debian/dhclient-script.{linux,kfreebsd}: modified per Thomas Brunko's + suggestion to handle transitioning from sites that were using the + domain-name option with multiple domains to jury rig a search path. + * debian/control: remove Matt Zimmerman from Uploaders at his request + * debian/dhclient-script.{linux,kfreebsd}: if there's a domain-name option + and no domain-search option, put the domain-name option contents into the + search line of /etc/resolv.conf (closes: #462570) + * Updated Japanese debconf template translation (closes: #463239) + * Added a patch to make dhclient ignore ARPHRD_VOID interfaces (closes: + #463499) + * Added patch from Frédéric Brière to fix spurious "option space agent does + not exist, but is configured" messages from dhclient (closes: #460833, + #460837) + * debian/dhcp3-client.NEWS: thoroughly discussed the new domain-search + option and the new treatment of the domain-name option in light of it + * debian/dhcp3-server.NEWS: advised against putting multiple domains in the + domain-search option + + -- Andrew Pollock Sun, 03 Feb 2008 15:11:06 -0800 + +dhcp3 (3.1.0-2) unstable; urgency=low + + * debian/dhclient-script.{linux,kfreebsd}: Applied patch from Yves-Alexis + Perez to properly remove all instances of \032 in the domain-search option + not just the first one (closes: #461056) + * Applied patch from Frans Pop to incorporate the light-weight + debian-installer dhclient-script into the dhcp3-client-udeb package + (closes: #461098, #313866) + * debian/dhclient-script.{linux,kfreebsd}: added fix suggested by Helmar + Gerloni for static leases without a default gateway option (closes: + #399084) + + -- Andrew Pollock Fri, 18 Jan 2008 16:35:39 -0800 + +dhcp3 (3.1.0-1) unstable; urgency=low + + * New upstream release + * Removed patch for #152287 to increase IP TTL, as upstream now increase it + even further + * Refit patches + * debian/rules: only call "make distclean" if Makefile exists + * debian/control: change ${Source-Version} to ${binary:Version} + * debian/control: bumped Standards-Version to 3.7.3 + * debian/dhcp3-{relay,server}.init.d: applied patches from Petter + Reinholdtsen to correct LSB headers (closes: #458509) + * debian/dhcp3-client.postinst: applied patch from Michael Vogt to fix + upgrading in non-interactive mode (closes: #456891) + * debian/dhclient-script.{linux,kfreebsd}: Added domain-search (option 119) + support (closes: #274308) + * debian/dhclient.conf: request domain-search as well (closes: #274308) + * debian/dhclient-script.{linux,kfreebsd}: if the domain-name option is set, + set "domain" in /etc/resolv.conf, if the domain-search option is set, set + "search" in /etc/resolv.conf + * debian/dhclient-script.kfreebsd: Syncronised a bunch of previous changes + to the Linux-specific version + * debian/dhcp3-relay.dirs: usr/share/man/man5 was empty, stop making it + * Updated Basque debconf template translation (closes: #457286) + * Added Finnish debconf template translation (closes: #447401) + * Added Slovak debconf template translation (closes: #438574) + * debian/rules: Applied patch from Neil Williams to add cross build support + (closes: #451139) + + -- Andrew Pollock Sun, 13 Jan 2008 17:32:12 -0800 + +dhcp3 (3.0.6-1) unstable; urgency=low + + * New upstream release + * debian/rules: remove Conflicts: dhcp-client-udeb for dhcp3-client-udeb + * Added Korean debconf template translation (closes: #429773) + * Updated Dutch debconf template translation (closes: #427533) + * Remove patch to fix #147582 as it has been incorporated upstream + * Removed documentation patch as it has been incorporated upstream + + -- Andrew Pollock Fri, 20 Jul 2007 23:25:29 -0700 + +dhcp3 (3.0.5-3) unstable; urgency=low + + * debian/rules: Don't ship dhclient-script in the udeb (closes: #398966) + * debian/dhcp3-client-udeb.postinst: symlink /etc/dhclient-script to + /sbin/dhclient-script until netcfg installs it in the right place + + -- Andrew Pollock Sat, 23 Jun 2007 16:06:51 +0100 + +dhcp3 (3.0.5-2) unstable; urgency=low + + * The "as Lintian clean as it's gonna get" release + * debian/rules: Invoke configure such that the compiler flags can be + influenced by DEB_BUILD_OPTIONS (I finally figured it out) + * debian/dhcp-{prerm,postinst}.{prerm,postinst}: unconditionally use invoke-rc.d + * debian/control: Bumped Standards-Version to 3.7.2.2 (huzzah! finally!) + * debian/dhclient.conf: revert change in 3.0.5-1 to not request anything + in particular, seems to break some peoples networking (closes: #430064) + * debian/dhclient.conf: request ntp-servers as well (closes: #407667) + + -- Andrew Pollock Fri, 22 Jun 2007 13:33:39 +0100 + +dhcp3 (3.0.5-1) unstable; urgency=low + + * New upstream release + * Remove patch for 64-bit, it's fixed upstream + * debian/rules: move debhelper compatibility level setting to debian/compat + * debian/dhclient.conf: don't restrict what parameters will be received (closes: #398378, #407667) + * Remove a bunch of debconf messages that pertain to upgrading from Sarge (closes: #422037) + * Updated Vietnamese debconf template translation (closes: #426993) + * Updated German debconf template translation (closes: #428453) + * Updated Portuguese debconf template translation (closes: #426919) + * Updated Czech debconf template translation (closes: #427018) + * Updated Russian debconf template translation (closes: #427823) + * Added Tamil debconf template translation (closes: #428133) + * Updated Italian debconf template translation (closes: #428152) + * Updated Turkish debconf template translation (closes: #426490, #426400, #417548) + * Updated Swedish debconf template translation (closes: #426270) + * Updated Galician debconf template translation (closes: #426285) + * Updated Spanish debconf template translation (closes: #426434) + * Added Basque debconf template translation (closes: #426496) + * Debconf templates and debian/control reviewed by the debian-l10n-english + team as part of the Smith review project (closes: #425704) + + -- Andrew Pollock Sat, 16 Jun 2007 14:21:59 +0000 + +dhcp3 (3.0.4-14) unstable; urgency=low + + * Updated Portuguese debconf template translation (closes: #413765) + + -- Andrew Pollock Tue, 6 Mar 2007 20:14:46 -0800 + +dhcp3 (3.0.4-13) unstable; urgency=low + + * Added Portuguese debconf template translation (closes: #389507) + * Added Galician debconf template translation (closes: #405394) + * Updated Czech debconf template translation (closes: #407808) + * Updated Swedish debconf template translation (closes: #407844) + + -- Andrew Pollock Sun, 21 Jan 2007 15:48:22 -0800 + +dhcp3 (3.0.4-12) unstable; urgency=high + + * The final chapter in the ongoing saga of the override file discrepancies + * debian/control: dhcp3-client-udeb Priority: extra + + -- Andrew Pollock Fri, 15 Dec 2006 04:06:20 -0800 + +dhcp3 (3.0.4-11) unstable; urgency=high + + * debian/control: make Priority: standard for dhcp3-client-udeb (I swear + I'll get rid of these override disparities eventually) + * Updated Italian debconf template translation (closes: #395074) + * Updated Dutch debconf template translation (closes: #395958) + * Updated Japanese debconf template translation (closes: #396205) + * Updated German debconf template translation (closes: #396960) + * Updated Russian debconf template translation (closes: #398812) + * Updated Brazilian Portuguese debconf template translation (closes: + #400528) + * Updated Spanish debconf template translation (closes: #401966) + * Updated French debconf template translation (closes: #402211) + + -- Andrew Pollock Sat, 9 Dec 2006 12:33:51 -0800 + +dhcp3 (3.0.4-10) unstable; urgency=low + + * debian/control: make Priority: optional for dhcp3-{server,relay,dev} and + udeb + * debian/dhclient-script.*: ignore insane MTU values + * debian/control: dhcp3-client suggests avahi-autoipd (closes: #391925) + * Added patch to dhclient to not tie up the current working directory + (closes: #387723) + * debian/dhcp3-{server,relay}.prerm: only try to call init script if it + exists (closes: #387667) + + -- Andrew Pollock Tue, 17 Oct 2006 22:08:54 -0700 + +dhcp3 (3.0.4-9) unstable; urgency=low + + * Updated Italian debconf template translation (closes: #386692) + * Updated Dutch debconf template translation (closes: #386766) + * debian/dhcp3-{client,relay}.templates: improved some of the wording + (closes: #386764) + * Updated Russian debconf template translation (closes: #387172) + * Updated French debconf template translation (closes: #389003) + * debian/dhcp3-{server,relay}.init: added LSB comment block + * debian/dhcp3-client.postinst: made the priority of a couple of debconf + notes "high" (closes: #388885) + * debian/control: increased Priority to important + + -- Andrew Pollock Sat, 14 Oct 2006 21:47:52 -0700 + +dhcp3 (3.0.4-8) unstable; urgency=high + + * urgency=high because of fix for RC bug + * Added a mention of dhcp-eval(5) to dhclient(8) and dhclient.conf(5) + (closes: #382177) + * debian/rules: call debconf-updatepo before dh_clean, not after (closes: + #384169) + * debian/{dhcp3-client,dhcp3-relay,dhcp3-server}.template: rephrased + descriptions and corrected typos (closes: #384180) + * dhcp3-client.preinst: do not clobber the dhclient.conf that ships with the + package when upgrading from dhcp-client (v2), just copy it aside (only if + it was modified) (closes: #386051) + * dhcp3-client.postinst: when upgrading from dhcp-client (v2), clobber the + dhclient.conf that ships with the package with the version that was copied + aside from dhcp-client + * debian/control: build-depend on po-debconf + + -- Andrew Pollock Fri, 25 Aug 2006 21:40:45 -0700 + +dhcp3 (3.0.4-7) unstable; urgency=low + + * Added debconf templates to mention that dhclient doesn't get restarted + (closes: #368922) + * debian/patches/Makefile.dpatch: removed hunks that stopped manpage + token substitution from occurring, modify value for ETC so manpage paths + are all anatomically correct (closes: #162808) + * Updated Brazilian Portuguese debconf template translation (closes: + #374031) + * Updated Turkish debconf template translation + * Updated Japanese debconf template translation + * Added Italian debconf template translation (grazie Luca Monducci) (closes: + #381830) + * Updated documentation patch to fix a couple of spelling mistakes in + dhcpd3(8) and dhcpd.conf(5) (closes: #383117, #383122) + + -- Andrew Pollock Sun, 20 Aug 2006 14:12:28 -0700 + +dhcp3 (3.0.4-6) unstable; urgency=high + + * The "For crying out loud, actually apply the patch" release + * debian/patches/00list: really apply the 64-bit patch (closes: #368302) + * debian/dhclient.conf: also request the interface-mtu setting (closes: + #372689) + * Updated Brazilian Portuguese debconf template translation (closes: + #374031) + + -- Andrew Pollock Tue, 20 Jun 2006 11:11:59 -0700 + +dhcp3 (3.0.4-5) unstable; urgency=low + + * The "There can never be too much testing" release + * debian/dhcp3-client.postinst: move debconf note about dhclient-script + moving to /sbin to postinst + * debian/dhcp3-client.config: now redundant, remove + * debian/dhcp3-relay.prerm: fix if-clause (closes: #370173) + * Incorporate upstream patch to fix problems on 64-bit architectures + (closes: #368302) + * debian/dhcp3-server.init.d: be less verbose when configuration fails + verification (closes: #369595) + * dhcp3-client: override Lintian warnings for no-debconf-config and + postinst-uses-db-input + + -- Andrew Pollock Tue, 6 Jun 2006 22:48:40 -0700 + +dhcp3 (3.0.4-4) unstable; urgency=high + + * Added a patch (still awaiting one from upstream) to fix problems on 64-bit + architectures (closes: #368302) + + -- Andrew Pollock Mon, 22 May 2006 16:28:09 -0700 + +dhcp3 (3.0.4-3) unstable; urgency=low + + * The "I really need to use revision control for this package" release + * debian/rules: invoke dh_builddeb the right way so the udeb gets uploaded + * Updated Brazilian Portuguese debconf template translation + + -- Andrew Pollock Sun, 21 May 2006 14:50:06 -0700 + +dhcp3 (3.0.4-2) unstable; urgency=low + + * The "Return of the udeb" release + * It's baaaack! Re-add udeb support to debian/rules and debian/control + * debian/rules: install dhclient-script into /sbin instead of /etc (closes: + #336290) + * debian/dhcp3-client.preinst: remove /etc/dhcp3/dhclient-script if it + hasn't changed from the previous version of the package + * debian/dhcp3-client.postrm: only try to remove /var/lib/dhcp3 if it exists + * debian/dhcp3-client.config: add message if /etc/dhcp3/dhclient-script has + been customised notifying that it won't be used any more (but kept) + * really apply Martin Pitt's patch to prevent multiple dhclients starting on + the same interface (closes: #178885) + * really apply patch to close lease database before calling dhclient-script + * Updated Spanish debconf template translation + * Updated Russian debconf template translation (closes: #367139, #367174) + * Updated Vietnamese debconf template translation + + -- Andrew Pollock Mon, 15 May 2006 07:17:50 -0700 + +dhcp3 (3.0.4-1) unstable; urgency=low + + * New upstream release + * Added debian/watch + * Stripped non-free documents from source tarball (closes: #365191) + * Cease applying and remove dhcpd.conf manpage and unknown interfaces + patches as they are now incorporated upstream + + -- Andrew Pollock Sat, 6 May 2006 17:24:50 -0700 + +dhcp3 (3.0.3-9) unstable; urgency=low + + * debian/dhcp3-common.docs: don't install the RFCs (closes: #365191) + + -- Andrew Pollock Sat, 29 Apr 2006 10:18:15 -0700 + +dhcp3 (3.0.3-8) unstable; urgency=low + + * debian/patches/00list.kfreebsd-i386 copied to 00list.kfreebsd-amd64 to + address the same FTBFS issue on kfreebsd-amd64 (closes: #355279) + * Updated Dutch debconf template translation (closes: #358055) + + -- Andrew Pollock Sat, 25 Mar 2006 19:29:11 -0800 + +dhcp3 (3.0.3-7) unstable; urgency=low + + * The "I'm sick of asking for dhcp3 to be allowed into testing because it + makes a udeb" release + * Stop making dhcp3-client udeb (it isn't being used anyway) + * Updated French debconf template translation (closes: #345389) + * Updated German debconf template translation (closes: #345695) + * debian/rules: bump debhelper compatibility level to 4 + * Updated Swedish debconf template translation (closes: #347604) + * debian/control: bump build-dependency on dpkg-dev to 1.13.2 (closes: + #352495) + + -- Andrew Pollock Wed, 22 Feb 2006 15:44:05 -0800 + +dhcp3 (3.0.3-6) unstable; urgency=low + + * The "Long time coming" release + * Updated Czech debconf template translation + * Added Spanish debconf template translation (gracias César) (closes: + #336065) + * Fix dhclient-script (Linux version) to pass argument to exit_with_hooks() + to the hooks themselves (closes: #289943) + * Fixed file locations in debconf note on next-server (closes: #340123) + * debian/control: increased Priority to standard (closes: #340138) + * debian/control: removed references to non-support of kernels that are no + longer shipping with Debian anyway (closes: #344174) + + -- Andrew Pollock Wed, 28 Dec 2005 12:28:02 -0800 + +dhcp3 (3.0.3-5) unstable; urgency=low + + * Updated French debconf template translation (closes: #331683) + * debian/control: Removed debconf dependency, put ${misc:Depends} instead, + to fix explicit dependency on debconf (closes: #331800) + * Added Swedish debconf template translation (Tack Daniel Nylander) (closes: + #333492) + + -- Andrew Pollock Wed, 12 Oct 2005 21:24:59 +1000 + +dhcp3 (3.0.3-4) unstable; urgency=low + + * Renamed debian/patches/00list.kfreebsd to + debian/patches/00list.kfreebsd-i386 so it actually gets applied on + kfreebsd (closes: #328637) + * debian/rules: added debconf-updatepo to clean target (closes: #328844) + * Updated Dutch debconf template translation (closes: #329437) + * Updated Vietnamese debconf template translation + * Added patch from Marius Gedminas to ignore irda0 (closes: #239907) + * Extended above patch to ignore sit0 interface (closes: #256851) + * Extended above patch to ignore IEEE1394 interfaces + * debian/rules: install Japanese manpages into /usr/share/man/ja (closes: + #285838) + + -- Andrew Pollock Mon, 26 Sep 2005 13:56:54 +1000 + +dhcp3 (3.0.3-3) unstable; urgency=low + + * The "principle of least surprise" release + * dhcp3-server.template: Added debconf note regarding change in next-server + behaviour + * dhcp3-server.config: display aforementioned note for upgrades from + anything prior to this version. + * Updated Russian template translation (closes: #328093) + * Patched dhcpd.conf.5 manpage to update behaviour of next-server directive + (closes: #327829, #328254) + * debian/*.doc: only install documentation into dhcp3-common (closes: + #286006) + * debian/control: make the udeb Priority: extra + * debian/dhclient-script.linux: applied patch from Samuel Thibault to + only mess with the IPv4 settings on the interface (closes: #323254) + * debian/dhclient-script.{linux,kfreebsd}: remove triplication of content + (closes: #325691) + * Rejigged dpatch patch so kfreebsd patch is only applied on kfreebsd + * debian/debug-exit: fixed comment to correctly indicate how to enable + (closes: #267639) + + -- Andrew Pollock Fri, 16 Sep 2005 20:23:10 +1000 + +dhcp3 (3.0.3-2) unstable; urgency=low + + * debian/control: change priority to optional (I'll get this right + eventually) + * Really get that NEWS.Debian into the dhcp3-server package... (closes: + #325392) + + -- Andrew Pollock Sun, 28 Aug 2005 21:22:32 +1000 + +dhcp3 (3.0.3-1) unstable; urgency=low + + * New upstream release (closes: #324886) + * Added NEWS.Debian regarding change in functionality with respect to + next-server now being required for booting. + + -- Andrew Pollock Thu, 25 Aug 2005 13:47:41 +1000 + +dhcp3 (3.0.2-4) unstable; urgency=low + + * Added patch from Aurelien Jarno to support GNU/kFreeBSD (closes: #321028) + * debian/dhcp3-server.preinst: fixed bashism + * debian/dhcp3-relay.prerm: fixed bashisms + * debian/dhcp3-client.preinst: fixed bashisms + * Updated Czech debconf templates translation (closes: #321734) + * debian/dhcp3-server.init.d: Applied patch from Stephen Gildea to provide + status option (closes: #320683) + + -- Andrew Pollock Thu, 25 Aug 2005 10:38:46 +1000 + +dhcp3 (3.0.2-3) unstable; urgency=low + + * debian/rules: fixed up installation of client/scripts/debian in build + target (closes: #320713) + + -- Andrew Pollock Mon, 1 Aug 2005 20:20:08 +1000 + +dhcp3 (3.0.2-2) unstable; urgency=low + + * debian/control: change to Priority: extra + * debian/dhcp3-server.config: lower priority for interfaces question and + remove note about requiring configuration (closes: #225893) + * debian/dhclient-script: avoid any possibility of mv asking questions + (closes: #238823) + * debian/control: bumped Standards-Version to 3.5.7 + * debian/dhcp3-server.init.d: removed bashism in test_config() (closes: + #315309, #316729) + * Updated Vietnamese debconf template translation (closes: #315806) + * Updated Dutch debconf template translation (closes: #315844) + * Updated French debconf template translation (closes: #316058) + + -- Andrew Pollock Wed, 29 Jun 2005 13:27:02 +1000 + +dhcp3 (3.0.2-1) unstable; urgency=low + + * The "Look Mum, it's nearly Lintian clean!" release + * New upstream release + * debian/dhcp3-server.postinst: Applied patch from Robert Millan to handle + interface names with slashes in them (closes: #290431) + * debian/dhcp3-server.postinst: move startup to 40 instead of 20 so as to + allow PCMCIA interfaces to exist (closes: #292357) + * debian/dhcp3-server.init.d: explictly define a $PATH (closes: #311723) + * Added Russian debconf templates translation (спасибо Yuriy Talakan) + (closes: #310074) + * debian/dhcp3-server.templates: fixed typo (closes: #310225) + * debian/dhcp3-server.init.d: only restart if the config file is sane + (closes: #300513) + * Added Vietnamese debconf templates translation (Cám ón ông Clytie Siddall) + (closes: #310224) + * Added Czech debconf templates translation (dêkuji Jan Outrata) (closes: + #266574) + * Added Brazilian Portuguese debconf templates translation (Obrigado!, + Obrigada! Andre Luis Lopez) (closes: #281989) + * debian/rules: use dh_link to make a policy compliant dhclient -> dhclient3 + symlink + * debian/control: Add dpatch to build-dependencies + * debian/rules: rejig to use dpatch + * redo all patches for dpatch. + * debian/changelog: fixed a dodgey email address that made Lintian cry + * debian/dhclient-script: applied patch from Faidon Liambotis to support + point-to-point Ethernet links (netmask of 255.255.255.255) (closes: + #283388) + * Don't install the omshell.1 manpage incorrectly into section 3 in + dhcp3-server as well as correctly in section 1 in dhcp3-common + * Applied patch from Martin Pitt to prevent multiple dhclients starting on + the same interface (closes: #178885) + * Applied patch from Olivier Houchard to add libdst.a to dhcp3-dev (closes: + #220525) + * debian/control: [dhcp3-client] make conflict with dhcp-client versioned + (closes: #279338) + * debian/control: [dhcp3-client-udeb] Added XC-Package-Type: udeb + * debian/rules: Removed all the special-case handling for dhcp3-client-udeb + + -- Andrew Pollock Thu, 16 Jun 2005 20:50:34 +1000 + +dhcp3 (3.0.1-2) unstable; urgency=high + + * The "Let's fix those really old and annoying bugs" release + * urgency=high because I'd like this to make sarge before any potential + freezing of udebs for d-i rc3 (but I've probably missed the boat anyway) + * debian/control: Adding myself to Uploaders: + * debian/dhclient-script: Remove useless checks for kernel versions that + this doesn't even work with, and causes errors on systems that mount /usr + via NFS (closes: #269014, #286011) + * debian/dhclient-script: Applied patch from Paul Kremer to update + /etc/resolv.conf if only a nameserver is provided (closes: #159529, + #171797, #287693) + * debian/control: rephrased description synopsis for dhcp3-common + + -- Andrew Pollock Mon, 28 Feb 2005 22:24:47 +1100 + +dhcp3 (3.0.1-1) unstable; urgency=low + + * New upstream version. + * Apply patch from martin f krafft to get rid + of /etc/dhcp3/{dhclient-enter-hooks.d/debug-enter, + dhclient-exit-hooks.d/debug-exit} if they exist. I am not implementing + for now Thomas Hood 's suggestion in #200501 of + grepping the hook scripts for "exit". I might do so in the future + if this continues to cause problems. + (closes: #255555, #200501) + * Depend on debianutils >= 2.8.2. (closes: #255997) + * Document dhclient's -e option. Thanks Chip Salzenberg + . (closes: #235994) + * Add German translation of the debconf templates. Thanks + Erik Schanze . (closes: #252178) + * Add Turkish translation of the debconf templates. Thanks + Recai Oktas . (closes: #249126) + * Add Duth translation of the debconf templates. Thanks + Frans Pop . (closes: #239243) + * Add Japanese translation of the debconf templates. Thanks + Hideki Yamane and Kenshi Muto . + (closes: #226948) + * dhcp3-client suggests resolvconf. (closes: 208094) + + -- Eloy A. Paris Wed, 21 Jul 2004 10:24:45 -0400 + +dhcp3 (3.0+3.0.1rc14-1) unstable; urgency=high + + * New upstream version. Urgency high because of this version fixes + multiple vulnerabilities. See: + http://www.us-cert.gov/cas/techalerts/TA04-174A.html. + + -- Eloy A. Paris Tue, 22 Jun 2004 15:04:18 -0400 + +dhcp3 (3.0+3.0.1rc13-2) unstable; urgency=low + + * Incorporate debconf translation for French. Thanks Nicolas + Bertolissio , Christian Perrier + and the people in the debian-l10n-french + mailing list. (closes: #211279) + * Patch from Chip Salzenberg to specify the interface + name when adding a route, in case there are multiple interfaces on the + same subnet (Closes: #235977) + * Patch from Chip Salzenberg to allow for specifying a + route metric using a "metric" option in /etc/network/interfaces + (Closes: #235136) + * Call "update-rc.d ... remove" from dhcp3-{server,relay}.postrm. + + -- Eloy A. Paris Wed, 26 May 2004 13:06:59 -0400 + +dhcp3 (3.0+3.0.1rc13-1) unstable; urgency=low + + * Eloy Paris : + - New upstream version. (closes: #231577) + + Dropping dhcrelay.c.patch since a similar version is now + included upstream. This patch was applied in 3.0+3.0.1rc11-3 + to prevent a DoS condition. + - Have the dhcp3-server init script exit if dhcp3 is removed but not purged + by testing for the existence of /usr/sbin/dhcpd3 (Closes: #201086) + - Tighten versioned dependency on debianutils, since we need run-parts + --list (Closes: #204329) + - Added the "netbios-scope" option to the list of options the DHCP + client requests from the server to play nicely with the samba + package. + - Prevent dh_md5sums from creating a md5sums file for dhcp3-client-udeb. + * Matt Zimmerman : + - Switch to using a Debian-specific dhclient-script, rather than + patching upstream's "linux" one + - More or less rewrite dhclient-script + - Clean up accumulated shell nastiness + - Improve readability + - Be careful when handling resolv.conf, to avoid breaking it + if something goes wrong (Closes: #211261) + - New resolv.conf handling is also symlink-friendly (Closes: #177846) + - Treat a hostname of "(none)" the same as a null hostname + (Closes: #165086) + - Still proceed with resolver configuration if nameservers are available + but a domain name is not (Closes: #110927) + - Use exit status 2, rather than 1, to indicate that binding failed, + so that unrelated errors do not result in DHCPDECLINE (your ISP will + thank you) + - Don't let a failing dhcp3-server init script abort installation; it + will usually be unconfigured on new installations (Closes: #217769) + - Increase IP TTL for DHCP packets from 16 to 128 (Closes: #152287) + - Apply patch from Christian Perrier to switch to + using po-debconf (Closes: #208549) + - Have dhcpd chdir to / as a well-behaved daemon should + (Closes: #95262) + + -- Eloy A. Paris Tue, 24 Feb 2004 12:06:30 -0500 + +dhcp3 (3.0+3.0.1rc11-5) unstable; urgency=low + + * We now source the scripts in /etc/dhcp3/dhclient-{exit,enter}-hooks.d + instead of executing them. Updated the sample debug-enter and + debug-exit scripts to accomodate this change. Thanks go to Thomas + Hood for the patch, the patience and the perseverance :) + (closes: #171798, #196476) + * Added debconf question for dhcp3-relay options. Thanks to Ralf + Heiringhoff for the patch. (closes: #165054) + * Several changes to /etc/dhcp3/dhclient-script: + - Source hooks instead of executing them (see above). + - Call logger if one hook returns a non-zero exit status. + - Not exporting dhclient-script's variables since we are now + sourcing instead of executing. + * Fixed /etc/init.d/dhcp3-server so it returns an error code of 1 if + dhcpd can't start. Thanks to Alexander R. Perlis . + Closes: #198992. + + -- Eloy A. Paris Mon, 30 Jun 2003 15:53:31 -0400 + +dhcp3 (3.0+3.0.1rc11-4) unstable; urgency=low + + * Exit with an exit status of 0 in /etc/init.d/dhcp3-server if + /etc/default/dhcp3-server does not exist so the init script can + be called with a "stop" argument and package removal does not + fail if this file does not exist. (closes: #184943 - missing + config file blocks package removal) + * Added verbiage to the package descriptions to make it clear what + the difference between these packages and the dhcp3-* packages is. + + -- Eloy A. Paris Sun, 16 Mar 2003 21:48:38 -0500 + +dhcp3 (3.0+3.0.1rc11-3) unstable; urgency=low + + * Preserve ownership/permissions of /etc/default/dhcp3-{server,relay} + in dhcp3-{server,relay}.postinst. + * Applied patch to dhcrelay from Florian Lohoff to + prevent DoS attack against DHCP servers by sending malicious BOOTP + packets to the DHCP relay. + * Tweak dhcp3-{server,relay}.config so user configuration in + /etc/default/dhcp3-{server,relay} is preserved when the packages + are upgraded. (closes: #177933) + + -- Eloy A. Paris Wed, 29 Jan 2003 14:44:48 -0500 + +dhcp3 (3.0+3.0.1rc11-2) unstable; urgency=low + + * s/netbios-name-server/netbios-name-servers/ in sample + dhclient.conf. (closes: #177232) + + -- Eloy A. Paris Sat, 18 Jan 2003 10:52:53 -0500 + +dhcp3 (3.0+3.0.1rc11-1) unstable; urgency=low + + * New upstream version - fixes potential buffer overflow reported by + the ISC. + * During purge, don't try to remove /var/lib/dhcp3 if it doesn't exist + (Closes: #173328) + * Added a "require" statement to the provided conffile + /etc/dhcp3/dhclient.conf so the DHCP client requests from the DHCP + server the netbios-name-server DHCP in addition to the default DHCP + options (closes: #175501) + + -- Eloy A. Paris Thu, 16 Jan 2003 09:58:40 -0500 + +dhcp3 (3.0+3.0.1rc10-1) unstable; urgency=low + + * New upstream version. + * Minor fixes to dhcp-eval.5. (Closes: #158007) + + -- Eloy A. Paris Thu, 7 Nov 2002 21:32:08 -0500 + +dhcp3 (3.0+3.0.1rc9-5) unstable; urgency=low + + * In dhcp3-server postinst, create the temp file for rewriting + /etc/default/dhcp3-server in the same directory as the file itself. + This helps SE Linux create it with the correct type. + + -- Eloy A. Paris Sat, 27 Jul 2002 13:23:37 -0400 + +dhcp3 (3.0+3.0.1rc9-4) unstable; urgency=low + + * Make the default IP time to live compliant with the RFC (it was + 16 and it should be 64 according to Chad Walstrom + ). Thanks Chad. + + -- Eloy A. Paris Thu, 25 Jul 2002 22:43:16 -0400 + +dhcp3 (3.0+3.0.1rc9-3) unstable; urgency=low + + * Close lease database before executing dhclient-script (not need + to have it open, possible security risk.) (Closes: #147582) + * Quoting shell variables in dhclient-script. (Closes: #150006) + * Make sure /var/lib/dhcp3/ exists before attempting to remove it + in dhcp3-server.postrm. (Closes: #151844) + + -- Eloy A. Paris Tue, 9 Jul 2002 00:07:41 -0400 + +dhcp3 (3.0+3.0.1rc9-2) unstable; urgency=low + + * Fix silly mistake in dhclient-script. This slipped in when I + prepared 3.0.1rc9 in a hurry. (Closes: #146450) + + -- Eloy A. Paris Thu, 9 May 2002 23:22:20 -0400 + +dhcp3 (3.0+3.0.1rc9-1) unstable; urgency=low + + * New upstream release. + * Minor fix to a comment in the sample /etc/dhcp3/dhcpd.conf. + (Closes: #145008) + + -- Eloy A. Paris Wed, 8 May 2002 14:47:05 -0400 + +dhcp3 (3.0+3.0.1rc8-7) unstable; urgency=low + + * Applied patch from Joshua Rosen that + prevents dhclient-script from deconfiguring an interface when + reason=TIMEOUT, which causes further DHCP broadcasts to fail. + (Closes: #144666) + * Make /etc/init.d/dhcp3-server not start if /etc/default/dhcp3-server + does not exist. Same thing for /etc/init.d/dhcp3-relay. + (Closes #144360) + + -- Eloy A. Paris Sun, 5 May 2002 16:05:10 -0400 + +dhcp3 (3.0+3.0.1rc8-6) unstable; urgency=medium + + * /etc/dhcp3/dhclient-script now exports all important variables + so the scripts in the .d directories have a clue of what's going + on. See the debug-enter and debug-exit scripts in the .d + directories for an example of what's available. + * Fixed location of dhclient-script in the sample dhclient.conf (it + was commented out, but just in case :) + * Got rid of Wichert's rebindsignal patch as I think it is not + needed for ISC DHCP version 3 (we have OMAPI now to control lots of + things in dhclient's behavior.) + * We are not calling anymore update-inetd to enable and disable bootps + in dhcp3-server's postinst and postrm scripts respectively. This is + historical baggage that we don't even now why it is there. So, + we don't need to depend on netbase and people don't have to have + inetd to be able to use the DCHP server. (Closes: #143337) + + -- Eloy A. Paris Wed, 24 Apr 2002 22:15:02 -0400 + +dhcp3 (3.0+3.0.1rc8-5) unstable; urgency=low + + * Fixed typo in /etc/dhcp3/dhclient-script. (Closes: #141609) + + -- Eloy A. Paris Sun, 7 Apr 2002 20:42:22 -0400 + +dhcp3 (3.0+3.0.1rc8-4) unstable; urgency=low + + * Commenting out all subnet declarations in the sample + /etc/dhcp3/dhcpd.conf. + * Hacked dhcpd.c so 'ddns-update-style' defaults to 'none' in the + absence of this statement in the dhcpd.conf config. file. + This gets rid of the misleading ddns-update-style message that + shows up in the syslog. (Closes: #138677) + * Added debconf note to clarify new non-authoritative behavior. + * Make dhclient-script run the enter and exit hooks as documented in + the man pages. In addition to this we are providing two + directories where admins. can put additional scripts to be run + by run-parts. (Closes: #139546) + * Renamed binaries once again: dhcpd-3.x -> dhcpd3, etc. Renamed man + pages so the have the same name as the binaries. + * Created symlink /sbin/dhclient that points to /sbin/dhclient3. + (Closes: #139071, #139134) + * Added cheap logic to /etc/init.d/dhcp3-server to detect whether + the DHCP server daemon started succesfully. (Closes: #138674) + + -- Eloy A. Paris Wed, 27 Mar 2002 12:08:33 -0500 + +dhcp3 (3.0+3.0.1rc8-3) unstable; urgency=low + + * Remove excessive junk in syslog when the daemons start and + there is a configuration problem. (Closes: #138564) + * Minor fixes to README.Debian. (Closes: #138667) + * Install README.Debian in all packages. (Closes: #138663) + * Adding a ddns-update-style statement to the sample dhcpd.conf. + Setting its value to 'none' to keep compatibility with dhcpd + v2. (Closes: #138676) + * Using /etc/default/dhcp3-server instead of /etc/default/dhcp and + /etc/init.d/dhcp3-relay instead of /etc/default/dhcp-relay to + not conflict with the v2 packages. + * Avoid data file conflicts with the old 2.x packages, so that purging + the old packages doesn't remove files used by the new packages + (Closes: #138693) + - /var/lib/dhcp -> /var/lib/dhcp3 + - dhcpd -> dhcp-3.x + - dhclient -> dhclient-3.x + - dhcrelay -> dhcrelay-3.x + - /etc/dhcp -> /etc/dhcp3 + * Migrate server and client leases from /var/lib/dhcp if they exist, for + a smooth upgrade from 2.x + * Add #DEBHELPER# token where missing + * Rearrange ordering in maintainer scripts so that #DEBHELPER# stuff + always gets executed + + -- Matt Zimmerman Sun, 17 Mar 2002 19:35:18 -0500 + +dhcp3 (3.0+3.0.1rc8-2) unstable; urgency=low + + * Fix typo in _PATH_DHCLIENT_CONF in debian/rules + + -- Matt Zimmerman Fri, 15 Mar 2002 18:42:36 -0500 + +dhcp3 (3.0+3.0.1rc8-1) unstable; urgency=low + + * First upload to unstable. + * Addresses many bugs reported against the dhcp 2.x packages + * New naming scheme ("old version + changes") to cope with upstream's + naming convention. Matt and I don't like the previous naming convention + we were using (3.0.1betaRC7-1, 3.0.1betaRC7-1, 3.0.1final-1, etc.) + Now we will have a proper 3.0.1-1 when it is released. + * Started to use invoke-rc.d so administrators can disable services + without worrying about these services being started during package + upgrades. + + -- Matt Zimmerman Wed, 13 Mar 2002 19:28:26 -0500 + +dhcp3 (3.0.1betaRC8-1) unstable; urgency=low + + * Move all config files to /etc/dhcp + * Use DH_COMPAT=3 + * Rename source package to dhcp3 + + -- Matt Zimmerman Wed, 6 Mar 2002 00:22:37 -0500 + +dhcp (3.0.1betaRC7-1) unstable; urgency=low + + * New upstream version: 3.0.1 Release Candidate 7 (3.0.1rc6) + * Renamed all packages to dhcp3*. The DHCP server now lives in + the dhcp3-server package. New package dhcp3-common. + * /etc/default/{dhcp3,dhcp3-relay} are generated by the postinst + if they do not exist. The postrm then removes these files on + purge. + * debian/control: dhcp-relay3 does not conflict with dhcp3. + Closes: #118906 dhcp-relay: Don't conflict with dhcp. + + -- Eloy A. Paris Wed, 20 Feb 2002 23:10:32 -0500 + +dhcp (3.0.1betaRC4-1) experimental; urgency=low + + * This is 3.0.1 Release Candidate 4 (3.0.1RC4) Upstream continues + with these goofy version numbers, forcing me to use goofy + version numbers as well... + + -- Eloy A. Paris Sat, 15 Dec 2001 21:42:54 -0500 + +dhcp (3.0final-1) experimental; urgency=low + + * Finally, 3.0 is here. Not uploading to unstable yet because that + would destabilize the work the boot-floppies team is doing + in preparation to woody's release. The problem is that the new + dhclient is too big for the boot floppies. + + -- Eloy A. Paris Fri, 5 Oct 2001 20:05:13 -0400 + +dhcp (3.0beta2RC12-1) experimental; urgency=low + + * New upstream version. This will hopefully be the last release + before the final 3.0. Then this baby will go directly to unstable. + + -- Eloy A. Paris Fri, 24 Aug 2001 00:02:22 -0400 + +dhcp (3.0beta2RC11-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Wed, 15 Aug 2001 00:00:13 -0400 + +dhcp (3.0beta2RC10-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Sun, 1 Jul 2001 23:18:49 -0400 + +dhcp (3.0beta2RC9-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Fri, 29 Jun 2001 01:06:33 -0400 + +dhcp (3.0beta2RC8-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Mon, 18 Jun 2001 18:45:06 -0400 + +dhcp (3.0beta2RC7-6) experimental; urgency=low + + * Crap! It's not /var/state/, it's /var/lib/ !!! Moving leases to + /var/lib/dhcp/. + + -- Eloy A. Paris Fri, 1 Jun 2001 23:45:40 -0400 + +dhcp (3.0beta2RC7-5) experimental; urgency=low + + * Fixed dhcp and dhcp-client's postrm scripts to have correct new + location of the lease databases. + + -- Eloy A. Paris Wed, 30 May 2001 14:44:35 -0400 + +dhcp (3.0beta2RC7-4) experimental; urgency=low + + * Getting rid of all dhcp-client configuration work I did before: + now there is not /etc/init.d/dhcp-client script and dhclient + should be started by either the ifup mechanism (edit + /etc/network/interfaces), or by the PCMCIA subsystem (the + /etc/pcmcia/network script - edit /etc/pcmcia/network.opts) This + should make things a lot easier for everybody. + * Moved lease file from /var/dhcp/ to /var/state/dhcp/. + + -- Eloy A. Paris Wed, 30 May 2001 12:40:43 -0400 + +dhcp (3.0beta2RC7-3) experimental; urgency=low + + * Reworked a bit configuration of dhcp-client: now the debconf variable + that controls how dhclient will start is not of type 'choice' but + rather a 'boolean'. This simplifies some things. + + -- Eloy A. Paris Tue, 29 May 2001 00:08:14 -0400 + +dhcp (3.0beta2RC7-2) experimental; urgency=low + + * At long last, debconf support is here. Please be easy on me since + this is my first debconf'nified package. + + -- Eloy A. Paris Mon, 28 May 2001 12:26:32 -0400 + +dhcp (3.0beta2RC7-1) experimental; urgency=low + + * New upstream version. This is 3.0 Release Candidate 7. I skipped + RC[4-6]. + + -- Eloy A. Paris Fri, 18 May 2001 01:42:15 -0400 + +dhcp (3.0beta2RC3-1) experimental; urgency=low + + * New upstream version. This is 3.0 Release Candidate 3. + + -- Eloy A. Paris Fri, 27 Apr 2001 20:54:20 -0400 + +dhcp (3.0beta2RC2-1) experimental; urgency=low + + * New upstream version. This is 3.0 Release Candidate 2. + * Changed section of package dhcp-dev from dev to devel. + + -- Eloy A. Paris Sat, 21 Apr 2001 17:23:17 -0400 + +dhcp (3.0beta2RC1-1) experimental; urgency=low + + * New upstream version. This is 3.0 Release Candidate 1. This upstream + version number (3.0rc1) screwed up my version numbers. Thanks to + Joy, doogie and hmh on #debian-devel for the suggestion of this + Debian version number. + * /etc/init.d/dhcp: got rid of the flag that prevents dhcp from starting + at boot time if set to 0. This was done to prevent starting until + a valid /etc/dhcpd.conf was configured. Change requested by Joy + on #debian-devel. I need to figure out a better way of handling this + but right now I don't have time. Any bugs because of this will + go to /dev/null until I find time to move to debconf and deal with + this properly. + + -- Eloy A. Paris Tue, 17 Apr 2001 23:35:18 -0400 + +dhcp (3.0b2pl24-1) experimental; urgency=low + + * New upstream version. + * Added groff to Build-depends. + Closes: #88711: error in build dependencies. + Closes: #91988: failed autobuild: missing groff build-depends. + * Added force-reload support to /etc/init.d/dhcp. + Closes: #89639: /etc/init.d/dhcp doesn't support force-reload. + * dhclient-exit-hooks does not need to be executable in dhclient's script. + Closes: #91306: dhclient-exit-hooks does not need to be executable. + * Applied patch to dhclient.c from Wichert to force a DHCP refresh. Sorry + it took so long, Wichert. + Closes: #84883: force DHCP refresh. + + -- Eloy A. Paris Sun, 8 Apr 2001 17:09:43 -0400 + +dhcp (3.0b2pl22-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Tue, 20 Mar 2001 17:55:11 -0500 + +dhcp (3.0b2pl21-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Tue, 20 Mar 2001 12:52:06 -0500 + +dhcp (3.0b2pl19-1) experimental; urgency=low + + * New upstream release. + + -- Eloy A. Paris Fri, 16 Mar 2001 18:14:28 -0500 + +dhcp (3.0b2pl18-1) experimental; urgency=low + + * New upstream release (don't know what happened with 3.0b2pl17.) + + -- Eloy A. Paris Tue, 27 Feb 2001 16:15:04 -0500 + +dhcp (3.0b2pl16-2) experimental; urgency=low + + * Changed "if [ -x /etc/dhclient-enter-hooks ]; then ..." to + [ -f /etc/dhclient-enter-hooks ]; then ..." in client/scripts/linux + (the dhclient configuration script.) The script was checking that + the file was executable but then it was dotting it, and for this it + does not have to be executable. + Closes: Bug#84768: dhcp-client: dhclient-enter-hooks does not need to be + executable. + + -- Eloy A. Paris Tue, 6 Feb 2001 22:56:05 -0500 + +dhcp (3.0b2pl16-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Tue, 6 Feb 2001 22:56:00 -0500 + +dhcp (3.0b2pl15-2) experimental; urgency=low + + * Created two new packages: dhcp-dev and dhcp-client-udeb. dhcp-dev + contains the files that provide an API for accessing and modifying + the DHCP server and client state. dhcp-client-udeb is a minimal + dhcp package used by the debian-installer. dhcp-client-udeb patch + provided by David Whedon . + Closes: #83001 - [PATCH] : dhcp-client-udeb for debian-installer. + * Updated README.Debian. + + -- Eloy A. Paris Sun, 28 Jan 2001 13:01:30 -0500 + +dhcp (3.0b2pl15-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Fri, 26 Jan 2001 18:22:33 -0500 + +dhcp (3.0b2pl14-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Fri, 19 Jan 2001 10:03:08 -0500 + +dhcp (3.0b2pl13-2) experimental; urgency=low + + * Transition from suidmanager to dpkg-statoverride. + + -- Eloy A. Paris Fri, 19 Jan 2001 00:30:05 -0500 + +dhcp (3.0b2pl13-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Thu, 18 Jan 2001 10:02:08 -0500 + +dhcp (3.0b2pl11-2) experimental; urgency=low + + * Pretty much same changes as in 2.0pl5-2. + * Using /bin/sh instead of /bin/bash in scripts. + * Using alternatives to handle the ocurrence of the dhcp-options.5 manual + page in all the dhcp* packages. + Closes: #80034: dhcp-relay: Contains /usr/share/man/man5/dhcp-options.5.gz, + conflicting with dhcp-client. + Closes: #78646: dhcp and dhcp-client packages both provide + dhcp-options.5.gz man page. + Closes: #82106: dhcp-client: dhcp-options.5.gz also in package dhcp. + * Added patch from bug #79578 to allow the dhcp client and server to + work under Debian-ARM (these patches are actually upstream already, I only + had to apply a small chunk.) + Closes: #79578: dhcp: NMU: Debian-ARM patches. + Closes: #62940: dhcp: NMU: Debian-ARM changes (alignment fix). + * Removed comment misleading comment in /etc/init.d/dhcp. I plan to move + to debconf soon and then people will be able to specify the interfaces + on which to run DHCP. + Closes: #71310: /etc/init.d/dhcp has misleading comments. + + -- Eloy A. Paris Sun, 14 Jan 2001 23:15:12 -0500 + +dhcp (3.0b2pl11-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Sun, 14 Jan 2001 23:14:47 -0500 + +dhcp (3.0b2pl9-1) experimental; urgency=low + + * New upstream version. + * Dropped patches to server/dhcpd.conf since the two problems that + were in there having fixed upstream. + + -- Eloy A. Paris Mon, 16 Oct 2000 20:10:05 -0400 + +dhcp (3.0b2pl6-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Thu, 5 Oct 2000 16:03:32 -0400 + +dhcp (3.0b2pl5-1) experimental; urgency=low + + * New upstream version. + * Dropped patch to client/scripts/linux and that solved #66173 + (dhcp-client: dhclient-script doesn't do what its manpage says) in + 3.0b1pl17-1 because the patch is in this new upstream version. + + -- Eloy A. Paris Sat, 23 Sep 2000 18:10:20 -0400 + +dhcp (3.0b2pl4-1) experimental; urgency=low + + * New upstream version. + + -- Eloy A. Paris Tue, 19 Sep 2000 18:43:39 -0400 + +dhcp (3.0b2pl3-1) experimental; urgency=low + + * New upstream version (never knew about 3.0b2pl2.) + * Added the -q switch to the invocation of the dhcp* daemons (dhcpd, + dhclient, and dhcrelay) in the corresponding /etc/init.d/dhcp* + script (dhcpd, dhcp-client and dhcp-relay) so programs don't print + a lot of junk when they start. + Closes: Bug#71309 - dhcpd wraper should call with -q. + Closes: Bug#59280 - dhcp: Too verbose. + * Added code to /etc/init.d/dhcp-client to test if the new scheme for + network configuration is being used (the /etc/network/* stuff). If + this is the case then the init.d script just exists without doing + anything. + Closes: Bug#61092 - dhclient loads twice under new interfaces + configuration. + + -- Eloy A. Paris Mon, 11 Sep 2000 23:32:23 -0400 + +dhcp (3.0b2pl1-1) experimental; urgency=low + + * New upstream version. This is the "first official release to + include the DHCP Failover Protocol, OMAPI, and a few other goodies." + Not recomended for production environments yet, though. + * Dynamic DNS is now compiled in. + * 2.0.x Linux kernels are not supported anymore, the binaries in this + package will not run in a system running a 2.0.x kernel. Enough is + enough people, please upgrade to a 2.2.x or 2.4.x kernel. I am tired + of maintaining this backward compatibility baggage. There are not + wrapper scripts anymore and no build tricks to support the 2.0.x + kernels. + * Updated README.Debian. + + -- Eloy A. Paris Sun, 3 Sep 2000 13:27:12 -0400 + +dhcp (3.0b1pl17-3) experimental; urgency=low + + * Same changes as in 2.0pl3-3. + * Call the configure scripts as "/bin/sh debian/configure-xx" instead + of just "debian/configure" so no non-executable scripts are found + during building. + Closes: Bug#68462 - dhcp: non-executable script during building. + + -- Eloy A. Paris Sun, 6 Aug 2000 18:47:45 -0400 + +dhcp (3.0b1pl17-2) experimental; urgency=low + + * Same changes as in 2.0pl3-2. + * OK, I screwed it up: the fact that it is entirely possible to have + a DHCP server and a DHCP client running at the same time in the same + machine never crossed my mind, so I made each of the dhcp* packages + conflict with each other in 2.0pl3-1. Big mistake! So I corrected + that and just left dhcp-client to conflict with dhcpcd. I hope that + nobody is using ISC DHCP client and dhcpcd in the same machine and at + the same time because I'm going to be pissed. + Closes: Bug#68445: dhcp: shouldn't conflict with dhcp-client. + + -- Eloy A. Paris Thu, 3 Aug 2000 23:46:07 -0400 + +dhcp (3.0b1pl17-1) experimental; urgency=low + + * New upstream release. + * Same changes as in dhcp-2.0pl3-1 which is being uploaded to unstable + (woody.) + * Made /etc/init.d/dhcp-client a conffile to prevent an overwrite at + install time without the user knowing it. In the future I will use + debconf to take care of interface configuration. + Closes: Bug#67873: dhcp-client: init.d script is overwritten on upgrade. + * Applied patch from Jun Hamano to + fix kernel version identifiaction problems in /etc/dhclient-script + (thanks Jun!) + Closes: #66472: dhcp-client: /etc/dhclient-script bugfix. + * Applied patch from steve@nyongwa.montreal.qc.ca to fix problems + reported in bug #66173 (thanks Steve!) Also, fixed dhclient.conf(5) + to reference dhclient.leases(8) instead of dhclient-lease(8) as well + as dhclient-script in the description of the "script" statement. + Closes: #66173: dhcp-client: dhclient-script doesn't do what its + manpage says. + * Added to the control section of the dhcp-client package a conflict + with the dhcpcd package. + Closes: #65524: dhcp-client needs a "conflicts" with dhcpcd. + * Made each of the dhcp* packages (dhcp, dhcp-relay and dhcp-client) + conflict with each other so only one of them can be installed at + the same time. + * Now dhcp-options(5) is installed in each of the dhcp* packages. + Closes: #61716: dhcp-client: dhcp-options(5) man page missing. + + -- Eloy A. Paris Sun, 30 Jul 2000 12:14:33 -0400 + +dhcp (3.0b1pl13-1) experimental; urgency=low + + * New upstream release. + * I screwed the way I am building the binaries for Linux 2.0.x and + Linux 2.2.x when I first packaged the 3.0 beta series of ISC DHCP. + The reason was that the configure script changed between the 2.0 and + the 3.0 series so I can't do what I was doing in the 2.0 series to + build both Linux 2.0.x and 2.2.x versions. I ended adding a dirty + hack (creating configure-2.0.x and configure-2.2.x scripts) that + I hope to get rid of in the future by hacking the original configure + script. + + -- Eloy A. Paris Wed, 9 Feb 2000 07:52:26 -0500 + +dhcp (3.0b1pl12-1) experimental; urgency=low + + * I finally found some time to package the latest development version + of the ISC DHCP package, which promises lots of new cool features. + I don't plan to upload this to Potato as dhcp-beta, dhcp-client-beta, + etc. packages because I don't like the mess this creates. Instead, + I'll upload this to project/experimental and when 3.0 final hits the + streets I'll just upload to unstable. + * There's no CHANGES file in the 3.0 sources - made the appropriate change + to debian/rules. + + -- Eloy A. Paris Mon, 27 Dec 1999 00:32:29 -0500 + +dhcp (2.0-3) unstable; urgency=low + + * The sample /etc/dhclient.conf is now provided completely commented + out so existing installations are not broken after upgrading + to dhcp-client 2.0-3 and above. + (Closes: Bug#50592: default dhclient.conf is a killer). + + -- Eloy A. Paris Thu, 18 Nov 1999 21:34:29 -0500 + +dhcp (2.0-2) unstable; urgency=low + + * Compiled two sets of binaries: one for 2.0.x kernels and another + one for 2.2.x kernels. Created three wrapper scripts (dhcpd, + dhclient, and dhcrelay) that call the appropiate version + depending on the version of the running kernel. I also needed + to tweak dhcp's init.d script to accomodate for the change (now + I am calling "start-stop-daemon --stop" with the --pid-file argument + and not with bot the --pid-file and the --exec arguments. + Closes: Bug#41974 (dhcp requires kernel 2.2??) + * Took care of the /usr/doc/* -> /usr/share/doc/* move (had to + tweak the postinst and prerm scripts to take care of the link since + I am not letting debhelper generate these scripts automatically). + * Man pages now installed in /usr/share/man/. + * Fixed a little the init.d script for dhcp-relay, although this file + was so broken that I believe nobody is using this package. + * Fixed a minor typo in the sample server/dhcpd.conf file + ("domain-name-servers" instead of "name-servers"). + * s/reload/restart/g in /etc/init.d/dhcp. + * Updated README.Debian and descriptions in debian/control. + * Removed Bashism from /etc/dhclient-script. + Closes: Bug#44977 (Bashism in /etc/dhclient-script) + * Included /etc/dhclient.conf and made it a conffile for dhcp-client. + Closes: Bug#45537 (significant error in dhclient man pages) + * Added a /etc/init.d/dhcp-client script. The script won't start + dhclient if /sbin/cardmgr exists (this normally means + that PCMCIA is installed and that dhclient will be started by the + cardmgr daemon). The script is run early in the boot sequence. + Closes: Bug#48952 (missing /etc/init.d/dhcp-client?) + + -- Eloy A. Paris Tue, 2 Nov 1999 23:41:00 -0500 + +dhcp (2.0-1) unstable; urgency=low + + * Final release of dhcp-2.0. + * Removed "-beta" suffix from all the packages. This package now replaces + the old dhcp-1.0 package and the -beta packages no longer exist. + + -- Eloy A. Paris Wed, 23 Jun 1999 12:28:12 -0400 + +dhcp-beta (2.0b1pl27-1) unstable; urgency=low + + * New upstream version (never uploaded to master). + + -- Eloy A. Paris Sun, 25 Apr 1999 14:21:39 -0400 + +dhcp-beta (2.0b1pl26-1) unstable; urgency=low + + * New upstream version. + + -- Eloy A. Paris Fri, 16 Apr 1999 09:21:46 -0400 + +dhcp-beta (2.0b1pl18-1) unstable; urgency=low + + * New upstream version. + + -- Eloy A. Paris Sun, 7 Mar 1999 09:09:59 -0400 + +dhcp-beta (2.0b1pl17-1) unstable; urgency=low + + * New upstream version. + * Fixed dhcp-beta's postinst and prerm scripts to call update-rc.d + to update the rc links to /etc/init.d/dhcp-beta. + + -- Eloy A. Paris Sun, 28 Feb 1999 13:32:13 -0400 + +dhcp-beta (2.0b1pl14-1) unstable; urgency=low + + * New maintainer (temporary, while Rich Sahlender is out of scene). + * New upstream version. + * Moved from debstd to debhelper. + * Modified /etc/init.d/dhcp-beta to start/stop dhcpd by using the + PID file /var/run/dhcpd.pid. + * Re-worked a lot debian/rules (I actually wrote it again from scratch). + * The patches in the last NMU done by Vincent Renardias + are not included since I tested dhclient and it ran just fine. Please + give this new version a shot and let me know of any problems. + + -- Eloy A. Paris Fri, 19 Feb 1999 19:39:20 -0400 + +dhcp-beta (2.0b1pl6-0.2) frozen unstable; urgency=medium + + * NMU: + Fix Grave bug #18322 with the provided patch. + Fix Important bug #19767: dhcp-client-beta did not contain + any /usr/doc/dhcp-client-beta directory. + Fix bug #20532 bad option in /etc/dhcpd.conf. + Close bug #20533 file location prob (Fixed by previous upload). + Close bug #22081 dhcpd-beta (Fixed by previous upload). + Close bug #19768 /etc/dhclient-script is not a conffile + (Already fixed). + Fix bug #28164 by included a new dhclient script. + + -- Vincent Renardias Tue, 5 Jan 1999 23:23:47 +0100 + +dhcp-beta (2.0b1pl6-0.1) frozen unstable; urgency=medium + + * Non-maintainer upload that fixes "important" bugs #24445 ([SECURITY] + dhcp-beta: potential buffer overflow problems) and #24442 + (/etc/init.d/dhcp-beta sources inexistent /etc/init.d/functions). + * New upstream release (this new release is what solves bug #24445). + * Removed from /etc/init.d/dhcp sourcing of /etc/init.d/functions because + this file is obsolete and is not present in newer Debian releases + (>= 2.0). This fixes #24442 and #19654 (/etc/init.d/functions should + not be used). + * Changed _PATH_DHCPD_DB in dhcpd.h to /var/dhcp/dhcpd.leases (it was + /var/lib/dhcpd/dhcpd.leases, which we are not using anymore). So, + now the leases database will be in /var/dhcp/dhcpd.leases. No more + files in /var/dhcpd/ nor /var/lib/dhcpd/. + * Changed VARDB (in the linux-2.0 section of Makefile.dist) to be + /var/dhcp/ instead of /var/dhcpd/ (this was done to support the + change of the leases database to /var/dhcp/). The consequence of this + is that /var/dhcpd/ is not provided in the .deb anymore (which is + fine because this directory is not used). + * Defined PATH_DHCPD_DB as a constant equal to "/var/dhcp/dhcpd.leases" + in the postinst. Used this constant in all references to the leases + database througout the postinst. + * s%ETCDIR%/etc/%g, s%DBDIR%/var/dhcp/%g and s%RUNDIR%/var/run/%g in + dhcpd.8 and dhcpd.leases.5, so the man pages show the correct directory. + * The last 4 changes fix #23089 (/var/lib/dhcpd does not exist so dhcpd + can't start). + * Made the default _not_ to run dhcpd. This was done by setting run_dhcpd + to 0 in the default /etc/init.d/dhcp. + * Change comments that are printed out in the last part of the postinst + to explain that editing of /etc/dhcpd.conf and /etc/init.d/dhcp is + necessary in order to be able to run dhcpd. + * Fixed a small typo in /etc/init.d/dhcp (diasble -> disable). + * Added the word "server" to the short description of dhcp-beta in + the control file. This fixes #17558 (dhcp-beta: unclear description). + + -- Eloy A. Paris Fri, 17 Jul 1998 00:06:50 -0400 + +dhcp-beta (2.0b1pl1-1) frozen unstable; urgency=low + + * New upstream patches fixing security and other bugs. + * New Maintainer. + + -- Rich Sahlender Thu, 28 May 1998 23:02:43 -0400 + +dhcp-beta (2.0b1pl0-2) unstable; urgency=low + + * #17939 dhcplient problem with environment variable. + + -- Christoph Lameter Mon, 16 Feb 1998 19:46:47 -0800 + +dhcp-beta (2.0b1pl0-1) unstable; urgency=low + + * Generate additional binaries dhcp-relay-beta and dhcp-client-beta. + dhcp-client beta is not working. + * New Beta Version with support for multiple interfaces etc. + * debian/config did not support multi-binary targets cleanly. Removed. + * Note: The relay does not properly handle the -i option but scans all + interfaces (upstream issue) + + -- Christoph Lameter Sun, 4 Jan 1998 13:12:05 -0800 + +dhcp (1.0.0-1) debs; urgency=low + + * Upstream non-beta release. Name changed to dhcp. + + -- Christoph Lameter Sun, 4 Jan 1998 09:34:44 -0800 + +dhcpd (0.5.16.1-4) unstable; urgency=low + + * One interface only. If the 2.0.31 feature becomes finally available + also in 2.1.x then I will include the multi interface feature again. + * Customize /etc/dhcpd.conf so that it should work after installation with + some possibly wrong defaults. + * Linux configuration reworked for glibc. Build on hamm. + + -- Christoph Lameter Thu, 4 Sep 1997 16:19:25 -0700 + +dhcpd (0.5.16.1-3) unstable; urgency=low + + * Documentation changes. Linus has included SO_BINDTODEVICE in the latest + pre patches for Kernel 2.0.31 + + -- Christoph Lameter Mon, 4 Aug 1997 20:45:21 -0700 + +dhcpd (0.5.16.1-2) unstable; urgency=low + + * /etc/init.d/dhcpd: Add initializing routes to 255.255.255.255. + * README.debian: Given the correct name and added some more information. + + -- Christoph Lameter Wed, 11 Jun 1997 22:31:36 -0700 + +dhcpd (0.5.16.1-1) unstable; urgency=low + + * Include CHANGES file as upstream changelog + * Update to latest upstream release. Support for multiple interfaces + using Linux 2.0.31-2 and higher now available. This version will not work + with older version of Linux. + * Make dhcpd build using debmake's build command. + * Include dhcp relay agent and dhcp client + * Update messages that appear on the screen + + -- Christoph Lameter Wed, 11 Jun 1997 13:30:00 -0700 + +dhcpd (0.5.14-2) unstable; urgency=low + + * Moved leases file into /var/lib/dhcp/ (#5689). + + -- Joey Hess Tue, 25 Feb 1997 20:27:54 -0500 + +dhcpd (0.5.14-1) unstable; urgency=low + + * New upstream release. + * New maintainer. + * Old version had incorrect name for directory in .orig.tar.gz file; + corrected this. + * Modifications for new debmake. + * This needs some testing. I can't test it becuase the computer on my + network that uses DHCP isn't here right now. + * Remove leases file on purge. + + -- Joey Hess Sun, 9 Feb 1997 20:16:08 -0500 + +dhcpd (0.5.13-4) unstable; urgency=low + + * debmake bug: no scripts installed in -3 + + -- Christoph Lameter Thu, 17 Oct 1996 07:12:44 +0800 + +dhcpd (0.5.13-3) unstable; urgency=low + + * added a touch /etc/dhcpd.leases to postinst on suggestion of Joey Hess. + * Uses debmake: compressed manpages + documentation + + -- Christoph Lameter Wed, 16 Oct 1996 18:21:15 +0800 + +dhcpd (0.5.13-2) unstable; urgency=low + + * Forgot to include conffiles in binary + * Documentation moved around + + -- Christoph Lameter Mon, 16 Sep 1996 14:51:46 +0800 + +dhcpd (0.5.13-1) unstable; urgency=low + + * New upstream version + + -- Christoph Lameter Mon, 16 Sep 1996 14:51:46 +0800 + +dhcpd (0.5.11-1) unstable; urgency=high + + * New upstream version + + -- Christoph Lameter Wed, 11 Sep 1996 14:51:46 +0800 + +dhcpd (0.5.9-1) unstable; urgency=high + + * New upstream version + * Debian changelog made available in /usr/doc/dhcpd + + -- Christoph Lameter Wed, 4 Sep 1996 14:51:46 +0800 + +dhcpd (0.5.7-1) unstable; urgency=high + + * New upstream version + + -- Christoph Lameter Wed, 4 Sep 1996 14:51:46 +0800 + +Old Changelog: +dhcpd (0.5.5-1) experimental; urgency=low + + * Initial Release + --- isc-dhcp-4.1.ESV-R4.orig/debian/watch +++ isc-dhcp-4.1.ESV-R4/debian/watch @@ -0,0 +1,3 @@ +version=3 + +ftp://ftp.isc.org/isc/dhcp/dhcp-(.*)\.tar\.gz debian uupdate --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.NEWS +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.NEWS @@ -0,0 +1,28 @@ +dhcp3 (3.1.1-6) unstable; urgency=low + + Please note that when running a failover pair of DHCP servers, in 3.1.x, the + peer names need to be consistent, otherwise DHCP will crash. + + Please see http://bugs.debian.org/513506 and + https://lists.isc.org/pipermail/dhcp-users/2007-September/004538.html for + more information. + + -- Andrew Pollock Sun, 01 Feb 2009 18:11:12 -0800 + +dhcp3-server (3.1.0-3) unstable; urgency=low + + ISC DHCP 3.1 supports the domain-search option, so rather than jamming + multiple domains into the domain-name option, you should use the + domain-search option instead, for ISC DHCP clients >= 3.1 + + -- Andrew Pollock Sun, 03 Feb 2008 21:12:45 -0800 + +dhcp3 (3.0.3-1) unstable; urgency=low + + Please note that if you are netbooting hosts and using DHCP, that you now + need to explicitly set the "next-server" option, even if the TFTP server + is the same server as the DHCP server. + + Refer to the upstream release notes discussion on siaddr for more details. + + -- Andrew Pollock Fri, 26 Aug 2005 09:32:38 +1000 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-common.install +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-common.install @@ -0,0 +1,4 @@ +usr/share/man/man5/dhcp-* +usr/share/man/man1/omshell.* +usr/bin/omshell +usr/share/man/ja --- isc-dhcp-4.1.ESV-R4.orig/debian/debug-enter +++ isc-dhcp-4.1.ESV-R4/debian/debug-enter @@ -0,0 +1,37 @@ +# +# The purpose of this script is just to show the variables that are +# available to all the scripts in this directory. All these scripts +# are called from /etc/dhcp3/dhclient-script, which exports all the +# variables shown before. If you want to debug a problem with your DHCP +# setup you can enable this script and take a look at +# /tmp/dhclient-script.debug. + +# To enable this script set the following variable to "yes" +RUN="no" + +if [ "$RUN" = "yes" ]; then + echo `date`: entering dhclient-enter-hooks.d, dumping variables. \ + >> /tmp/dhclient-script.debug + + # loop over the 4 possible prefixes: (empty), cur_, new_, old_ + for prefix in '' 'cur_' 'new_' 'old_'; do + # loop over the DHCP variables passed to dhclient-script + for basevar in reason interface medium alias_ip_address \ + ip_address host_name network_number subnet_mask \ + broadcast_address routers static_routes \ + rfc3442_classless_static_routes \ + domain_name domain_search domain_name_servers \ + netbios_name_servers netbios_scope \ + ntp_servers \ + ip6_address ip6_prefix ip6_prefixlen \ + dhcp6_domain_search dhcp6_name_servers ; do + var="${prefix}${basevar}" + + if [ -n "${!var}" ]; then + echo "$var='${!var}'" >> /tmp/dhclient-script.debug + fi + done + done + + echo '--------------------------' >> /tmp/dhclient-script.debug +fi --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server-ldap.docs +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server-ldap.docs @@ -0,0 +1,2 @@ +README.ldap +contrib/dhcp.schema --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.isc-dhcp-server.upstart +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.isc-dhcp-server.upstart @@ -0,0 +1,57 @@ +description "ISC DHCP IPv4 server" +author "Stéphane Graber " + +start on runlevel [2345] +stop on runlevel [!2345] + +pre-start script + if [ ! -f /etc/default/isc-dhcp-server ]; then + echo "/etc/default/isc-dhcp-server does not exist! - Aborting..." + echo "Run 'dpkg-reconfigure isc-dhcp-server' to fix the problem." + stop + exit 0 + fi + . /etc/default/isc-dhcp-server + + if [ -f /etc/ltsp/dhcpd.conf ]; then + CONFIG_FILE=/etc/ltsp/dhcpd.conf + else + CONFIG_FILE=/etc/dhcp/dhcpd.conf + fi + if [ ! -f $CONFIG_FILE ]; then + echo "$CONFIG_FILE does not exist! - Aborting..." + echo "Please create and configure $CONFIG_FILE to fix the problem." + stop + exit 0 + fi + + if ! /usr/sbin/dhcpd -t -q -4 -cf $CONFIG_FILE > /dev/null 2>&1; then + echo "dhcpd self-test failed. Please fix the config file." + echo "The error was: " + /usr/sbin/dhcpd -t -4 -cf $CONFIG_FILE + stop + exit 0 + fi +end script + +respawn +script + if [ -f /etc/ltsp/dhcpd.conf ]; then + CONFIG_FILE=/etc/ltsp/dhcpd.conf + else + CONFIG_FILE=/etc/dhcp/dhcpd.conf + fi + + . /etc/default/isc-dhcp-server + + # Allow dhcp server to write lease and pid file + mkdir -p /var/run/dhcp-server + chown dhcpd:dhcpd /var/run/dhcp-server + [ -e /var/lib/dhcp/dhcpd.leases ] || touch /var/lib/dhcp/dhcpd.leases + chown dhcpd:dhcpd /var/lib/dhcp /var/lib/dhcp/dhcpd.leases + if [ -e /var/lib/dhcp/dhcpd.leases~ ]; then + chown dhcpd:dhcpd /var/lib/dhcp/dhcpd.leases~ + fi + + exec /usr/sbin/dhcpd -f -q -4 -pf /run/dhcp-server/dhcpd.pid -cf $CONFIG_FILE $INTERFACES +end script --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.preinst +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.preinst @@ -0,0 +1,11 @@ +#!/bin/sh +set -e + +if dpkg --compare-versions "$2" lt 4.0 && + [ -f /etc/default/dhcp3-server ] && + [ ! -f /etc/default/isc-dhcp-server ]; then + echo "Copying /etc/default/dhcp3-server to /etc/default/isc-dhcp-server" + cp /etc/default/dhcp3-server /etc/default/isc-dhcp-server +fi + +#DEBHELPER# --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.apport +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.apport @@ -0,0 +1,50 @@ +#!/usr/bin/python + +'''apport hook for dhcp server + +(c) 2010 Canonical Ltd. +Author: Chuck Short + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2 of the License, or (at your +option) any later version. See http://www.gnu.org/copyleft/gpl.html for +the full text of the license. +''' + +from apport.hookutils import * +from os import path +import re + +def dhcp_leases(pattern): + ''' Extract options from '/var/lib/dhcp/dhcpd.leases' which match a regex. + pattern should be a "re" object. ''' + lines = "" + if os.path.exists('/var/lib/dhcp/dhcpd.leases'): + file = '/var/lib/dhcp/dhcpd.leases' + else: + return lines + + for line in open(file): + if pattern.search(line): + lines += line + return lines + +def add_info(report, ui): + response = ui.yesno("The contents of your /etc/dhcp/dhclient.conf file may help developers diagnose your bug more quickly, however, it may contain sensitive information. Do you want to include it in your bug report?") + + if response == None: #user cancelled + raise StopIteration + + elif response == True: + attach_file_if_exists(report, '/etc/dhcp/dhcpd.conf', 'DHCPServerConf') + + attach_mac_events(report) + + attach_related_packages(report, ['apparmor', 'libapparmor1', + 'libapparmor-perl', 'apparmor-utils', 'auditd', 'libaudit0']) + + attach_file(report, '/etc/apparmor.d/usr.sbin.dhcpd') + + leases = re.compile('option|renew|rebind|expire', re.IGNORECASE) + report['DhServerLeases'] = dhcp_leases(leases) --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.init.d +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.init.d @@ -0,0 +1,123 @@ +#!/bin/sh +# +# + +### BEGIN INIT INFO +# Provides: isc-dhcp-server +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Should-Start: $local_fs slapd $named +# Should-Stop: $local_fs slapd +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: DHCP server +# Description: Dynamic Host Configuration Protocol Server +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +# Default config file +CONFIG_FILE=/etc/dhcp/dhcpd.conf + +# Allow ltsp to override +if [ -f /etc/ltsp/dhcpd.conf ]; then + CONFIG_FILE=/etc/ltsp/dhcpd.conf +fi + +test -f /usr/sbin/dhcpd || exit 0 + +# It is not safe to start if we don't have a default configuration... +if [ ! -f /etc/default/isc-dhcp-server ]; then + echo "/etc/default/isc-dhcp-server does not exist! - Aborting..." + echo "Run 'dpkg-reconfigure isc-dhcp-server' to fix the problem." + exit 0 +fi + +. /lib/lsb/init-functions + +# Read init script configuration (so far only interfaces the daemon +# should listen on.) +[ -f /etc/default/isc-dhcp-server ] && . /etc/default/isc-dhcp-server + +NAME=dhcpd +DESC="ISC DHCP server" +DHCPDPID=/var/run/dhcp-server/dhcpd.pid + +test_config() +{ + if ! /usr/sbin/dhcpd -t -q -cf $CONFIG_FILE > /dev/null 2>&1; then + echo "dhcpd self-test failed. Please fix the config file." + echo "The error was: " + /usr/sbin/dhcpd -t -cf $CONFIG_FILE + exit 1 + fi +} + +# single arg is -v for messages, -q for none +check_status() +{ + if [ ! -r "$DHCPDPID" ]; then + test "$1" != -v || echo "$NAME is not running." + return 3 + fi + if read pid < "$DHCPDPID" && ps -p "$pid" > /dev/null 2>&1; then + test "$1" != -v || echo "$NAME is running." + return 0 + else + test "$1" != -v || echo "$NAME is not running but $DHCPDPID exists." + return 1 + fi +} + +case "$1" in + start) + test_config + log_daemon_msg "Starting $DESC" "$NAME" + + # allow dhcp server to write lease and pid file + mkdir -p /var/run/dhcp-server + chown dhcpd:dhcpd /var/run/dhcp-server + [ -e /var/lib/dhcp/dhcpd.leases ] || touch /var/lib/dhcp/dhcpd.leases + chown dhcpd:dhcpd /var/lib/dhcp /var/lib/dhcp/dhcpd.leases + if [ -e /var/lib/dhcp/dhcpd.leases~ ]; then + chown dhcpd:dhcpd /var/lib/dhcp/dhcpd.leases~ + fi + + start-stop-daemon --start --quiet --pidfile $DHCPDPID \ + --exec /usr/sbin/dhcpd -- -q -pf $DHCPDPID -cf $CONFIG_FILE $INTERFACES + sleep 2 + + if check_status -q; then + log_end_msg 0 + else + log_failure_msg "check syslog for diagnostics." + log_end_msg 1 + exit 1 + fi + ;; + stop) + log_daemon_msg "Stopping $DESC" "$NAME" + start-stop-daemon --stop --quiet --pidfile $DHCPDPID + log_end_msg $? + rm -f "$DHCPDPID" + ;; + restart | force-reload) + test_config + $0 stop + sleep 2 + $0 start + if [ "$?" != "0" ]; then + exit 1 + fi + ;; + status) + echo -n "Status of $DESC: " + check_status -v + exit "$?" + ;; + *) + echo "Usage: $0 {start|stop|restart|force-reload|status}" + exit 1 +esac + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.templates +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.templates @@ -0,0 +1,35 @@ +# These templates have been reviewed by the debian-l10n-english +# team +# +# If modifications/additions/rewording are needed, please ask +# for an advice to debian-l10n-english@lists.debian.org +# +# Even minor modifications require translation updates and such +# changes should be coordinated with translators and reviewers. + +Template: isc-dhcp-relay/servers +Type: string +_Description: Servers the DHCP relay should forward requests to: + Please enter the hostname or IP address of at least one DHCP server + to which DHCP and BOOTP requests should be relayed. + . + You can specify multiple server names or IP addresses (in a + space-separated list). + +Template: isc-dhcp-relay/interfaces +Type: string +_Description: Interfaces the DHCP relay should listen on: + Please specify which network interface(s) the DHCP relay should + attempt to configure. Multiple interface names should be entered as a + space-separated list. + . + Leave this field blank to allow for automatic detection and + configuration of network interfaces by the DHCP relay, in which case + only broadcast interfaces will be used (if possible). + +Template: isc-dhcp-relay/options +Type: string +_Description: Additional options for the DHCP relay daemon: + Please specify any additional options for the DHCP relay daemon. + . + For example: '-m replace' or '-a -D'. --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.install +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.install @@ -0,0 +1,7 @@ +usr/share/man/man5/dhcpd.conf.5 +usr/share/man/man5/dhcpd.leases.5 +usr/share/man/man8/dhcpd.8 +usr/sbin/dhcpd +etc/dhcp/dhcpd.conf +etc/apparmor.d/usr.sbin.dhcpd +etc/apparmor.d/dhcpd.d --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.dirs +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.dirs @@ -0,0 +1,3 @@ +var/run +usr/sbin +var/lib/dhcp --- isc-dhcp-4.1.ESV-R4.orig/debian/dhcpd.conf +++ isc-dhcp-4.1.ESV-R4/debian/dhcpd.conf @@ -0,0 +1,110 @@ +# +# Sample configuration file for ISC dhcpd for Debian +# +# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as +# configuration file instead of this file. +# +# + +# The ddns-updates-style parameter controls whether or not the server will +# attempt to do a DNS update when a lease is confirmed. We default to the +# behavior of the version 2 packages ('none', since DHCP v2 didn't +# have support for DDNS.) +ddns-update-style none; + +# option definitions common to all supported networks... +option domain-name "example.org"; +option domain-name-servers ns1.example.org, ns2.example.org; + +default-lease-time 600; +max-lease-time 7200; + +# If this DHCP server is the official DHCP server for the local +# network, the authoritative directive should be uncommented. +#authoritative; + +# Use this to send dhcp log messages to a different log file (you also +# have to hack syslog.conf to complete the redirection). +log-facility local7; + +# No service will be given on this subnet, but declaring it helps the +# DHCP server to understand the network topology. + +#subnet 10.152.187.0 netmask 255.255.255.0 { +#} + +# This is a very basic subnet declaration. + +#subnet 10.254.239.0 netmask 255.255.255.224 { +# range 10.254.239.10 10.254.239.20; +# option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; +#} + +# This declaration allows BOOTP clients to get dynamic addresses, +# which we don't really recommend. + +#subnet 10.254.239.32 netmask 255.255.255.224 { +# range dynamic-bootp 10.254.239.40 10.254.239.60; +# option broadcast-address 10.254.239.31; +# option routers rtr-239-32-1.example.org; +#} + +# A slightly different configuration for an internal subnet. +#subnet 10.5.5.0 netmask 255.255.255.224 { +# range 10.5.5.26 10.5.5.30; +# option domain-name-servers ns1.internal.example.org; +# option domain-name "internal.example.org"; +# option routers 10.5.5.1; +# option broadcast-address 10.5.5.31; +# default-lease-time 600; +# max-lease-time 7200; +#} + +# Hosts which require special configuration options can be listed in +# host statements. If no address is specified, the address will be +# allocated dynamically (if possible), but the host-specific information +# will still come from the host declaration. + +#host passacaglia { +# hardware ethernet 0:0:c0:5d:bd:95; +# filename "vmunix.passacaglia"; +# server-name "toccata.fugue.com"; +#} + +# Fixed IP addresses can also be specified for hosts. These addresses +# should not also be listed as being available for dynamic assignment. +# Hosts for which fixed IP addresses have been specified can boot using +# BOOTP or DHCP. Hosts for which no fixed address is specified can only +# be booted with DHCP, unless there is an address range on the subnet +# to which a BOOTP client is connected which has the dynamic-bootp flag +# set. +#host fantasia { +# hardware ethernet 08:00:07:26:c0:a5; +# fixed-address fantasia.fugue.com; +#} + +# You can declare a class of clients and then do address allocation +# based on that. The example below shows a case where all clients +# in a certain class get addresses on the 10.17.224/24 subnet, and all +# other clients get addresses on the 10.0.29/24 subnet. + +#class "foo" { +# match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; +#} + +#shared-network 224-29 { +# subnet 10.17.224.0 netmask 255.255.255.0 { +# option routers rtr-224.example.org; +# } +# subnet 10.0.29.0 netmask 255.255.255.0 { +# option routers rtr-29.example.org; +# } +# pool { +# allow members of "foo"; +# range 10.17.224.10 10.17.224.250; +# } +# pool { +# deny members of "foo"; +# range 10.0.29.10 10.0.29.230; +# } +#} --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-common.docs +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-common.docs @@ -0,0 +1 @@ +README RELNOTES doc/api+protocol --- isc-dhcp-4.1.ESV-R4.orig/debian/README.source +++ isc-dhcp-4.1.ESV-R4/debian/README.source @@ -0,0 +1,9 @@ +This package currently uses dpatch to manage the patches. + +Please be aware that there's a bit of a convoluted double-build to build an +LDAP-enabled and non-LDAP-enabled DHCP server package, so the first build is +done with the LDAP patch applied, and then it's unapplied, and a second build +is done. + +See /usr/share/doc/dpatch/README.source.gz for more information on how to use +dpatch --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client.NEWS +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client.NEWS @@ -0,0 +1,28 @@ +dhcp3-client (3.1.0-3) unstable; urgency=low + + ISC DHCP 3.1 started supporting a domain-search option, so as of this + release, the domain-name option now determines the domain option in + /etc/resolv.conf and the domain-search option determines the search + option in /etc/resolv.conf + + Putting multiple domains in the domain-name option was a hack to + manipulate the domain search list in versions prior to 3.1, but now that + there is a proper way to do it, the dhcp3-client package will be behaving + this way. + + This only currently applies if resolvconf is not in use. See #460609 for + when resolvconf will start doing the "right" thing + + To help with the transition, as of 3.1.0-3, if resolvconf is not in use, + and only a domain-name option is supplied by the DHCP server (or added in + dhclient.conf), the first domain will set the domain option in + /etc/resolv.conf, and the entire contents of the domain-name option will + set the search option (essentially the old hack of specifying multiple + domain names in the domain-name option will continue to work if a + domain-search option is not provided). + + Specifying multiple domains in the domain-name option is technically + invalid, and support for this is subject to be removed once a version of + the DHCP server >=3.1 is in a stable release of Debian. + + -- Andrew Pollock Sun, 03 Feb 2008 15:33:58 -0800 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.config +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.config @@ -0,0 +1,25 @@ +#!/bin/sh -e +# +# + +# Source debconf library. +. /usr/share/debconf/confmodule + +# Read in the current defaults (if available) +INITCONFFILE=/etc/default/isc-dhcp-server + +# Read current configuration - the user might not use dpkg-reconfigure +# to change /etc/default/isc-dhcp-server, so we need to do this to +# preserve the configuration. +if [ -r ${INITCONFFILE} ]; then + . ${INITCONFFILE} + db_set isc-dhcp-server/interfaces "${INTERFACES}" +fi + +db_title "DHCP Server" + +db_input low isc-dhcp-server/interfaces || true +db_go + +db_input medium isc-dhcp-server/new_auth_behavior || true +db_go --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client.dirs +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client.dirs @@ -0,0 +1,7 @@ +etc/dhcp/dhclient-enter-hooks.d +etc/dhcp/dhclient-exit-hooks.d +var/run +var/lib/dhcp +usr/share/man/man5 +usr/share/lintian/overrides +etc/network/if-pre-up.d --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.isc-dhcp-relay6.default +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.isc-dhcp-relay6.default @@ -0,0 +1,15 @@ +# Defaults for isc-dhcp-relay6 initscript +# sourced by /etc/init/isc-dhcp-relay6.conf + +# +# This is a POSIX shell fragment +# + +# What interfaces should the DHCP relay forward requests to? +UPPER_INTERFACES="" + +# On what interfaces should the DHCP relay (dhrelay) serve DHCP requests? +LOWER_INTERFACES="" + +# Additional options that are passed to the DHCP relay daemon? +OPTIONS="" --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.postrm +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.postrm @@ -0,0 +1,12 @@ +#!/bin/sh -e +# +# + +if [ "$1" = "purge" ]; then + # Remove init.d configuration file + rm -f /etc/default/isc-dhcp-relay +fi + +#DEBHELPER# + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server-ldap.dirs +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server-ldap.dirs @@ -0,0 +1 @@ +usr/sbin --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.dirs +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.dirs @@ -0,0 +1 @@ +var/run --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.install +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.install @@ -0,0 +1,2 @@ +usr/sbin/dhcrelay +usr/share/man/man8/dhcrelay.8 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server-ldap.install +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server-ldap.install @@ -0,0 +1 @@ +patched-ldap/dhcpd usr/sbin --- isc-dhcp-4.1.ESV-R4.orig/debian/apparmor-profile.dhcpd +++ isc-dhcp-4.1.ESV-R4/debian/apparmor-profile.dhcpd @@ -0,0 +1,62 @@ +# vim:syntax=apparmor +# Last Modified: Fri Jun 3 13:54:26 2011 +# Author: Jamie Strandboge + +#include + +/usr/sbin/dhcpd { + #include + #include + #include + + capability net_bind_service, + capability net_raw, + capability setgid, + capability setuid, + + network inet raw, + network packet packet, + @{PROC}/[0-9]*/net/dev r, + @{PROC}/[0-9]*/net/{dev,if_inet6} r, + + /etc/hosts.allow r, + /etc/hosts.deny r, + + /etc/dhcp/ r, + /etc/dhcp/** r, + /etc/dhcpd{,6}.conf r, + /etc/dhcpd{,6}_ldap.conf r, + + /usr/sbin/dhcpd mr, + + /var/lib/dhcp/dhcpd{,6}.leases* lrw, + /var/log/ r, + /var/log/** rw, + /{,var/}run/{,dhcp-server/}dhcpd{,6}.pid rw, + + # LTSP. See: + # http://www.ltsp.org/~sbalneav/LTSPManual.html + # https://wiki.edubuntu.org/ + /etc/ltsp/ r, + /etc/ltsp/** r, + /etc/dhcpd{,6}-k12ltsp.conf r, + /etc/dhcpd{,6}.leases* lrw, + /ltsp/ r, + /ltsp/** r, + + # Eucalyptus + /{,var/}run/eucalyptus/net/ r, + /{,var/}run/eucalyptus/net/** r, + /{,var/}run/eucalyptus/net/*.pid lrw, + /{,var/}run/eucalyptus/net/*.leases* lrw, + /{,var/}run/eucalyptus/net/*.trace lrw, + + # wicd + /var/lib/wicd/* r, + + # allow packages to re-use dhcpd and provide their own specific directories + #include + + # Site-specific additions and overrides. See local/README for details. + #include +} --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.prerm +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.prerm @@ -0,0 +1,9 @@ +#!/bin/sh -e +# +# + +invoke-rc.d isc-dhcp-relay stop + +#DEBHELPER# + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client.preinst +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client.preinst @@ -0,0 +1,64 @@ +#!/bin/sh + +set -e + +case "$1" in + install|upgrade) + # if the /etc/dhclient.conf from dhcp-client was modified, + # bring it forward to /etc/dhcp3/dhclient.conf, but in a way not + # to upset dpkg about a changed conffile + if [ ! -e /etc/dhcp3/dhclient.conf ] && [ -e /etc/dhclient.conf ] && \ + ! >/dev/null 2>&1 md5sum -c - <<-EOF; then + 10830c7543724cfd36f10dd87a5f98eb /etc/dhclient.conf + EOF + mkdir -p /etc/dhcp3 + cp /etc/dhclient.conf /etc/dhcp3/dhclient.conf.oldconfig + fi + + # We renamed debug-enter to debug - handle the transition + if [ ! -e /etc/dhcp3/dhclient-enter-hooks.d/debug ] && \ + [ -e /etc/dhcp3/dhclient-enter-hooks.d/debug-enter ]; then + mv /etc/dhcp3/dhclient-enter-hooks.d/debug-enter \ + /etc/dhcp3/dhclient-enter-hooks.d/debug + else + rm -f /etc/dhcp3/dhclient-enter-hooks.d/debug-enter + fi + + # We renamed debug-exit to debug - handle the transition + if [ ! -e /etc/dhcp3/dhclient-exit-hooks.d/debug ] && \ + [ -e /etc/dhcp3/dhclient-exit-hooks.d/debug-exit ]; then + mv /etc/dhcp3/dhclient-exit-hooks.d/debug-exit \ + /etc/dhcp3/dhclient-exit-hooks.d/debug + else + rm -f /etc/dhcp3/dhclient-exit-hooks.d/debug-exit + fi + + # We moved /etc/dhcp3/dhclient-script to /sbin in 3.0.4-2 + if dpkg --compare-versions "$2" lt-nl "3.0.4-2"; then + if [ -e /etc/dhcp3/dhclient-script ]; then + if >/dev/null 2>&1 md5sum -c - <<-EOF; then + 2b18b5c59b26d00aa115716b3da2ed26 /etc/dhcp3/dhclient-script + EOF + rm -f /etc/dhcp3/dhclient-script + fi + fi + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + --- isc-dhcp-4.1.ESV-R4.orig/debian/dhclient-script.kfreebsd.udeb +++ isc-dhcp-4.1.ESV-R4/debian/dhclient-script.kfreebsd.udeb @@ -0,0 +1,125 @@ +#!/bin/sh + +set -e + +# reduced dhclient-script for the Debian installer +# changes by Joshua Kwan , +# Bastian Blank + +# dhclient-script for Linux. Dan Halbert, March, 1997. +# Updated for Linux 2.[12] by Brian J. Murrell, January 1999. +# Modified for Debian. Matt Zimmerman and Eloy Paris, December 2003 + +# update /etc/resolv.conf based on received values +make_resolv_conf() { + local new_resolv_conf + + if [ -n "$new_domain_name" ] || [ -n "$new_domain_name_servers" ]; then + new_resolv_conf=/etc/resolv.conf.dhclient-new + rm -f $new_resolv_conf + + if [ -n "$new_domain_name" ]; then + echo "search $new_domain_name" >>$new_resolv_conf + fi + + for nameserver in $new_domain_name_servers; do + echo "nameserver $nameserver" >>$new_resolv_conf + done + + mv $new_resolv_conf /etc/resolv.conf + fi +} + +set_hostname() { + local current_hostname + current_hostname=$(hostname) + + if [ -z "$current_hostname" ] || [ "$current_hostname" = "(none)" ]; then + hostname "$new_host_name" + fi +} + +# set up some variables for DHCP handlers below +if [ -n "$new_subnet_mask" ]; then + new_mask="/$(ptom $new_subnet_mask)" +fi +if [ -n "$old_subnet_mask" ]; then + old_mask="/$(ptom $old_subnet_mask)" +fi + +if [ -n "$new_broadcast_address" ]; then + new_broadcast_arg="broadcast $new_broadcast_address" +fi +if [ -n "$old_broadcast_address" ]; then + old_broadcast_arg="broadcast $old_broadcast_address" +fi + +# Execute the operation +case "$reason" in + MEDIUM|ARPCHECK|ARPSEND) + # Do nothing + ;; + PREINIT) + ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \ + broadcast 255.255.255.255 up + + # We need to give the kernel some time to get the interface up. + sleep 1 + + ;; + + BOUND|RENEW|REBIND|REBOOT) + set_hostname + + if [ -n "$old_ip_address" ] && + [ "$old_ip_address" != "$new_ip_address" ]; then + # IP address changed. Bringing down the interface will delete all routes, + # and clear the ARP cache. + ifconfig $interface inet -alias $old_ip_address $medium + route delete $old_ip_address 127.1 >/dev/null 2>&1 + ifconfig $interface inet 0 down + fi + + if [ -n "$new_interface_mtu" ]; then + ifconfig $interface mtu $new_interface_mtu || true + fi + + if [ -z "$old_ip_address" ] || + [ "$old_ip_address" != "$new_ip_address" ] || + [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then + + ifconfig $interface inet $new_ip_address $new_subnet_arg \ + $new_broadcast_arg $medium $mtu_arg + route add $new_ip_address 127.1 $metric_arg >/dev/null 2>&1 || true + for router in $new_routers; do + route add default $router >/dev/null 2>&1 + done + fi + + make_resolv_conf + + # Get the domain name into a file suitable for netcfg to read. + printf "$new_domain_name" > /tmp/domain_name + + if [ -n "$new_ntp_servers" ]; then + printf "$new_ntp_servers" > /tmp/dhcp-ntp-servers + fi + + ;; + + EXPIRE|FAIL|RELEASE|STOP) + if [ -n "$old_ip_address" ]; then + route delete $old_ip_address 127.1 >/dev/null 2>&1 + # Shut down interface, which will delete routes and clear arp cache. + ifconfig $interface inet 0 down + fi + + ;; + + TIMEOUT) + ifconfig $interface down + + ;; +esac + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/README.Debian +++ isc-dhcp-4.1.ESV-R4/debian/README.Debian @@ -0,0 +1,43 @@ +ISC DHCP for Debian +------------------- + +This is the Debian-packaged version of the Internet Software Consortium +(ISC) DHCP package. + +The sources of the ISC DHCP package produce the following Debian packages: + +isc-dhcp-common: Files used by all of the ISC DHCP packages +isc-dhcp-server: The DHCP server itself +isc-dhcp-server-dbg: Debugging symbols for the DHCP server +isc-dhcp-dev: API for accessing and modifying the DHCP server and client state +isc-dhcp-client: The DHCP client itself +isc-dhcp-client-dbg: Debugging symbols for the DHCP client +isc-dhcp-client-udeb: A stripped down DHCP client package for debian-installer +isc-dhcp-relay: The DHCP relay +isc-dhcp-relay-dbg: Debugging symbols for the DHCP relay +dhcp3-server: Dummy package for transitioning from v3 packages +dhcp3-client: Dummy package for transitioning from v3 packages +dhcp3-relay: Dummy package for transitioning from v3 packages +dhcp3-common: Dummy package for transitioning from v3 packages +dhcp3-dev: Dummy package for transitioning from v3 packages + +PLEASE NOTE: Upon upgrading isc-dhcp-client, dhclient is NOT restarted. +Therefore, after upgrading, the version of dhclient running will still be from +the previous version of isc-dhcp-client that was installed. + +The Debian ISC DHCP package is moving toward collaborative maintenance. If +you're interested in assisting with the maintenance of the package, see +http://alioth.debian.org/projects/pkg-dhcp + +Andrew Pollock +ISC DHCP Package Maintainers + + +Apparmor Profile +---------------- +If your system uses apparmor, please note that the shipped enforcing profiles +for isc-dhcp-server and isc-dhcp-client work with the default installation, and +changes in your configuration may require changes to the installed apparmor +profile. Please see https://wiki.ubuntu.com/DebuggingApparmor before filing a +bug against this software. + --- isc-dhcp-4.1.ESV-R4.orig/debian/debug-exit +++ isc-dhcp-4.1.ESV-R4/debian/debug-exit @@ -0,0 +1,37 @@ +# +# The purpose of this script is just to show the variables that are +# available to all the scripts in this directory. All these scripts +# are called from /etc/dhcp3/dhclient-script, which exports all the +# variables shown before. If you want to debug a problem with your DHCP +# setup you can enable this script and take a look at +# /tmp/dhclient-script.debug. + +# To enable this script set the following variable to "yes" +RUN="no" + +if [ "$RUN" = "yes" ]; then + echo `date`: entering dhclient-exit-hooks.d, dumping variables. \ + >> /tmp/dhclient-script.debug + + # loop over the 4 possible prefixes: (empty), cur_, new_, old_ + for prefix in '' 'cur_' 'new_' 'old_'; do + # loop over the DHCP variables passed to dhclient-script + for basevar in reason interface medium alias_ip_address \ + ip_address host_name network_number subnet_mask \ + broadcast_address routers static_routes \ + rfc3442_classless_static_routes \ + domain_name domain_search domain_name_servers \ + netbios_name_servers netbios_scope \ + ntp_servers \ + ip6_address ip6_prefix ip6_prefixlen \ + dhcp6_domain_search dhcp6_name_servers ; do + var="${prefix}${basevar}" + + if [ -n "${!var}" ]; then + echo "$var='${!var}'" >> /tmp/dhclient-script.debug + fi + done + done + + echo '--------------------------' >> /tmp/dhclient-script.debug +fi --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client-udeb.dirs +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client-udeb.dirs @@ -0,0 +1,3 @@ +sbin +etc +var/lib/dhcp --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server-ldap.postrm +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server-ldap.postrm @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +if [ "$1" = remove ]; then + dpkg-divert --package isc-dhcp-server-ldap --remove --rename \ + --divert /usr/sbin/dhcpd-noldap /usr/sbin/dhcpd +fi + +#DEBHELPER# --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client-udeb.install +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client-udeb.install @@ -0,0 +1 @@ +usr/sbin/dhclient sbin --- isc-dhcp-4.1.ESV-R4.orig/debian/dhcp3-server.postinst +++ isc-dhcp-4.1.ESV-R4/debian/dhcp3-server.postinst @@ -0,0 +1,47 @@ +#!/bin/sh +# postinst script for dhcp3-server +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + + # Remove the old init script if it's lying around + # see bug #594527 + + rm -f /etc/init.d/dhcp3-server + + # Also remove obsolete configuration file + rm -f /etc/default/dhcp3-server + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.templates +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.templates @@ -0,0 +1,27 @@ +# These templates have been reviewed by the debian-l10n-english +# team +# +# If modifications/additions/rewording are needed, please ask +# for an advice to debian-l10n-english@lists.debian.org +# +# Even minor modifications require translation updates and such +# changes should be coordinated with translators and reviewers. + +Template: isc-dhcp-server/config_warn +Type: note +_Description: Manual configuration required after installation + After the DHCP server is installed, you will need to manually configure it + by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf + supplied is just a sample, and must be adapted to the network environment. + . + Please configure the DHCP server as soon as the installation finishes. + +Template: isc-dhcp-server/interfaces +Type: string +_Description: Network interfaces on which the DHCP server should listen: + Please specify on which network interface(s) the DHCP server should + listen for DHCP requests. Multiple interface names should be entered + as a space-separated list. + . + The interfaces will be automatically detected if this field is left + blank. --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.postinst +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.postinst @@ -0,0 +1,94 @@ +#!/bin/sh +# +# Inspiration stolen from the fetchmail* packages. Thanks Henrique! +# +# + +set -e + +case "$1" in + configure) + # create system dhcpd user and group + adduser --system --quiet --no-create-home --home /var/run --group dhcpd + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + exit 0 + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +# Handle debconf +. /usr/share/debconf/confmodule + +INITCONFFILE=/etc/default/isc-dhcp-server + +# We generate several files during the postinst, and we don't want +# them to be readable only by root. +umask 022 + +# Generate configuration file if it does not exist, using default values. +[ -r "${INITCONFFILE}" ] || { + echo Generating ${INITCONFFILE}... >&2 + cat >${INITCONFFILE} <<'EOFMAGICNUMBER1234' +# Defaults for dhcp initscript +# sourced by /etc/init.d/dhcp +# installed at /etc/default/isc-dhcp-server by the maintainer scripts + +# +# This is a POSIX shell fragment +# + +# On what interfaces should the DHCP server (dhcpd) serve DHCP requests? +# Separate multiple interfaces with spaces, e.g. "eth0 eth1". +INTERFACES="" +EOFMAGICNUMBER1234 +} + +# ------------------------- Debconf questions start --------------------- + +db_get isc-dhcp-server/interfaces || true +INTERFACES="${RET}" + +TMPFILE=`mktemp -q ${INITCONFFILE}.new.XXXXXX` +sed -e "s,^[[:space:]]*INTERFACES[[:space:]]*=.*,INTERFACES=\"${INTERFACES}\"," \ + <${INITCONFFILE} >${TMPFILE} +cp ${TMPFILE} ${INITCONFFILE} +rm ${TMPFILE} + +# ------------------------- Debconf questions end --------------------- +db_stop + +if [ ! -e /var/lib/dhcp/dhcpd.leases ]; then + if test -e /var/lib/dhcp3/dhcpd.leases; then + cp /var/lib/dhcp3/dhcpd.leases /var/lib/dhcp/dhcpd.leases + else + touch /var/lib/dhcp/dhcpd.leases + fi +fi + +# If we're upgrading from dhcp3, copy the config and leases over to the new +# locations +if [ -z "$2" ]; then + if [ -f /etc/dhcp3/dhcpd.conf ]; then + cp /etc/dhcp3/dhcpd.conf /etc/dhcp/dhcpd.conf + fi + if [ -f /var/lib/dhcp3/dhcpd.leases ]; then + cp /var/lib/dhcp3/dhcpd.leases /var/lib/dhcp/dhcpd.leases + fi +fi + +[ -x /sbin/restorecon ] && restorecon /var/lib/dhcp/dhcpd.leases + +init_script_error_handler() +{ + return 0 +} + +#DEBHELPER# + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.postrm +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.postrm @@ -0,0 +1,37 @@ +#!/bin/sh +# +# + +set -e + +case "$1" in + remove) + # Nothing to do + ;; + + purge) + # Remove database + rm -f /var/lib/dhcp/dhcpd.leases /var/lib/dhcp/dhcpd.leases~ + + # Remove database directory + if [ -d /var/lib/dhcp ]; then + rmdir --ignore-fail-on-non-empty /var/lib/dhcp/ + fi + + # Remove init.d configuration file + rm -f /etc/default/isc-dhcp-server + ;; + + upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + # Nothing to do + ;; +esac + +init_script_error_handler() +{ + return 0 +} + +#DEBHELPER# + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-common.dirs +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-common.dirs @@ -0,0 +1,2 @@ +usr/share/man/ja/man8 +usr/share/man/ja/man5 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.lintian-overrides +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.lintian-overrides @@ -0,0 +1 @@ +isc-dhcp-relay: possible-gpl-code-linked-with-openssl --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client.links +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client.links @@ -0,0 +1,3 @@ +sbin/dhclient sbin/dhclient3 +usr/share/man/man8/dhclient.8.gz usr/share/man/man8/dhclient3.8.gz +etc/apparmor.d/sbin.dhclient etc/apparmor/init/network-interface-security/sbin.dhclient --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client.apport +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client.apport @@ -0,0 +1,50 @@ +#!/usr/bin/python + +'''apport hook for dhclient + +(c) 2010 Canonical Ltd. +Author: Chuck Short + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2 of the License, or (at your +option) any later version. See http://www.gnu.org/copyleft/gpl.html for +the full text of the license. +''' + +from apport.hookutils import * +from os import path +import re + +def dhcp_leases(pattern): + ''' Extract options from '/var/lib/dhcp/dhclient.leases' which match a regex. + pattern should be a "re" object. ''' + lines = "" + if os.path.exists('/var/lib/dhcp/dhclient.leases'): + file = '/var/lib/dhcp/dhclient.leases' + else: + return lines + + for line in open(file): + if pattern.search(line): + lines += line + return lines + +def add_info(report, ui): + response = ui.yesno("The contents of your /etc/dhcp/dhclient.conf file may help developers diagnose your bug more quickly, however, it may contain sensitive information. Do you want to include it in your bug report?") + + if response == None: #user cancelled + raise StopIteration + + elif response == True: + attach_file_if_exists(report, '/etc/dhcp/dhclient.conf', 'Dhclient') + + attach_mac_events(report) + + attach_related_packages(report, ['apparmor', 'libapparmor1', + 'libapparmor-perl', 'apparmor-utils', 'auditd', 'libaudit0']) + + attach_file(report, '/etc/apparmor.d/sbin.dhclient') + + leases = re.compile('option|renew|rebind|expire', re.IGNORECASE) + report['DhclientLeases'] = dhcp_leases(leases) --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.isc-dhcp-relay6.upstart +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.isc-dhcp-relay6.upstart @@ -0,0 +1,40 @@ +description "ISC DHCP IPv6 relay" +author "Stéphane Graber " + +start on runlevel [2345] +stop on runlevel [!2345] + +pre-start script + if [ ! -f /etc/default/isc-dhcp-relay6 ]; then + echo "/etc/default/isc-dhcp-relay6 does not exist! - Aborting..." + stop + exit 0 + fi + + . /etc/default/isc-dhcp-relay6 + if [ -z "$LOWER_INTERFACES" ] || [ -z "$UPPER_INTERFACES" ]; then + echo "No interface defined in /etc/default/isc-dhcp-relay6! - Aborting..." + stop + exit 0 + fi +end script + +respawn +script + . /etc/default/isc-dhcp-relay6 + + # Build command line for interfaces (will be passed to dhrelay below.) + IFCMD="" + if test "$LOWER_INTERFACES" != ""; then + for I in $LOWER_INTERFACES; do + IFCMD=${IFCMD}"-l "${I}" " + done + fi + if test "$UPPER_INTERFACES" != ""; then + for I in $UPPER_INTERFACES; do + IFCMD=${IFCMD}"-u "${I}" " + done + fi + + exec /usr/sbin/dhcrelay -d -q -6 $OPTIONS $IFCMD +end script --- isc-dhcp-4.1.ESV-R4.orig/debian/compat +++ isc-dhcp-4.1.ESV-R4/debian/compat @@ -0,0 +1 @@ +7 --- isc-dhcp-4.1.ESV-R4.orig/debian/dhclient-script.kfreebsd +++ isc-dhcp-4.1.ESV-R4/debian/dhclient-script.kfreebsd @@ -0,0 +1,259 @@ +#!/bin/bash +# dhclient-script for GNU/kFreeBSD. Aurelien Jarno, May, 2005. +# Based on Linux and FreeBSD scripts. + +# update /etc/resolv.conf based on received values +make_resolv_conf() { + local new_resolv_conf + + if [ -n "$new_domain_search" ] || [ -n "$new_domain_name" ] || + [ -n "$new_domain_name_servers" ]; then + new_resolv_conf=/etc/resolv.conf.dhclient-new + rm -f $new_resolv_conf + + if [ -n "$new_domain_name" ]; then + echo domain ${new_domain_name%% *} >>$new_resolv_conf + fi + + if [ -n "$new_domain_search" ]; then + if [ -n "$new_domain_name" ]; then + new_domain_search="$new_domain_name $new_domain_search" + fi + echo "search ${new_domain_search}" >> $new_resolv_conf + elif [ -n "$new_domain_name" ]; then + echo "search ${new_domain_name}" >> $new_resolv_conf + fi + + if [ -n "$new_domain_name_servers" ]; then + for nameserver in $new_domain_name_servers; do + echo nameserver $nameserver >>$new_resolv_conf + done + else # keep 'old' nameservers + sed -n /^\w*[Nn][Aa][Mm][Ee][Ss][Ee][Rr][Vv][Ee][Rr]/p /etc/resolv.conf >>$new_resolv_conf + fi + + chown --reference=/etc/resolv.conf $new_resolv_conf + chmod --reference=/etc/resolv.conf $new_resolv_conf + mv -f $new_resolv_conf /etc/resolv.conf + fi +} + +# run given script +run_hook() { + local script + local exit_status + script="$1" + shift # discard the first argument, then the rest are the script's + + if [ -f $script ]; then + . $script "$@" + fi + + if [ -n "$exit_status" ] && [ "$exit_status" -ne 0 ]; then + logger -p daemon.err "$script returned non-zero exit status $exit_status" + fi + + return $exit_status +} + +# run scripts in given directory +run_hookdir() { + local dir + local exit_status + dir="$1" + shift # See run_hook + + if [ -d "$dir" ]; then + for script in $(run-parts --list $dir); do + run_hook $script "$@" || true + exit_status=$? + done + fi + + return $exit_status +} + +# Must be used on exit. Invokes the local dhcp client exit hooks, if any. +exit_with_hooks() { + exit_status=$1 + + # Source the documented exit-hook script, if it exists + if ! run_hook /etc/dhcp/dhclient-exit-hooks "$@"; then + exit_status=$? + fi + + # Now run scripts in the Debian-specific directory. + if ! run_hookdir /etc/dhcp/dhclient-exit-hooks.d "$@"; then + exit_status=$? + fi + + exit $exit_status +} + + +# set up some variables for DHCPv4 handlers below +if [ -n "$new_broadcast_address" ]; then + new_broadcast_arg="broadcast $new_broadcast_address" +fi +if [ -n "$old_broadcast_address" ]; then + old_broadcast_arg="broadcast $old_broadcast_address" +fi +if [ -n "$new_subnet_mask" ]; then + new_subnet_arg="netmask $new_subnet_mask" +fi +if [ -n "$alias_subnet_mask" ]; then + alias_subnet_arg="netmask $alias_subnet_mask" +fi +if [ -n "$new_interface_mtu" ] && [ $new_interface_mtu -ge 575 ]; then + mtu_arg="mtu $new_interface_mtu" +fi +if [ -n "$IF_METRIC" ]; then + metric_arg="metric $IF_METRIC" # interfaces(5), "metric" option +fi + + +# The action starts here + +# Invoke the local dhcp client enter hooks, if they exist. +run_hook /etc/dhcp/dhclient-enter-hooks +run_hookdir /etc/dhcp/dhclient-enter-hooks.d + +# Execute the operation +case "$reason" in + MEDIUM|ARPCHECK|ARPSEND) + # Do nothing + ;; + PREINIT) + # The DHCP client is requesting that an interface be + # configured as required in order to send packets prior to + # receiving an actual address. - dhclient-script(8) + if [ -n "$alias_ip_address" ]; then + ifconfig $interface inet -alias $alias_ip_address > /dev/null 2>&1 + route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1 + fi + + ifconfig $interface inet 0.0.0.0 netmask 0.0.0.0 \ + broadcast 255.255.255.255 up + + ;; + + BOUND|RENEW|REBIND|REBOOT) + if [ -n "$old_host_name" ] && [ -n "$new_host_name" ] && + [ "$old_host_name" != "$new_host_name" ]; then + hostname "$new_host_name" + fi + + if [ -n "$old_ip_address" ] && [ -n "$alias_ip_address" ] && + [ "$alias_ip_address" != "$old_ip_address" ]; then + # Possible new alias. Remove old alias. + ifconfig $interface inet -alias $alias_ip_address > /dev/null 2>&1 + route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1 + fi + + if [ -n "$old_ip_address" ] && + [ "$old_ip_address" != "$new_ip_address" ]; then + ifconfig $interface inet -alias $old_ip_address $medium + route delete $old_ip_address 127.1 >/dev/null 2>&1 + # IP address changed. Bringing down the interface will delete all other + # route, and clear the ARP cache. + ifconfig $interface inet 0 down + fi + + # point to point + if [ "$new_subnet_mask" = "255.255.255.255" ]; then + for router in $new_routers; do + route add $router $new_ip_address + done + fi + + if [ -z "$old_ip_address" ] || + [ "$old_ip_address" != "$new_ip_address" ] || + [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then + ifconfig $interface inet $new_ip_address $new_subnet_arg \ + $new_broadcast_arg $medium $mtu_arg + route add $new_ip_address 127.1 $metric_arg >/dev/null 2>&1 + + for router in $new_routers; do + route add default $router >/dev/null 2>&1 + done + + if [ -n "$new_static_routes" ]; then + set -- $new_static_routes + while [ $# -gt 1 ]; do + route add $1 $2 + shift; shift + done + fi + fi + + if [ -n "$alias_ip_address" ] && + [ "$new_ip_address" != "$alias_ip_address" ]; then + ifconfig $interface inet alias $alias_ip_address $alias_subnet_arg + route add $alias_ip_address 127.0.0.1 + fi + + make_resolv_conf + + ;; + + EXPIRE|FAIL|RELEASE|STOP) + if [ -n "$alias_ip_address" ]; then + # Turn off alias interface. + ifconfig $interface inet -alias $alias_ip_address > /dev/null 2>&1 + route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1 + fi + + if [ -n "$old_ip_address" ]; then + ifconfig $interface inet -alias $old_ip_address $medium + route delete $old_ip_address 127.1 >/dev/null 2>&1 + # Shut down interface, which will delete all other routes and clear arp cache. + ifconfig $interface inet 0 down + fi + + if [ -n "$alias_ip_address" ]; then + ifconfig $interface inet alias $alias_ip_address $alias_subnet_arg + route add $alias_ip_address 127.0.0.1 + fi + + ;; + + TIMEOUT) + if [ -n "$alias_ip_address" ]; then + ifconfig $interface inet -alias $alias_ip_address > /dev/null 2>&1 + route delete $alias_ip_address 127.0.0.1 > /dev/null 2>&1 + fi + + ifconfig $interface inet $new_ip_address $new_subnet_arg \ + $new_broadcast_arg $medium $mtu_arg + + set -- $new_routers + first_router="$1" + + if [ -z "$first_router" ] || ping -q -c 1 $first_router; then + if [ -n "$alias_ip_address" ] && + [ "$new_ip_address" != "$alias_ip_address" ]; then + ifconfig $interface inet alias $alias_ip_address $alias_subnet_arg + route add $alias_ip_address 127.0.0.1 + fi + route add $new_ip_address 127.1 >/dev/null 2>&1 + + for router in $new_routers; do + route add default $router $metric_arg + done + set -- $new_static_routes + while [ $# -gt 1 ]; do + route add $1 $2 + shift; shift + done + + make_resolv_conf + else + # Changed from 'ifconfig $interface inet 0 down' - see Debian bug #144666 + ifconfig $interface inet 0 + exit_with_hooks 2 "$@" + fi + + ;; +esac + +exit_with_hooks 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.isc-dhcp-relay.upstart +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.isc-dhcp-relay.upstart @@ -0,0 +1,29 @@ +description "ISC DHCP IPv4 relay" +author "Stéphane Graber " + +start on runlevel [2345] +stop on runlevel [!2345] + +pre-start script + if [ ! -f /etc/default/isc-dhcp-relay ]; then + echo "/etc/default/isc-dhcp-relay does not exist! - Aborting..." + echo "Run 'dpkg-reconfigure isc-dhcp-relay' to fix the problem." + stop + exit 0 + fi +end script + +respawn +script + . /etc/default/isc-dhcp-relay + + # Build command line for interfaces (will be passed to dhrelay below.) + IFCMD="" + if test "$INTERFACES" != ""; then + for I in $INTERFACES; do + IFCMD=${IFCMD}"-i "${I}" " + done + fi + + exec /usr/sbin/dhcrelay -d -q -4 $OPTIONS $IFCMD $SERVERS +end script --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.init.d +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.init.d @@ -0,0 +1,56 @@ +#!/bin/sh +# +# + +### BEGIN INIT INFO +# Provides: isc-dhcp-relay +# Required-Start: $remote_fs $network +# Required-Stop: $remote_fs $network +# Should-Start: $local_fs +# Should-Stop: $local_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: DHCP relay +# Description: Dynamic Host Configuration Protocol Relay +### END INIT INFO + +# It is not safe to start if we don't have a default configuration... +if [ ! -f /etc/default/isc-dhcp-relay ]; then + echo "/etc/default/isc-dhcp-relay does not exist! - Aborting..." + echo "Run 'dpkg-reconfigure isc-dhcp-relay' to fix the problem." + exit 1 +fi + +# Read init script configuration (interfaces the daemon should listen on +# and the DHCP server we should forward requests to.) +[ -f /etc/default/isc-dhcp-relay ] && . /etc/default/isc-dhcp-relay + +# Build command line for interfaces (will be passed to dhrelay below.) +IFCMD="" +if test "$INTERFACES" != ""; then + for I in $INTERFACES; do + IFCMD=${IFCMD}"-i "${I}" " + done +fi + +DHCRELAYPID=/var/run/dhcrelay.pid + +case "$1" in + start) + start-stop-daemon --start --quiet --pidfile $DHCRELAYPID \ + --exec /usr/sbin/dhcrelay -- -q $OPTIONS $IFCMD $SERVERS + ;; + stop) + start-stop-daemon --stop --quiet --pidfile $DHCRELAYPID + ;; + restart | force-reload) + $0 stop + sleep 2 + $0 start + ;; + *) + echo "Usage: /etc/init.d/isc-dhcp-relay {start|stop|restart|force-reload}" + exit 1 +esac + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client.lintian-overrides +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client.lintian-overrides @@ -0,0 +1 @@ +isc-dhcp-client: possible-gpl-code-linked-with-openssl --- isc-dhcp-4.1.ESV-R4.orig/debian/dhclient-script.linux +++ isc-dhcp-4.1.ESV-R4/debian/dhclient-script.linux @@ -0,0 +1,403 @@ +#!/bin/bash + +# Explicitly set the PATH to that of ENV_SUPATH in /etc/login.defs and unset +# various other variables. We need to do this so /sbin/dhclient cannot abuse +# the environment to escape AppArmor confinement via this script +# (LP: #1045986). This can be removed once AppArmor supports environment +# filtering (LP: #1045985) +export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +export ENV= +export BASH_ENV= +export CDPATH= +export GLOBIGNORE= +export BASH_XTRACEFD= + +# dhclient-script for Linux. Dan Halbert, March, 1997. +# Updated for Linux 2.[12] by Brian J. Murrell, January 1999. +# Modified for Debian. Matt Zimmerman and Eloy Paris, December 2003 +# Modified to remove useless tests for antiquated kernel versions that +# this doesn't even work with anyway, and introduces a dependency on /usr +# being mounted, which causes cosmetic errors on hosts that NFS mount /usr +# Andrew Pollock, February 2005 +# Modified to work on point-to-point links. Andrew Pollock, June 2005 +# Modified to support passing the parameters called with to the hooks. Andrew Pollock, November 2005 + +# The alias handling in here probably still sucks. -mdz + +# wait for given file to be writable +wait_for_rw() { + local file=$1 + # Find out whether we are going to mount / rw + exec 9>&0 &9 9>&- + + # Wait for $file to become writable + if [ "$rootmode" = "rw" ]; then + while ! { : >> "$file"; } 2>/dev/null; do + sleep 0.1 + done + fi +} + +# update /etc/resolv.conf based on received values +make_resolv_conf() { + local old_ns="" resolv_conf="" new_resolv_conf="" + [ -e /etc/resolv.conf ] && old_ns=$(grep -i '^nameserver' /etc/resolv.conf) + + resolv_conf=$(readlink -f "/etc/resolv.conf" 2>/dev/null) || + resolv_conf="/etc/resolv.conf" + + # write to temp file in same directory as target + new_resolv_conf="${resolv_conf}.dhclient-new.$$" + + # DHCPv4 + if [ -n "$new_domain_search" ] || [ -n "$new_domain_name" ] || + [ -n "$new_domain_name_servers" ]; then + wait_for_rw "$new_resolv_conf" + + { + if [ -n "$new_domain_name" ]; then + echo domain ${new_domain_name%% *} + fi + + if [ -n "$new_domain_search" ]; then + if [ -n "$new_domain_name" ]; then + domain_in_search_list="" + for domain in $new_domain_search; do + if [ "$domain" = "${new_domain_name}" ] || + [ "$domain" = "${new_domain_name}." ]; then + domain_in_search_list="Yes" + fi + done + if [ -z "$domain_in_search_list" ]; then + new_domain_search="$new_domain_name $new_domain_search" + fi + fi + echo "search ${new_domain_search}" + elif [ -n "$new_domain_name" ]; then + echo "search ${new_domain_name}" + fi + + if [ -n "$new_domain_name_servers" ]; then + for nameserver in $new_domain_name_servers; do + echo nameserver $nameserver + done + elif [ -n "$old_ns" ]; then # keep 'old' nameservers + echo "$old_ns" + fi + } > "$new_resolv_conf" + # DHCPv6 + elif [ -n "$new_dhcp6_domain_search" ] || [ -n "$new_dhcp6_name_servers" ]; then + wait_for_rw "$new_resolv_conf" + + { + if [ -n "$new_dhcp6_domain_search" ]; then + echo "search ${new_dhcp6_domain_search}" + fi + + if [ -n "$new_dhcp6_name_servers" ]; then + for nameserver in $new_dhcp6_name_servers; do + echo nameserver $nameserver + done + elif [ -n "$old_ns" ]; then # keep 'old' nameservers + echo "$old_ns" + fi + } > "$new_resolv_conf" + fi + + [ -e "$resolv_conf" ] && + chmod --reference="$resolv_conf" "$new_resolv_conf" && + chown --reference="$resolv_conf" "$new_resolv_conf" + + mv "$new_resolv_conf" "$resolv_conf" || + { rm -f "$new_resolv_conf"; return 1; } +} + +# run given script +run_hook() { + local script + local exit_status + script="$1" + shift # discard the first argument, then the rest are the script's + + if [ -f $script ]; then + . $script "$@" + fi + + if [ -n "$exit_status" ] && [ "$exit_status" -ne 0 ]; then + logger -p daemon.err "$script returned non-zero exit status $exit_status" + fi + + return $exit_status +} + +# run scripts in given directory +run_hookdir() { + local dir + local exit_status + dir="$1" + shift # See run_hook + + if [ -d "$dir" ]; then + for script in $(run-parts --list $dir); do + run_hook $script "$@" || true + exit_status=$? + done + fi + + return $exit_status +} + +# Must be used on exit. Invokes the local dhcp client exit hooks, if any. +exit_with_hooks() { + exit_status=$1 + + # Source the documented exit-hook script, if it exists + if ! run_hook /etc/dhcp/dhclient-exit-hooks "$@"; then + exit_status=$? + fi + + # Now run scripts in the Debian-specific directory. + if ! run_hookdir /etc/dhcp/dhclient-exit-hooks.d "$@"; then + exit_status=$? + fi + + exit $exit_status +} + + +# set up some variables for DHCPv4 handlers below +if [ -n "$new_broadcast_address" ]; then + new_broadcast_arg="broadcast $new_broadcast_address" +fi +if [ -n "$old_broadcast_address" ]; then + old_broadcast_arg="broadcast $old_broadcast_address" +fi +if [ -n "$new_subnet_mask" ]; then + new_mask="/$new_subnet_mask" +fi +if [ -n "$alias_subnet_mask" ]; then + alias_mask="/$alias_subnet_mask" +fi +# The 576 MTU is only used for X.25 and dialup connections +# where the admin wants low latency. Such a low MTU can cause +# problems with UDP traffic, among other things. As such, +# disallow MTUs from 576 and below by default, so that broken +# MTUs are ignored, but higher stuff is allowed (1492, 1500, etc). +if [ -z "$new_interface_mtu" ] || [ "$new_interface_mtu" -lt 576 ]; then + new_interface_mtu='' +fi +if [ -n "$IF_METRIC" ]; then + metric_arg="metric $IF_METRIC" # interfaces(5), "metric" option +fi + + +# The action starts here + +# Invoke the local dhcp client enter hooks, if they exist. +run_hook /etc/dhcp/dhclient-enter-hooks +run_hookdir /etc/dhcp/dhclient-enter-hooks.d + +# Execute the operation +case "$reason" in + + ### DHCPv4 Handlers + + MEDIUM|ARPCHECK|ARPSEND) + # Do nothing + ;; + PREINIT) + # The DHCP client is requesting that an interface be + # configured as required in order to send packets prior to + # receiving an actual address. - dhclient-script(8) + + # ensure interface is up + ip link set dev ${interface} up + + if [ -n "$alias_ip_address" ]; then + # flush alias IP from interface + ip -4 addr flush dev ${interface} label ${interface}:0 + fi + + ;; + BOUND|RENEW|REBIND|REBOOT) + if [ -n "$old_host_name" ] && [ ! -s /etc/hostname ]; then + # hostname changed => set it + hostname "$new_host_name" + fi + + if [ -n "$old_ip_address" ] && [ -n "$alias_ip_address" ] && + [ "$alias_ip_address" != "$old_ip_address" ]; then + # alias IP may have changed => flush it + ip -4 addr flush dev ${interface} label ${interface}:0 + fi + + if [ -n "$old_ip_address" ] && + [ "$old_ip_address" != "$new_ip_address" ]; then + # leased IP has changed => flush it + ip -4 addr flush dev ${interface} label ${interface} + fi + + if [ -z "$old_ip_address" ] || + [ "$old_ip_address" != "$new_ip_address" ] || + [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then + # new IP has been leased or leased IP changed => set it + ip -4 addr add ${new_ip_address}${new_mask} ${new_broadcast_arg} \ + dev ${interface} label ${interface} + + if [ -n "$new_interface_mtu" ]; then + # set MTU + ip link set dev ${interface} mtu ${new_interface_mtu} + fi + + for router in $new_routers; do + if [ "$new_subnet_mask" = "255.255.255.255" ]; then + # point-to-point connection => set explicit route + ip -4 route add ${router} dev $interface >/dev/null 2>&1 + fi + + # set default route + ip -4 route add default via ${router} dev ${interface} \ + ${metric_arg} >/dev/null 2>&1 + done + fi + + if [ -n "$alias_ip_address" ] && + [ "$new_ip_address" != "$alias_ip_address" ]; then + # separate alias IP given, which may have changed + # => flush it, set it & add host route to it + ip -4 addr flush dev ${interface} label ${interface}:0 + ip -4 addr add ${alias_ip_address}${alias_mask} \ + dev ${interface} label ${interface}:0 + ip -4 route add ${alias_ip_address} dev ${interface} >/dev/null 2>&1 + fi + + # update /etc/resolv.conf + make_resolv_conf + + ;; + + EXPIRE|FAIL|RELEASE|STOP) + if [ -n "$alias_ip_address" ]; then + # flush alias IP + ip -4 addr flush dev ${interface} label ${interface}:0 + fi + + if [ -n "$old_ip_address" ]; then + # flush leased IP + ip -4 addr flush dev ${interface} label ${interface} + fi + + if [ -n "$alias_ip_address" ]; then + # alias IP given => set it & add host route to it + ip -4 addr add ${alias_ip_address}${alias_network_arg} \ + dev ${interface} label ${interface}:0 + ip -4 route add ${alias_ip_address} dev ${interface} >/dev/null 2>&1 + fi + + ;; + + TIMEOUT) + if [ -n "$alias_ip_address" ]; then + # flush alias IP + ip -4 addr flush dev ${interface} label ${interface}:0 + fi + + # set IP from recorded lease + ip -4 addr add ${new_ip_address}${new_mask} ${new_broadcast_arg} \ + dev ${interface} label ${interface} + + if [ -n "$new_interface_mtu" ]; then + # set MTU + ip link set dev ${interface} mtu ${new_interface_mtu} + fi + + # if there is no router recorded in the lease or the 1st router answers pings + if [ -z "$new_routers" ] || ping -q -c 1 "${new_routers%% *}"; then + if [ -n "$alias_ip_address" ] && + [ "$new_ip_address" != "$alias_ip_address" ]; then + # separate alias IP given => set up the alias IP & add host route to it + ip -4 addr add ${alias_ip_address}${alias_mask} \ + dev ${interface} label ${interface}:0 + ip -4 route add ${alias_ip_address} dev ${interface} >/dev/null 2>&1 + fi + + # set default route + for router in $new_routers; do + ip -4 route add default via ${router} dev ${interface} \ + ${metric_arg} >/dev/null 2>&1 + done + + # update /etc/resolv.conf + make_resolv_conf + else + # flush all IPs from interface + ip -4 addr flush dev ${interface} + exit_with_hooks 2 "$@" + fi + + ;; + + ### DHCPv6 Handlers + # TODO handle prefix change: ?based on ${old_ip6_prefix} and ${new_ip6_prefix}? + + PREINIT6) + # ensure interface is up + ip link set ${interface} up + + # flush any stale global permanent IPs from interface + ip -6 addr flush dev ${interface} scope global permanent + + ;; + + BOUND6|RENEW6|REBIND6) + if [ -z "${new_ip6_address}" ] || [ -z "${new_ip6_prefixlen}" ]; then + exit_with_hooks 2 + fi + + # set leased IP + ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \ + dev ${interface} scope global + + # update /etc/resolv.conf + if [ "${reason}" = BOUND6 ] || + [ "${new_dhcp6_name_servers}" != "${old_dhcp6_name_servers}" ] || + [ "${new_dhcp6_domain_search}" != "${old_dhcp6_domain_search}" ]; then + make_resolv_conf + fi + + ;; + + DEPREF6) + if [ -z "${cur_ip6_prefixlen}" ]; then + exit_with_hooks 2 + fi + + # set preferred lifetime of leased IP to 0 + ip -6 addr change ${cur_ip6_address}/${cur_ip6_prefixlen} \ + dev ${interface} scope global preferred_lft 0 + + ;; + + EXPIRE6|RELEASE6|STOP6) + if [ -z "${old_ip6_address}" ] || [ -z "${old_ip6_prefixlen}" ]; then + exit_with_hooks 2 + fi + + # delete leased IP + ip -6 addr del ${old_ip6_address}/${old_ip6_prefixlen} \ + dev ${interface} + + ;; +esac + +exit_with_hooks 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/rfc3442-classless-routes +++ isc-dhcp-4.1.ESV-R4/debian/rfc3442-classless-routes @@ -0,0 +1,59 @@ +# set classless routes based on the format specified in RFC3442 +# e.g.: +# new_rfc3442_classless_static_routes='24 192 168 10 192 168 1 1 8 10 10 17 66 41' +# specifies the routes: +# 192.168.10.0/24 via 192.168.1.1 +# 10.0.0.0/8 via 10.10.17.66.41 + +RUN="yes" + + +if [ "$RUN" = "yes" ]; then + if [ -n "$new_rfc3442_classless_static_routes" ]; then + if [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then + + set -- $new_rfc3442_classless_static_routes + + while [ $# -gt 0 ]; do + net_length=$1 + + case $net_length in + 32|31|30|29|28|27|26|25) + net_address="${2}.${3}.${4}.${5}" + gateway="${6}.${7}.${8}.${9}" + shift 9 + ;; + 24|23|22|21|20|19|18|17) + net_address="${2}.${3}.${4}.0" + gateway="${5}.${6}.${7}.${8}" + shift 8 + ;; + 16|15|14|13|12|11|10|9) + net_address="${2}.${3}.0.0" + gateway="${4}.${5}.${6}.${7}" + shift 7 + ;; + 8|7|6|5|4|3|2|1) + net_address="${2}.0.0.0" + gateway="${3}.${4}.${5}.${6}" + shift 6 + ;; + 0) # default route + net_address="0.0.0.0" + gateway="${2}.${3}.${4}.${5}" + shift 5 + ;; + *) # error + return 1 + ;; + esac + + if [ "$net_length" -eq 32 ]; then + /sbin/route add -host "${net_address}" gw "${gateway}" + else + /sbin/route add -net "${net_address}/${net_length}" gw "${gateway}" + fi + done + fi + fi +fi --- isc-dhcp-4.1.ESV-R4.orig/debian/dhcp3-client.postrm +++ isc-dhcp-4.1.ESV-R4/debian/dhcp3-client.postrm @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +if [ "$1" = "purge" ]; then + # Remove old lease database + rm -f /var/lib/dhcp3/dhclient.*leases* + + # Try to remove old directory + if [ -d /var/lib/dhcp3 ]; then + rmdir --ignore-fail-on-non-empty /var/lib/dhcp3/ + fi +fi + +#DEBHELPER# --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-common.lintian-overrides +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-common.lintian-overrides @@ -0,0 +1 @@ +isc-dhcp-common: possible-gpl-code-linked-with-openssl --- isc-dhcp-4.1.ESV-R4.orig/debian/dhcp3-relay.postinst +++ isc-dhcp-4.1.ESV-R4/debian/dhcp3-relay.postinst @@ -0,0 +1,45 @@ +#!/bin/sh +# postinst script for dhcp3-relay +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `configure' +# * `abort-upgrade' +# * `abort-remove' `in-favour' +# +# * `abort-remove' +# * `abort-deconfigure' `in-favour' +# `removing' +# +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + configure) + + # Preemptively remove obsolete dhcp3-relay init script (see #594527) + rm -f /etc/init.d/dhcp3-relay + + # Also remove obsolete configuration file + rm -f /etc/default/dhcp3-relay + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/dhcp3-server.postrm +++ isc-dhcp-4.1.ESV-R4/debian/dhcp3-server.postrm @@ -0,0 +1,30 @@ +#!/bin/sh + +set -e + +case "$1" in + remove) + # nothing to do + ;; + + purge) + # Remove old database + rm -f /var/lib/dhcp3/dhcpd.leases /var/lib/dhcp3/dhcpd.leases~ + + # Remove old database directory + if [ -d /var/lib/dhcp3 ]; then + rmdir --ignore-fail-on-non-empty /var/lib/dhcp3/ + fi + + # Remove init.d configuration file + rm -f /etc/default/dhcp3-server + ;; + + upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + # Nothing to do + ;; +esac + +#DEBHELPER# + +exit 0 --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server.isc-dhcp-server6.upstart +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server.isc-dhcp-server6.upstart @@ -0,0 +1,57 @@ +description "ISC DHCP IPv6 server" +author "Stéphane Graber " + +start on runlevel [2345] +stop on runlevel [!2345] + +pre-start script + if [ ! -f /etc/default/isc-dhcp-server ]; then + echo "/etc/default/isc-dhcp-server does not exist! - Aborting..." + echo "Run 'dpkg-reconfigure isc-dhcp-server' to fix the problem." + stop + exit 0 + fi + . /etc/default/isc-dhcp-server + + if [ -f /etc/ltsp/dhcpd6.conf ]; then + CONFIG_FILE=/etc/ltsp/dhcpd6.conf + else + CONFIG_FILE=/etc/dhcp/dhcpd6.conf + fi + if [ ! -f $CONFIG_FILE ]; then + echo "$CONFIG_FILE does not exist! - Aborting..." + echo "Please create and configure $CONFIG_FILE to fix the problem." + stop + exit 0 + fi + + if ! /usr/sbin/dhcpd -t -q -6 -cf $CONFIG_FILE > /dev/null 2>&1; then + echo "dhcpd self-test failed. Please fix the config file." + echo "The error was: " + /usr/sbin/dhcpd -t -6 -cf $CONFIG_FILE + stop + exit 0 + fi +end script + +respawn +script + if [ -f /etc/ltsp/dhcpd6.conf ]; then + CONFIG_FILE=/etc/ltsp/dhcpd6.conf + else + CONFIG_FILE=/etc/dhcp/dhcpd6.conf + fi + + . /etc/default/isc-dhcp-server + + # Allow dhcp server to write lease and pid file + mkdir -p /var/run/dhcp-server + chown dhcpd:dhcpd /var/run/dhcp-server + [ -e /var/lib/dhcp/dhcpd6.leases ] || touch /var/lib/dhcp/dhcpd6.leases + chown dhcpd:dhcpd /var/lib/dhcp /var/lib/dhcp/dhcpd6.leases + if [ -e /var/lib/dhcp/dhcpd6.leases~ ]; then + chown dhcpd:dhcpd /var/lib/dhcp/dhcpd6.leases~ + fi + + exec /usr/sbin/dhcpd -f -q -6 -pf /run/dhcp-server/dhcpd6.pid -cf $CONFIG_FILE $INTERFACES +end script --- isc-dhcp-4.1.ESV-R4.orig/debian/apparmor-profile.dhclient +++ isc-dhcp-4.1.ESV-R4/debian/apparmor-profile.dhclient @@ -0,0 +1,73 @@ +# vim:syntax=apparmor +# Last Modified: Fri Jul 17 11:46:19 2009 +# Author: Jamie Strandboge +#include + +/sbin/dhclient { + #include + #include + + capability net_bind_service, + capability net_raw, + capability sys_module, + capability dac_override, + + network packet, + network raw, + + @{PROC}/[0-9]*/net/ r, + @{PROC}/[0-9]*/net/** r, + + /sbin/dhclient mr, + + /etc/dhclient.conf r, + /etc/dhcp/ r, + /etc/dhcp/** r, + + /var/lib/dhcp{,3}/dhclient* lrw, + /{,var/}run/dhclient*.pid lrw, + /{,var/}run/dhclient*.lease* lrw, + + # NetworkManager + /{,var/}run/nm*conf r, + /{,var/}run/sendsigs.omit.d/network-manager.dhclient*.pid lrw, + + # connman + /{,var/}run/connman/dhclient*.pid lrw, + /{,var/}run/connman/dhclient*.leases lrw, + + # synce-hal + /usr/share/synce-hal/dhclient.conf r, + + # if there is a custom script, let it run unconfined + /etc/dhcp/dhclient-script Uxr, + + # The dhclient-script shell script sources other shell scripts rather than + # executing them, so we can't just use a separate profile for dhclient-script + # with 'Uxr' on the hook scripts. However, for the long-running dhclient3 + # daemon to run arbitrary code via /sbin/dhclient-script, it would need to be + # able to subvert dhclient-script or write to the hooks.d directories. As + # such, if the dhclient3 daemon is subverted, this effectively limits it to + # only being able to run the hooks scripts. + /sbin/dhclient-script Uxr, + + # Run the ELF executables under their own unrestricted profiles + /usr/lib/NetworkManager/nm-dhcp-client.action Pxr, + /usr/lib/connman/scripts/dhclient-script Pxr, + + # Site-specific additions and overrides. See local/README for details. + #include +} + +/usr/lib/NetworkManager/nm-dhcp-client.action { + #include + #include + /usr/lib/NetworkManager/nm-dhcp-client.action mr, +} + +/usr/lib/connman/scripts/dhclient-script { + #include + #include + /usr/lib/connman/scripts/dhclient-script mr, +} + --- isc-dhcp-4.1.ESV-R4.orig/debian/dhclient.conf +++ isc-dhcp-4.1.ESV-R4/debian/dhclient.conf @@ -0,0 +1,55 @@ +# Configuration file for /sbin/dhclient, which is included in Debian's +# dhcp3-client package. +# +# This is a sample configuration file for dhclient. See dhclient.conf's +# man page for more information about the syntax of this file +# and a more comprehensive list of the parameters understood by +# dhclient. +# +# Normally, if the DHCP server provides reasonable information and does +# not leave anything out (like the domain name, for example), then +# few changes must be made to this file, if any. +# + +option rfc3442-classless-static-routes code 121 = array of unsigned integer 8; + +send host-name ""; +#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; +#send dhcp-lease-time 3600; +#supersede domain-name "fugue.com home.vix.com"; +#prepend domain-name-servers 127.0.0.1; +request subnet-mask, broadcast-address, time-offset, routers, + domain-name, domain-name-servers, domain-search, host-name, + netbios-name-servers, netbios-scope, interface-mtu, + rfc3442-classless-static-routes, ntp-servers, + dhcp6.domain-search, dhcp6.fqdn, + dhcp6.name-servers, dhcp6.sntp-servers; +#require subnet-mask, domain-name-servers; +#timeout 60; +#retry 60; +#reboot 10; +#select-timeout 5; +#initial-interval 2; +#script "/etc/dhcp3/dhclient-script"; +#media "-link0 -link1 -link2", "link0 link1"; +#reject 192.33.137.209; + +#alias { +# interface "eth0"; +# fixed-address 192.5.5.213; +# option subnet-mask 255.255.255.255; +#} + +#lease { +# interface "eth0"; +# fixed-address 192.33.137.200; +# medium "link0 link1"; +# option host-name "andare.swiftmedia.com"; +# option subnet-mask 255.255.255.0; +# option broadcast-address 192.33.137.255; +# option routers 192.33.137.250; +# option domain-name-servers 127.0.0.1; +# renew 2 2000/1/12 00:00:01; +# rebind 2 2000/1/12 00:00:01; +# expire 2 2000/1/12 00:00:01; +#} --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-client.postinst +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-client.postinst @@ -0,0 +1,53 @@ +#!/bin/sh +# +# + +set -e + +# Source debconf library. +. /usr/share/debconf/confmodule + +case "$1" in + configure) + if [ ! -e /var/lib/dhcp/dhclient.leases ]; then + if test -e /var/lib/dhcp3/dhclient.leases; then + cp /var/lib/dhcp3/dhclient.leases /var/lib/dhcp/dhclient.leases + else + touch /var/lib/dhcp/dhclient.leases + fi + fi + + if [ -z "$2" ]; then + if [ -e /etc/dhcp3/dhclient.conf ]; then + cp /etc/dhcp3/dhclient.conf /etc/dhcp/dhclient.conf + fi + fi + + # Clean up old AppArmor profile for upgrades from Ubuntu 10.10 to 11.04 + # and 10.04 to 12.04 (ie, dhcp3-client -> isc-dhcp-client transition). + # This is needed (as opposed to simply waiting for a 'purge') because + # the dhclient3 and dhclient profiles provide AppArmor rules for the + # same binaries (/usr/lib/NetworkManager/nm-dhcp-client.action and + # /usr/lib/connman/scripts/dhclient-script) and not moving the old + # profile aside would mean that the old rules for these binaries take + # precedence over the rules provided by the new dhclient profile, since + # the old one is loaded after the first. (LP: #688191) + if dpkg --compare-versions "$2" lt 4.1.1-P1-15ubuntu2 ; then + if [ -e /etc/apparmor.d/sbin.dhclient3 ]; then + mv -f /etc/apparmor.d/sbin.dhclient3 /etc/apparmor.d/sbin.dhclient3.dpkg-old + fi + fi + + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + exit 0 + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +#DEBHELPER# --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-relay.config +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-relay.config @@ -0,0 +1,36 @@ +#!/bin/sh -e +# +# + +# Source debconf library. +. /usr/share/debconf/confmodule + +# Read in the current defaults (if available) +INITCONFFILE=/etc/default/isc-dhcp-relay + +# Read current configuration - the user might not use dpkg-reconfigure +# to change /etc/default/isc-dhcp-relay, so we need to do this to +# preserve the configuration. +if [ -r ${INITCONFFILE} ]; then + . ${INITCONFFILE} + db_set isc-dhcp-relay/servers "${SERVERS}" + db_set isc-dhcp-relay/interfaces "${INTERFACES}" +fi + +# On upgrade from dhcp3-relay, try to read the old configuration +if [ -r /etc/default/dhcp3-relay ]; then + . /etc/default/dhcp3-relay + db_set isc-dhcp-relay/servers "${SERVERS}" + db_set isc-dhcp-relay/interfaces "${INTERFACES}" +fi + +db_title "DHCP Relay" + +db_input high isc-dhcp-relay/servers || true +db_go + +db_input high isc-dhcp-relay/interfaces || true +db_go + +db_input high isc-dhcp-relay/options || true +db_go --- isc-dhcp-4.1.ESV-R4.orig/debian/isc-dhcp-server-ldap.postinst +++ isc-dhcp-4.1.ESV-R4/debian/isc-dhcp-server-ldap.postinst @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +# Removes the left over diversions of the old package + +if [ "$1" = remove -o "$1" = upgrade ]; then + for v in `list_versions`; do + dpkg-divert --package isc-dhcp-server-ldap --remove \ + --rename --divert /usr/sbin/dhcpd-noldap \ + /usr/sbin/dhcpd + done +fi + +#DEBHELPER# --- isc-dhcp-4.1.ESV-R4.orig/debian/rules +++ isc-dhcp-4.1.ESV-R4/debian/rules @@ -0,0 +1,199 @@ +#!/usr/bin/make -f +# Made with the iad of dh_make, by Craig Small +# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. +# Also some stuff taken from debmake scripts, by Cristopt Lameter. + +export DEB_BUILD_HARDENING=1 +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +DEB_HOST_ARCH_OS := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) +DEB_HOST_GNU_TYPE=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) +CROSS=CC=$(DEB_HOST_GNU_TYPE)-gcc +else +CROSS= +endif + +DESTDIR = `pwd`/debian/tmp + +PACKAGE = isc-dhcp + +include /usr/share/dpatch/dpatch.make + +CFLAGS = -Wall -g +INSTALL = install +INSTALL_FILE = $(INSTALL) -p -o root -g root -m 644 + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) +CFLAGS += -O0 +else +CFLAGS += -O2 +endif + +CFLAGS += -D_PATH_DHCLIENT_SCRIPT='"/sbin/dhclient-script"' +CFLAGS += -D_PATH_DHCPD_CONF='"/etc/dhcp/dhcpd.conf"' +CFLAGS += -D_PATH_DHCLIENT_CONF='"/etc/dhcp/dhclient.conf"' +CFLAGS += -DNOMINUM + +patched-ldap/build-stamp: + dh_testdir + + aclocal + autoconf + autoheader + automake --foreign --add-missing --copy + + ./configure \ + --prefix=$(DESTDIR)/usr \ + --sysconfdir=$(DESTDIR)/etc/dhcp \ + --with-srv-lease-file=/var/lib/dhcp/dhcpd.leases \ + --with-srv6-lease-file=/var/lib/dhcp/dhcpd6.leases \ + --with-cli-lease-file=/var/lib/dhcp/dhclient.leases \ + --with-cli6-lease-file=/var/lib/dhcp/dhclient6.leases \ + --enable-ldap-conf --disable-ldap-casa + + for f in common ../minires ../dst ../omapip ../dhcpctl ../server; do \ + cd $$f;\ + $(MAKE) $(CROSS);\ + done + mkdir -p patched-ldap + mv server/dhcpd patched-ldap/ + + touch $@ + +build: patch-stamp build-stamp + +build-stamp: patched-ldap/build-stamp + + dpatch deapply-until dhcp-4.1.0-ldap-code + + aclocal + autoconf + autoheader + automake --foreign --add-missing --copy + + ./configure \ + --prefix=$(DESTDIR)/usr \ + --sysconfdir=$(DESTDIR)/etc/dhcp \ + --with-srv-lease-file=/var/lib/dhcp/dhcpd.leases \ + --with-srv6-lease-file=/var/lib/dhcp/dhcpd6.leases \ + --with-cli-lease-file=/var/lib/dhcp/dhclient.leases \ + --with-cli6-lease-file=/var/lib/dhcp/dhclient6.leases + + $(MAKE) $(CROSS) + + touch build-stamp + +clean: unpatch + dh_testdir + rm -f build-stamp install-stamp + rm -Rf patched-ldap + + [ ! -f Makefile ] || $(MAKE) distclean + + debconf-updatepo + dh_clean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_prep + dh_installdirs -A + + # Add here commands to install the package into debian/tmp. + $(MAKE) install + + mkdir -p $(DESTDIR)/etc/dhcp + + # Install apparmor profile + mkdir -p $(DESTDIR)/etc/apparmor.d + mkdir -p $(DESTDIR)/etc/apparmor.d/dhcpd.d + $(INSTALL_FILE) debian/apparmor-profile.dhcpd $(DESTDIR)/etc/apparmor.d/usr.sbin.dhcpd + $(INSTALL_FILE) debian/apparmor-profile.dhclient $(DESTDIR)/etc/apparmor.d/sbin.dhclient + + # Install dhcp's conffile. + $(INSTALL_FILE) -m 644 debian/dhcpd.conf $(DESTDIR)/etc/dhcp + + # Install dhcp-client's conffiles. + $(INSTALL_FILE) -m 644 debian/dhclient.conf $(DESTDIR)/etc/dhcp + + # udeb needs simplified dhclient script + $(INSTALL_FILE) -m 755 `pwd`/debian/dhclient-script.$(DEB_HOST_ARCH_OS).udeb \ + `pwd`/debian/isc-dhcp-client-udeb/sbin/dhclient-script + + # Weird, weird Japanese manpages in weird, weird locations + # need to be special-cased... + mkdir -p $(DESTDIR)/usr/share/man/ja/man5 + for f in dhclient.conf dhcp-eval dhclient.leases dhcp-options; do \ + cp doc/ja_JP.eucJP/$$f.5 \ + $(DESTDIR)/usr/share/man/ja/man5; \ + done + + mkdir -p $(DESTDIR)/usr/share/man/ja/man8 + for f in dhclient dhclient-script; do \ + cp doc/ja_JP.eucJP/$$f.8 \ + $(DESTDIR)/usr/share/man/ja/man8; \ + done + + cp debian/debug-enter debian/isc-dhcp-client/etc/dhcp/dhclient-enter-hooks.d/debug + cp debian/debug-exit debian/isc-dhcp-client/etc/dhcp/dhclient-exit-hooks.d/debug + cp debian/rfc3442-classless-routes debian/isc-dhcp-client/etc/dhcp/dhclient-exit-hooks.d + + dh_install + dh_link -a + + cp debian/dhclient-script.$(DEB_HOST_ARCH_OS) `pwd`/debian/isc-dhcp-client/sbin/dhclient-script + + # Install Linux specific documentation +ifeq ($(DEB_HOST_ARCH_OS), linux) + for p in isc-dhcp-client isc-dhcp-relay isc-dhcp-server ; do \ + install -d -m 755 `pwd`/debian/$p/usr/share/doc; \ + install -m 644 `pwd`/debian/dhcp-on-linux.txt `pwd`/debian/$p/usr/share/doc; \ + done +endif + dh_lintian + + touch install-stamp + +# Build architecture-dependent files here (this package does not contain +# architecture-independent files). +binary-arch: build install + dh_testdir + dh_testroot + dh_installdebconf + dh_installdocs -A debian/README.Debian -X doc/ja_JP.eucJP + dh_installdocs -pisc-dhcp-server-ldap contrib/dhcpd-conf-to-ldap.pl + dh_installexamples -a + dh_installinit -pisc-dhcp-server --name isc-dhcp-server + dh_installinit -pisc-dhcp-server --name isc-dhcp-server6 + dh_installinit -pisc-dhcp-relay --name isc-dhcp-relay + dh_installinit -pisc-dhcp-relay --name isc-dhcp-relay6 + dh_installchangelogs + dh_installchangelogs -pisc-dhcp-server-ldap Changelog-LDAP + dh_install -pisc-dhcp-server-ldap + dh_apparmor -pisc-dhcp-client --profile-name=sbin.dhclient + dh_apparmor -pisc-dhcp-server --profile-name=usr.sbin.dhcpd + dh_apport -a + dh_strip -pisc-dhcp-server-ldap + dh_strip -pisc-dhcp-server --dbg-package=isc-dhcp-server-dbg + dh_strip -pisc-dhcp-relay --dbg-package=isc-dhcp-relay-dbg + dh_strip -pisc-dhcp-client --dbg-package=isc-dhcp-client-dbg + dh_strip -pisc-dhcp-common + dh_strip -pisc-dhcp-client-udeb + dh_compress + dh_fixperms -a + dh_installdeb + dh_shlibdeps -a + dh_gencontrol + dh_md5sums -a --no-package=isc-dhcp-client-udeb + dh_builddeb + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +binary: binary-arch +.PHONY: build clean binary-indep binary-arch binary --- isc-dhcp-4.1.ESV-R4.orig/debian/po/es.po +++ isc-dhcp-4.1.ESV-R4/debian/po/es.po @@ -0,0 +1,311 @@ +# dhcp3 po-debconf translation to Spanish +# Copyright (C) 2005-2007 Software in the Public Interest +# This file is distributed under the same license as the dhcp3 package. +# +# Changes: +# - Initial translation +# César Gómez Martín - 2005 +# - Update +# Javier Fernández-Sanguino , 2006-2007, 2010 +# +# Traductores, si no conoce el formato PO, merece la pena leer la +# documentación de gettext, especialmente las secciones dedicadas a este +# formato, por ejemplo ejecutando: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Equipo de traducción al español, por favor, lean antes de traducir +# los siguientes documentos: +# +# - El proyecto de traducción de Debian al español +# http://www.debian.org/intl/spanish/ +# especialmente las notas de traducción en +# http://www.debian.org/intl/spanish/notas +# +# - La guía de traducción de po's de debconf: +# /usr/share/doc/po-debconf/README-trans +# o http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Notas: +# - «relay» : repetidor (es un servidor que coge las peticiones de uno y las envía a otro) +msgid "" +msgstr "" +"Project-Id-Version: dhcp3\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2010-11-11 02:56+0100\n" +"Last-Translator: Javier Fernández-Sanguino \n" +"Language-Team: Debian l10n spanish \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POFile-SpellExtra: dhcpd personalizarse replace conf interface dhcp\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "" +"Servidores de DHCP a los que el repetidor de DHCP debería dirigir las " +"peticiones:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Se debe especificar el nombre o dirección IP de, al menos, un servidor de " +"DHCP al que se deben redirigir las peticiones DHCP o BOOTP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Puede especificar más de un nombre de servidor o dirección IP (en una lista " +"separada con espacios)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Interfaces de red en las que debe escuchar el servidor de DHCP:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Introduzca los nombres de la/s interface/s de red en el que el repetidor de " +"DHCP debería intentar configurar. Puede indicar más de un nombre de interfaz " +"con en una lista separada por espacios." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Si quiere que el repetidor de DHCP realice una detección y configuración " +"automática de las interfaces de red, deje este campo en blanco. En este caso " +"sólo se utilizarán interfaces de difusión (si es posible)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Opciones adicional para el demonio repetidor de DHCP:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" +"Especifique cualquier opción adicional que desee utilizar en el demonio " +"repetidor de DHCP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Por ejemplo: «-m replace» o «-a -D»." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "" +"Es necesaria una configuración manual después de la instalación el servidor " +"de DHCP" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Después de instalar el servidor de DHCP necesitará configurarlo manualmente " +"editando el fichero «/etc/dhcp/dhcpd.conf». Tenga en cuenta que se " +"proporciona un fichero dhcpd.conf de ejemplo, pero que la configuración que " +"lleva es sólo un ejemplo que debe personalizar para que se adapte a su " +"propio entorno de red." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "" +"Por favor, configure el servidor de DHCP tan pronto como finalice la " +"instalación." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Interfaces de red en las que debe escuchar el servidor de DHCP:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Introduzca el o los nombres de las interfaces de red en las que el servidor " +"de DHCP debería escuchar en busca de solicitudes de DHCP. Utilice una lista " +"separada por espacios si quiere especificar múltiples nombres de interfaz." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"Se detectarán las interfaces de forma automática si deja este campo en " +"blanco." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Versión no autoritaria del servidor de DHCP" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "La versión 3 del servidor de DHCP es no-autoritaria por omisión." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Esto significa que si un cliente pide una dirección de la que el servidor " +#~ "no sabe nada y la dirección es incorrecta para ese segmento de red, el " +#~ "servidor _no_ enviará un DHCPNAK (que indica al cliente que debe dejar de " +#~ "usar esa dirección). Si quiere cambiar este comportamiento debe indicar " +#~ "explícitamente en dhcpd.conf los segmentos de red sobre los cuales su " +#~ "servidor tiene autoridad mediante la sentencia «authoritative»." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "" +#~ "Cambio en el comportamiento por omisión de la directiva del siguiente " +#~ "servidor" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "A partir de la versión 3.0.3 se ha cambiado, en el servidor de DHCP, la " +#~ "directiva del valor por omisión del siguiente servidor. Debe establecer " +#~ "una directiva del siguiente servidor de forma explícita si está arrancado " +#~ "los clientes desde la red y su servidor TFTP es su servidor de DHCP. Por " +#~ "favor, lea /usr/share/doc/isc-dhcp-server/NEWS.Debian.gz y /usr/share/doc/" +#~ "dhcp3-common/RELNOTES.gz si desea más información." + +#~ msgid "dhclient-script moved" +#~ msgstr "Se ha movido dhclient-script" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "A partir de la versión 3.0.4-2 se instala dhclient-script en /sbin y ya " +#~ "no se registra como fichero de configuración. Parece que ha modificado en " +#~ "algún momento «/etc/isc-dhcp/dhclient-script» por lo que no se ha " +#~ "eliminado. Sin embargo debe tener en cuenta que ya no va a utilizarse." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Por favor, intente utilizar la infraestructura de programas " +#~ "«anzuelo» (consulte dhclient-script(8) para más información) en lugar de " +#~ "modificar el programa dhclient-script." + +#~ msgid "dhclient needs restarting" +#~ msgstr "Es necesario reiniciar dhclient" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Como siempre, no se ha reinstalado dhclient al hacer la actualización, " +#~ "por lo que aún está ejecutando la versión anterior de este programa. " +#~ "Puede reiniciarlo si ejecuta «ifdown» seguido de «ifup» para la/s " +#~ "interface/s que tiene configuradas para que utilicen DHCP o bien " +#~ "explícitamente matando y rearrancando dhclient." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Por supuesto, debería hacer esto con cuidado si está gestionando un " +#~ "servidor remoto a través de una interfaz que utiliza DHCP." + +#~ msgid "" +#~ "Please enter a space-separated list of interfaces names (e.g. eth0) on " +#~ "which the server should answer DHCP requests." +#~ msgstr "" +#~ "Introduzca una lista separada con espacios de las interfaces de red (p." +#~ "ej. eth0) en las que el servidor debería responder a peticiones de DHCP." + +#~ msgid "" +#~ "The names of the network interfaces that dhcrelay should attempt to " +#~ "configure may be specified on the command line using the -i option. If no " +#~ "interface names are specified on the command line dhcrelay will identify " +#~ "all network interfaces, elimininating non-broadcast interfaces if " +#~ "possible, and attempt to configure each interface." +#~ msgstr "" +#~ "Los nombres de las interfaces de red que dhcrelay debe intentar " +#~ "configurar pueden especificarse en la línea de órdenes usando la opción «-" +#~ "i». Si no se especifica ningún nombre de interfaz en la línea de órdenes, " +#~ "dhcrelay identificará todas las interfaces de red, eliminará las " +#~ "interfaces en las que no pueda hacerse difusión si es posible, e " +#~ "intentará configurar cada interfaz." + +#~ msgid "" +#~ "You can enter one or more valid interface names, like eth0. If you want " +#~ "to serve DHCP request on more than one interface, please separate them " +#~ "with spaces. If you want dhcpd to figure out the interface leave this " +#~ "parameter blank." +#~ msgstr "" +#~ "Puede introducir uno o más nombres de interfaz válidos, como eth0. Por " +#~ "favor, si quiere servir peticiones DHCP en más de una interfaz, sepárelas " +#~ "con espacios. Si quiere que dhcpd intentente detectar la interfaz deje " +#~ "este parámetro vacío." + +#~ msgid "On what network interfaces should the DHCP server listen?" +#~ msgstr "¿En qué interfaces de red debe escuchar el servidor de DHCP?" --- isc-dhcp-4.1.ESV-R4.orig/debian/po/it.po +++ isc-dhcp-4.1.ESV-R4/debian/po/it.po @@ -0,0 +1,239 @@ +# Italian (it) translation of debconf templates for isc-dhcp +# This file is distributed under the same license as the isc-dhcp package. +# Luca Monducci , 2006-2010. +# +msgid "" +msgstr "" +"Project-Id-Version: isc-dhcp 4.1.1-P1-9 3.0.4-15 italian debconf templates\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2007-06-03 10:46+0200\n" +"Last-Translator: Luca Monducci \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Server verso i quali relay DHCP deve inoltrare le richieste:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Inserire il nomehost o l'indirizzo IP di almeno un server DHCP verso cui " +"trasmettere le richieste DHCP e BOOTP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"È possibile specificare più nomi server o indirizzi IP (in un elenco " +"separato da spazi)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Interfacce sulle quali il relay DHCP deve stare in ascolto:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Specificare le interfacce di rete che il relay DHCP deve provare a " +"configurare. Più interfacce di rete devono essere inserite come un elenco " +"separato da spazi." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Lasciare questo campo vuoto per il riconoscimento e la configurazione " +"automatica delle interfacce di rete da parte del relay DHCP. In questo caso " +"sono usate solo le interfacce di broadcast (se possibile)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Ulteriori opzioni per il demone relay DHCP:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Specificare qualsiasi altra opzione da passare al demone relay DHCP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Per esempio: '-m replace' o '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "È necessaria una configurazione manuale al termine dell'installazione" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Terminata l'installazione del server DHCP, è necessario configurarlo andando " +"a modificare manualmente il file /etc/dhcp/dhcpd.conf. Notare che il file " +"dhcpd.conf fornito è solo un semplice esempio e deve essere adattato alle " +"caratteristiche della rete." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Configurare il server DHCP al termine dell'installazione." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Interfacce di rete sulle quali il server DHCP deve stare in ascolto:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Specificare su quali interfacce di rete il server DHCP deve stare in ascolto " +"per le richieste DHCP. Più interfacce di rete devono essere inserite come un " +"elenco separato da spazi." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"Le interfacce saranno rilevate automaticamente se questo campo è lasciato " +"vuoto." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Versione del server DHCP non-autoritario" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "Il server DHCP versione 3 è normalmente non-autoritario." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Questo vuol dire che se un client richiede un indirizzo non gestito dal " +#~ "server perché l'indirizzo non è corretto per il segmento di rete, il " +#~ "server _non_ invia un DHCPNAK (che indica al client di smettere di " +#~ "richiedere quell'indirizzo). Per cambiare questo comportamento si deve " +#~ "esplicitamente dichiarare in dhcp.conf per quali segmenti di rete il " +#~ "server è autoritario usando la direttiva \"authoritative\"." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "" +#~ "Cambiamento nel comportamento predefinito della direttiva next-server" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "A partire dalla versione 3.0.3 il valore predefinito della direttiva " +#~ "\"next-server\" del server DHCP è cambiato. Se dei client effettuano " +#~ "l'avvio da rete e il server DHCP svolge anche il ruolo di server TFTP, è " +#~ "necessario dichiarare questo comportamento impostando esplicitamente la " +#~ "direttiva next-server. Consultare /usr/share/doc/isc-dhcp-server/NEWS." +#~ "Debian.gz e /usr/share/doc/isc-dhcp-server/RELNOTES.gz per ulteriori " +#~ "informazioni." + +#~ msgid "dhclient-script moved" +#~ msgstr "Spostato dhclient-script" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "Dalla versione 3.0.4-2, dhclient-script viene installato in /sbin e non è " +#~ "più registrato come un file di configurazione. Sembra che il file /etc/" +#~ "isc-dhcp/dhclient-script sia stato modificato e quindi non viene rimosso, " +#~ "comunque non viene più usato." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Si suggerisce di usare l'infrastruttura di hook (consultare dhclient-" +#~ "script(8) per ulteriori informazioni) anziché modificare dhclient-script." + +#~ msgid "dhclient needs restarting" +#~ msgstr "dhclient deve essere riavviato" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "dhclient non viene riavviato dopo l'aggiornamento e quindi rimane in " +#~ "esecuzione la versione precedente. È possibile avviare la nuova versione " +#~ "tramite i comandi ifdown e ifup sulle interfacce configurate per usare " +#~ "DHCP oppure in modo esplicito terminando (con kill) e riavviando dhclient." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Si raccomanda la massima attenzione se si sta operando su un server " +#~ "remoto tramite un'interfaccia che usa DHCP." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/cs.po +++ isc-dhcp-4.1.ESV-R4/debian/po/cs.po @@ -0,0 +1,261 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +msgid "" +msgstr "" +"Project-Id-Version: isc-dhcp 4.1.1-P1-9\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2010-08-16 15:31+0200\n" +"Last-Translator: Michal Simunek \n" +"Language-Team: Czech \n" +"Language: cs\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "DHCP servery, kterým má DHCP přeposílat požadavky:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Zadejte prosím název hostitele nebo IP adresu alespoň jednoho DHCP serveru, " +"kterému mají být směrovány požadavky DHCP a BOOTP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Můžete zadat několik názvů serverů nebo IP adres (údaje oddělte mezerami)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Síťová rozhraní, na kterých má DHCP server naslouchat:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Určete prosím, která síťová rozhraní se má DHCP pokoušet nastavit. Zadáte-li " +"více rozhraní, oddělte je mezerami." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Chcete-li, aby síťová rozhraní rozpoznával a nastavoval DHCP automaticky, " +"ponechte toto políčko prázdné. V tomto případě budou použita pouze broadcast " +"rozhraní (je-li to možné)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Dodatečné volby pro démona DHCP:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Zadejte prosím jakékoliv další volby pro démona DHCP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Například: '-m replace', nebo '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Po instalaci je třeba provést ruční nastavení" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Po instalaci DHCP serveru jej bude třeba ještě ručně nastavit úpravou " +"souboru /etc/dhcp/dhcpd.conf. Vezměte prosím v potaz, že dodávaný dhcpd.conf " +"je pouze příklad a musí být přizpůsoben síťovému prostředí." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "DHCP server nastavte co nejdříve po dokončení instalace." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Síťová rozhraní, na kterých má DHCP server naslouchat:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Zadejte prosím, na kterých síťových rozhraních má DHCP server naslouchat " +"DHCP požadavkům. Zadáváte-li více rozhraní, oddělte je mezerou." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"Ponecháte-li toto políčko prázdné, rozhraní budou automaticky rozpoznána." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Neautoritativní verze DHCP serveru" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "Verze 3 DHCP serveru je ve výchozím nastavení neautoritativní." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "To znamená, že když klient požaduje adresu, o které server nic neví a " +#~ "adresa je v daném segmentu sítě nesprávná, server _ne_pošle DHCPNAK " +#~ "(který říká klientu, že má tuto adresu přestat používat). Chcete-li toto " +#~ "chování změnit, musíte v dhcpd.conf výslovně stanovit, v kterých síťových " +#~ "segmentech je váš server autoritativní pomocí příkazu 'authoritative'." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Změna ve výchozím chování u direktivy next-server" + +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "Od verze 3.0.3 se změnila výchozí hodnota DHCP serveru u direktivy next-" +#~ "server. Jestliže máte klienty zaváděné ze sítě a TFTP server je váš DHCP " +#~ "server, musíte pro to explicitně nastavit direktivu next-server. Pro více " +#~ "informací se podívejte do /usr/share/doc/isc-dhcp-server/NEWS.Debian.gz " +#~ "a /usr/share/doc/isc-dhcp-common/RELNOTES.gz." + +#~ msgid "dhclient-script moved" +#~ msgstr "dhclient-script se přesunul" + +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "Od verze 3.0.4-2 je dhclient-script instalován do /sbin a již není " +#~ "považován za konfigurační soubor. Zdá se, že /etc/isc-dhcp/dhclient-" +#~ "script byl někdy upravován a proto jej neodstraňuji, nicméně už se k " +#~ "ničemu nepoužívá." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Místo přímých úprav dhclient-script prosím zvažte použití modulární " +#~ "infrastruktury (viz dhclient-script(8)." + +#~ msgid "dhclient needs restarting" +#~ msgstr "dhclient vyžaduje restart" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Běžně se dhclient při aktualizaci nerestartuje, takže stále používáte " +#~ "starší verzi dhclienta. Restartovat jej můžete buď zavoláním ifdown a " +#~ "ifup na rozhraních, která jsou nastavena pro používání DHCP, nebo také " +#~ "explicitně zabitím a novým spuštěním dhclienta." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Pochopitelně byste měli být opatrní například v situaci, kdy spravujete " +#~ "vzdálený server přes rozhraní spravované pomocí DHCP." + +#~ msgid "" +#~ "The names of the network interfaces that dhcrelay should attempt to " +#~ "configure may be specified on the command line using the -i option. If no " +#~ "interface names are specified on the command line dhcrelay will identify " +#~ "all network interfaces, elimininating non-broadcast interfaces if " +#~ "possible, and attempt to configure each interface." +#~ msgstr "" +#~ "Jména síťových rozhraní, která se má dhcrelay pokusit zkonfigurovat, " +#~ "mohou být zadána na příkazovém řádku pomocí volby -i. Pokud na příkazové " +#~ "řádce nejsou zadána žádná jména rozhraní, dhcrelay identifikuje všechna " +#~ "síťová rozhraní, kromě ne-všesměrových, pokud je to možné, a pokusí se " +#~ "zkonfigurovat každé z nich." + +#~ msgid "" +#~ "You can enter one or more valid interface names, like eth0. If you want " +#~ "to serve DHCP request on more than one interface, please separate them " +#~ "with spaces. If you want dhcpd to figure out the interface leave this " +#~ "parameter blank." +#~ msgstr "" +#~ "Můžete zadat jedno nebo více platných jmen rozhraní, jako eth0. Pokud " +#~ "chcete obsluhovat DHCP žádosti na více než jednom rozhraní, oddělte je " +#~ "mezerami. Pokud chcete, aby si dhcpd zjistil rozhraní, nechte tento " +#~ "parametr prázdný." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/templates.pot +++ isc-dhcp-4.1.ESV-R4/debian/po/templates.pot @@ -0,0 +1,124 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" --- isc-dhcp-4.1.ESV-R4.orig/debian/po/eu.po +++ isc-dhcp-4.1.ESV-R4/debian/po/eu.po @@ -0,0 +1,248 @@ +# translation of eu.po to Euskara +# translation of dhcp3-debconf to Euskara +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Piarres Beobide , 2007. +msgid "" +msgstr "" +"Project-Id-Version: eu\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2007-12-21 11:01+0100\n" +"Last-Translator: Piarres Beobide \n" +"Language-Team: Euskara \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Eskakizunak birbidali behar zitzaizkien DHCP zerbitzariak:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Mesedez DHCP eta BOOTP eskakizunak birbidaltzeko behintzat DHCP zerbitzari " +"baten ostalari izen edo IP helbidea idatzi." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Zerbitzari izen edo ip helbide anitz idatzi ditzakezu (zuriunez bereiziriko " +"zerrenda batetan)" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "DHCP eskakizunak entzun behar diren interfazeak:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Mesedez idatzi dhcp birbidalketa konfiguratzen saiatu behar diren " +"interfazeak. Interfaze anitz ezartzeko zuriunez bereiziriko zerrenda batetan " +"idatzi itzazu." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Eremu hau zurian utzi dezakezu dhcp3 birbidalketarako sare interfazeen " +"antzemate eta konfigurazio automatikoa aurrera eramaten saiatzeko, kasu " +"honetan broadcast helbideak bakarrik erabiliko dira (posible bada)" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DHCP birbidalketa deabruaren aukera gehigarriak:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" +"Mesedez ezarri DHCP birbidalketa deabruak erabiltzea nahi duzun edozein " +"aukera gehigarri." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Adibidez: '-m ordeztu' edo '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Eskuzko konfigurazioa beharrezkoa da instalatu ondoren." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +#, fuzzy +#| msgid "" +#| "After the DHCP server is installed, you will need to manually configure " +#| "it by editing the file /etc/isc-dhcp/dhcpd.conf. Please note that the " +#| "dhcpd.conf supplied is just a sample, and must be adapted to the network " +#| "environment." +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"DHCP birbidalketa zerbitzaria instalatu ondoren beharrezkoa /etc/isc-dhcp/" +"dhcpd.conf editatuaz eskuz konfiguratzea. Mesedez kontutan izan hor dagoen " +"dhcp.conf fitxategia adibide bat bakarrik dela eta sare ingurunera moldatu " +"behar dela." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Mesedez instalazioa amaitu bezain laster DHCP zerbitzaria konfiguratu." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "DHCP zerbitzariak entzun behar dituen sare interfazeak:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Mesedez ezarri DHCP zerbitzariak zein interfazeetan DHCP eskariak entzun " +"behar dituen . Interfaze anitz ezartzeko zuriunez bereiziriko zerrenda " +"batetan idatzi itzazu." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "Interfazeak automatikoki antzemango dira eremu hau zurian utziaz gero." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "DHCP zerbitzariaren bertsio ez-autoritarioa" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "" +#~ "DHCP zerbitzariaren 3 bertsioa ez da autoritarioa lehenespen bezala." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Honen esanahia bezero batek zerbitzariak ezer ez dakien eta sare segmentu " +#~ "horretarako okerra den helbide bat eskatuaz gero, zerbitzariak _ez_ duela " +#~ "DHCPNAK bidaliko (bezeroei helbide hori erabiltzez uztea esango diena) " +#~ "da. Portamolde hau aldatu nahi izanaz gero, zehazki zein sare " +#~ "segmentuetan zerbitzaria autoritario izan behar den ezarri behar duzu " +#~ "'authoritative' aukeraren bidez." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Hurrengo-zerbitzari direktibaren lehenetsiriko portamoldea aldatu." + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "3.0.3 bertsiotik aurrera, DHCP zerbitzariaren next-server direktibaren " +#~ "lehenetsiriko balioa aldatu egin da. Bezeroak sare bidez abiarazten " +#~ "badituzu eta zure TFTP zerbitzaria DHCP zerbitzari bera bada, next-server " +#~ "direktiba ezarri behar duzu hau. Argibide gehiagorako /usr/share/doc/isc-" +#~ "dhcp-server/NEWS.Debian.gz eta /usr/share/doc/isc-dhcp-common/RELNOTES.gz " +#~ "begiratu." + +#~ msgid "dhclient-script moved" +#~ msgstr "dhclient-script mugitua izan da" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "3.0.4-2 bertsiotik aurrera, dhclient-script /sbin karpetan instalatzen da " +#~ "eta ez da konfigurazio fitxategi bat. Dirudienez noizbait /etc/isc-dhcp/" +#~ "dhclient-script aldatu duzu beraz ez da ezabatua izan. Hala ere ez da " +#~ "luzaroago erabilia izango." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Mesedez dhclient-script aldatu ordez hook azpiegitura (argibide " +#~ "gehiagorako dhclient-script(8) begiratu) erabiltzeko aukera kontutan har " +#~ "ezazu." + +#~ msgid "dhclient needs restarting" +#~ msgstr "dhclient berrabiarazi egin behar da" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Betiko moduan, dhclient ez da berrabiarazi bertsio berritzean beraz " +#~ "bezeroaren bertsio zaharra erabiltzen ari da. Berau berrabiarazteko " +#~ "interfazea ezgaitu (ifdown) eta gaitu (ifup) dezakezu edo zehazki " +#~ "dhclient hil eta berrabiarazi." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Noski, kontuz ibili beharko duzu DHCP erabiltzen duen interfaze baten " +#~ "bitartez urruneko zerbitzari bat konfiguratzen ari bazara." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/sk.po +++ isc-dhcp-4.1.ESV-R4/debian/po/sk.po @@ -0,0 +1,233 @@ +msgid "" +msgstr "" +"Project-Id-Version: dhcp3 3.0.6-1\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2007-08-17 23:36+0100\n" +"Last-Translator: Ivan Masár \n" +"Language-Team: Slovak \n" +"Language: sk\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Servery, ktorým má DHCP relay preposielať požiadavky:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Prosím, zadajte názvov stroja alebo IP adresu aspoň jedného DHCP servera, " +"ktorému majú byť preposielané DHCP a BOOTP požiadavky." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Môžete uviesť viacero názvov serverov alebo IP adries (v zozname oddelenom " +"medzerami)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Rozhrania, na kotrých má DHCP relay počúvať:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Prosím, uveďte, ktoré sieťové rozhrania by sa mal DHCP relay pokúsiť " +"nakonfigurovať. Viaceré názvy rozhraní sa zadávajú ako zoznam oddelený " +"medzerami." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Pre automatickú detekciu sieťových rozhraní pomocou DHCP relay nechajte toto " +"pole nevyplnené. V takom prípade sa použijú iba broadcast rozhrania (ak to " +"bude možné)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Dodatočné voľby démona DHCP relay:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Prosím, zadajte akékoľvek ďalšie voľby pre DHCP relay démona." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Napríklad: '-m replace' alebo '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Po inštalácii sa vyžaduje manuálna konfigurácia" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +#, fuzzy +#| msgid "" +#| "After the DHCP server is installed, you will need to manually configure " +#| "it by editing the file /etc/isc-dhcp/dhcpd.conf. Please note that the " +#| "dhcpd.conf supplied is just a sample, and must be adapted to the network " +#| "environment." +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Po inštalácii DHCP servera ho budete musieť ručne nakonfigurovať editáciou " +"súboru /etc/isc-dhcp/dhcpd.conf. Prosím, všimnite si, že dhcpd.conf sa " +"dodáva iba ako vzor a je potrebné ho prispôsobiť vášmu sieťovému prostrediu." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Prosím, nakofigurujte DHCP server hneď po skončení inštalácie." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Sieťové rozhrania, na ktorých má DHCP server počúvať:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Prosím, uveďte na ktorých sieťových rozhraniach by mal DHCP server počúvať " +"DHCP požiadavky. Viaceré názvy rozhraní sa zadávajú ako zoznam oddelený " +"medzerami." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "Ak pole necháte nevyplnené, rozhrania budú detekované automaticky." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Neautoritatívna verzia DHCP servera" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "Verzia 3 DHCP servera je štandardne neautoritatívna." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "To znamená, že ak si klient vyžiada adresu, o ktorej server nič nevie a " +#~ "adresa je pre daný sieťový segment nesprávna, server _nepošle_ DHCPNAK " +#~ "(ktorý oznamuje klientovi, aby prestal túto adresu používať). Ak chcete " +#~ "toto správanie zmeniť, musíte v dhcpd.conf explicitne uviesť, pre ktoré " +#~ "segmenty siete je váš server autoritatívny pomocou výrazu 'authoritative'." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Zmeniť štandardné správanie direktívy next-server" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "Od verzie 3.0.3 sa štandardná hodnota direktívy next-server DHCP servera " +#~ "zmenila. Ak ste klient, ktorý bootuje zo siete a váš TFTP server je váš " +#~ "DHCP server, musíte explicitne nastaviť direktívu next-server, aby to " +#~ "hovorila. Viac informácií nájdete v /usr/share/doc/isc-dhcp-server/NEWS." +#~ "Debian.gz a v /usr/share/doc/dhcp3-common/RELNOTES.gz." + +#~ msgid "dhclient-script moved" +#~ msgstr "dhclient-script sa presunul" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "Od verzie 3.0.4-2, je dhclient-script nainštalovaný v /sbin a už nie je " +#~ "registrovaný ako konfiguračný súbor. Zdá sa, že /etc/isc-dhcp/dhclient-" +#~ "script bol niekedy zmenený, takže nebol odstránený. Už sa však nepoužíva." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Prosím, zvážte použitie infraštruktúry postupných volaní (hook) (viac " +#~ "informácií v dhclient-script(8)) namiesto zmeny dhclient-script." + +#~ msgid "dhclient needs restarting" +#~ msgstr "dhclient potrebuje reštart" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Ako vždy, dhclient sa po upgrade nereštartuje, takže momentálne stále " +#~ "beží predchádzajúca verzia dhclient. Môžete ho reštartovať pomocou ifdown " +#~ "a ifup na rozhraniach, ktoré boli nakonfigurované, aby používali DHCP, " +#~ "alebo explicitne zabitím a znovuspustením procesu dhclient." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Prirodzene by ste mali byť opatrní ak spravujete vzdialený server cez " +#~ "rozhranie používajúce DHCP." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/ko.po +++ isc-dhcp-4.1.ESV-R4/debian/po/ko.po @@ -0,0 +1,236 @@ +# Korean translations for dhcp3 package +# dhcp3 패키지에 대한 한국어 번역문. +# Copyright (C) 2007 THE dhcp3'S COPYRIGHT HOLDER +# This file is distributed under the same license as the dhcp3 package. +# Sunjae Park , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: dhcp3\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2007-06-19 23:09-0500\n" +"Last-Translator: Sunjae Park \n" +"Language-Team: Korean \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "DHCP 중계기가 받은 요청을 전달할 서버 목록:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"DHCP 요청과 BOOTP 요청을 전달할 DHCP 서버의 호스트명이나 IP 주소를 하나 이상 " +"입력해주십시오." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "서버명이나 IP 주소를 (빈칸으로 연결하여) 여러 개 지정하실 수 있습니다." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "DHCP 중계기가 대기하고 있을 인터페이스 목록:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"DHCP 중계기가 설정하고자 할 네트워크 인터페이스의 목록을 지정해주십시오. 여" +"러 개를 입력하실 경우에는 빈칸으로 연결하십시오." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"DHCP 중계기가 네트워크 인터페이스를 자동으로 감지해서 설정하도록 하고자 한다" +"면 이 항목을 비워두십시오. 가능하면 동보(브로드캐스트) 인터페이스만 사용하게 " +"됩니다." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DHCP 중계 데몬이 사용할 추가적인 옵션:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "DHCP 중계 데몬이 사용할 추가적인 옵션을 지정해주십시오." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "예: '-m replace'나 '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "설치 후 직접 설정 필요" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +#, fuzzy +#| msgid "" +#| "After the DHCP server is installed, you will need to manually configure " +#| "it by editing the file /etc/isc-dhcp/dhcpd.conf. Please note that the " +#| "dhcpd.conf supplied is just a sample, and must be adapted to the network " +#| "environment." +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"DHCP 서버가 설치된 후 /etc/isc-dhcp/dhcpd.conf 파일을 고쳐서 서버를 직접 설정" +"하셔야 합니다. 참고로 제공된 dhcpd.conf 파일은 예제일 뿐이므로 사용하시는 환" +"경에 따라 변경하셔야 합니다." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "설치가 끝나면 곧바로 DHCP 서버를 설정해주십시오." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "DHCP 서버가 대기하고 있을 네트워크 인터페이스 목록:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"DHCP 서버가 DHCP 요청에 대기하고 있늘 네트워크 인터페이스의 목록을 지정해 주" +"십시오. 여러 개를 입력하실 경우에는 빈칸으로 연결하십시오." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "이 항목을 비워둘 경우에는 인터페이스를 자동으로 감지합니다." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "DHCP 서버의 비관장 버전" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "DHCP 서버 버전 3은 기본적으로 비관장으로 설정되어 있습니다." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "즉 서버가 알 지 못하는 주소이며 해당 네트워크 부분에 사용할 수 없는 주소" +#~ "를 클라이언트가 요청할 경우에는 DHCPNAK(클라이언트가 그 주소를 사용하지 말" +#~ "라고 요청)를 보내지 않습니다. 이 설정을 바꾸고자 하신다면 dhcpd.conf에 " +#~ "'authorative' 지침을 이용하여 이 서버가 관장하고 있는 네트워크 부분을 명시" +#~ "적으로 지정하셔야 합니다." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "next-server 지침의 기본 방침 변경" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "버전 3.0.3부터 DHCP 서버 next-server 지침의 기본값이 바뀌었습니다. 클라이" +#~ "언트를 네트워크 부팅하고 있으며 TFTP 서버가 DHCP 서버와 같다면 next-" +#~ "server 지침으로 이 사실을 명시적으로 지정하셔야 합니다. 더 자세한 정보는 /" +#~ "usr/share/doc/isc-dhcp-server/NEWS.Debian.gz와 /usr/share/doc/dhcp3-" +#~ "common/RELNOTES.gz를 참조하십시오." + +#~ msgid "dhclient-script moved" +#~ msgstr "dhclient-script 위치 변경" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "버전 3.0.4-2부터는 dhclient-script가 /sbin에 설치되며 더 이상 설정파일로 " +#~ "등록되지 않습니다. /etc/isc-dhcp/dhclient-script에 변경사항이 있는 것으로 " +#~ "보여 지우지는 않았습니다. 하지만 이 파일을 더 이상 사용하지는 않습니다." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "dhclient-script를 변경하기보다는 후크 기반(자세한 정보는 dhclient-script" +#~ "(8) 참조)을 사용하길 권장합니다." + +#~ msgid "dhclient needs restarting" +#~ msgstr "dhclient를 재시작해야 합니다" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "언제나처럼 업그레이드를 해도 dhclient는 다시 시작시키지 않으므로 아직 예" +#~ "전 버전의 dhclient를 사용중입니다. DHCP를 사용하는 인터페이스에 ifdown과 " +#~ "ifup를 하셔서 dhclient를 다시 시작하거나 dhclient를 직접 죽여서 다시 시작" +#~ "하실 수 습니다." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "DHCP를 이용하는 인터페이스를 통해 원격 서버를 관리하고 계신다면 당연히 주" +#~ "의하시길 바랍니다." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/POTFILES.in +++ isc-dhcp-4.1.ESV-R4/debian/po/POTFILES.in @@ -0,0 +1,2 @@ +[type: gettext/rfc822deb] isc-dhcp-relay.templates +[type: gettext/rfc822deb] isc-dhcp-server.templates --- isc-dhcp-4.1.ESV-R4.orig/debian/po/ja.po +++ isc-dhcp-4.1.ESV-R4/debian/po/ja.po @@ -0,0 +1,148 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# +msgid "" +msgstr "" +"Project-Id-Version: isc-dhcp 4.1.1-P1-9\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2010-07-25 14:19+0900\n" +"Last-Translator: Hideki Yamane \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "DHCP リレーリクエストが転送されるサーバ:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"DHCP、または BOOTP リクエストがリレーされる DHCP サーバの少なくとも一つを、ホ" +"スト名か IP アドレスで入力してください。" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"サーバ名、または IP アドレスの複数指定が可能です (リストを空白で区切ってくだ" +"さい)。" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "DHCP リレーエージェントが待ち受けるネットワークインターフェイス:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"DHCP リレーを設定するネットワークインターフェイスを指定してください。複数のイ" +"ンターフェイス名は空白で区切ったリストとして入力する必要があります。" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"この値を入力しないと、DHCP リレーによる自動認識とネットワークインターフェイス" +"の設定が行われます。その場合、(可能であれば) ブロードキャストインターフェイス" +"名が使われます。" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DHCP リレーデーモンへの追加オプション:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "DHCP リレーデーモンへの追加オプションを指定してください。" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "例: '-m replace' または '-a -D'" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "インストール後に手動での設定が必要です" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"DHCP サーバのインストール後、/etc/isc-dhcp/dhcpd.conf ファイルを編集して手動" +"で設定を行う必要があります。提供されている dhcpd.conf は単なるサンプルであ" +"り、ネットワーク環境に応じて修正が必要であることに注意してください。" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "インストール完了後、すぐに DHCP サーバの設定を行ってください。" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "DHCP サーバが待ち受ける必要のあるネットワークインターフェイス:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"どのネットワークインターフェイスで DHCP サーバは DHCP リクエストを待ち受ける" +"のかを指定してください。複数のインターフェイス名は空白で区切ったリストで入力" +"する必要があります。" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "値が入力されなかった場合、インターフェイスは自動的に検出されます。" --- isc-dhcp-4.1.ESV-R4.orig/debian/po/pt_BR.po +++ isc-dhcp-4.1.ESV-R4/debian/po/pt_BR.po @@ -0,0 +1,290 @@ +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans +# +# Developers do not need to manually edit POT or PO files. +# +# Felipe Augusto van de Wiel (faw) , 2006-2008. +# Licensed under the same terms of the dchp3 package. +# +msgid "" +msgstr "" +"Project-Id-Version: dhcp3\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2008-10-09 04:07-0300\n" +"Last-Translator: Felipe Augusto van de Wiel (faw) \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"pt_BR utf-8\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "" +"Servidores para os quais o \"relay\" DHCP deverá encaminhar as requisições:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Por favor, informe o nome ou endereço IP de pelo menos um servidor DHCP para " +"o qual requisições DHCP e BOOTP deverão ser encaminhadas." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Você pode especificar múltiplos nomes ou endereços IP de servidores (usando " +"uma lista separada por espaços)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Interfaces nas quais o \"relay\" DHCP deverá escutar:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Por favor, especifique quais interfaces de rede o \"relay\" DHCP deverá " +"tentar configurar. Múltiplos nomes de interface podem ser informados usando " +"uma lista separada por espaços." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Deixe este campo em branco para permitir a detecção automática e " +"configuração das interfaces de rede pelo \"relay\" DHCP, neste caso somente " +"as interfaces \"broadcast\" serão usadas (se possível)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Opções adicionais para o daemon DHCP \"relay\":" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" +"Por favor, especifique quaisquer opções adicionais para o daemon DHCP \"relay" +"\"." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Por exemplo: '-m replace' ou '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Configuração manual requerida após a instalação" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +#, fuzzy +#| msgid "" +#| "After the DHCP server is installed, you will need to manually configure " +#| "it by editing the file /etc/isc-dhcp/dhcpd.conf. Please note that the " +#| "dhcpd.conf supplied is just a sample, and must be adapted to the network " +#| "environment." +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Após a instalação do servidor DHCP será necessário configurá-lo manualmente " +"editando o arquivo /etc/isc-dhcp/dhcpd.conf. Por favor, note que o arquivo " +"dhcpd.conf fornecido é apenas um exemplo e deve ser adaptado ao ambiente de " +"rede." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "" +"Por favor, configure o servidor DHCP logo após a instalação ser finalizada." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Interfaces de rede nas quais o servidor DHCP deverá escutar:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Por favor, especifique em quais interfaces de rede o servidor DHCP deverá " +"escutar requisições DHCP. Múltiplos nomes de interface podem ser informados " +"usando uma lista separada por espaços." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"As interfaces serão automaticamente detectadas se este campo for deixado em " +"branco." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Versão não-autoritária do servidor DHCP" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "A versão 3 do servidor DHCP é não-autoritária por padrão." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Isto significa que se um cliente requisita um endereço que o servidor não " +#~ "sabe nada a respeito e o endereço está incorreto para aquele segmento de " +#~ "rede, o servidor _não_ enviará um DHCPNAK (que diz ao cliente que o mesmo " +#~ "deveria parar de usar o endereço). Se você quiser mudar esse " +#~ "comportamento, você deverá explicitamente indicar no arquivo dhcpd.conf " +#~ "em quais segmentos de rede o seu servidor é autoritário usando a diretiva " +#~ "'authoritative'." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Mudança no comportamento padrão da diretiva next-server" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "A partir da versão 3.0.3, o valor padrão do servidor DHCP para a diretiva " +#~ "next-server mudou. Se você estiver inicializando clientes via rede e seu " +#~ "servidor TFTP é seu servidor DHCP, você precisa definir explicitamente " +#~ "uma diretiva next-server para indicar isto. Por favor, veja /usr/share/" +#~ "doc/dhcp3-server/NEWS.Debian.gz e /usr/share/doc/isc-dhcp-common/RELNOTES." +#~ "gz para maiores informações." + +#~ msgid "dhclient-script moved" +#~ msgstr "dhclient-script foi movido" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "A partir da versão 3.0.4-2, o dhclient-script é instalado em /sbin e não " +#~ "é mais registrado como um arquivo de configuração. /etc/isc-dhcp/dhclient-" +#~ "script parece ter sido modificado em algum ponto, portanto não foi " +#~ "removido. No entanto ele deixou de ser usado." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Por favor, considere a utilização da infra-estrutura de gatilhos (\"hook" +#~ "\") (veja dhclient-script(8) para mais informações) ao invés de modificar " +#~ "o dhclient-script." + +#~ msgid "dhclient needs restarting" +#~ msgstr "dhclient precisa ser reiniciado" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Como sempre, o dhclient não foi reiniciado na atualização, portanto você " +#~ "ainda está executando a versão anterior do dhclient. Você pode reiniciá-" +#~ "lo fazendo um ifdown e ifup na(s) interface(s) que são configuradas para " +#~ "usar DHCP, ou explicitamente matando (\"kill\") e reiniciando o dhclient." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Naturalmente, você deveria tomar cuidado se estiver gerenciando um " +#~ "servidor remoto através de uma interface usando DHCP." + +#~ msgid "" +#~ "The names of the network interfaces that dhcrelay should attempt to " +#~ "configure may be specified on the command line using the -i option. If no " +#~ "interface names are specified on the command line dhcrelay will identify " +#~ "all network interfaces, elimininating non-broadcast interfaces if " +#~ "possible, and attempt to configure each interface." +#~ msgstr "" +#~ "Os nomes das interfaces de rede que o dhcrelay deverá tentar configurar " +#~ "podem ser especificados na linha de comando usando a opção -i. Caso " +#~ "nenhum nome de interface seja especificado na linha de comando o dhcrelay " +#~ "irá identificar todas as interfaces de rede, eliminando interfaces não-" +#~ "broadcast caso possível, e tentando configurar cada interface." + +#~ msgid "" +#~ "You can enter one or more valid interface names, like eth0. If you want " +#~ "to serve DHCP request on more than one interface, please separate them " +#~ "with spaces. If you want dhcpd to figure out the interface leave this " +#~ "parameter blank." +#~ msgstr "" +#~ "Um ou mais nomes de interfaces válidos podem ser informados, como eth0, " +#~ "por exemplo. Caso você queira servir requisições DHCP em mais de uma " +#~ "interface de rede, por favor, separe-as com espaços. Caso você queira que " +#~ "o dhcpd descubra a interface, mantenha esse parâmetro em branco." + +#~ msgid "On what network interfaces should the DHCP server listen?" +#~ msgstr "Em quais interfaces de rede o servidor DHCP deverá ouvir ?" --- isc-dhcp-4.1.ESV-R4.orig/debian/po/fi.po +++ isc-dhcp-4.1.ESV-R4/debian/po/fi.po @@ -0,0 +1,237 @@ +msgid "" +msgstr "" +"Project-Id-Version: dhcp3, 3.0.6.dfsg-1\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2007-10-20 22:30+0200\n" +"Last-Translator: Esko Arajärvi \n" +"Language-Team: Finnish \n" +"Language: fi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Finnish\n" +"X-Poedit-Country: FINLAND\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Palvelimet, joille DHCP-välittäjän tulee lähettää pyyntöjä eteenpäin:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Anna ainakin yhden DHCP-palvelimen verkkonimi tai IP-osoite, jolle DHCP- ja " +"BOOTP-pyynnöt tulisi välittää." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Voit määritellä useampia palvelinten nimiä tai IP-osoitteita (välilyönnein " +"eroteltuna)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Verkkoliitynnät, joita DHCP-välittäjän tulisi kuunnella:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Anna verkkoliitynnät, joiden asetuksia DHCP-välittäjän tulisi yrittää " +"asettaa. Useampia liityntöjä voidaan määritellä välilyönnein eroteltuina." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Jätä kenttä tyhjäksi käyttääksesi DHCP-välittäjän automaattista " +"verkkoliityntöjen etsintää ja asetusta. Tässä tapauksessa käytetään vain " +"yleislähetysliityntöjä (jos mahdollista)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DHCP-välittäjätaustaohjelman lisäasetukset:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Anna DHCP-välittäjätaustaohjelman mahdolliset lisäasetukset." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Esimerkiksi: ”-m replace” tai ”-a -D”." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Asetuksia tulee muokata käsin asennuksen jälkeen" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +#, fuzzy +#| msgid "" +#| "After the DHCP server is installed, you will need to manually configure " +#| "it by editing the file /etc/isc-dhcp/dhcpd.conf. Please note that the " +#| "dhcpd.conf supplied is just a sample, and must be adapted to the network " +#| "environment." +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"DHCP-palvelimen asetuksia tiedostossa /etc/isc-dhcp/dhcpd.conf tarvitsee " +"muokata käsin asennuksen jälkeen. Huomaa, että toimitettu dhcpd.conf on vain " +"malli ja se pitää mukauttaa verkkoympäristöön." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Muokkaa DHCP-palvelimen asetuksia heti asennuksen päätyttyä." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Verkkoliitynnät, joita DHCP-palvelimen tulisi kuunnella:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Anna verkkoliitynnät, joista DHCP-palvelimen tulisi kuunnella DHCP-pyyntöjä. " +"Useampia liityntöjä voidaan antaa välilyönnein eroteltuna." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "Liitynnät etsitään automaattisesti, jos tämä kenttä jätetään tyhjäksi." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "DHCP-palvelimen ei-määräävä versio" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "Versiossa 3 DHCP-palvelin on oletuksena ei-määräävä." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Tämä tarkoittaa sitä, että asiakkaan pyytäessä osoitetta, josta palvelin " +#~ "ei tiedä mitään ja joka on virheellinen kyseisessä verkkolohkossa, " +#~ "palvelin _ei_ lähetä vastausta DHCPNAK (joka kertoo asiakkaalle, että sen " +#~ "tulisi lopettaa osoitteen käyttö). Jos tätä käyttäytymistä halutaan " +#~ "muuttaa, tulee tiedostossa dhcpd.conf ilmaista missä verkkolohkoissa " +#~ "palvelin on määräävä käyttäen ”authoritative”-määrettä." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Määreen ”next-server” oletustoiminta on muuttunut" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "Versiosta 3.0.3 alkaen DHCP-palvelimen oletusarvo ”next-server”-määreelle " +#~ "(”seuraava palvelin”) on muuttunut. Jos asiakkaita käynnistetään verkon " +#~ "yli ja TFTP-palvelin on sama kuin DHCP-palvelin, tämä tulee " +#~ "eksplisiittisesti asettaa ”next-server”-määreellä. Tiedostoista /usr/" +#~ "share/doc/isc-dhcp-server/NEWS.Debian.gz ja /usr/share/doc/dhcp3-common/" +#~ "RELNOTES.gz löytyy lisäinfoa (englanniksi)." + +#~ msgid "dhclient-script moved" +#~ msgstr "dhclient-script siirretty" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "Versiosta 3.0.4-2 alkaen dhclient-script on asennettuna hakemistoon /" +#~ "sbin, eikä sitä enää rekisteröidä asetustiedostoksi. Tiedostoa /etc/isc-" +#~ "dhcp/dhclient-script on muokattu jossain vaiheessa, joten sitä ei " +#~ "poistettu. Sitä ei kuitenkaan enää käytetä." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Harkitse koukkujärjestelmän (hook infrastructure, katso man-ohjesivu " +#~ "dhclient-script(8)) käyttöä tiedoston dhclient-script muokkaamisen sijaan." + +#~ msgid "dhclient needs restarting" +#~ msgstr "dhclient tulee käynnistää uudelleen." + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Kuten aina, ohjelmaa dhclient ei käynnistetä uudelleen päivitettäessä, " +#~ "joten ohjelman edellinen versio on yhä käytössä. Voit käynnistää sen " +#~ "uudelleen ajamalla komennot ifdown ja ifup verkkoliitynnöille, jotka on " +#~ "asetettu käyttämään DHCP:tä, tai tappamalla ja käynnistämällä uudelleen " +#~ "ohjelman dhclient." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Luonnollisesti tulisi edetä varoen, jos hallinnoit etäpalvelinta DHCP:tä " +#~ "käyttävän verkkoliitynnän kautta." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/gl.po +++ isc-dhcp-4.1.ESV-R4/debian/po/gl.po @@ -0,0 +1,283 @@ +# translation of isc-dhcp_4.1.1-P1-9_gl.po to Galician +# Galician translation of dhcp3's debconf templates. +# This file is distributed under the same license as the dhcp3 package. +# +# Jacobo Tarrio , 2006. +# Jorge Barreiro , 2010. +msgid "" +msgstr "" +"Project-Id-Version: isc-dhcp_4.1.1-P1-9_gl\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2010-08-13 02:14+0200\n" +"Last-Translator: Jorge Barreiro \n" +"Language-Team: Galician \n" +"Language: gl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Servidores aos que o repetidor DHCP debería enviar as peticións:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Introduza o nome ou enderezo IP de alomenos un servidor DHCP ao que se " +"deberían enviar as peticións DHCP e BOOTP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Pode especificar varios nomes ou enderezos IP separándoos mediante espazos." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Interfaces nas que o repetidor DHCP debe escoitar:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Indique que interface(s) de rede ten que tentar configurar o repetidor DHCP. " +"Pódense introducir varios nomes de interface separándoos con espazos." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Déixeo baleiro para permitir que o repetidor DHCP detecte e configure " +"automaticamente as interfaces de rede; nese caso só se han empregar " +"interfaces \"broadcast\" (se é posible)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Opcións adicionais para o servizo repetidor DHCP:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Indique as opcións adicionais para o servizo repetidor DHCP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Por exemplo: \"-m replace\" ou \"-a -D\"." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Hai que realizar configuración manual trala instalación" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Despois de instalar o servidor DHCP ha ter que configuralo a man editando o " +"ficheiro /etc/dhcp/dhcpd.conf. Teña en conta que o ficheiro dhcp.conf que se " +"fornece é só un exemplo que hai que adaptar ao ambiente de rede." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Configure o servidor DHCP tan pronto como remate a instalación." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Interfaces de rede nos que o servidor DHCP ten que escoitar:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Indique en que interface(s) de rede debe escoitar por peticións DHCP o " +"servidor DHCP. Pódense introducir varios nomes de interface separándoos " +"mediante espazos." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"Hanse detectar as interfaces automaticamente se deixa este campo baleiro." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Versión sen autoridade do servidor DHCP" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "O servidor DHCP versión 3 non ten autoridade por defecto." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Isto significa que se un cliente solicita un enderezo do que o servidor " +#~ "non sabe nada e o enderezo é incorrecto para ese segmento de rede, o " +#~ "servidor _non_ ha enviar unha mensaxe DHCPNAK (que lle di ao cliente que " +#~ "deixe de empregar o enderezo). Se quere cambiar este comportamento, debe " +#~ "indicar explicitamente en dhcpcd.conf en que segmentos de rede o seu " +#~ "servidor ten autoridade empregando a orde \"authoritative\"." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Cambio no comportamento por defecto da directiva next-server" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "A partires da versión 3.0.3, o valor por defecto da directiva next-server " +#~ "do servidor DHCP cambiou. Se está a iniciar clientes a través da rede e o " +#~ "seu servidor TFTP é o mesmo que o servidor DHCP, ten que establecer " +#~ "explicitamente unha directiva next-server para o indicar. Consulte /usr/" +#~ "share/doc/isc-dhcp-server/NEWS.Debian.gz e /usr/share/doc/dhcp3-common/" +#~ "RELNOTES.gz para obter máis información." + +#~ msgid "dhclient-script moved" +#~ msgstr "Trasladouse dhclient-script" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "A partires de 3.0.4-2, dhclient-script está instalado en /sbin e xa non " +#~ "está rexistrado coma un ficheiro de configuración. Semella que /etc/isc-" +#~ "dhcp/dhclient-script foi modificado nalgún momento, así que non se " +#~ "eliminou. Nembargantes, xa non se emprega." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Pense en empregar a infraestructura de puntos de enganche (consulte " +#~ "dhclient-script(8) para obter máis información) no canto de modificar " +#~ "dhclient-script." + +#~ msgid "dhclient needs restarting" +#~ msgstr "Hai que reiniciar dhclient" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Igual que sempre, dhclient non se reinicia ao actualizalo, así que aínda " +#~ "está a executar a versión antiga de dhclient. Pode reinicialo executando " +#~ "ifdown e ifup sobre as interfaces que estean configuradas para empregar " +#~ "DHCP, ou matando e reiniciando dhclient." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Por suposto, debería ter coidado se está a xestionar un servidor remoto a " +#~ "través dunha interface que emprega DHCP." + +#, fuzzy +#~| msgid "" +#~| "Please enter the names of the network interfaces that dhcp3-relay should " +#~| "attempt to configure, as a space-separated list." +#~ msgid "" +#~ "Please enter the space-separated names of the network interfaces that the " +#~ "DHCP relay should attempt to configure." +#~ msgstr "" +#~ "Introduza unha lista de nomes das interfaces de rede que dhcp3-relay debe " +#~ "tentar configurar, separados por espazos." + +#, fuzzy +#~| msgid "" +#~| "Please enter a space-separated list of interfaces names (e.g. eth0) on " +#~| "which the server should answer DHCP requests." +#~ msgid "" +#~ "Please enter a space-separated list of interface names (e.g. eth0) on " +#~ "which the server should listen for DHCP requests." +#~ msgstr "" +#~ "Introduza unha lista de nomes de interface (por exemplo, eth0) separados " +#~ "por espaxos nose que o servidor debería respostar ás peticións DHCP." + +#~ msgid "" +#~ "The names of the network interfaces that dhcrelay should attempt to " +#~ "configure may be specified on the command line using the -i option. If no " +#~ "interface names are specified on the command line dhcrelay will identify " +#~ "all network interfaces, elimininating non-broadcast interfaces if " +#~ "possible, and attempt to configure each interface." +#~ msgstr "" +#~ "Os nomes das interfaces de rede que debería tentar configurar dhcrelay " +#~ "pódense especificar na liña de ordes empregando a opción -i. Se non se " +#~ "especifica ningún nome de interface na liña de ordes, dhcrelay ha " +#~ "identificar tódalas interfaces de rede, eliminar as interfaces que non " +#~ "podan facer broadcast se é posible, e tratar de configurar cada interface." + +#~ msgid "" +#~ "You can enter one or more valid interface names, like eth0. If you want " +#~ "to serve DHCP request on more than one interface, please separate them " +#~ "with spaces. If you want dhcpd to figure out the interface leave this " +#~ "parameter blank." +#~ msgstr "" +#~ "Pode introducir un ou máis nomes de interface válidos, coma eth0. Se " +#~ "quere servir peticións DHCP en máis dunha interface, sepáreas mediante " +#~ "espazos. Se quere que dhcpd busque a interface, deixe este parámetro " +#~ "baleiro." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/tr.po +++ isc-dhcp-4.1.ESV-R4/debian/po/tr.po @@ -0,0 +1,283 @@ +# Turkish translation of dhcp3. +# This file is distributed under the same license as the dhcp3 package. +# Mehmet Türker, 2004. +# +msgid "" +msgstr "" +"Project-Id-Version: dhcp3\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2007-05-31 15:22+0300\n" +"Last-Translator: Mehmet Türker \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "DHCP relay isteklerinin yönlendirileceği DHCP sunucuları:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Lütfen DHCP ve BOOTP isteklerinin yönlendirilmesi gereken en az bir DHCP " +"sunucusunun adı veya IP adresini komut satırında belirtin." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Birden fazla sunucu adı veya IP adresi (boşluk karakterleriyle ayrılmış " +"olarak) belirtilebilir." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "DHCP sunucusunun dinlemesi gereken ağ arayüzleri:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Lütfen DHCP relay'in yapılandırmayı denemesini istediğiniz ağ arayüzlerini " +"isimlerini boşluk bırakarak bir liste halinde belirtin." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Ağ arayüzlerinin DHCP relay tarafından otomatik algılanıp yapılandırılması " +"için bu alanı boş bırakın. Eğer mümkünse sadece broadcast arayüzleri " +"kullanılacaktır." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DHCP relay sunucusu için ek seçenekler:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Lütfen DHCP anahtarlama (relay) sunucusu için ek seçenekleri belirtin." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Örnek: '-m replace' ya da '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "DHCP sunucusu kurulumdan sonra elle yapılandırma gerektirir" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +#, fuzzy +#| msgid "" +#| "After the DHCP server is installed, you will need to manually configure " +#| "it by editing the file /etc/isc-dhcp/dhcpd.conf. Please note that the " +#| "dhcpd.conf supplied is just a sample, and must be adapted to the network " +#| "environment." +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"DHCP sunucusu kurulduktan sonra /etc/isc-dhcp/dhcpd.conf dosyasını " +"düzenleyerek elle yapılandırmalısınız. Lütfen aklınızda bulunsun, paketle " +"birlikte örnek bir dhcpd.conf dosyası sağlanmıştır. Fakat bu dosya sadece " +"düzenlenmesi gereken bir örnektir ve bunu kendi ağ ortamınıza uyarlamanız " +"gerekir." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Lütfen kurulum biter bitmez DHCP sunucusunu yapılandırın." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "DHCP sunucusunun dinleyeceği ağ arayüzleri:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Lütfen DHCP sunucusunun DHCP isteklerini dinlemesi gereken ağ arayüzlerini " +"belirtin. Birden fazla arayüz ismi var ise bunlar boşluklarla ayrılmış bir " +"liste halinde girilmelidir." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "Bu alan boş bırakılırsa arayüzler otomatik olarak bulunacaktır." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "DHCP sunucusunun yetkisiz (Non-authoritative) sürümü" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "" +#~ "Sürüm 3 DHCP sunucusu öntanımlı olarak yetkisiz (non-authoritative) " +#~ "durumda geliyor." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Bunun anlamı eğer bir istemci, sunucunun hakkında birşey bilmediği bir " +#~ "adres isterse ve bu adres bu ağ kesimi için doğru değilse, sunucu " +#~ "(istemciye bu adresi kullanmayı bırakmasını söyleyen) bir DHCPNAK " +#~ "_göndermeyecektir_. Eğer bu davranışı değiştirmek isterseniz, dhcpd.conf " +#~ "dosyasında hangi ağ kesimlerinin yetkili olduğunu 'authoritative' " +#~ "satırını kullanarak açıkça belirtmeniz gerekir." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "" +#~ "\"next-server\" (sonraki sunucu) yönergesinin varsayılan davranışında " +#~ "değişiklik" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "Sürüm 3.0.3 ten beri, DHCP sunucusunun sonraki-sunucu yönergesi öntanımlı " +#~ "değeri değişmiştir. Eğer ağ üzerinden başlatılan (boot) istemcileriniz " +#~ "mevcut ise, ve TFTP sunucunuz aynı zamanda DHCP sunucu ise, bunu " +#~ "belirtmek için bir \"next-server\" (sonraki sunucu) yönergesi " +#~ "tanımlamanız gerekir. Lütfen daha fazla bilgi için /usr/share/doc/isc-" +#~ "dhcp-server/NEWS.Debian.gz ve /usr/share/doc/isc-dhcp-common/RELNOTES.gz " +#~ "dosyalarına bakın." + +#~ msgid "dhclient-script moved" +#~ msgstr "dhclient-script taşındı" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "Sürüm 3.0.4-2 ile birlikte dhclient-script /sbin içine kurulur ve artık " +#~ "bir yapılandırma dosyası değildir. /etc/isc-dhcp/dhclient-script bir " +#~ "noktasında değiştirilmiş gibi gözüküyor, buyüzden silinmeyecek. Fakat " +#~ "artık kullanılmayacaktır." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Lütfen dhclient-script betiğini değiştirmek yerine hook altyapısını (daha " +#~ "fazla bilgi için dhclient-script(8) kısmına gözatın) kullanmayı tercih " +#~ "edin." + +#~ msgid "dhclient needs restarting" +#~ msgstr "dhclient takrar başlatmayı gerektiriyor" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Herzamanki gibi dhclient güncellenmelerde tekrar başlatılmıyor, " +#~ "dolayısıyla hala dhclient'ın eski sürümünü kullanıyorsunuz. DHCP kullanan " +#~ "arayüzler için birer ifdown ve ifup yaparak tekrar başlatabilirsiniz, " +#~ "yada tamamen öldürüp dhclient'ı tekrar başlatabilirsiniz." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Eğer uzak bir sunucuyu DHCP kullanan bir arayüz üzerinden yönetiyorsanız " +#~ "doğal olarak dikkatli olmalısınız." + +#~ msgid "" +#~ "Please enter a space-separated list of interfaces names (e.g. eth0) on " +#~ "which the server should answer DHCP requests." +#~ msgstr "" +#~ "Lütfen boşluklarla ayrılmış şekilde sunucunun DHCP isteklerine cevap " +#~ "vereceği arayüz isimleri (örn: eth0) listesi girin." + +#, fuzzy +#~ msgid "" +#~ "The names of the network interfaces that dhcrelay should attempt to " +#~ "configure may be specified on the command line using the -i option. If no " +#~ "interface names are specified on the command line dhcrelay will identify " +#~ "all network interfaces, elimininating non-broadcast interfaces if " +#~ "possible, and attempt to configure each interface." +#~ msgstr "" +#~ "Dhcrelay'in yapılandırmaya teşebbüs edeceği ağ arayüzlerinin isimleri " +#~ "komut satırında -i seçeneği kullanılarak belirtilebilir. Eğer komut " +#~ "satırında bir arayüz ismi belirtilmez ise; dhcrelay, eğer mümkünse \"non-" +#~ "broadcast\" arayüzleri elimine ederek, bütün ağ arayüzlerini tanıyacak ve " +#~ "her bir arayüzü yapılandıracaktır." + +#~ msgid "" +#~ "You can enter one or more valid interface names, like eth0. If you want " +#~ "to serve DHCP request on more than one interface, please separate them " +#~ "with spaces. If you want dhcpd to figure out the interface leave this " +#~ "parameter blank." +#~ msgstr "" +#~ "eth0 gibi bir veya daha fazla geçerli arayüz ismi girebilirsiniz. Eğer " +#~ "DHCP isteğini birden fazla arayüz üzerinden sunmak isterseniz, lütfen " +#~ "bunları boşluk karakterleriyle ayırın. Eğer dhcpd'nin arayüze kendisinin " +#~ "karar vermesini isterseniz bu parametreyi boş bırakın." + +#~ msgid "On what network interfaces should the DHCP server listen?" +#~ msgstr "DHCP sunucusu hangi ağ arayüzlerini dinlemeli?" --- isc-dhcp-4.1.ESV-R4.orig/debian/po/pt.po +++ isc-dhcp-4.1.ESV-R4/debian/po/pt.po @@ -0,0 +1,273 @@ +# Portuguese translation of isc-dhcp debconf messages. +# This file is distributed under the same license as the dhcp3 package. +# Ricardo Silva , 2007. +# Pedro Ribeiro , 2010 +# +msgid "" +msgstr "" +"Project-Id-Version: isc-dhcp 4.1.1-P1-9\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2010-09-12 22:43+0100\n" +"Last-Translator: Pedro Ribeiro \n" +"Language-Team: Portuguese \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Servidores para os quais o relay de DHCP deve reencaminhar pedidos:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Por favor introduza o nome da máquina ou o endereço IP de pelo menos um " +"servidor DHCP para o qual devem ser reencaminhados pedidos DHCP e BOOTP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Pode especificar vários nomes de servidores ou endereços IP (numa lista " +"separada por espaços)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Interfaces onde o relay de DHCP deve ouvir:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Por favor especifique que interface(s) de rede deve o relay de DHCP tentar " +"configurar. Vários nomes de interfaces devem ser introduzidos como uma lista " +"separada por espaços." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Deixe este campo em branco para permitir detecção e configuração automática " +"das interfaces de rede pelo relay de DHCP, situação em que apenas interfaces " +"com difusão de mensagens serão usadas (se possível)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Opções adicionais para o daemon de relay de DHCP:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" +"Por favor especifique opções adicionais para o daemon de relay de DHCP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Por Exemplo: '-m replace' ou '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "É necessária configuração manual depois da instalação" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Depois de instalado o servidor de DHCP terá de o configurar manualmente " +"editando o ficheiro /etc/dhcp/dhcpd.conf. Por favor note que o dhcpd.conf " +"fornecido é apenas um exemplo e tem de ser adaptado ao ambiente de rede." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Por favor configure o servidor de DHCP mal acabe a instalação." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Interfaces de rede nas quais o servidor DHCP deve ouvir:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Por favor especifique em que interface(s) de rede deve o servidor de DHCP " +"escutar por pedidos DHCP. Vários nomes de interfaces devem ser introduzidos " +"como uma lista separada por espaços." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"As interfaces vão ser detectadas automaticamente se este campo for deixado " +"em branco." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Versão não autoritária do servidor DHCP" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "A versão 3 do servidor DHCP agora é não-autoritária por omissão." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Isto significa que se um cliente pede um endereço que o servidor não " +#~ "conhece e o endereço é incorrecto para aquele segmento de rede, o " +#~ "servidor _não_ enviará um DHCPNAK (que diz ao cliente para parar de usar " +#~ "o endereço). Se deseja mudar este comportamento, deve especificar " +#~ "explicitamente no dhcpd.conf sobre que segmentos de rede o seu servidor é " +#~ "autoritário usando a opção 'authoritative'." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Alteração no comportamento por omissão da directiva next-server " + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "A partir da versão 3.0.3, o valor por omissão para a directiva next-" +#~ "server do servidor de DHCP mudou. Se tem clientes que arrancam pela rede, " +#~ "e o seu servidor de TFTP é o servidor de DHCP, precisa explicitamente de " +#~ "alterar a directiva next-server para afirmar isso. Por favor veja /usr/" +#~ "share/doc/isc-dhcp-server/NEWS.Debian.gz e /usr/share/doc/isc-dhcp-common/" +#~ "RELNOTES.gz para mais informação." + +#~ msgid "dhclient-script moved" +#~ msgstr "o dhclient-script foi movido" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "A partir da versão 3.0.4-2, o dhclient-script é instalado em /sbin e " +#~ "deixou de ser registado como um ficheiro de configuração. /etc/isc-dhcp/" +#~ "dhclient-script parece ter sido modificado algures no tempo, portanto não " +#~ "foi removido. No entanto já não está a ser usado." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Por favor considere usar a infraestrutura de ganchos em vez de modificar " +#~ "o dhclient-script (ver dhclient-script(8) para mais informação)." + +#~ msgid "dhclient needs restarting" +#~ msgstr "o dhclient precisa de ser reiniciado" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Como sempre, o dhclient não é reiniciado na actualização, portanto ainda " +#~ "está a correr a versão antiga do dhclient. Pode reiniciá-lo fazendo " +#~ "ifdown e ifup na(s) interface(s) que está(ão) configurada(s) para usar " +#~ "DHCP, ou terminando e reiniciando explicitamente o dhclient." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Naturalmente, deve ter cuidado se está a gerir um servidor remoto usando " +#~ "uma interface que use DHCP." + +#~ msgid "" +#~ "The names of the network interfaces that dhcrelay should attempt to " +#~ "configure may be specified on the command line using the -i option. If no " +#~ "interface names are specified on the command line dhcrelay will identify " +#~ "all network interfaces, elimininating non-broadcast interfaces if " +#~ "possible, and attempt to configure each interface." +#~ msgstr "" +#~ "Os nomes das interfaces de rede onde o dhcrelay deve tentar configurar " +#~ "podem ser especificadas na linha de comandos usando a opção -i. Se não " +#~ "forem especificados nenhuns nomes de interfaces na linha de comandos, o " +#~ "dhcrelay identificará todas as interfaces de rede, se possível eliminando " +#~ "interfaces sem broadcast, e tentará configurar cada interface." + +#~ msgid "" +#~ "You can enter one or more valid interface names, like eth0. If you want " +#~ "to serve DHCP request on more than one interface, please separate them " +#~ "with spaces. If you want dhcpd to figure out the interface leave this " +#~ "parameter blank." +#~ msgstr "" +#~ "Pode introduzir um ou mais nomes de interfaces válidas, como eth0. Se " +#~ "deseja servir pedidos DHCP em mais de uma interface, por favor separe-as " +#~ "com espaços. Se deseja que o dhcpd descubra por si mesmo a interface, " +#~ "deixe este parâmetro em branco." + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Como sempre, o dhclient não é reiniciado na actualização, portanto ainda " +#~ "está a correr a versão antiga do dhclient. Pode reiniciá-lo fazendo " +#~ "ifdown e ifup na(s) interface(s) que está(ão) configurada(s) para usar " +#~ "DHCP, ou terminando e reiniciando explicitamente o dhclient." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/nl.po +++ isc-dhcp-4.1.ESV-R4/debian/po/nl.po @@ -0,0 +1,291 @@ +# translation of dhcp3_3.0.4-15_nl.po to Dutch +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Frans Pop , 2004, 2005, 2006. +# Frans Pop , 2006, 2007. +msgid "" +msgstr "" +"Project-Id-Version: dhcp3_3.0.4-10_nl\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2007-06-01 13:56+0200\n" +"Last-Translator: Frans Pop \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Servers waarnaar de DHCP-doorgifteservice verzoeken moet doorsturen:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Geef de computernaam of het IP-adres in van tenminste één DHCP-server " +"waarnaar DHCP- en BOOTP-verzoeken doorgestuurd moeten worden." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"U kunt meer dan één server opgeven; de namen of IP-adressen van de servers " +"dienen in dat geval te worden gescheiden door spaties." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Netwerkinterface(s) waarop de DHCP-doorgifteservice moet luisteren:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Geef aan welke netwerkinterface(s) de DHCP-doorgifteservice moet proberen te " +"configureren. Als u meerdere namen van interfaces opgeeft, dienen deze te " +"worden gescheiden door spaties." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Laat dit veld leeg om automatische detectie en configuratie van " +"netwerkinterfaces door de DHCP-doorgifteservice mogelijk te maken; in dat " +"geval zullen (indien mogelijk) uitsluitend broadcast interfaces gebruikt " +"worden." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "" +"Aanvullende opties voor de DHCP-doorgifteservice achtergronddienst (dhcp3-" +"relay):" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" +"Geef eventuele aanvullende opties voor de DHCP-doorgifteservice " +"achtergronddienst (daemon) op." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Voorbeeld: '-m replace' of 'a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Na de installatie is handmatige configuratie noodzakelijk" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +#, fuzzy +#| msgid "" +#| "After the DHCP server is installed, you will need to manually configure " +#| "it by editing the file /etc/isc-dhcp/dhcpd.conf. Please note that the " +#| "dhcpd.conf supplied is just a sample, and must be adapted to the network " +#| "environment." +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Nadat de DHCP-server is geïnstalleerd, zal u deze nog handmatig moeten " +"configureren door het bestand '/etc/isc-dhcp/dhcpd.conf' te wijzigen. Merk " +"op dat het reeds aanwezige bestand dhcpd.conf slechts een voorbeeld is dat " +"moet worden aangepast aan uw eigen netwerkomgeving." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "" +"U wordt aangeraden om de DHCP-server te configureren zodra de installatie is " +"voltooid." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Netwerkinterface(s) waarop de DHCP-server moet luisteren:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Geef aan welke netwerkinterfaces de DHCP-server moet uitluisteren voor " +"binnenkomende DHCP-verzoeken (bijvoorbeeld: \"eth0\"). Als u meerdere namen " +"van interfaces opgeeft, dienen deze te worden gescheiden door spaties." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"Als dit veld leeg wordt gelaten, zullen de interfaces automatisch " +"gedetecteerd worden." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Niet-gezaghebbende versie van DHCP-server" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "Versie 3 van de DHCP-server is nu standaard niet-gezaghebbend." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Dit betekent dat, als een client een adres aanvraagt waarvan de server " +#~ "niets afweet en het adres niet juist is voor het betreffende " +#~ "netwerksegment, de server _geen_ DHCPNAK zal versturen (DHCPNAK " +#~ "instrueert de client het adres niet langer te gebruiken). Als u dit wil " +#~ "wijzigen, zal u in dhcpd.conf expliciet met behulp van het " +#~ "'authoritative' commando moeten aangeven voor welke netwerksegmenten uw " +#~ "server gezaghebbend is." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Wijziging in de standaard werking van de \"next-server\"-optie" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "Vanaf versie 3.0.3 is de standaardwaarde voor de \"next-server\"-optie " +#~ "gewijzigd. Als u werkstations opstart vanaf het netwerk (\"netboot\") en " +#~ "uw DHCP-server is tevens uw TFTP-server, dan dient u expliciet de \"next-" +#~ "server\"-optie in te stellen. Nadere informatie hierover vindt u in /usr/" +#~ "share/doc/dhcp3-server/NEWS.Debian.gz en /usr/share/doc/isc-dhcp-common/" +#~ "RELNOTES.gz." + +#~ msgid "dhclient-script moved" +#~ msgstr "Het dhclient-script is verplaatst" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "Vanaf versie 3.0.4-2 wordt het dhclient-script geïnstalleerd in /sbin en " +#~ "wordt het niet langer geregistreerd als configuratiebestand. Het lijkt " +#~ "erop dat het bestand /etc/isc-dhcp/dhclient-script op enig moment is " +#~ "gewijzigd; het is daarom niet verwijderd, maar het wordt niet langer " +#~ "gebruikt." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Aangeraden wordt niet het dhclient-script te wijzigen maar in plaats " +#~ "daarvan de \"hook\"-infrastructuur (zie dhclient-script(8) voor " +#~ "aanvullende informatie) te gebruiken." + +#~ msgid "dhclient needs restarting" +#~ msgstr "dhclient moet worden herstart" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Zoals altijd wordt dhclient niet automatisch opnieuw opgestart bij deze " +#~ "opwaardering en dus is nog altijd de voorgaande versie van dhclient " +#~ "actief. U kunt de service herstarten door een 'ifdown' en 'ifup' te geven " +#~ "voor de interface(s) die met behulp van DHCP zijn geconfigureerd. Een " +#~ "andere optie is een expliciete 'kill' van het actieve dhclient proces en " +#~ "het daarna opnieuw te starten." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "U dient uiteraard voorzichtig te zijn als u een server vanaf afstand " +#~ "beheert via een interface die is geconfigureerd met behulp van DHCP." + +#~ msgid "" +#~ "The names of the network interfaces that dhcrelay should attempt to " +#~ "configure may be specified on the command line using the -i option. If no " +#~ "interface names are specified on the command line dhcrelay will identify " +#~ "all network interfaces, elimininating non-broadcast interfaces if " +#~ "possible, and attempt to configure each interface." +#~ msgstr "" +#~ "De namen van de netwerkinterfaces die dhcrelay moet proberen te " +#~ "configureren, kunnen op de opdrachtregel worden ingegeven door de optie " +#~ "\"-i\" te gebruiken. Als op de opdrachtregel geen namen van interfaces " +#~ "worden opgegeven, zal dhcrelay alle netwerkinterfaces identificeren en " +#~ "proberen om elke interface te configureren; hierbij worden, indien " +#~ "mogelijk, niet-broadcast-interfaces uitgesloten." + +#~ msgid "" +#~ "You can enter one or more valid interface names, like eth0. If you want " +#~ "to serve DHCP request on more than one interface, please separate them " +#~ "with spaces. If you want dhcpd to figure out the interface leave this " +#~ "parameter blank." +#~ msgstr "" +#~ "U kunt één of meerdere geldige namen van interfaces, zoals eth0, opgeven. " +#~ "Als u DHCP-verzoeken op meer dan één interface wilt laten afhandelen, " +#~ "kunt u de namen scheiden met spaties. Als u dhcpd zelf de interface wilt " +#~ "laten bepalen, kunt u deze parameter leeg laten." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/fr.po +++ isc-dhcp-4.1.ESV-R4/debian/po/fr.po @@ -0,0 +1,240 @@ +# translation of fr.po to French +# +# +# Nicolas Bertolissio , 2005. +# Christian Perrier , 2007. +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2007-06-06 20:37+0200\n" +"Last-Translator: Christian Perrier \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" +"X-Poedit-Country: SWITZERLAND\n" +"X-Poedit-SourceCharset: utf-8\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Serveurs DHCP auxquels faire suivre les requêtes de relais DHCP :" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Veuillez indiquer le nom ou l'adresse IP d'au moins un serveur DHCP auquel " +"faire suivre les requêtes DHCP et BOOTP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Vous pouvez indiquer plus d'un serveur. Séparez les noms (ou les adresses " +"IP) des serveurs par un espace." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Interface où le relais DHCP sera à l'écoute :" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Veuillez indiquer, séparés par des espaces, les noms des interfaces réseau " +"que le relais DHCP doit tenter de configurer. " + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Laissez ce champ vide pour permettre la détection et la configuration " +"automatique des interfaces réseaux par le relais DHCP ; dans ce cas, seules " +"les interfaces permettant la diffusion (« broadcast ») seront utilisées." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Options supplémentaires pour le démon de relais DHCP :" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" +"Vous pouvez ajouter des options supplémentaires pour le démon de relais DHCP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Par exemple : « -m replace » ou « -a -D »." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Configuration du serveur DHCP requise après l'installation" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Après l'installation du serveur DHCP, vous devrez le configurer vous-même en " +"modifiant le fichier /etc/dhcp/dhcpd.conf. Veuillez noter qu'un exemple de " +"fichier dhcpd.conf est fourni, mais que cette configuration est partielle et " +"qu'elle doit être adaptée à votre environnement réseau." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Veuillez configurer le serveur DHCP dès la fin de l'installation." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Interfaces réseau où le serveur DHCP sera à l'écoute :" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Veuillez indiquer, séparés par des espaces, les noms des interfaces réseaux " +"que le relais DHCP doit tenter de configurer. " + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "Les interfaces seront automatiquement détectées si ce champ est vide." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Version non autoritative du serveur DHCP" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "" +#~ "La version 3 du serveur DHCP ne fait maintenant plus autorité par défaut." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Cela signifie que si un client demande une adresse inconnue du serveur et " +#~ "que celle-ci est incorrecte pour le segment de réseau considéré, le " +#~ "serveur n'enverra pas de message DHCPNAK (pour demander au client de ne " +#~ "pas utiliser cette adresse). Si vous souhaitez modifier ce comportement, " +#~ "vous devez indiquer explicitement dans le fichier dhcpd.conf les segments " +#~ "de réseau pour lesquels votre serveur fait autorité en utilisant la " +#~ "mention « authoritative »." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Modification du comportement par défaut de la directive next-server" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "Depuis la version 3.0.3, le serveur DHCP par défaut défini dans la " +#~ "directive next-server a changé. Si certains clients démarrent via le " +#~ "réseau, et que votre serveur de TFTP est identique à votre serveur DHCP, " +#~ "vous devez l'indiquer de manière explicite par une directive next-server. " +#~ "Veuillez consulter /usr/share/doc/isc-dhcp-server/NEWS.Debian.gz et /usr/" +#~ "share/doc/dhcp3-common/RELNOTES.gz pour plus d'informations." + +#~ msgid "dhclient-script moved" +#~ msgstr "Déplacement du script dhclient-script" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "Depuis la version 3.0.4-2, le script dhclient-script est installé dans /" +#~ "sbin et n'est plus un fichier de configuration. Ce fichier /etc/isc-dhcp/" +#~ "dhclient-script a été modifié sans être supprimé mais n'est plus utilisé." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Veuillez considérer l'utilisation de l'infrastructure de crochet plutôt " +#~ "que de modifier le fichier dhclient-script." + +#~ msgid "dhclient needs restarting" +#~ msgstr "Redémarrage nécessaire pour dhclient" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Dhclient n'est jamais redémarré lors d'une mise à jour, et la version " +#~ "précédente est actuellement active. Vous pouvez redémarrer ce script avec " +#~ "les commandes « ifdown » et « ifup » sur la (les) interface(s) configurée" +#~ "(s) pour utiliser DHCP, ou alors tuer le processus et ensuite redémarrer " +#~ "dhclient." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "La prudence est recommandée avec un serveur distant géré via une " +#~ "interface qui utilise elle-même DHCP." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/ru.po +++ isc-dhcp-4.1.ESV-R4/debian/po/ru.po @@ -0,0 +1,248 @@ +# translation of ru.po to Russian +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Yuriy Talakan' , 2005. +# Sergey Alyoshin , 2007. +# Yuri Kozlov , 2006, 2007. +# Yuri Kozlov , 2010. +msgid "" +msgstr "" +"Project-Id-Version: isc-dhcp 4.1.1-P1-9\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2010-08-01 17:03+0400\n" +"Last-Translator: Yuri Kozlov \n" +"Language-Team: Russian \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Серверы, на которые DHCP-релей будет пересылать запросы:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Введите имя узла или IP-адрес минимум одного DHCP-сервера, на который будут " +"пересылаться DHCP- и BOOTP-запросы." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Вы можете указать более одного имени сервера или IP-адреса (через пробел)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Сетевые интерфейсы, на которых будет работать DHCP-релей:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Укажите сетевой(ые) интерфейс(ы), который(е) DHCP-релей должен попытаться " +"настроить. Можно указать несколько интерфейсов через пробел." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Для автоматического определения и настройки сетевых интерфейсов с помощью " +"DHCP-релея оставьте это поле пустым. В этом случае (если возможно) будут " +"использоваться только широковещательные интерфейсы." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Дополнительные параметры для демона DHCP-релея:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Укажите любые дополнительные параметры для демона DHCP-релея." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Например: '-m replace' или '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "После установки требуется ручная настройка" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"После того как DHCP-сервер установлен, вам нужно вручную настроить его, " +"отредактировав файл /etc/dhcp/dhcpd.conf. Обратите внимание, что " +"устанавливается всего лишь пример файла dhcpd.conf, и его нужно адаптировать " +"к существующей сети." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Пожалуйста, настройте DHCP-сервер сразу после завершения установки." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Сетевые интерфейсы, на которых будет работать DHCP-сервер:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Укажите сетевой(ые) интерфейс(ы), с которых сервер DHCP должен принимать " +"DHCP-запросы. Можно указать несколько интерфейсов через пробел." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"Если это поле оставить пустым, интерфейсы будут определены автоматически." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Неавторитетная версия DHCP-сервера" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "Версия 3 DHCP-сервера по умолчанию неавторитетна." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Это означает, что если клиент запрашивает адрес, о котором сервер ничего " +#~ "не знает, и адрес не соответствует этому сегменту сети, то сервер _не_ " +#~ "будет отправлять сообщение DHCPNAK (оно указывает клиенту прекратить " +#~ "использование данного адреса). Если вы хотите изменить такое поведение, " +#~ "то должны явно указать в dhcpd.conf для какого сегмента сети ваш сервер " +#~ "авторитетен, используя выражение 'authoritative'." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Изменение настройки по умолчанию для параметра next-server" + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "Начиная с версии 3.0.3, значение по умолчанию для параметра next-server " +#~ "DHCP-сервера было изменено. Если ваш сервер используется для загрузки " +#~ "клиентов по сети, и в качестве TFTP-сервера используется ваш DHCP-сервер, " +#~ "то вам нужно самим добавить параметр next-server, чтобы это работало. " +#~ "Подробней об этом смотрите в файлах /usr/share/doc/isc-dhcp-server/NEWS." +#~ "Debian.gz и /usr/share/doc/isc-dhcp-common/RELNOTES.gz." + +#~ msgid "dhclient-script moved" +#~ msgstr "Изменено расположение dhclient-script" + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "Начиная с версии 3.0.4-2, dhclient-script устанавливается в каталог /sbin " +#~ "и более не является конфигурационным файлом. Кажется, в системе находится " +#~ "изменённая версия файла /etc/isc-dhcp/dhclient-script, поэтому он не был " +#~ "удалён. Однако, использоваться он больше не будет." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Вместо редактирования сценария dhclient-script, пожалуйста, пользуйтесь " +#~ "инфраструктурой хуков (подробности смотрите в dhclient-script(8))." + +#~ msgid "dhclient needs restarting" +#~ msgstr "Требуется перезапустить dhclient" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Как обычно, при обновлении перезапуск dhclient не выполняется, поэтому у " +#~ "вас всё ещё запущена предыдущая версия dhclient. Вы можете перезапустить " +#~ "его выполнив ifdown и ifup для интерфейса(ов), который(ые) используют " +#~ "DHCP, или явно убив и перезапустив dhclient." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Естественно, вы должны быть осторожны, если делаете это на сервере " +#~ "удалённо через интерфейс, использующий DHCP." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/sv.po +++ isc-dhcp-4.1.ESV-R4/debian/po/sv.po @@ -0,0 +1,287 @@ +# Swedish translation of dhcp3. +# Copyright (C) 2010 Martin Bagge +# This file is distributed under the same license as the dhcp3 package. +# +# Daniel Nylander , 2005. +# Martin Bagge , 2008, 2010. +msgid "" +msgstr "" +"Project-Id-Version: dhcp3 3.0.3-6\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2010-08-07 04:56+0100\n" +"Last-Translator: Martin Bagge / brother \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Swedish\n" +"X-Poedit-Country: SWEDEN\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Servrar dit denna DHCP-relay skall vidarebefordra förfrågningar till:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Vänligen ange värdnamn eller ip-adress på åtminstone en DHCP-server till " +"vilken DHCP och BOOTP-förfrågningar ska skickas vidare till." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Du kan specificera flera servernamn eller ip-adresser (genom att ange en " +"blankstegsavgränsad lista)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Nätverksgränssnitt som DHCP-relay skall lyssna på:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Vänligen ange vilket/vilka nätverksgränssnitt som DHCP " +"vidarebefordringsdemonen skall försöka att konfigurera. Om flera " +"gränssnittsnamn anges skall dessa separeras med mellanslag." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Lämna detta fält tomt för att tillåta automatisk identifiering och " +"konfiguration av nätverksgränssnitt av dhcp3-relay, vilket då innebära att " +"endast nätverksgränssnitt med BROADCAST-flaggan kommer användas (om möjligt)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Ytterligare flaggor för DHCP-vidarebefordringsdemonen:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Vänligen ange eventuella ytterligare flaggor för DHCP-relay demonen." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Till exempel: '-m replace' eller '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Manuell konfiguration krävs efter installationen" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Efter att DHCP-servern är installerad behöver du manuellt konfigurera den " +"genom att ändra i filen /etc/isc-dhcp/dhcpd.conf. Observera att dhcpd.conf-" +"filen som skickas med endast är ett exempel och behöver ändras för att passa " +"den aktuella nätverksmiljön." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Konfigurera DHCP-servern så fort som installationen är färdigställd." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Nätverksgränssnitt där DHCP-servern skall lyssna:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Vänligen ange vilket/vilka nätverksgränssnitt som DHCP-" +"vidarebefordringsdemonen skall lyssna efter förfrågningar på. Om flera " +"gränssnitt anges skall dessa vara separerade med mellanslag." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"Nätverksgränssnitten kommer automatiskt identifieras om detta fält lämnas " +"tomt." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "Icke-auktoritär version av DHCP server" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "Version 3 av DHCP-servern är icke-auktoritär som standard." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "Detta betyder att om en klient frågar efter en address som servern inte " +#~ "vet något om och addressen är felaktig för det nätverkssegmentet, kommer " +#~ "servern _inte_ att skicka en DHCPNAK (som säger till klienten att sluta " +#~ "använda den addressen.) Om du vill ändra detta beetende måste du ange i " +#~ "dhcpd.conf vilket nätverkssegment din server är auktoritär för med " +#~ "direktivet 'authoritative'." + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "Ändra standarduppträdandet för direktivet next-server" + +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "Från version 3.0.3 har DHCP-serverns standardvärde för direktivet \"next-" +#~ "server\" ändrats. Om du startar upp klienter via nätverket och din TFTP-" +#~ "server är din DHCP-server behöver du ställa in direktivet \"next-server\" " +#~ "för att bekräfta detta. Se /usr/share/doc/isc-dhcp-server/NEWS.Debian.gz " +#~ "och /usr/share/doc/dhcp3-server/RELNOTES.gz för mer information." + +#~ msgid "dhclient-script moved" +#~ msgstr "dhclient-script har flyttats" + +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "Från och med 3.0.4-2 är dhclient-script installerat i /sbin och är inte " +#~ "längre registrerad som en konfigurationsfil. /etc/isc-dhcp/dhclient-" +#~ "script verkar ha ändrats vid något tillfälle, så den filen har inte " +#~ "tagits bort, men den används inte längre." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "Vänligen överväg att använda infrastrukturen för krokar (se dhclient-" +#~ "script(8) för mer information) istället för att modifiera dhclient-script." + +#~ msgid "dhclient needs restarting" +#~ msgstr "dhclient behöver startas om" + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "Som vanligt startar dhclient inte om vid uppgradering så du kör " +#~ "fortfarande den föregående versionen av dhclient. Du kan starta om den " +#~ "genom att köra ifdown och ifup på de nätverksgränssnitt som är " +#~ "konfigurerade att använda DHCP, eller genom att uttryckligen döda och " +#~ "sedan starta upp dhclient igen." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Självklart bör du vidtaga försiktighetsåtgärder om du administrerar en " +#~ "avlägsen server via ett nätverksgränssnitt som använder DHCP." + +#~| msgid "" +#~| "Please enter the names of the network interfaces that dhcp3-relay should " +#~| "attempt to configure, as a space-separated list." +#~ msgid "" +#~ "Please enter the space-separated names of the network interfaces that the " +#~ "DHCP relay should attempt to configure." +#~ msgstr "" +#~ "Vänligen ange namnen på de nätverksgränssnitt som dhcp3-relay skall " +#~ "försöka konfigurera, separerade med mellanslag." + +#~| msgid "" +#~| "Please enter a space-separated list of interfaces names (e.g. eth0) on " +#~| "which the server should answer DHCP requests." +#~ msgid "" +#~ "Please enter a space-separated list of interface names (e.g. eth0) on " +#~ "which the server should listen for DHCP requests." +#~ msgstr "" +#~ "Vänligen ange en lista med nätverksgränssnitt (t.ex. eth0), avgränsade " +#~ "med mellanslag, för vilka servern skall svara på DHCP-förfrågningar." + +#, fuzzy +#~ msgid "" +#~ "The names of the network interfaces that dhcrelay should attempt to " +#~ "configure may be specified on the command line using the -i option. If no " +#~ "interface names are specified on the command line dhcrelay will identify " +#~ "all network interfaces, elimininating non-broadcast interfaces if " +#~ "possible, and attempt to configure each interface." +#~ msgstr "" +#~ "Namnen på nätverkskortet som dhcrelay ska försöka konfigurera måste " +#~ "specificeras på kommandolinjen med flaggan -i. Om inget namn specificeras " +#~ "på kommandolinjen kommer dhcrelay att identifiera nätverkskortet, ta bort " +#~ "ta bort nätverkskort utan broadcastflagga om möjligt och försöka " +#~ "konfigurera varje kort." + +#~ msgid "" +#~ "You can enter one or more valid interface names, like eth0. If you want " +#~ "to serve DHCP request on more than one interface, please separate them " +#~ "with spaces. If you want dhcpd to figure out the interface leave this " +#~ "parameter blank." +#~ msgstr "" +#~ "Du kan ange en eller flera giltiga nätverkskort, såsom eth0. Om du vill " +#~ "ta emot DHCP-förfrågningar på mer än ett kort, separera dom med " +#~ "mellanslag. Om du vill att dhcpd ska själv fundera ut vilket kort, lämna " +#~ "denna parameter blank." + +#~ msgid "On what network interfaces should the DHCP server listen?" +#~ msgstr "På vilken nätverkskort ska DHCP-servern lyssna?" --- isc-dhcp-4.1.ESV-R4.orig/debian/po/vi.po +++ isc-dhcp-4.1.ESV-R4/debian/po/vi.po @@ -0,0 +1,150 @@ +# Vietnamese Translation for ISC DHCP. +# Copyright © 2010 Free Software Foundation, Inc. +# Clytie Siddall , 2005-2010. +# +msgid "" +msgstr "" +"Project-Id-Version: isc-dhcp 4.1.1-P1-11\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2010-10-27 15:29+1030\n" +"Last-Translator: Clytie Siddall \n" +"Language-Team: Vietnamese \n" +"Language: vi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: LocFactoryEditor 1.8\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Máy phục vụ tới đó trình gửi tiếp DHCP nên chuyển tiếp yêu cầu :" + +# The name or IP address of at least one DHCP server to which DHCP and +# BOOTP requests should be relayed must be specified on the command line. +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Hãy nhập tên máy hoặc địa chỉ IP của ít nhất một máy phục vụ DHCP tới đó cần " +"chuyển tiếp yêu cầu DHCP và BOOTP." + +# You can specify more than one server, just separate the server names (or +# IP addresses) with spaces. +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Cũng có thể ghi rõ nhiều tên máy phục vụ hay địa chỉ IP, trong danh sách " +"định giới bằng dấu cách." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Giao diện trên chúng trình gửi tiếp DHCP nên lắng nghe:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Hãy ghi rõ những giao diện mạng nào trình gửi tiếp DHCP nên thử cấu hình. " +"Nhiều tên giao diện nên được nhập trong danh sách định giới bằng dấu cách." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Bỏ trống trường này để cho phép trình gửi tiếp DHCP tự động phát hiện và cấu " +"hình giao diện mạng, trong trường hợp đó chỉ sử dụng giao diện kiểu quảng bá " +"(nếu có thể)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Tùy chọn bổ sung cho trình nền gửi tiếp DHCP:" + +# It is possible to specify additional options for the DHCP relay daemon. +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Hãy ghi rõ tùy chọn bổ sung nào cho trình nền gửi tiếp DHCP." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Thí dụ : « -m replace » hay « -a -D »." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Sau khi cài đặt thì cũng cần cấu hình bằng tay" + +# After the DHCP server is installed you will need to manually configure it +# by editing the file /etc/isc-dhcp/dhcpd.conf. Please note that a sample +# dhcpd.conf is supplied, but the configuration there is just a sample that +# requires editing and customization to your own network environment. +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Một khi cài đặt trình phục vụ DHCP thì bạn cần phải tự cấu hình nó bằng cách " +"chỉnh sửa tập tin « /etc/dhcp/dhcpd.conf ». Ghi chú rằng tập tin « dhcpd." +"conf » có sẵn chỉ là một mẫu thí dụ mà bạn cần phải điều chỉnh để thích hợp " +"với môi trường mạng." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Một khi cài đặt thì hãy cấu hình trình phục vụ DHCP." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Giao diện mạng nào trên đó trình phục vụ DHCP nên lắng nghe:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Hãy ghi rõ trên những giao diện mạng nào trình phục vụ DHCP nên lắng nghe " +"yêu cầu DHCP. Nhiều tên giao diện nên được nhập trong danh sách định giới " +"bằng dấu cách." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "Bỏ trống trường này thì tự động phát hiện giao diện." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/de.po +++ isc-dhcp-4.1.ESV-R4/debian/po/de.po @@ -0,0 +1,155 @@ +# translation of isc-dhcp_4.1.1-P1-8_de.po to German +# +# Translators, if you are not familiar with the PO format, gettext +# documentation is worth reading, especially sections dedicated to +# this format, e.g. by running: +# info -n '(gettext)PO Files' +# info -n '(gettext)Header Entry' +# Some information specific to po-debconf are available at +# /usr/share/doc/po-debconf/README-trans +# or http://www.debian.org/intl/l10n/po-debconf/README-trans# +# Developers do not need to manually edit POT or PO files. +# +# Erik Schanze , 2004-2010. +msgid "" +msgstr "" +"Project-Id-Version: isc-dhcp_4.1.1-P1-8_de\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2010-07-18 21:01+0200\n" +"Last-Translator: Erik Schanze \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "DHCP-Server, zu denen der DHCP-Relay die Anfragen weiterleiten soll:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Bitte geben Sie den Rechnernamen oder die IP-Adresse mindestens eines DHCP-" +"Servers ein, zu dem die DHCP- und BOOTP-Anfragen weitergeleitet werden " +"sollen." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Sie können mehrere Servernamen oder IP-Adressen (durch Leerzeichen getrennt) " +"eingeben." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "" +"Netzwerkschnittstellen, an denen der DHCP-Relay auf Anfragen lauschen soll:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Bitte geben Sie die Netzwerkschnittstelle(n) ein, die der DHCP-Relay " +"versuchen soll einzustellen. Mehrere Schnittstellennamen sollten in einer " +"Liste, durch Leerzeichen getrennt, eingegeben werden." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Geben Sie hier nichts ein, falls der DHCP-Relay die Netzwerkschnittstellen " +"automatisch erkennen und einstellen soll. Dabei werden nur Broadcast-" +"Schnittstellen benutzt (falls möglich)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Zusätzliche Optionen für den DHCP-Relay-Dienst:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Bitte geben Sie zusätzliche Optionen für den DHCP-Relay-Dienst ein." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Beispiel: »-m replace« oder »-a -D«." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Manuelle Einstellungen nach der Installation erforderlich" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Nachdem der DHCP-Server installiert wurde, müssen Sie ihn manuell durch " +"Anpassen der Datei /etc/dhcp/dhcpd.conf einrichten. Bitte beachten Sie, dass " +"die mitgelieferte Datei dhcpd.conf nur ein Beispiel ist und an die " +"Netzwerkumgebung angepasst werden muss." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Bitte richten Sie den DHCP-Server sofort nach der Installation ein." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "" +"Netzwerkschnittstelle, an der der DHCP-Server auf Anfragen warten soll:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Bitte geben Sie die Netzwerkschnittstelle(n) ein, an der bzw. denen der DHCP-" +"Server auf DHCP-Anfragen lauschen soll. Mehrere Schnittstellennamen sollten " +"in einer Liste, durch Leerzeichen getrennt, eingegeben werden." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"Die Schnittstellen werden automatisch erkannt, falls hier nichts eingegeben " +"wird." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/da.po +++ isc-dhcp-4.1.ESV-R4/debian/po/da.po @@ -0,0 +1,144 @@ +# Danish translation isc-dhcp. +# Copyright (C) 2010 isc-dhcp & nedenstående oversættere. +# This file is distributed under the same license as the isc-dhcp package. +# Joe Hansen , 201 +# +msgid "" +msgstr "" +"Project-Id-Version: isc-dhcp\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2010-10-19 19:21+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Servere som DHCP-relay skal videresende forespørgsler til:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"Indtast venligst værtsnavnet eller IP-adressen på mindst en DHCP-server som " +"DHCP- og BOOTP-forespørgsler skal relayes til." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Du kan angive flere servernavne eller IP-adresser (i en mellemrumsadskilt " +"liste)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Grænseflader DHCP-relayet skal lytte på:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Angiv venligst hvilke netværksgrænseflader DHCP-relayet skal forsøge at " +"konfigurere. Flere grænsefladenavne skal indtastes som en mellemrumsadskilt " +"liste." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"Efterlad dette felt tomt for at tillade automatisk detektering og " +"konfiguration af netværksgrænseflader af DHCP-relayet, i hvilket tilfælde " +"kun rundsendelsesgrænseflader (broadcast interfaces) vil blive brugt (hvis " +"muligt)." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Yderligere indstillinger for DHCP-relaydæmonen:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" +"Angiv venligst eventuelle yderligere indstillinger for DHCP-relaydæmonen." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "For eksempel: '-m replace' eller '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Manuel konfiguration krævet efter installation" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Efter DHCP-serveren er installeret, skal du manuelt konfigurere den ved at " +"redigere filen /etc/dhcp/dhcpd.conf. Bemærk venligst at den angivne dhcpd." +"conf kun er et eksempel, og skal tilpasses til netværksmiljøet." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Konfigurer venligst DHCP-serveren så snart installationen er færdig." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Netværksgrænseflader hvorpå DHCP-serveren skal lytte:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Angiv venligst på hvilke netværksgrænseflader DHCP-serveren skal lytte efter " +"DHCP-forespørgsler. Flere grænsefladenavne skal indtastes som en " +"mellemrumsadskilt liste." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"Grænsefladerne vil automatisk blive registreret, hvis dette felt efterlades " +"tomt." --- isc-dhcp-4.1.ESV-R4.orig/debian/po/ta.po +++ isc-dhcp-4.1.ESV-R4/debian/po/ta.po @@ -0,0 +1,243 @@ +# translation of dhcp3.po to TAMIL +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Dr.T.Vasudevan , 2007. +msgid "" +msgstr "" +"Project-Id-Version: dhcp3\n" +"Report-Msgid-Bugs-To: isc-dhcp@packages.debian.org\n" +"POT-Creation-Date: 2010-07-07 18:58-0700\n" +"PO-Revision-Date: 2007-06-09 14:38+0530\n" +"Last-Translator: Dr.T.Vasudevan \n" +"Language-Team: TAMIL \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "டிஹெச்சிபி(DHCP) வேண்டுகோள்களை அனுப்ப வேண்டிய சேவையகங்கள்:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"Please enter the hostname or IP address of at least one DHCP server to which " +"DHCP and BOOTP requests should be relayed." +msgstr "" +"டிஹெச்சிபி(DHCP) மற்றும் அழைப்புகளை அனுப்ப குறைந்தது ஒரு புரவலன் பெயர் அல்லது ஐபி(IP) " +"முகவரியை குறிப்பிடவும்." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"நீங்கள் பல சேவயக அல்லது ஐபி(IP) முகவரிகள் பெயர்களை இடைவெளியால் பிரித்த பட்டியலாக " +"குறிப்பிடலாம்." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "டிஹெச்சிபி(DHCP) அஞ்சல் செவிசாய்க்க இடைமுகங்கள்:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"செவிசாய்க்க எந்த வலை இடைமுகங்களை டிஹெச்சிபி(DHCP) அஞ்சல் வடிவமைக்க வேண்டும் என " +"குறிப்பிடுக. பல் இடைமுகங்கள் இருப்பின் பெயர்களை இடைவெளியால் பிரித்த பட்டியலாக " +"குறிப்பிடலாம்." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"தானியங்கியாக டிஹெச்சிபி(DHCP) அஞ்சல் வலை இடைமுகங்களை கண்டறிய இந்த புலத்தை வெற்று ஆக " +"விடவும். அப்போது இயலுமாயின் அலை பரப்புஇடைமுகங்கள் மட்டுமே பயன்படுத்தப்படும்." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "டிஹெச்சிபி(DHCP) அஞ்சல் கிங்கரனுக்கு கூடுதல் தேர்வுகள்:" + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" +"டிஹெச்சிபி(DHCP) அஞ்சல் கிங்கரனுக்கு கூடுதல் தேர்வுகள் ஏதாவது இருப்பின் குறிப்பிடுக." + +#. Type: string +#. Description +#: ../isc-dhcp-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "உதாரணம் : '-m replace' அல்லது '-a -D'." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "நிறுவலுக்குப்பின் கைமுறை வடிவமைப்பு தேவை" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +#, fuzzy +#| msgid "" +#| "After the DHCP server is installed, you will need to manually configure " +#| "it by editing the file /etc/isc-dhcp/dhcpd.conf. Please note that the " +#| "dhcpd.conf supplied is just a sample, and must be adapted to the network " +#| "environment." +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"டிஹெச்சிபி(DHCP) சேவயகம் நிறுவப்பட்டதும் நீங்கள் அதை கைமுறையாக வடிவமைக்க வேண்டும். " +"அதற்கு /etc/isc-dhcp/dhcpd.conf. கோப்பை திருத்தவும். dhcpd.conf என்பது உதாரணமே. " +"வலையமைப்பு சூழலுக்கு ஏற்ப இது மாறுபடும்." + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "" +"டிஹெச்சிபி(DHCP) சேவயகம் நிறுவப்பட்ட உடனேயே தயை செய்து நீங்கள் அதை கைமுறையாக " +"வடிவமைக்க வேண்டும்." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "டிஹெச்சிபி(DHCP) சேவயகம் செவி சாய்க்க வலையமைப்பு இடைமுகங்கள்:" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"டிஹெச்சிபி(DHCP) சேவயகம் எந்த வலையமைப்பு இடைமுகங்களுக்கு செவி சாய்க்க வேண்டுமென " +"குறிப்பிடவும். நீங்கள் பல இடைமுக பெயர்களை இடைவெளியால் பிரித்த பட்டியலாக குறிப்பிடலாம்." + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "இந்த புலம் வெற்றாக விடப்பட்டால் இடைமுகங்கள் தானியங்கியாக கண்டுபிடிக்கப்படும்." + +#~ msgid "Non-authoritative version of DHCP server" +#~ msgstr "அதிகார பூர்வமாகாத டிஹெச்சிபி(DHCP) சேவையக வடிவ நிலை" + +#~ msgid "The version 3 DHCP server is non-authoritative by default." +#~ msgstr "" +#~ "இந்த 3 ஆம் பதிப்பு டிஹெச்சிபி(DHCP) சேவையகம் முன்னிருப்பாக அதிகார பூர்வமாகாதது." + +#~ msgid "" +#~ "This means that if a client requests an address that the server knows " +#~ "nothing about and the address is incorrect for that network segment, the " +#~ "server will _not_ send a DHCPNAK (which tells the client it should stop " +#~ "using the address). If you want to change this behavior, you must " +#~ "explicitly state in dhcpd.conf what network segments your server is " +#~ "authoritative for using the 'authoritative' statement." +#~ msgstr "" +#~ "இதன் பொருள் என்னவென்றால், ஒரு சார்ந்தோன் கேட்ட முகவரி பற்றி சேவையகத்துக்கு தெரியாமல் " +#~ "இருந்து அந்த வலைத் துண்டுக்கான முகவரியும் தவறாக இருந்தால் சேவயகம் DHCPNAK ஐ " +#~ "அனுப்பாது. (அது சார்ந்தோனை அந்த முகவரியை பயன்படுத்துவதை நிறுத்தச் சொல்லும்) இந்த " +#~ "நடத்தையை மாற்ற விரும்பினால் dhcpd.conf இல் நீங்கள் தெளிவாக வலை துண்டுகளில் எதற்கு " +#~ "உங்கள் சேவையகம் 'authoritative' அறிக்கை (கூற்றறிக்கை) வழங்க உறுதி படுத்தப் பட்டது " +#~ "என சொல்ல வேண்டும். " + +#~ msgid "Change in default behaviour of the next-server directive" +#~ msgstr "அடுத்த சேவையக பணிப்பில் முன்னிருப்பு நடத்தையை மாற்றுக." + +#, fuzzy +#~| msgid "" +#~| "From version 3.0.3, the DHCP server's default value of the next-server " +#~| "directive has changed. If you are network booting clients, and your TFTP " +#~| "server is your DHCP server, you need to explicitly set a next-server " +#~| "directive to state this. Please see /usr/share/doc/isc-dhcp-server/NEWS." +#~| "Debian.gz and /usr/share/doc/isc-dhcp-common/RELNOTES.gz for more " +#~| "information." +#~ msgid "" +#~ "From version 3.0.3, the DHCP server's default value of the next-server " +#~ "directive has changed. If you are network booting clients, and your TFTP " +#~ "server is your DHCP server, you need to explicitly set a next-server " +#~ "directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS." +#~ "Debian.gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more " +#~ "information." +#~ msgstr "" +#~ "வடிவ நிலை 3.0.3 முதல் டிஹெச்சிபி(DHCP) அடுத்த சேவையக பணிப்புக்கான சேவயக " +#~ "முன்னிருப்பு நடத்தை மாற்றப்பட்டது. நீங்கள் வலைத் துவக்க சார்ந்தோனாக இருப்பின் மேலும் உங்கள் " +#~ "சேவையகம் டிஹெச்சிபி(DHCP) ஆக இருப்பின் நீங்கள் தெளிவான அடுத்த சேவையக பணிப்பை அமைக்க " +#~ "வேண்டும். மேலும் தகவல்களுக்கு /usr/share/doc/isc-dhcp-server/NEWS.Debian.gz " +#~ "மற்றும் /usr/share/doc/isc-dhcp-common/RELNOTES.gz ஆகியவற்றை பார்க்கவும்." + +#~ msgid "dhclient-script moved" +#~ msgstr "டிஹெச் சார்ந்தோன் குறு நிரல் (dhclient-script) நகர்த்தப்பட்டது." + +#, fuzzy +#~| msgid "" +#~| "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~| "registered as a configuration file. /etc/isc-dhcp/dhclient-script " +#~| "appears to have been modified at some point, so it has not been removed. " +#~| "However it is no longer being used." +#~ msgid "" +#~ "As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +#~ "registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +#~ "have been modified at some point, so it has not been removed. However it " +#~ "is no longer being used." +#~ msgstr "" +#~ "3.0.4-2 முதல் டிஹெச் சார்ந்தோன் குறு நிரல் (dhclient-script) /sbin இல் " +#~ "நிறுவப்படும். அது இனி வடிவமைப்பு கோப்பாக பதிவு செய்யப் பட மாட்டாது. /etc/isc-" +#~ "dhcp/dhclient-script ஏதோ ஒரு சமயம் மாற்றப்பட்டது போல உள்ளது. ஆகவே அது நீக்கப் " +#~ "பட்டது. அது இனி பயன் படாது." + +#~ msgid "" +#~ "Please consider using the hook infrastructure (see dhclient-script(8) for " +#~ "more information) instead of modifying dhclient-script." +#~ msgstr "" +#~ "டிஹெச் சார்ந்தோன் குறு நிரல் ஐ மாற்றுவதற்கு பதில் தயை செய்து ஹூக் அடிப்படை கட்டமைப்பை " +#~ "பயன்படுத்துவதைப் பற்றி யோசிக்கவும். மேலும் தகவல்களுக்கு dhclient-script(8) ஐ காண்க. " + +#~ msgid "dhclient needs restarting" +#~ msgstr "டிஹெச் சார்ந்தோன் ஐ மீள் துவக்க வேண்டும்." + +#~ msgid "" +#~ "As always, dhclient is not restarted on upgrade, so you are still running " +#~ "the previous version of dhclient. You can restart it by doing an ifdown " +#~ "and ifup on the interface(s) that are configured to use DHCP, or by " +#~ "explicitly killing and restarting dhclient." +#~ msgstr "" +#~ "வழக்கம் போல டிஹெச் சார்ந்தோன் மேம்பட்டவுடன் மீள் துவக்கப் படுவதில்லை. நீங்கள் இன்னமும் " +#~ "முந்தைய பதிப்பில்தான் உள்ளீர்கள். அதை மீள் துவக்க வேண்டும். அதற்கு டிஹெச்சிபி(DHCP) ஐ " +#~ "பயன்படுத்த வடிவமைத்த இடைமுகங்களில் ifdown மற்றும் ifup செய்தோ அல்லது தெளிவாக டிஹெச் " +#~ "சார்ந்தோன் ஐ நிறுத்தி மீள் துவக்கவோ வேண்டும்." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "நீங்கள் டிஹெச்சிபி ஐ பயன் படுத்தி இடை முகம் வழியாக தொலை சேவையகத்தை மேலாண்டால் " +#~ "இயற்கையாக எச்சரிக்கையுடன் இருக்க வேண்டும்." --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/droppriv.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/droppriv.dpatch @@ -0,0 +1,216 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## droppriv.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +=== modified file 'isc-dhcp-server/common/Makefile.am' +--- isc-dhcp-server/common/Makefile.am 2009-09-02 22:34:25 +0000 ++++ isc-dhcp-server/common/Makefile.am 2012-09-17 14:56:34 +0000 +@@ -5,7 +5,7 @@ + dispatch.c dlpi.c dns.c ethernet.c execute.c fddi.c \ + icmp.c inet.c lpf.c memory.c nit.c options.c packet.c \ + parse.c print.c raw.c resolv.c socket.c tables.c tr.c \ +- tree.c upf.c heap.c ++ tree.c upf.c heap.c droppriv.c + man_MANS = dhcp-eval.5 dhcp-options.5 + EXTRA_DIST = $(man_MANS) + + +=== modified file 'isc-dhcp-server/common/Makefile.in' +--- isc-dhcp-server/common/Makefile.in 2012-02-20 13:05:01 +0000 ++++ isc-dhcp-server/common/Makefile.in 2012-09-17 14:56:34 +0000 +@@ -52,7 +52,7 @@ + nit.$(OBJEXT) options.$(OBJEXT) packet.$(OBJEXT) \ + parse.$(OBJEXT) print.$(OBJEXT) raw.$(OBJEXT) resolv.$(OBJEXT) \ + socket.$(OBJEXT) tables.$(OBJEXT) tr.$(OBJEXT) tree.$(OBJEXT) \ +- upf.$(OBJEXT) heap.$(OBJEXT) ++ upf.$(OBJEXT) heap.$(OBJEXT) droppriv.$(OBJEXT) + libdhcp_a_OBJECTS = $(am_libdhcp_a_OBJECTS) + DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes + depcomp = $(SHELL) $(top_srcdir)/depcomp +@@ -176,7 +176,7 @@ + dispatch.c dlpi.c dns.c ethernet.c execute.c fddi.c \ + icmp.c inet.c lpf.c memory.c nit.c options.c packet.c \ + parse.c print.c raw.c resolv.c socket.c tables.c tr.c \ +- tree.c upf.c heap.c ++ tree.c upf.c heap.c droppriv.c + + man_MANS = dhcp-eval.5 dhcp-options.5 + EXTRA_DIST = $(man_MANS) +@@ -237,6 +237,7 @@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dispatch.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dlpi.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dns.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/droppriv.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ethernet.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execute.Po@am__quote@ + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fddi.Po@am__quote@ + +=== added file 'isc-dhcp-server/common/droppriv.c' +--- isc-dhcp-server/common/droppriv.c 1970-01-01 00:00:00 +0000 ++++ isc-dhcp-server/common/droppriv.c 2012-09-17 14:57:47 +0000 +@@ -0,0 +1,101 @@ ++/** ++ * droppriv.c - drop privileges of a program running as root ++ * ++ * (C) 2004 Martin Pitt ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ */ ++ ++#include "droppriv.h" ++#include ++#include ++#include ++#include ++#include ++#include ++ ++void ++drop_privileges( const char* user, const char* group, int numcaps, ++ cap_value_t* caps, int errorexit ) ++{ ++ cap_t cap; ++ struct passwd *pw = NULL; ++ struct group *gr = NULL; ++ ++ /* determine user and group id */ ++ if( user != NULL ) { ++ pw = getpwnam( user ); ++ if( !pw ) { ++ fprintf( stderr, "drop_privileges: WARNING: user %s does not exist, keeping root privileges\n", user ); ++ return; ++ } ++ } ++ ++ if( group != NULL ) { ++ gr = getgrnam( group ); ++ if( !gr ) { ++ fprintf( stderr, "drop_privileges: WARNING: group %s does not exist, keeping root privileges\n", group ); ++ return; ++ } ++ } ++ ++ /* keep capabilities */ ++ if( numcaps > 0 ) { ++ int result; ++ ++ if( prctl( PR_SET_KEEPCAPS, 1, 0, 0, 0 ) ) { ++ perror( "drop_privileges: could not keep capabilities" ); ++ exit( errorexit ); ++ } ++ ++ /* test whether cap_set_proc works */ ++ cap = cap_get_proc(); ++ if( cap ) { ++ result = cap_set_proc( cap ); ++ cap_free( cap ); ++ if( result ) ++ return; ++ } else ++ return; ++ } ++ ++ // Change groups ++ if( geteuid() == 0 && user != NULL && gr != NULL && initgroups( user, gr->gr_gid ) ) { ++ perror( "drop_privileges: unable to get new groups list" ); ++ } ++ ++ /* change uid/gid */ ++ if( gr != NULL && setgid( gr->gr_gid ) ) { ++ perror( "drop_privileges: could not set group id" ); ++ exit( errorexit ); ++ } ++ ++ if( pw != NULL && setuid( pw->pw_uid ) ) { ++ perror( "drop_privileges: could not set user id" ); ++ exit( errorexit ); ++ } ++ ++ /* set necessary capabilities */ ++ if( numcaps > 0 ) { ++ cap = cap_init(); ++ if( cap_set_flag( cap, CAP_PERMITTED, numcaps, caps, CAP_SET ) || ++ cap_set_flag( cap, CAP_EFFECTIVE, numcaps, caps, CAP_SET ) ) { ++ perror( "drop_privileges: cap_set_flag" ); ++ exit( errorexit ); ++ } ++ ++ if( cap_set_proc( cap ) ) { ++ perror( "drop_privileges: could not install capabilities" ); ++ exit( errorexit ); ++ } ++ ++ if( cap_free( cap ) ) { ++ perror( "drop_privileges: cap_free" ); ++ exit( errorexit ); ++ } ++ } ++} ++ + +=== modified file 'isc-dhcp-server/includes/Makefile.am' +--- isc-dhcp-server/includes/Makefile.am 2009-09-02 22:34:25 +0000 ++++ isc-dhcp-server/includes/Makefile.am 2012-09-17 14:56:34 +0000 +@@ -9,6 +9,7 @@ + + EXTRA_DIST = cdefs.h ctrace.h dhcp.h dhcp6.h dhcpd.h dhctoken.h failover.h \ + heap.h inet.h osdep.h site.h statement.h tree.h t_api.h \ ++ droppriv.h \ + arpa/nameser.h arpa/nameser_compat.h \ + minires/minires.h minires/res_update.h minires/resolv.h \ + netinet/if_ether.h netinet/ip.h netinet/ip_icmp.h netinet/udp.h + +=== modified file 'isc-dhcp-server/includes/Makefile.in' +--- isc-dhcp-server/includes/Makefile.in 2012-02-20 13:05:01 +0000 ++++ isc-dhcp-server/includes/Makefile.in 2012-09-17 14:56:34 +0000 +@@ -155,6 +155,7 @@ + + EXTRA_DIST = cdefs.h ctrace.h dhcp.h dhcp6.h dhcpd.h dhctoken.h failover.h \ + heap.h inet.h osdep.h site.h statement.h tree.h t_api.h \ ++ droppriv.h \ + arpa/nameser.h arpa/nameser_compat.h \ + minires/minires.h minires/res_update.h minires/resolv.h \ + netinet/if_ether.h netinet/ip.h netinet/ip_icmp.h netinet/udp.h + +=== added file 'isc-dhcp-server/includes/droppriv.h' +--- isc-dhcp-server/includes/droppriv.h 1970-01-01 00:00:00 +0000 ++++ isc-dhcp-server/includes/droppriv.h 2012-09-17 14:56:34 +0000 +@@ -0,0 +1,31 @@ ++/** ++ * droppriv.h - drop privileges of a program running as root ++ * ++ * (C) 2004 Martin Pitt ++ * ++ * Permission to use, copy, modify, and distribute this software for any ++ * purpose with or without fee is hereby granted, provided that the above ++ * copyright notice and this permission notice appear in all copies. ++ * ++ */ ++ ++#ifndef _DROPPRIV_H ++#define _DROPPRIV_H ++ ++#include ++ ++/** ++ * Drop all but necessary privileges from a program that is started as ++ * root. Set the running user id and group id to the corresponding ++ * values of 'user' and 'group' (NULL values cause the current ++ * user/group not to change). Drops all capabilities but the ++ * ones specified in caps. numcaps is the number of entries in ++ * caps. On error, a message is printed to stderr and the program ++ * terminates with exit code 'errorexit'. ++ */ ++void ++drop_privileges( const char* user, const char* group, int numcaps, ++ cap_value_t* caps, int errorexit ); ++ ++#endif ++ + --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/no_loopback_checksum.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/no_loopback_checksum.dpatch @@ -0,0 +1,22 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## no_loopback_checksum.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Deal with the fact that the loopback interface isn't checsummed by Linux + +@DPATCH@ +diff -urNad isc-dhcp~/common/packet.c isc-dhcp/common/packet.c +--- isc-dhcp~/common/packet.c 2009-06-23 22:15:20.000000000 -0700 ++++ isc-dhcp/common/packet.c 2009-08-31 21:40:19.000000000 -0700 +@@ -319,6 +319,11 @@ + checksum((unsigned char *)&ip.ip_src, + 8, IPPROTO_UDP + ulen)))); + ++ /* loopback interface isn't checksumed in linux */ ++ if (interface -> hw_address.hbuf [0] == 0) { ++ usum = 0; ++ } ++ + udp_packets_seen++; + if (usum && usum != sum) { + udp_packets_bad_checksum++; --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/onetry_retry_after_initial_success +++ isc-dhcp-4.1.ESV-R4/debian/patches/onetry_retry_after_initial_success @@ -0,0 +1,22 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## onetry_retry_after_initial_success.dpatch by Stéphane Graber +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Deal with the fact that the loopback interface isn't checsummed by Linux + +@DPATCH@ +Index: isc-dhcp/client/dhclient.c +=================================================================== +--- isc-dhcp.orig/client/dhclient.c 2012-09-11 16:03:45.859279971 -0400 ++++ isc-dhcp/client/dhclient.c 2012-09-11 18:31:34.347790135 -0400 +@@ -2024,6 +2024,10 @@ + loop = client -> active; + } + ++ /* Ubuntu wants dhclient -1 to still try to get a new lease in the ++ background after a DHCP server failure. */ ++ onetry = 0; ++ + /* No leases were available, or what was available didn't work, so + tell the shell script that we failed to allocate an address, + and try again later. */ --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/dhcp-4.1.0-ldap-code.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/dhcp-4.1.0-ldap-code.dpatch @@ -0,0 +1,3065 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhcp-4.1.0-ldap-code.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Patch to use ldap as a backend for dhcp3 server +## DP: This part of the patch modifies the original dhcp3 code +## DP: This patch is deeply based on the Brian Masney work + +@DPATCH@ +diff -urNad isc-dhcp.orig/common/conflex.c isc-dhcp/common/conflex.c +--- isc-dhcp.orig/common/conflex.c 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/common/conflex.c 2009-12-30 12:34:08.000000000 +0100 +@@ -177,9 +177,13 @@ + /* My kingdom for WITH... */ + int c; + +- if (cfile->bufix == cfile->buflen) +- c = EOF; +- else { ++ if (cfile->bufix == cfile->buflen) { ++ if (cfile -> read_function) { ++ c = cfile->read_function (cfile); ++ } else { ++ c = EOF; ++ } ++ } else { + c = cfile->inbuf [cfile->bufix]; + cfile->bufix++; + } +diff -urNad isc-dhcp.orig/common/print.c isc-dhcp/common/print.c +--- isc-dhcp.orig/common/print.c 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/common/print.c 2009-12-30 12:34:08.000000000 +0100 +@@ -163,9 +163,9 @@ + } + + char *print_hw_addr (htype, hlen, data) +- int htype; +- int hlen; +- unsigned char *data; ++ const int htype; ++ const int hlen; ++ const unsigned char *data; + { + static char habuf [49]; + char *s; +diff -urNad isc-dhcp.orig/includes/dhcpd.h isc-dhcp/includes/dhcpd.h +--- isc-dhcp.orig/includes/dhcpd.h 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/includes/dhcpd.h 2009-12-30 12:34:28.000000000 +0100 +@@ -102,6 +102,12 @@ + #include + #include + ++ #include ++#if defined(LDAP_CONFIGURATION) ++# include ++# include /* for uname() */ ++#endif ++ + #if !defined (BYTE_NAME_HASH_SIZE) + # define BYTE_NAME_HASH_SIZE 401 /* Default would be ridiculous. */ + #endif +@@ -290,6 +295,8 @@ + size_t bufix, buflen; + size_t bufsiz; + ++ int (*read_function) (struct parse *); ++ + struct parse *saved_state; + }; + +@@ -422,6 +429,32 @@ + u_int8_t hbuf [17]; + }; + ++#if defined(LDAP_CONFIGURATION) ++# define LDAP_BUFFER_SIZE 8192 ++# define LDAP_METHOD_STATIC 0 ++# define LDAP_METHOD_DYNAMIC 1 ++#if defined (USE_SSL) ++# define LDAP_SSL_OFF 0 ++# define LDAP_SSL_ON 1 ++# define LDAP_SSL_TLS 2 ++# define LDAP_SSL_LDAPS 3 ++#endif ++ ++/* This is a tree of the current configuration we are building from LDAP */ ++ ++struct ldap_config_stack { ++ LDAPMessage * res; /* Pointer returned from ldap_search */ ++ LDAPMessage * ldent; /* Current item in LDAP that we're processing ++ in res */ ++ int close_brace; /* Put a closing } after we're through with ++ this item */ ++ int processed; /* We set this flag if this base item has been ++ processed. After this base item is processed, ++ we can start processing the children */ ++ struct ldap_config_stack *next; ++}; ++#endif ++ + typedef enum { + server_startup = 0, + server_running = 1, +@@ -642,6 +675,29 @@ + # define DEFAULT_ACK_DELAY_USECS 250000 /* 1/4 of a second */ + #endif + ++#if defined(LDAP_CONFIGURATION) ++# define SV_LDAP_SERVER 60 ++# define SV_LDAP_PORT 61 ++# define SV_LDAP_USERNAME 62 ++# define SV_LDAP_PASSWORD 63 ++# define SV_LDAP_BASE_DN 64 ++# define SV_LDAP_METHOD 65 ++# define SV_LDAP_DEBUG_FILE 66 ++# define SV_LDAP_DHCP_SERVER_CN 67 ++# define SV_LDAP_REFERRALS 68 ++#if defined (USE_SSL) ++# define SV_LDAP_SSL 69 ++# define SV_LDAP_TLS_REQCERT 70 ++# define SV_LDAP_TLS_CA_FILE 71 ++# define SV_LDAP_TLS_CA_DIR 72 ++# define SV_LDAP_TLS_CERT 73 ++# define SV_LDAP_TLS_KEY 74 ++# define SV_LDAP_TLS_CRLCHECK 75 ++# define SV_LDAP_TLS_CIPHERS 76 ++# define SV_LDAP_TLS_RANDFILE 77 ++#endif ++#endif ++ + #if !defined (DEFAULT_DEFAULT_LEASE_TIME) + # define DEFAULT_DEFAULT_LEASE_TIME 43200 + #endif +@@ -2107,7 +2163,7 @@ + char *quotify_string (const char *, const char *, int); + char *quotify_buf (const unsigned char *, unsigned, const char *, int); + char *print_base64 (const unsigned char *, unsigned, const char *, int); +-char *print_hw_addr (int, int, unsigned char *); ++char *print_hw_addr (const int, const int, const unsigned char *); + void print_lease (struct lease *); + void dump_raw (const unsigned char *, unsigned); + void dump_packet_option (struct option_cache *, struct packet *, +@@ -3228,6 +3284,22 @@ + + const char *binding_state_print (enum failover_state); + ++/* ldap.c */ ++#if defined(LDAP_CONFIGURATION) ++extern struct enumeration ldap_methods; ++#if defined (USE_SSL) ++extern struct enumeration ldap_ssl_usage_enum; ++extern struct enumeration ldap_tls_reqcert_enum; ++extern struct enumeration ldap_tls_crlcheck_enum; ++#endif ++isc_result_t ldap_read_config (void); ++int find_haddr_in_ldap (struct host_decl **, int, unsigned, ++ const unsigned char *, const char *, int); ++int find_subclass_in_ldap (struct class *, struct class **, ++ struct data_string *); ++#endif ++ ++ + + /* mdb6.c */ + HASH_FUNCTIONS_DECL(ia, unsigned char *, struct ia_xx, ia_hash_t) +diff -urNad isc-dhcp.orig/server/class.c isc-dhcp/server/class.c +--- isc-dhcp.orig/server/class.c 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/server/class.c 2009-12-30 12:34:28.000000000 +0100 +@@ -84,6 +84,7 @@ + int matched = 0; + int status; + int ignorep; ++ int classfound; + + for (class = collection -> classes; class; class = class -> nic) { + #if defined (DEBUG_CLASS_MATCHING) +@@ -129,9 +130,19 @@ + class -> submatch, MDL)); + if (status && data.len) { + nc = (struct class *)0; +- if (class_hash_lookup (&nc, class -> hash, +- (const char *)data.data, +- data.len, MDL)) { ++ classfound = class_hash_lookup (&nc, ++ class -> hash, ++ (const char *)data.data, ++ data.len, MDL); ++ ++#ifdef LDAP_CONFIGURATION ++ if (local_family == AF_INET && !classfound && ++ find_subclass_in_ldap (class, ++ &nc, &data)) ++ classfound = 1; ++#endif ++ ++ if (classfound) { + #if defined (DEBUG_CLASS_MATCHING) + log_info ("matches subclass %s.", + print_hex_1 (data.len, +diff -urNad isc-dhcp.orig/server/confpars.c isc-dhcp/server/confpars.c +--- isc-dhcp.orig/server/confpars.c 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/server/confpars.c 2009-12-30 12:34:28.000000000 +0100 +@@ -61,7 +61,18 @@ + + isc_result_t readconf () + { +- return read_conf_file (path_dhcpd_conf, root_group, ROOT_GROUP, 0); ++ isc_result_t res; ++ ++ res = read_conf_file (path_dhcpd_conf, root_group, ROOT_GROUP, 0); ++#if defined(LDAP_CONFIGURATION) ++ if (res != ISC_R_SUCCESS) ++ return (res); ++ ++ return ldap_read_config (); ++#else ++ return (res); ++#endif ++ + } + + isc_result_t read_conf_file (const char *filename, struct group *group, +diff -urNad isc-dhcp.orig/server/dhcpd.c isc-dhcp/server/dhcpd.c +--- isc-dhcp.orig/server/dhcpd.c 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/server/dhcpd.c 2009-12-30 12:34:28.000000000 +0100 +@@ -598,6 +598,14 @@ + /* Add the ddns update style enumeration prior to parsing. */ + add_enumeration (&ddns_styles); + add_enumeration (&syslog_enum); ++#if defined (LDAP_CONFIGURATION) ++ add_enumeration (&ldap_methods); ++#if defined (USE_SSL) ++ add_enumeration (&ldap_ssl_usage_enum); ++ add_enumeration (&ldap_tls_reqcert_enum); ++ add_enumeration (&ldap_tls_crlcheck_enum); ++#endif ++#endif + + if (!group_allocate (&root_group, MDL)) + log_fatal ("Can't allocate root group!"); +diff -urNad isc-dhcp.orig/server/ldap.c isc-dhcp/server/ldap.c +--- isc-dhcp.orig/server/ldap.c 1970-01-01 01:00:00.000000000 +0100 ++++ isc-dhcp/server/ldap.c 2009-12-30 12:34:28.000000000 +0100 +@@ -0,0 +1,2358 @@ ++/* ldap.c ++ ++ Routines for reading the configuration from LDAP */ ++ ++/* ++ * Copyright (c) 2003-2006 Ntelos, Inc. ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. Neither the name of The Internet Software Consortium nor the names ++ * of its contributors may be used to endorse or promote products derived ++ * from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND ++ * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, ++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ++ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ * DISCLAIMED. IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ++ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * This LDAP module was written by Brian Masney . Its ++ * development was sponsored by Ntelos, Inc. (www.ntelos.com). ++ */ ++ ++#if defined(HAVE_CONFIG_H) ++#include ++#endif ++ ++#if defined(LDAP_CONFIGURATION) ++#include "dhcpd.h" ++#include ++#include ++#include ++ ++static LDAP * ld = NULL; ++static char *ldap_server = NULL, ++ *ldap_username = NULL, ++ *ldap_password = NULL, ++ *ldap_base_dn = NULL, ++ *ldap_dhcp_server_cn = NULL, ++ *ldap_debug_file = NULL; ++static int ldap_port = LDAP_PORT, ++ ldap_method = LDAP_METHOD_DYNAMIC, ++ ldap_referrals = -1, ++ ldap_debug_fd = -1; ++#if defined (USE_SSL) ++static int ldap_use_ssl = -1, /* try TLS if possible */ ++ ldap_tls_reqcert = -1, ++ ldap_tls_crlcheck = -1; ++static char *ldap_tls_ca_file = NULL, ++ *ldap_tls_ca_dir = NULL, ++ *ldap_tls_cert = NULL, ++ *ldap_tls_key = NULL, ++ *ldap_tls_ciphers = NULL, ++ *ldap_tls_randfile = NULL; ++#endif ++static struct ldap_config_stack *ldap_stack = NULL; ++ ++typedef struct ldap_dn_node { ++ struct ldap_dn_node *next; ++ size_t refs; ++ char *dn; ++} ldap_dn_node; ++ ++static ldap_dn_node *ldap_service_dn_head = NULL; ++static ldap_dn_node *ldap_service_dn_tail = NULL; ++ ++ ++static char * ++x_strncat(char *dst, const char *src, size_t dst_size) ++{ ++ size_t len = strlen(dst); ++ return strncat(dst, src, dst_size > len ? dst_size - len - 1: 0); ++} ++ ++static char * ++x_strxform(char *dst, const char *src, size_t dst_size, ++ int (*xform)(int)) ++{ ++ if(dst && src && dst_size) ++ { ++ size_t len, pos; ++ ++ len = strlen(src); ++ for(pos=0; pos < len && pos + 1 < dst_size; pos++) ++ dst[pos] = xform((int)src[pos]); ++ dst[pos] = '\0'; ++ ++ return dst; ++ } ++ return NULL; ++} ++ ++static int ++get_host_entry(char *fqdnname, size_t fqdnname_size, ++ char *hostaddr, size_t hostaddr_size) ++{ ++#if defined(MAXHOSTNAMELEN) ++ char hname[MAXHOSTNAMELEN+1]; ++#else ++ char hname[65]; ++#endif ++ struct hostent *hp; ++ ++ if (NULL == fqdnname || 1 >= fqdnname_size) ++ return -1; ++ ++ memset(hname, 0, sizeof(hname)); ++ if (gethostname(hname, sizeof(hname)-1)) ++ return -1; ++ ++ if (NULL == (hp = gethostbyname(hname))) ++ return -1; ++ ++ strncpy(fqdnname, hp->h_name, fqdnname_size-1); ++ fqdnname[fqdnname_size-1] = '\0'; ++ ++ if (hostaddr != NULL) ++ { ++ if (hp->h_addr != NULL) ++ { ++ struct in_addr *aptr = (struct in_addr *)hp->h_addr; ++#if defined(HAVE_INET_NTOP) ++ if (hostaddr_size >= INET_ADDRSTRLEN && ++ inet_ntop(AF_INET, aptr, hostaddr, hostaddr_size) != NULL) ++ { ++ return 0; ++ } ++#else ++ char *astr = inet_ntoa(*aptr); ++ size_t alen = strlen(astr); ++ if (astr && alen > 0 && hostaddr_size > alen) ++ { ++ strncpy(hostaddr, astr, hostaddr_size-1); ++ hostaddr[hostaddr_size-1] = '\0'; ++ return 0; ++ } ++#endif ++ } ++ return -1; ++ } ++ return 0; ++} ++ ++static int ++get_host_address(const char *hostname, char *hostaddr, size_t hostaddr_size) ++{ ++ if (hostname && *hostname && hostaddr && hostaddr_size) ++ { ++ struct in_addr addr; ++ ++#if defined(HAVE_INET_PTON) ++ if (inet_pton(AF_INET, hostname, &addr) == 1) ++#else ++ if (inet_aton(hostname, &addr) != 0) ++#endif ++ { ++ /* it is already IP address string */ ++ if(strlen(hostname) < hostaddr_size) ++ { ++ strncpy(hostaddr, hostname, hostaddr_size-1); ++ hostaddr[hostaddr_size-1] = '\0'; ++ return 0; ++ } ++ } ++ else ++ { ++ struct hostent *hp; ++ if ((hp = gethostbyname(hostname)) != NULL && hp->h_addr != NULL) ++ { ++ struct in_addr *aptr = (struct in_addr *)hp->h_addr; ++#if defined(HAVE_INET_NTOP) ++ if (hostaddr_size >= INET_ADDRSTRLEN && ++ inet_ntop(AF_INET, aptr, hostaddr, hostaddr_size) != NULL) ++ { ++ return 0; ++ } ++#else ++ char *astr = inet_ntoa(*aptr); ++ size_t alen = strlen(astr); ++ if (astr && alen > 0 && alen < hostaddr_size) ++ { ++ strncpy(hostaddr, astr, hostaddr_size-1); ++ hostaddr[hostaddr_size-1] = '\0'; ++ return 0; ++ } ++#endif ++ } ++ } ++ } ++ return -1; ++} ++ ++static void ++ldap_parse_class (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ char **tempstr; ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "cn")) == NULL || ++ tempstr[0] == NULL) ++ { ++ if (tempstr != NULL) ++ ldap_value_free (tempstr); ++ ++ return; ++ } ++ ++ x_strncat (cfile->inbuf, "class \"", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, "\" {\n", LDAP_BUFFER_SIZE); ++ ++ item->close_brace = 1; ++ ldap_value_free (tempstr); ++} ++ ++ ++static void ++ldap_parse_subclass (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ char **tempstr, **classdata; ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "cn")) == NULL || ++ tempstr[0] == NULL) ++ { ++ if (tempstr != NULL) ++ ldap_value_free (tempstr); ++ ++ return; ++ } ++ ++ if ((classdata = ldap_get_values (ld, item->ldent, ++ "dhcpClassData")) == NULL || ++ classdata[0] == NULL) ++ { ++ if (classdata != NULL) ++ ldap_value_free (classdata); ++ ldap_value_free (tempstr); ++ ++ return; ++ } ++ ++ x_strncat (cfile->inbuf, "subclass ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, classdata[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " {\n", LDAP_BUFFER_SIZE); ++ ++ item->close_brace = 1; ++ ldap_value_free (tempstr); ++ ldap_value_free (classdata); ++} ++ ++ ++static void ++ldap_parse_host (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ char **tempstr, **hwaddr; ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "cn")) == NULL || ++ tempstr[0] == NULL) ++ { ++ if (tempstr != NULL) ++ ldap_value_free (tempstr); ++ ++ return; ++ } ++ ++ hwaddr = ldap_get_values (ld, item->ldent, "dhcpHWAddress"); ++ ++ x_strncat (cfile->inbuf, "host ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " {\n", LDAP_BUFFER_SIZE); ++ ++ if (hwaddr != NULL && hwaddr[0] != NULL) ++ { ++ x_strncat (cfile->inbuf, "hardware ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, hwaddr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (hwaddr); ++ } ++ ++ item->close_brace = 1; ++ ldap_value_free (tempstr); ++} ++ ++ ++static void ++ldap_parse_shared_network (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ char **tempstr; ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "cn")) == NULL || ++ tempstr[0] == NULL) ++ { ++ if (tempstr != NULL) ++ ldap_value_free (tempstr); ++ ++ return; ++ } ++ ++ x_strncat (cfile->inbuf, "shared-network \"", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, "\" {\n", LDAP_BUFFER_SIZE); ++ ++ item->close_brace = 1; ++ ldap_value_free (tempstr); ++} ++ ++ ++static void ++parse_netmask (int netmask, char *netmaskbuf) ++{ ++ unsigned long nm; ++ int i; ++ ++ nm = 0; ++ for (i=1; i <= netmask; i++) ++ { ++ nm |= 1 << (32 - i); ++ } ++ ++ sprintf (netmaskbuf, "%d.%d.%d.%d", (int) (nm >> 24) & 0xff, ++ (int) (nm >> 16) & 0xff, ++ (int) (nm >> 8) & 0xff, ++ (int) nm & 0xff); ++} ++ ++ ++static void ++ldap_parse_subnet (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ char **tempstr, **netmaskstr, netmaskbuf[16]; ++ int i; ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "cn")) == NULL || ++ tempstr[0] == NULL) ++ { ++ if (tempstr != NULL) ++ ldap_value_free (tempstr); ++ ++ return; ++ } ++ ++ if ((netmaskstr = ldap_get_values (ld, item->ldent, ++ "dhcpNetmask")) == NULL || ++ netmaskstr[0] == NULL) ++ { ++ if (netmaskstr != NULL) ++ ldap_value_free (netmaskstr); ++ ldap_value_free (tempstr); ++ ++ return; ++ } ++ ++ x_strncat (cfile->inbuf, "subnet ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ ++ x_strncat (cfile->inbuf, " netmask ", LDAP_BUFFER_SIZE); ++ parse_netmask (strtol (netmaskstr[0], NULL, 10), netmaskbuf); ++ x_strncat (cfile->inbuf, netmaskbuf, LDAP_BUFFER_SIZE); ++ ++ x_strncat (cfile->inbuf, " {\n", LDAP_BUFFER_SIZE); ++ ++ ldap_value_free (tempstr); ++ ldap_value_free (netmaskstr); ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpRange")) != NULL) ++ { ++ for (i=0; tempstr[i] != NULL; i++) ++ { ++ x_strncat (cfile->inbuf, "range", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[i], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ } ++ ldap_value_free (tempstr); ++ } ++ ++ item->close_brace = 1; ++} ++ ++ ++static void ++ldap_parse_pool (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ char **tempstr; ++ int i; ++ ++ x_strncat (cfile->inbuf, "pool {\n", LDAP_BUFFER_SIZE); ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpRange")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "range", LDAP_BUFFER_SIZE); ++ for (i=0; tempstr[i] != NULL; i++) ++ { ++ x_strncat (cfile->inbuf, " ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[i], LDAP_BUFFER_SIZE); ++ } ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpPermitList")) != NULL) ++ { ++ for (i=0; tempstr[i] != NULL; i++) ++ { ++ x_strncat (cfile->inbuf, tempstr[i], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ } ++ ldap_value_free (tempstr); ++ } ++ ++ item->close_brace = 1; ++} ++ ++ ++static void ++ldap_parse_group (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ x_strncat (cfile->inbuf, "group {\n", LDAP_BUFFER_SIZE); ++ item->close_brace = 1; ++} ++ ++ ++static void ++ldap_parse_key (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ char **tempstr; ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "cn")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "key ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " {\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpKeyAlgorithm")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "algorithm ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpKeySecret")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "secret ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ item->close_brace = 1; ++} ++ ++ ++static void ++ldap_parse_zone (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ char *cnFindStart, *cnFindEnd; ++ char **tempstr; ++ char *keyCn; ++ size_t len; ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "cn")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "zone ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " {\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpDnsZoneServer")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "primary ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpKeyDN")) != NULL) ++ { ++ cnFindStart = strchr(tempstr[0],'='); ++ if (cnFindStart != NULL) ++ cnFindEnd = strchr(++cnFindStart,','); ++ else ++ cnFindEnd = NULL; ++ ++ if (cnFindEnd != NULL && cnFindEnd > cnFindStart) ++ { ++ len = cnFindEnd - cnFindStart; ++ keyCn = dmalloc (len + 1, MDL); ++ } ++ else ++ { ++ len = 0; ++ keyCn = NULL; ++ } ++ ++ if (keyCn != NULL) ++ { ++ strncpy (keyCn, cnFindStart, len); ++ keyCn[len] = '\0'; ++ ++ x_strncat (cfile->inbuf, "key ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, keyCn, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ++ dfree (keyCn, MDL); ++ } ++ ++ ldap_value_free (tempstr); ++ } ++ ++ item->close_brace = 1; ++} ++ ++ ++static void ++add_to_config_stack (LDAPMessage * res, LDAPMessage * ent) ++{ ++ struct ldap_config_stack *ns; ++ ++ ns = dmalloc (sizeof (*ns), MDL); ++ ns->res = res; ++ ns->ldent = ent; ++ ns->close_brace = 0; ++ ns->processed = 0; ++ ns->next = ldap_stack; ++ ldap_stack = ns; ++} ++ ++static void ++ldap_parse_failover (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ char **tempstr; ++ char nodename[257]="\0", fqdnname[257]="\0", fqdnaddr[64]="\0"; ++ char srvaddr[2][64] = {"\0", "\0"}; ++ int primary, split = 0; ++ struct utsname unme; ++ ++ if(uname(&unme) == 0) ++ { ++ snprintf(nodename, sizeof(nodename), "%s", unme.nodename); ++ } ++ if (get_host_entry (fqdnname, sizeof(fqdnname), fqdnaddr, sizeof(fqdnaddr))) ++ { ++ log_info("Could not get fqdn and the IP address of the host"); ++ return; ++ } ++ ++ /* ++ ** when dhcpFailOverPrimaryServer or dhcpFailOverSecondaryServer ++ ** matches our IP address, the following valiables are set: ++ ** - primary is 1 when we are primary or 0 when we are secondary ++ ** - srvaddr[0] contains ip address of the primary ++ ** - srvaddr[1] contains ip address of the secondary ++ */ ++ primary = -1; ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpFailOverPrimaryServer")) != NULL) ++ { ++ if (strcasecmp (tempstr[0], fqdnaddr) == 0 || ++ strcasecmp (tempstr[0], fqdnname) == 0 || ++ strcasecmp (tempstr[0], nodename) == 0) ++ { ++ /* we are the primary */ ++ primary = 1; ++ /* write primary address */ ++ strncpy(srvaddr[0], fqdnaddr, sizeof(srvaddr[0])-1); ++ srvaddr[0][sizeof(srvaddr[0])-1] = '\0'; ++ } ++ else ++ { ++ /* no match => don't set primary flag */ ++ /* write primary address */ ++ if (get_host_address (tempstr[0], srvaddr[0], sizeof(srvaddr[0])) != 0) ++ { ++ log_info("Can't resolve address of the primary failover server %s", ++ tempstr[0]); ++ ldap_value_free (tempstr); ++ return; ++ } ++ } ++ ldap_value_free (tempstr); ++ } ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpFailOverSecondaryServer")) != NULL) ++ { ++ if (strcasecmp (tempstr[0], fqdnaddr) == 0 || ++ strcasecmp (tempstr[0], fqdnname) == 0 || ++ strcasecmp (tempstr[0], nodename) == 0) ++ { ++ if (primary == 1) ++ { ++ log_info("Both, primary and secondary failover server" ++ " attribute matches our hostname/address"); ++ ldap_value_free (tempstr); ++ return; ++ } ++ /* we are the secondary */ ++ primary = 0; ++ /* write secondary address */ ++ strncpy(srvaddr[1], fqdnaddr, sizeof(srvaddr[1])-1); ++ srvaddr[1][sizeof(srvaddr[1])-1] = '\0'; ++ } ++ else ++ { ++ /* no match => don't set primary flag */ ++ /* write secondary address */ ++ if (get_host_address (tempstr[0], srvaddr[1], sizeof(srvaddr[1])) != 0) ++ { ++ log_info("Can't resolve address of the secondary failover server %s", ++ tempstr[0]); ++ ldap_value_free (tempstr); ++ return; ++ } ++ } ++ ldap_value_free (tempstr); ++ } ++ ++ if (primary == -1 || srvaddr[0] == '\0' || srvaddr[1] == '\0') ++ { ++ log_error("Could not decide if the server type is primary" ++ " or secondary for failover peering."); ++ return; ++ } ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "cn")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "failover peer \"", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, "\" {\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ else ++ { ++ // ldap with disabled schema checks? fail to avoid syntax error. ++ log_error("Unable to find mandatory failover peering name attribute"); ++ return; ++ } ++ ++ if (primary) ++ x_strncat (cfile->inbuf, "primary;\n", LDAP_BUFFER_SIZE); ++ else ++ x_strncat (cfile->inbuf, "secondary;\n", LDAP_BUFFER_SIZE); ++ ++ x_strncat (cfile->inbuf, "address ", LDAP_BUFFER_SIZE); ++ if (primary) ++ x_strncat (cfile->inbuf, srvaddr[0], LDAP_BUFFER_SIZE); ++ else ++ x_strncat (cfile->inbuf, srvaddr[1], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ++ x_strncat (cfile->inbuf, "peer address ", LDAP_BUFFER_SIZE); ++ if (primary) ++ x_strncat (cfile->inbuf, srvaddr[1], LDAP_BUFFER_SIZE); ++ else ++ x_strncat (cfile->inbuf, srvaddr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpFailOverPrimaryPort")) != NULL) ++ { ++ if (primary) ++ x_strncat (cfile->inbuf, "port ", LDAP_BUFFER_SIZE); ++ else ++ x_strncat (cfile->inbuf, "peer port ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpFailOverSecondaryPort")) != NULL) ++ { ++ if (primary) ++ x_strncat (cfile->inbuf, "peer port ", LDAP_BUFFER_SIZE); ++ else ++ x_strncat (cfile->inbuf, "port ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpFailOverResponseDelay")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "max-response-delay ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpFailOverUnackedUpdates")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "max-unacked-updates ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpFailOverLoadBalanceTime")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "load balance max seconds ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ if (primary && ++ (tempstr = ldap_get_values (ld, item->ldent, "dhcpMaxClientLeadTime")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "mclt ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ if (primary && ++ (tempstr = ldap_get_values (ld, item->ldent, "dhcpFailOverSplit")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "split ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ split = 1; ++ ldap_value_free (tempstr); ++ } ++ ++ if (primary && !split && ++ (tempstr = ldap_get_values (ld, item->ldent, "dhcpFailOverHashBucketAssignment")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "hba ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempstr[0], LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free (tempstr); ++ } ++ ++ /* ++ ** Are there any other options can come here? If yes then we need to enable ++ ** dhcpStatements in the schema and apply them here as well. ++ ** ++ if ((tempstr = ldap_get_values (ld, item->ldent, "dhcpStatements")) != NULL) ++ { ++ ... ++ ldap_value_free (tempstr); ++ } ++ */ ++ ++ item->close_brace = 1; ++} ++ ++static void ++ldap_stop() ++{ ++ ++ if (ld == NULL) ++ return; ++ ++ ldap_unbind (ld); ++ ld = NULL; ++ ++} ++ ++ ++static char * ++_do_lookup_dhcp_string_option (struct option_state *options, int option_name) ++{ ++ struct option_cache *oc; ++ struct data_string db; ++ char *ret = NULL; ++ ++ memset (&db, 0, sizeof (db)); ++ oc = lookup_option (&server_universe, options, option_name); ++ if (oc && ++ evaluate_option_cache (&db, (struct packet*) NULL, ++ (struct lease *) NULL, ++ (struct client_state *) NULL, options, ++ (struct option_state *) NULL, ++ &global_scope, oc, MDL) && ++ db.data != NULL && *db.data != '\0') ++ ++ { ++ ret = dmalloc (db.len + 1, MDL); ++ if (ret == NULL) ++ log_fatal ("no memory for ldap option %d value", option_name); ++ ++ memcpy (ret, db.data, db.len); ++ ret[db.len] = 0; ++ data_string_forget (&db, MDL); ++ } ++ ++ return (ret); ++} ++ ++ ++static int ++_do_lookup_dhcp_int_option (struct option_state *options, int option_name) ++{ ++ struct option_cache *oc; ++ struct data_string db; ++ int ret = 0; ++ ++ memset (&db, 0, sizeof (db)); ++ oc = lookup_option (&server_universe, options, option_name); ++ if (oc && ++ evaluate_option_cache (&db, (struct packet*) NULL, ++ (struct lease *) NULL, ++ (struct client_state *) NULL, options, ++ (struct option_state *) NULL, ++ &global_scope, oc, MDL) && ++ db.data != NULL && *db.data != '\0') ++ { ++ ret = strtol ((const char *)db.data, NULL, 10); ++ data_string_forget (&db, MDL); ++ } ++ ++ return (ret); ++} ++ ++ ++static int ++_do_lookup_dhcp_enum_option (struct option_state *options, int option_name) ++{ ++ struct option_cache *oc; ++ struct data_string db; ++ int ret = 0; ++ ++ memset (&db, 0, sizeof (db)); ++ oc = lookup_option (&server_universe, options, option_name); ++ if (oc && ++ evaluate_option_cache (&db, (struct packet*) NULL, ++ (struct lease *) NULL, ++ (struct client_state *) NULL, options, ++ (struct option_state *) NULL, ++ &global_scope, oc, MDL) && ++ db.data != NULL && *db.data != '\0') ++ { ++ if (db.len == 1) ++ ret = db.data [0]; ++ else ++ log_fatal ("invalid option name %d", option_name); ++ ++ data_string_forget (&db, MDL); ++ } ++ ++ return (ret); ++} ++ ++static int ++ldap_rebind_cb (LDAP *ld, LDAP_CONST char *url, ber_tag_t request, ber_int_t msgid, void *parms) ++{ ++ int ret; ++ LDAPURLDesc *ldapurl = NULL; ++ char *who = NULL, *pwd = NULL; ++ ++ log_info("LDAP rebind to '%s'", url); ++ if ((ret = ldap_url_parse(url, &ldapurl)) != LDAP_SUCCESS) ++ { ++ log_error ("Error: Can not parse ldap rebind url '%s': %s", ++ url, ldap_err2string(ret)); ++ return ret; ++ } ++ ++ ++#if defined (USE_SSL) ++ if (strcasecmp(ldapurl->lud_scheme, "ldaps") == 0) ++ { ++ int opt = LDAP_OPT_X_TLS_HARD; ++ if ((ret = ldap_set_option (ld, LDAP_OPT_X_TLS, &opt)) != LDAP_SUCCESS) ++ { ++ log_error ("Error: Cannot init LDAPS session to %s:%d: %s", ++ ldapurl->lud_host, ldapurl->lud_port, ldap_err2string (ret)); ++ ldap_free_urldesc(ldapurl); ++ return ret; ++ } ++ else ++ { ++ log_info ("LDAPS session successfully enabled to %s", ldap_server); ++ } ++ } ++ else ++ if (strcasecmp(ldapurl->lud_scheme, "ldap") == 0 && ++ ldap_use_ssl != LDAP_SSL_OFF) ++ { ++ if ((ret = ldap_start_tls_s (ld, NULL, NULL)) != LDAP_SUCCESS) ++ { ++ log_error ("Error: Cannot start TLS session to %s:%d: %s", ++ ldapurl->lud_host, ldapurl->lud_port, ldap_err2string (ret)); ++ ldap_free_urldesc(ldapurl); ++ return ret; ++ } ++ else ++ { ++ log_info ("TLS session successfully started to %s:%d", ++ ldapurl->lud_host, ldapurl->lud_port); ++ } ++ } ++#endif ++ ++ ++ if (ldap_username != NULL || *ldap_username != '\0') ++ { ++ who = ldap_username; ++ pwd = ldap_password; ++ } ++ ++ if ((ret = ldap_simple_bind_s (ld, who, pwd)) != LDAP_SUCCESS) ++ { ++ log_error ("Error: Cannot login into ldap server %s:%d: %s", ++ ldapurl->lud_host, ldapurl->lud_port, ldap_err2string (ret)); ++ } ++ ldap_free_urldesc(ldapurl); ++ return ret; ++} ++ ++static void ++ldap_start (void) ++{ ++ struct option_state *options; ++ int ret, version; ++ ++ if (ld != NULL) ++ return; ++ ++ if (ldap_server == NULL) ++ { ++ options = NULL; ++ option_state_allocate (&options, MDL); ++ ++ execute_statements_in_scope ((struct binding_value **) NULL, ++ (struct packet *) NULL, (struct lease *) NULL, ++ (struct client_state *) NULL, (struct option_state *) NULL, ++ options, &global_scope, root_group, (struct group *) NULL); ++ ++ ldap_server = _do_lookup_dhcp_string_option (options, SV_LDAP_SERVER); ++ ldap_dhcp_server_cn = _do_lookup_dhcp_string_option (options, ++ SV_LDAP_DHCP_SERVER_CN); ++ ldap_port = _do_lookup_dhcp_int_option (options, SV_LDAP_PORT); ++ ldap_base_dn = _do_lookup_dhcp_string_option (options, SV_LDAP_BASE_DN); ++ ldap_method = _do_lookup_dhcp_enum_option (options, SV_LDAP_METHOD); ++ ldap_debug_file = _do_lookup_dhcp_string_option (options, ++ SV_LDAP_DEBUG_FILE); ++ ldap_referrals = _do_lookup_dhcp_enum_option (options, SV_LDAP_REFERRALS); ++ ++#if defined (USE_SSL) ++ ldap_use_ssl = _do_lookup_dhcp_enum_option (options, SV_LDAP_SSL); ++ if( ldap_use_ssl != LDAP_SSL_OFF) ++ { ++ ldap_tls_reqcert = _do_lookup_dhcp_enum_option (options, SV_LDAP_TLS_REQCERT); ++ ldap_tls_ca_file = _do_lookup_dhcp_string_option (options, SV_LDAP_TLS_CA_FILE); ++ ldap_tls_ca_dir = _do_lookup_dhcp_string_option (options, SV_LDAP_TLS_CA_DIR); ++ ldap_tls_cert = _do_lookup_dhcp_string_option (options, SV_LDAP_TLS_CERT); ++ ldap_tls_key = _do_lookup_dhcp_string_option (options, SV_LDAP_TLS_KEY); ++ ldap_tls_crlcheck = _do_lookup_dhcp_enum_option (options, SV_LDAP_TLS_CRLCHECK); ++ ldap_tls_ciphers = _do_lookup_dhcp_string_option (options, SV_LDAP_TLS_CIPHERS); ++ ldap_tls_randfile = _do_lookup_dhcp_string_option (options, SV_LDAP_TLS_RANDFILE); ++ } ++#endif ++ ++#if defined (LDAP_CASA_AUTH) ++ if (!load_uname_pwd_from_miCASA(&ldap_username,&ldap_password)) ++ { ++#if defined (DEBUG_LDAP) ++ log_info ("Authentication credential taken from file"); ++#endif ++#endif ++ ++ ldap_username = _do_lookup_dhcp_string_option (options, SV_LDAP_USERNAME); ++ ldap_password = _do_lookup_dhcp_string_option (options, SV_LDAP_PASSWORD); ++ ++#if defined (LDAP_CASA_AUTH) ++ } ++#endif ++ ++ option_state_dereference (&options, MDL); ++ } ++ ++ if (ldap_server == NULL || ldap_base_dn == NULL) ++ { ++ log_info ("Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file"); ++ ldap_method = LDAP_METHOD_STATIC; ++ return; ++ } ++ ++ if (ldap_debug_file != NULL && ldap_debug_fd == -1) ++ { ++ if ((ldap_debug_fd = open (ldap_debug_file, O_CREAT | O_TRUNC | O_WRONLY, ++ S_IRUSR | S_IWUSR)) < 0) ++ log_error ("Error opening debug LDAP log file %s: %s", ldap_debug_file, ++ strerror (errno)); ++ } ++ ++#if defined (DEBUG_LDAP) ++ log_info ("Connecting to LDAP server %s:%d", ldap_server, ldap_port); ++#endif ++ ++#if defined (USE_SSL) ++ if (ldap_use_ssl == -1) ++ { ++ /* ++ ** There was no "ldap-ssl" option in dhcpd.conf (also not "off"). ++ ** Let's try, if we can use an anonymous TLS session without to ++ ** verify the server certificate -- if not continue without TLS. ++ */ ++ int opt = LDAP_OPT_X_TLS_ALLOW; ++ if ((ret = ldap_set_option (NULL, LDAP_OPT_X_TLS_REQUIRE_CERT, ++ &opt)) != LDAP_SUCCESS) ++ { ++ log_error ("Warning: Cannot set LDAP TLS require cert option to 'allow': %s", ++ ldap_err2string (ret)); ++ } ++ } ++ ++ if (ldap_use_ssl != LDAP_SSL_OFF) ++ { ++ if (ldap_tls_reqcert != -1) ++ { ++ if ((ret = ldap_set_option (NULL, LDAP_OPT_X_TLS_REQUIRE_CERT, ++ &ldap_tls_reqcert)) != LDAP_SUCCESS) ++ { ++ log_error ("Cannot set LDAP TLS require cert option: %s", ++ ldap_err2string (ret)); ++ } ++ } ++ ++ if( ldap_tls_ca_file != NULL) ++ { ++ if ((ret = ldap_set_option (NULL, LDAP_OPT_X_TLS_CACERTFILE, ++ ldap_tls_ca_file)) != LDAP_SUCCESS) ++ { ++ log_error ("Cannot set LDAP TLS CA certificate file %s: %s", ++ ldap_tls_ca_file, ldap_err2string (ret)); ++ } ++ } ++ if( ldap_tls_ca_dir != NULL) ++ { ++ if ((ret = ldap_set_option (NULL, LDAP_OPT_X_TLS_CACERTDIR, ++ ldap_tls_ca_dir)) != LDAP_SUCCESS) ++ { ++ log_error ("Cannot set LDAP TLS CA certificate dir %s: %s", ++ ldap_tls_ca_dir, ldap_err2string (ret)); ++ } ++ } ++ if( ldap_tls_cert != NULL) ++ { ++ if ((ret = ldap_set_option (NULL, LDAP_OPT_X_TLS_CERTFILE, ++ ldap_tls_cert)) != LDAP_SUCCESS) ++ { ++ log_error ("Cannot set LDAP TLS client certificate file %s: %s", ++ ldap_tls_cert, ldap_err2string (ret)); ++ } ++ } ++ if( ldap_tls_key != NULL) ++ { ++ if ((ret = ldap_set_option (NULL, LDAP_OPT_X_TLS_KEYFILE, ++ ldap_tls_key)) != LDAP_SUCCESS) ++ { ++ log_error ("Cannot set LDAP TLS certificate key file %s: %s", ++ ldap_tls_key, ldap_err2string (ret)); ++ } ++ } ++ if( ldap_tls_crlcheck != -1) ++ { ++ int opt = ldap_tls_crlcheck; ++ if ((ret = ldap_set_option (NULL, LDAP_OPT_X_TLS_CRLCHECK, ++ &opt)) != LDAP_SUCCESS) ++ { ++ log_error ("Cannot set LDAP TLS crl check option: %s", ++ ldap_err2string (ret)); ++ } ++ } ++ if( ldap_tls_ciphers != NULL) ++ { ++ if ((ret = ldap_set_option (NULL, LDAP_OPT_X_TLS_CIPHER_SUITE, ++ ldap_tls_ciphers)) != LDAP_SUCCESS) ++ { ++ log_error ("Cannot set LDAP TLS cipher suite %s: %s", ++ ldap_tls_ciphers, ldap_err2string (ret)); ++ } ++ } ++ if( ldap_tls_randfile != NULL) ++ { ++ if ((ret = ldap_set_option (NULL, LDAP_OPT_X_TLS_RANDOM_FILE, ++ ldap_tls_randfile)) != LDAP_SUCCESS) ++ { ++ log_error ("Cannot set LDAP TLS random file %s: %s", ++ ldap_tls_randfile, ldap_err2string (ret)); ++ } ++ } ++ } ++#endif ++ ++ if ((ld = ldap_init (ldap_server, ldap_port)) == NULL) ++ { ++ log_error ("Cannot init ldap session to %s:%d", ldap_server, ldap_port); ++ return; ++ } ++ ++ version = LDAP_VERSION3; ++ if ((ret = ldap_set_option (ld, LDAP_OPT_PROTOCOL_VERSION, &version)) != LDAP_OPT_SUCCESS) ++ { ++ log_error ("Cannot set LDAP version to %d: %s", version, ++ ldap_err2string (ret)); ++ } ++ ++ if (ldap_referrals != -1) ++ { ++ if ((ret = ldap_set_option (ld, LDAP_OPT_REFERRALS, ldap_referrals ? ++ LDAP_OPT_ON : LDAP_OPT_OFF)) != LDAP_OPT_SUCCESS) ++ { ++ log_error ("Cannot %s LDAP referrals option: %s", ++ (ldap_referrals ? "enable" : "disable"), ++ ldap_err2string (ret)); ++ } ++ } ++ ++ if ((ret = ldap_set_rebind_proc(ld, ldap_rebind_cb, NULL)) != LDAP_SUCCESS) ++ { ++ log_error ("Warning: Cannot set ldap rebind procedure: %s", ++ ldap_err2string (ret)); ++ } ++ ++#if defined (USE_SSL) ++ if (ldap_use_ssl == LDAP_SSL_LDAPS || ++ (ldap_use_ssl == LDAP_SSL_ON && ldap_port == LDAPS_PORT)) ++ { ++ int opt = LDAP_OPT_X_TLS_HARD; ++ if ((ret = ldap_set_option (ld, LDAP_OPT_X_TLS, &opt)) != LDAP_SUCCESS) ++ { ++ log_error ("Error: Cannot init LDAPS session to %s:%d: %s", ++ ldap_server, ldap_port, ldap_err2string (ret)); ++ ldap_stop(); ++ return; ++ } ++ else ++ { ++ log_info ("LDAPS session successfully enabled to %s:%d", ++ ldap_server, ldap_port); ++ } ++ } ++ else if (ldap_use_ssl != LDAP_SSL_OFF) ++ { ++ if ((ret = ldap_start_tls_s (ld, NULL, NULL)) != LDAP_SUCCESS) ++ { ++ log_error ("Error: Cannot start TLS session to %s:%d: %s", ++ ldap_server, ldap_port, ldap_err2string (ret)); ++ ldap_stop(); ++ return; ++ } ++ else ++ { ++ log_info ("TLS session successfully started to %s:%d", ++ ldap_server, ldap_port); ++ } ++ } ++#endif ++ ++ if (ldap_username != NULL && *ldap_username != '\0') ++ { ++ if ((ret = ldap_simple_bind_s (ld, ldap_username, ++ ldap_password)) != LDAP_SUCCESS) ++ { ++ log_error ("Error: Cannot login into ldap server %s:%d: %s", ++ ldap_server, ldap_port, ldap_err2string (ret)); ++ ldap_stop(); ++ return; ++ } ++ } ++ ++#if defined (DEBUG_LDAP) ++ log_info ("Successfully logged into LDAP server %s", ldap_server); ++#endif ++} ++ ++ ++static void ++parse_external_dns (LDAPMessage * ent) ++{ ++ char *search[] = {"dhcpOptionsDN", "dhcpSharedNetworkDN", "dhcpSubnetDN", ++ "dhcpGroupDN", "dhcpHostDN", "dhcpClassesDN", ++ "dhcpPoolDN", "dhcpZoneDN", "dhcpFailOverPeerDN", NULL}; ++ ++ /* FIXME: dhcpKeyDN can't be added. It is referenced in dhcpDnsZone to ++ retrive the key name (cn). Adding keyDN will reflect adding a key declaration ++ inside the zone configuration. ++ ++ dhcpSubClassesDN cant be added. It is also similar to the above. ++ Needs schema change. ++ */ ++ LDAPMessage * newres, * newent; ++ struct ldap_config_stack *ns; ++ char **tempstr; ++ int i, j, ret; ++#if defined (DEBUG_LDAP) ++ char *dn; ++ ++ dn = ldap_get_dn (ld, ent); ++ if (dn != NULL) ++ { ++ log_info ("Parsing external DNs for '%s'", dn); ++ ldap_memfree (dn); ++ } ++#endif ++ ++ if (ld == NULL) ++ ldap_start (); ++ if (ld == NULL) ++ return; ++ ++ for (i=0; search[i] != NULL; i++) ++ { ++ if ((tempstr = ldap_get_values (ld, ent, search[i])) == NULL) ++ continue; ++ ++ for (j=0; tempstr[j] != NULL; j++) ++ { ++ if (*tempstr[j] == '\0') ++ continue; ++ ++ if ((ret = ldap_search_s (ld, tempstr[j], LDAP_SCOPE_BASE, ++ "objectClass=*", NULL, 0, ++ &newres)) != LDAP_SUCCESS) ++ { ++ ldap_value_free (tempstr); ++ ldap_stop(); ++ return; ++ } ++ ++#if defined (DEBUG_LDAP) ++ log_info ("Adding contents of subtree '%s' to config stack from '%s' reference", tempstr[j], search[i]); ++#endif ++ for (newent = ldap_first_entry (ld, newres); ++ newent != NULL; ++ newent = ldap_next_entry (ld, newent)) ++ { ++#if defined (DEBUG_LDAP) ++ dn = ldap_get_dn (ld, newent); ++ if (dn != NULL) ++ { ++ log_info ("Adding LDAP result set starting with '%s' to config stack", dn); ++ ldap_memfree (dn); ++ } ++#endif ++ ++ add_to_config_stack (newres, newent); ++ /* don't free newres here */ ++ } ++ } ++ ++ ldap_value_free (tempstr); ++ } ++} ++ ++ ++static void ++free_stack_entry (struct ldap_config_stack *item) ++{ ++ struct ldap_config_stack *look_ahead_pointer = item; ++ int may_free_msg = 1; ++ ++ while (look_ahead_pointer->next != NULL) ++ { ++ look_ahead_pointer = look_ahead_pointer->next; ++ if (look_ahead_pointer->res == item->res) ++ { ++ may_free_msg = 0; ++ break; ++ } ++ } ++ ++ if (may_free_msg) ++ ldap_msgfree (item->res); ++ ++ dfree (item, MDL); ++} ++ ++ ++static void ++next_ldap_entry (struct parse *cfile) ++{ ++ struct ldap_config_stack *temp_stack; ++ ++ if (ldap_stack != NULL && ldap_stack->close_brace) ++ { ++ x_strncat (cfile->inbuf, "}\n", LDAP_BUFFER_SIZE); ++ ldap_stack->close_brace = 0; ++ } ++ ++ while (ldap_stack != NULL && ++ (ldap_stack->ldent == NULL || ( ldap_stack->processed && ++ (ldap_stack->ldent = ldap_next_entry (ld, ldap_stack->ldent)) == NULL))) ++ { ++ if (ldap_stack->close_brace) ++ { ++ x_strncat (cfile->inbuf, "}\n", LDAP_BUFFER_SIZE); ++ ldap_stack->close_brace = 0; ++ } ++ ++ temp_stack = ldap_stack; ++ ldap_stack = ldap_stack->next; ++ free_stack_entry (temp_stack); ++ } ++ ++ if (ldap_stack != NULL && ldap_stack->close_brace) ++ { ++ x_strncat (cfile->inbuf, "}\n", LDAP_BUFFER_SIZE); ++ ldap_stack->close_brace = 0; ++ } ++} ++ ++ ++static char ++check_statement_end (const char *statement) ++{ ++ char *ptr; ++ ++ if (statement == NULL || *statement == '\0') ++ return ('\0'); ++ ++ /* ++ ** check if it ends with "}", e.g.: ++ ** "zone my.domain. { ... }" ++ ** optionally followed by spaces ++ */ ++ ptr = strrchr (statement, '}'); ++ if (ptr != NULL) ++ { ++ /* skip following white-spaces */ ++ for (++ptr; isspace ((int)*ptr); ptr++); ++ ++ /* check if we reached the end */ ++ if (*ptr == '\0') ++ return ('}'); /* yes, block end */ ++ else ++ return (*ptr); ++ } ++ ++ /* ++ ** this should not happen, but... ++ ** check if it ends with ";", e.g.: ++ ** "authoritative;" ++ ** optionally followed by spaces ++ */ ++ ptr = strrchr (statement, ';'); ++ if (ptr != NULL) ++ { ++ /* skip following white-spaces */ ++ for (++ptr; isspace ((int)*ptr); ptr++); ++ ++ /* check if we reached the end */ ++ if (*ptr == '\0') ++ return (';'); /* ends with a ; */ ++ else ++ return (*ptr); ++ } ++ ++ return ('\0'); ++} ++ ++ ++static isc_result_t ++ldap_parse_entry_options (LDAPMessage *ent, char *buffer, size_t size, ++ int *lease_limit) ++{ ++ char **tempstr; ++ int i; ++ ++ if (ent == NULL || buffer == NULL || size == 0) ++ return (ISC_R_FAILURE); ++ ++ if ((tempstr = ldap_get_values (ld, ent, "dhcpStatements")) != NULL) ++ { ++ for (i=0; tempstr[i] != NULL; i++) ++ { ++ if (lease_limit != NULL && ++ strncasecmp ("lease limit ", tempstr[i], 12) == 0) ++ { ++ *lease_limit = (int) strtol ((tempstr[i]) + 12, NULL, 10); ++ continue; ++ } ++ ++ x_strncat (buffer, tempstr[i], size); ++ ++ switch((int) check_statement_end (tempstr[i])) ++ { ++ case '}': ++ case ';': ++ x_strncat (buffer, "\n", size); ++ break; ++ default: ++ x_strncat (buffer, ";\n", size); ++ break; ++ } ++ } ++ ldap_value_free (tempstr); ++ } ++ ++ if ((tempstr = ldap_get_values (ld, ent, "dhcpOption")) != NULL) ++ { ++ for (i=0; tempstr[i] != NULL; i++) ++ { ++ x_strncat (buffer, "option ", size); ++ x_strncat (buffer, tempstr[i], size); ++ switch ((int) check_statement_end (tempstr[i])) ++ { ++ case ';': ++ x_strncat (buffer, "\n", size); ++ break; ++ default: ++ x_strncat (buffer, ";\n", size); ++ break; ++ } ++ } ++ ldap_value_free (tempstr); ++ } ++ ++ return (ISC_R_SUCCESS); ++} ++ ++ ++static void ++ldap_generate_config_string (struct parse *cfile) ++{ ++ char **objectClass, *dn; ++ struct ldap_config_stack *entry; ++ LDAPMessage *ent, *res, *entfirst, *resfirst; ++ int i, j, ignore, found; ++ int ret, parsedn = 1; ++ ++ if (ld == NULL) ++ ldap_start (); ++ if (ld == NULL) ++ return; ++ ++ entry = ldap_stack; ++ if ((objectClass = ldap_get_values (ld, entry->ldent, ++ "objectClass")) == NULL) ++ return; ++ ++ entry->processed = 1; ++ ignore = 0; ++ found = 1; ++ for (i=0; objectClass[i] != NULL; i++) ++ { ++ if (strcasecmp (objectClass[i], "dhcpSharedNetwork") == 0) ++ ldap_parse_shared_network (entry, cfile); ++ else if (strcasecmp (objectClass[i], "dhcpClass") == 0) ++ ldap_parse_class (entry, cfile); ++ else if (strcasecmp (objectClass[i], "dhcpSubnet") == 0) ++ ldap_parse_subnet (entry, cfile); ++ else if (strcasecmp (objectClass[i], "dhcpPool") == 0) ++ ldap_parse_pool (entry, cfile); ++ else if (strcasecmp (objectClass[i], "dhcpGroup") == 0) ++ ldap_parse_group (entry, cfile); ++ else if (strcasecmp (objectClass[i], "dhcpTSigKey") == 0) ++ ldap_parse_key (entry, cfile); ++ else if (strcasecmp (objectClass[i], "dhcpDnsZone") == 0) ++ ldap_parse_zone (entry, cfile); ++ else if (strcasecmp (objectClass[i], "dhcpFailOverPeer") == 0) ++ ldap_parse_failover (entry, cfile); ++ else if (strcasecmp (objectClass[i], "dhcpHost") == 0) ++ { ++ if (ldap_method == LDAP_METHOD_STATIC) ++ ldap_parse_host (entry, cfile); ++ else ++ { ++ ignore = 1; ++ break; ++ } ++ } ++ else if (strcasecmp (objectClass[i], "dhcpSubClass") == 0) ++ { ++ if (ldap_method == LDAP_METHOD_STATIC) ++ ldap_parse_subclass (entry, cfile); ++ else ++ { ++ ignore = 1; ++ break; ++ } ++ } ++ else ++ found = 0; ++ ++ if (found && cfile->inbuf[0] == '\0') ++ { ++ ignore = 1; ++ break; ++ } ++ } ++ ++ ldap_value_free (objectClass); ++ ++ if (ignore) ++ { ++ next_ldap_entry (cfile); ++ return; ++ } ++ ++ ldap_parse_entry_options(entry->ldent, cfile->inbuf, ++ LDAP_BUFFER_SIZE-1, NULL); ++ ++ dn = ldap_get_dn (ld, entry->ldent); ++ if (dn == NULL) ++ { ++ ldap_stop(); ++ return; ++ } ++#if defined(DEBUG_LDAP) ++ else ++ { ++ log_info ("Found LDAP entry '%s'", dn); ++ } ++#endif ++ ++ if ((ret = ldap_search_s (ld, dn, LDAP_SCOPE_ONELEVEL, "(!(|(|(objectClass=dhcpTSigKey)(objectClass=dhcpClass)) (objectClass=dhcpFailOverPeer)))", ++ NULL, 0, &res)) != LDAP_SUCCESS) ++ { ++ ldap_memfree (dn); ++ ++ ldap_stop(); ++ return; ++ } ++ ++ if ((ret = ldap_search_s (ld, dn, LDAP_SCOPE_ONELEVEL, "(|(|(objectClass=dhcpTSigKey)(objectClass=dhcpClass)) (objectClass=dhcpFailOverPeer))", ++ NULL, 0, &resfirst)) != LDAP_SUCCESS) ++ { ++ ldap_memfree (dn); ++ ldap_msgfree (res); ++ ++ ldap_stop(); ++ return; ++ } ++ ++ ldap_memfree (dn); ++ ++ ent = ldap_first_entry(ld, res); ++ entfirst = ldap_first_entry(ld, resfirst); ++ ++ if (ent == NULL && entfirst == NULL) ++ { ++ parse_external_dns (entry->ldent); ++ next_ldap_entry (cfile); ++ } ++ ++ if (ent != NULL) ++ { ++ add_to_config_stack (res, ent); ++ parse_external_dns (entry->ldent); ++ parsedn = 0; ++ } ++ else ++ ldap_msgfree (res); ++ ++ if (entfirst != NULL) ++ { ++ add_to_config_stack (resfirst, entfirst); ++ if(parsedn) ++ parse_external_dns (entry->ldent); ++ } ++ else ++ ldap_msgfree (resfirst); ++} ++ ++ ++static void ++ldap_close_debug_fd() ++{ ++ if (ldap_debug_fd != -1) ++ { ++ close (ldap_debug_fd); ++ ldap_debug_fd = -1; ++ } ++} ++ ++ ++static void ++ldap_write_debug (const void *buff, size_t size) ++{ ++ if (ldap_debug_fd != -1) ++ { ++ if (write (ldap_debug_fd, buff, size) < 0) ++ { ++ log_error ("Error writing to LDAP debug file %s: %s." ++ " Disabling log file.", ldap_debug_file, ++ strerror (errno)); ++ ldap_close_debug_fd(); ++ } ++ } ++} ++ ++static int ++ldap_read_function (struct parse *cfile) ++{ ++ cfile->inbuf[0] = '\0'; ++ cfile->bufix = cfile->buflen = 0; ++ ++ while (ldap_stack != NULL && *cfile->inbuf == '\0') ++ ldap_generate_config_string (cfile); ++ ++ if (ldap_stack == NULL && *cfile->inbuf == '\0') ++ return (EOF); ++ ++ cfile->bufix = 1; ++ cfile->buflen = strlen (cfile->inbuf); ++ if (cfile->buflen > 0) ++ ldap_write_debug (cfile->inbuf, cfile->buflen); ++ ++#if defined (DEBUG_LDAP) ++ log_info ("Sending config line '%s'", cfile->inbuf); ++#endif ++ ++ return (cfile->inbuf[0]); ++} ++ ++ ++static char * ++ldap_get_host_name (LDAPMessage * ent) ++{ ++ char **name, *ret; ++ ++ ret = NULL; ++ if ((name = ldap_get_values (ld, ent, "cn")) == NULL || name[0] == NULL) ++ { ++ if (name != NULL) ++ ldap_value_free (name); ++ ++#if defined (DEBUG_LDAP) ++ ret = ldap_get_dn (ld, ent); ++ if (ret != NULL) ++ { ++ log_info ("Cannot get cn attribute for LDAP entry %s", ret); ++ ldap_memfree(ret); ++ } ++#endif ++ return (NULL); ++ } ++ ++ ret = dmalloc (strlen (name[0]) + 1, MDL); ++ strcpy (ret, name[0]); ++ ldap_value_free (name); ++ ++ return (ret); ++} ++ ++ ++isc_result_t ++ldap_read_config (void) ++{ ++ LDAPMessage * ldres, * hostres, * ent, * hostent; ++ char hfilter[1024], sfilter[1024], fqdn[257]; ++ char *buffer, **tempstr = NULL, *hostdn; ++ ldap_dn_node *curr = NULL; ++ struct parse *cfile; ++ struct utsname unme; ++ isc_result_t res; ++ size_t length; ++ int ret, cnt; ++ ++ if (ld == NULL) ++ ldap_start (); ++ if (ld == NULL) ++ return (ldap_server == NULL ? ISC_R_SUCCESS : ISC_R_FAILURE); ++ ++ buffer = dmalloc (LDAP_BUFFER_SIZE+1, MDL); ++ if (buffer == NULL) ++ return (ISC_R_FAILURE); ++ ++ cfile = (struct parse *) NULL; ++ res = new_parse (&cfile, -1, buffer, LDAP_BUFFER_SIZE, "LDAP", 0); ++ if (res != ISC_R_SUCCESS) ++ return (res); ++ ++ uname (&unme); ++ if (ldap_dhcp_server_cn != NULL) ++ { ++ snprintf (hfilter, sizeof (hfilter), ++ "(&(objectClass=dhcpServer)(cn=%s))", ldap_dhcp_server_cn); ++ } ++ else ++ { ++ if(0 == get_host_entry(fqdn, sizeof(fqdn), NULL, 0)) ++ { ++ snprintf (hfilter, sizeof (hfilter), ++ "(&(objectClass=dhcpServer)(|(cn=%s)(cn=%s)))", ++ unme.nodename, fqdn); ++ } ++ else ++ { ++ snprintf (hfilter, sizeof (hfilter), ++ "(&(objectClass=dhcpServer)(cn=%s))", unme.nodename); ++ } ++ ++ } ++ hostres = NULL; ++ if ((ret = ldap_search_s (ld, ldap_base_dn, LDAP_SCOPE_SUBTREE, ++ hfilter, NULL, 0, &hostres)) != LDAP_SUCCESS) ++ { ++ log_error ("Cannot find host LDAP entry %s %s", ++ ((ldap_dhcp_server_cn == NULL)?(unme.nodename):(ldap_dhcp_server_cn)), hfilter); ++ if(NULL != hostres) ++ ldap_msgfree (hostres); ++ ldap_stop(); ++ return (ISC_R_FAILURE); ++ } ++ ++ if ((hostent = ldap_first_entry (ld, hostres)) == NULL) ++ { ++ log_error ("Error: Cannot find LDAP entry matching %s", hfilter); ++ ldap_msgfree (hostres); ++ ldap_stop(); ++ return (ISC_R_FAILURE); ++ } ++ ++ hostdn = ldap_get_dn (ld, hostent); ++#if defined(DEBUG_LDAP) ++ if (hostdn != NULL) ++ log_info ("Found dhcpServer LDAP entry '%s'", hostdn); ++#endif ++ ++ if (hostdn == NULL || ++ (tempstr = ldap_get_values (ld, hostent, "dhcpServiceDN")) == NULL || ++ tempstr[0] == NULL) ++ { ++ log_error ("Error: No dhcp service is associated with the server %s %s", ++ (hostdn ? "dn" : "name"), (hostdn ? hostdn : ++ (ldap_dhcp_server_cn ? ldap_dhcp_server_cn : unme.nodename))); ++ ++ if (tempstr != NULL) ++ ldap_value_free (tempstr); ++ ++ if (hostdn) ++ ldap_memfree (hostdn); ++ ldap_msgfree (hostres); ++ ldap_stop(); ++ return (ISC_R_FAILURE); ++ } ++ ++#if defined(DEBUG_LDAP) ++ log_info ("LDAP: Parsing dhcpServer options '%s' ...", hostdn); ++#endif ++ ++ cfile->inbuf[0] = '\0'; ++ ldap_parse_entry_options(hostent, cfile->inbuf, LDAP_BUFFER_SIZE, NULL); ++ cfile->buflen = strlen (cfile->inbuf); ++ if(cfile->buflen > 0) ++ { ++ ldap_write_debug (cfile->inbuf, cfile->buflen); ++ ++ res = conf_file_subparse (cfile, root_group, ROOT_GROUP); ++ if (res != ISC_R_SUCCESS) ++ { ++ log_error ("LDAP: cannot parse dhcpServer entry '%s'", hostdn); ++ ldap_memfree (hostdn); ++ ldap_stop(); ++ return res; ++ } ++ cfile->inbuf[0] = '\0'; ++ } ++ ldap_msgfree (hostres); ++ ++ /* ++ ** attach ldap (tree) read function now ++ */ ++ cfile->bufix = cfile->buflen = 0; ++ cfile->read_function = ldap_read_function; ++ ++ res = ISC_R_SUCCESS; ++ for (cnt=0; tempstr[cnt] != NULL; cnt++) ++ { ++ snprintf(sfilter, sizeof(sfilter), "(&(objectClass=dhcpService)" ++ "(|(|(dhcpPrimaryDN=%s)(dhcpSecondaryDN=%s))(dhcpServerDN=%s)))", ++ hostdn, hostdn, hostdn); ++ ldres = NULL; ++ if ((ret = ldap_search_s (ld, tempstr[cnt], LDAP_SCOPE_BASE, ++ sfilter, NULL, 0, &ldres)) != LDAP_SUCCESS) ++ { ++ log_error ("Error searching for dhcpServiceDN '%s': %s. Please update the LDAP entry '%s'", ++ tempstr[cnt], ldap_err2string (ret), hostdn); ++ if(NULL != ldres) ++ ldap_msgfree(ldres); ++ res = ISC_R_FAILURE; ++ break; ++ } ++ ++ if ((ent = ldap_first_entry (ld, ldres)) == NULL) ++ { ++ log_error ("Error: Cannot find dhcpService DN '%s' with server reference. Please update the LDAP server entry '%s'", ++ tempstr[cnt], hostdn); ++ ++ ldap_msgfree(ldres); ++ res = ISC_R_FAILURE; ++ break; ++ } ++ ++ /* ++ ** FIXME: how to free the remembered dn's on exit? ++ ** This should be OK if dmalloc registers the ++ ** memory it allocated and frees it on exit.. ++ */ ++ ++ curr = dmalloc (sizeof (*curr), MDL); ++ if (curr != NULL) ++ { ++ length = strlen (tempstr[cnt]); ++ curr->dn = dmalloc (length + 1, MDL); ++ if (curr->dn == NULL) ++ { ++ dfree (curr, MDL); ++ curr = NULL; ++ } ++ else ++ strcpy (curr->dn, tempstr[cnt]); ++ } ++ ++ if (curr != NULL) ++ { ++ curr->refs++; ++ ++ /* append to service-dn list */ ++ if (ldap_service_dn_tail != NULL) ++ ldap_service_dn_tail->next = curr; ++ else ++ ldap_service_dn_head = curr; ++ ++ ldap_service_dn_tail = curr; ++ } ++ else ++ log_fatal ("no memory to remember ldap service dn"); ++ ++#if defined (DEBUG_LDAP) ++ log_info ("LDAP: Parsing dhcpService DN '%s' ...", tempstr[cnt]); ++#endif ++ add_to_config_stack (ldres, ent); ++ res = conf_file_subparse (cfile, root_group, ROOT_GROUP); ++ if (res != ISC_R_SUCCESS) ++ { ++ log_error ("LDAP: cannot parse dhcpService entry '%s'", tempstr[cnt]); ++ break; ++ } ++ } ++ ++ end_parse (&cfile); ++ ldap_close_debug_fd(); ++ ++ ldap_memfree (hostdn); ++ ldap_value_free (tempstr); ++ ++ if (res != ISC_R_SUCCESS) ++ { ++ struct ldap_config_stack *temp_stack; ++ ++ while ((curr = ldap_service_dn_head) != NULL) ++ { ++ ldap_service_dn_head = curr->next; ++ dfree (curr->dn, MDL); ++ dfree (curr, MDL); ++ } ++ ++ ldap_service_dn_tail = NULL; ++ ++ while ((temp_stack = ldap_stack) != NULL) ++ { ++ ldap_stack = temp_stack->next; ++ free_stack_entry (temp_stack); ++ } ++ ++ ldap_stop(); ++ } ++ ++ /* Unbind from ldap immediately after reading config in static mode. */ ++ if (ldap_method == LDAP_METHOD_STATIC) ++ ldap_stop(); ++ ++ return (res); ++} ++ ++ ++/* This function will parse the dhcpOption and dhcpStatements field in the LDAP ++ entry if it exists. Right now, type will be either HOST_DECL or CLASS_DECL. ++ If we are parsing a HOST_DECL, this always returns 0. If we are parsing a ++ CLASS_DECL, this will return what the current lease limit is in LDAP. If ++ there is no lease limit specified, we return 0 */ ++ ++static int ++ldap_parse_options (LDAPMessage * ent, struct group *group, ++ int type, struct host_decl *host, ++ struct class **class) ++{ ++ int i, declaration, lease_limit; ++ char option_buffer[8192]; ++ enum dhcp_token token; ++ struct parse *cfile; ++ isc_result_t res; ++ const char *val; ++ ++ lease_limit = 0; ++ *option_buffer = '\0'; ++ ++ /* This block of code will try to find the parent of the host, and ++ if it is a group object, fetch the options and apply to the host. */ ++ if (type == HOST_DECL) ++ { ++ char *hostdn, *basedn, *temp1, *temp2, filter[1024]; ++ LDAPMessage *groupdn, *entry; ++ int ret; ++ ++ hostdn = ldap_get_dn (ld, ent); ++ if( hostdn != NULL) ++ { ++ basedn = NULL; ++ ++ temp1 = strchr (hostdn, '='); ++ if (temp1 != NULL) ++ temp1 = strchr (++temp1, '='); ++ if (temp1 != NULL) ++ temp2 = strchr (++temp1, ','); ++ else ++ temp2 = NULL; ++ ++ if (temp2 != NULL) ++ { ++ snprintf (filter, sizeof(filter), ++ "(&(cn=%.*s)(objectClass=dhcpGroup))", ++ (int)(temp2 - temp1), temp1); ++ ++ basedn = strchr (temp1, ','); ++ if (basedn != NULL) ++ ++basedn; ++ } ++ ++ if (basedn != NULL && *basedn != '\0') ++ { ++ ret = ldap_search_s (ld, basedn, LDAP_SCOPE_SUBTREE, ++ filter, NULL, 0, &groupdn); ++ if (ret == LDAP_SUCCESS) ++ { ++ if ((entry = ldap_first_entry (ld, groupdn)) != NULL) ++ { ++ res = ldap_parse_entry_options (entry, option_buffer, ++ sizeof(option_buffer) - 1, ++ &lease_limit); ++ if (res != ISC_R_SUCCESS) ++ { ++ /* reset option buffer discarding any results */ ++ *option_buffer = '\0'; ++ lease_limit = 0; ++ } ++ } ++ ldap_msgfree( groupdn); ++ } ++ } ++ ldap_memfree( hostdn); ++ } ++ } ++ ++ res = ldap_parse_entry_options (ent, option_buffer, sizeof(option_buffer) - 1, ++ &lease_limit); ++ if (res != ISC_R_SUCCESS) ++ return (lease_limit); ++ ++ option_buffer[sizeof(option_buffer) - 1] = '\0'; ++ if (*option_buffer == '\0') ++ return (lease_limit); ++ ++ cfile = (struct parse *) NULL; ++ res = new_parse (&cfile, -1, option_buffer, strlen (option_buffer), ++ type == HOST_DECL ? "LDAP-HOST" : "LDAP-SUBCLASS", 0); ++ if (res != ISC_R_SUCCESS) ++ return (lease_limit); ++ ++#if defined (DEBUG_LDAP) ++ log_info ("Sending the following options: '%s'", option_buffer); ++#endif ++ ++ declaration = 0; ++ do ++ { ++ token = peek_token (&val, NULL, cfile); ++ if (token == END_OF_FILE) ++ break; ++ declaration = parse_statement (cfile, group, type, host, declaration); ++ } while (1); ++ ++ end_parse (&cfile); ++ ++ return (lease_limit); ++} ++ ++ ++ ++int ++find_haddr_in_ldap (struct host_decl **hp, int htype, unsigned hlen, ++ const unsigned char *haddr, const char *file, int line) ++{ ++ char buf[128], *type_str, **tempstr, *addr_str; ++ LDAPMessage * res, *ent; ++ struct host_decl * host; ++ isc_result_t status; ++ ldap_dn_node *curr; ++ char up_hwaddr[20]; ++ char lo_hwaddr[20]; ++ int ret; ++ struct sigaction old, new; ++ ++ if (ldap_method == LDAP_METHOD_STATIC) ++ return (0); ++ /* ++ ** ldap_* calls can result in a SIGPIPE and dhcpd gets terminated, ++ ** since it doesn't handle it... ++ */ ++ ++ new.sa_flags = 0; ++ new.sa_handler = SIG_IGN; ++ sigemptyset (&new.sa_mask); ++ sigaction (SIGPIPE, &new, &old); ++ ++ if (ld == NULL) ++ ldap_start (); ++ if (ld == NULL) ++ { ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++ ++ switch (htype) ++ { ++ case HTYPE_ETHER: ++ type_str = "ethernet"; ++ break; ++ case HTYPE_IEEE802: ++ type_str = "token-ring"; ++ break; ++ case HTYPE_FDDI: ++ type_str = "fddi"; ++ break; ++ default: ++ log_info ("Ignoring unknown type %d", htype); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++ ++ /* ++ ** FIXME: It is not guaranteed, that the dhcpHWAddress attribute ++ ** contains _exactly_ "type addr" with one space between! ++ */ ++ snprintf(lo_hwaddr, sizeof(lo_hwaddr), "%s", ++ print_hw_addr (htype, hlen, haddr)); ++ x_strxform(up_hwaddr, lo_hwaddr, sizeof(up_hwaddr), toupper); ++ ++ snprintf (buf, sizeof (buf), ++ "(&(objectClass=dhcpHost)(|(dhcpHWAddress=%s %s)(dhcpHWAddress=%s %s)))", ++ type_str, lo_hwaddr, type_str, up_hwaddr); ++ ++ res = ent = NULL; ++ for (curr = ldap_service_dn_head; ++ curr != NULL && *curr->dn != '\0'; ++ curr = curr->next) ++ { ++#if defined (DEBUG_LDAP) ++ log_info ("Searching for %s in LDAP tree %s", buf, curr->dn); ++#endif ++ ret = ldap_search_s (ld, curr->dn, LDAP_SCOPE_SUBTREE, ++ buf, NULL, 0, &res); ++ ++ if(ret == LDAP_SERVER_DOWN) ++ { ++ log_info ("LDAP server was down, trying to reconnect..."); ++ ++ ldap_stop(); ++ ldap_start(); ++ if(ld == NULL) ++ { ++ log_info ("LDAP reconnect failed - try again later..."); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++ ++ ret = ldap_search_s (ld, curr->dn, LDAP_SCOPE_SUBTREE, ++ buf, NULL, 0, &res); ++ } ++ ++ if (ret == LDAP_SUCCESS) ++ { ++ if( (ent = ldap_first_entry (ld, res)) != NULL) ++ break; /* search OK and have entry */ ++ ++#if defined (DEBUG_LDAP) ++ log_info ("No host entry for %s in LDAP tree %s", ++ buf, curr->dn); ++#endif ++ if(res) ++ { ++ ldap_msgfree (res); ++ res = NULL; ++ } ++ } ++ else ++ { ++ if(res) ++ { ++ ldap_msgfree (res); ++ res = NULL; ++ } ++ ++ if (ret != LDAP_NO_SUCH_OBJECT && ret != LDAP_SUCCESS) ++ { ++ log_error ("Cannot search for %s in LDAP tree %s: %s", buf, ++ curr->dn, ldap_err2string (ret)); ++ ldap_stop(); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++#if defined (DEBUG_LDAP) ++ else ++ { ++ log_info ("ldap_search_s returned %s when searching for %s in %s", ++ ldap_err2string (ret), buf, curr->dn); ++ } ++#endif ++ } ++ } ++ ++ if (res && ent) ++ { ++#if defined (DEBUG_LDAP) ++ char *dn = ldap_get_dn (ld, ent); ++ if (dn != NULL) ++ { ++ log_info ("Found dhcpHWAddress LDAP entry %s", dn); ++ ldap_memfree(dn); ++ } ++#endif ++ ++ host = (struct host_decl *)0; ++ status = host_allocate (&host, MDL); ++ if (status != ISC_R_SUCCESS) ++ { ++ log_fatal ("can't allocate host decl struct: %s", ++ isc_result_totext (status)); ++ ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++ ++ host->name = ldap_get_host_name (ent); ++ if (host->name == NULL) ++ { ++ host_dereference (&host, MDL); ++ ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++ ++ if (!clone_group (&host->group, root_group, MDL)) ++ { ++ log_fatal ("can't clone group for host %s", host->name); ++ host_dereference (&host, MDL); ++ ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++ ++ ldap_parse_options (ent, host->group, HOST_DECL, host, NULL); ++ ++ *hp = host; ++ ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); ++ return (1); ++ } ++ ++ ++ if(res) ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++} ++ ++ ++int ++find_subclass_in_ldap (struct class *class, struct class **newclass, ++ struct data_string *data) ++{ ++ LDAPMessage * res, * ent; ++ int i, ret, lease_limit; ++ isc_result_t status; ++ ldap_dn_node *curr; ++ char buf[1024]; ++ struct sigaction old, new; ++ ++ if (ldap_method == LDAP_METHOD_STATIC) ++ return (0); ++ ++ /* ++ ** ldap_* calls can result in a SIGPIPE and dhcpd gets terminated, ++ ** since it doesn't handle it... ++ */ ++ ++ new.sa_flags = 0; ++ new.sa_handler = SIG_IGN; ++ sigemptyset (&new.sa_mask); ++ sigaction (SIGPIPE, &new, &old); ++ ++ if (ld == NULL) ++ ldap_start (); ++ if (ld == NULL) ++ { ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++ ++ snprintf (buf, sizeof (buf), ++ "(&(objectClass=dhcpSubClass)(cn=%s)(dhcpClassData=%s))", ++ print_hex_1 (data->len, (const u_int8_t *)data->data, 60), ++ print_hex_2 (strlen (class->name), (const u_int8_t *)class->name, 60)); ++#if defined (DEBUG_LDAP) ++ log_info ("Searching LDAP for %s", buf); ++#endif ++ ++ res = ent = NULL; ++ for (curr = ldap_service_dn_head; ++ curr != NULL && *curr->dn != '\0'; ++ curr = curr->next) ++ { ++#if defined (DEBUG_LDAP) ++ log_info ("Searching for %s in LDAP tree %s", buf, curr->dn); ++#endif ++ ret = ldap_search_s (ld, curr->dn, LDAP_SCOPE_SUBTREE, ++ buf, NULL, 0, &res); ++ ++ if(ret == LDAP_SERVER_DOWN) ++ { ++ log_info ("LDAP server was down, trying to reconnect..."); ++ ++ ldap_stop(); ++ ldap_start(); ++ ++ if(ld == NULL) ++ { ++ log_info ("LDAP reconnect failed - try again later..."); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++ ++ ret = ldap_search_s (ld, curr->dn, LDAP_SCOPE_SUBTREE, ++ buf, NULL, 0, &res); ++ } ++ ++ if (ret == LDAP_SUCCESS) ++ { ++ if( (ent = ldap_first_entry (ld, res)) != NULL) ++ break; /* search OK and have entry */ ++ ++#if defined (DEBUG_LDAP) ++ log_info ("No subclass entry for %s in LDAP tree %s", ++ buf, curr->dn); ++#endif ++ if(res) ++ { ++ ldap_msgfree (res); ++ res = NULL; ++ } ++ } ++ else ++ { ++ if(res) ++ { ++ ldap_msgfree (res); ++ res = NULL; ++ } ++ ++ if (ret != LDAP_NO_SUCH_OBJECT && ret != LDAP_SUCCESS) ++ { ++ log_error ("Cannot search for %s in LDAP tree %s: %s", buf, ++ curr->dn, ldap_err2string (ret)); ++ ldap_stop(); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++#if defined (DEBUG_LDAP) ++ else ++ { ++ log_info ("ldap_search_s returned %s when searching for %s in %s", ++ ldap_err2string (ret), buf, curr->dn); ++ } ++#endif ++ } ++ } ++ ++ if (res && ent) ++ { ++#if defined (DEBUG_LDAP) ++ char *dn = ldap_get_dn (ld, ent); ++ if (dn != NULL) ++ { ++ log_info ("Found subclass LDAP entry %s", dn); ++ ldap_memfree(dn); ++ } ++#endif ++ ++ status = class_allocate (newclass, MDL); ++ if (status != ISC_R_SUCCESS) ++ { ++ log_error ("Cannot allocate memory for a new class"); ++ ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++ ++ group_reference (&(*newclass)->group, class->group, MDL); ++ class_reference (&(*newclass)->superclass, class, MDL); ++ lease_limit = ldap_parse_options (ent, (*newclass)->group, ++ CLASS_DECL, NULL, newclass); ++ if (lease_limit == 0) ++ (*newclass)->lease_limit = class->lease_limit; ++ else ++ class->lease_limit = lease_limit; ++ ++ if ((*newclass)->lease_limit) ++ { ++ (*newclass)->billed_leases = ++ dmalloc ((*newclass)->lease_limit * sizeof (struct lease *), MDL); ++ if (!(*newclass)->billed_leases) ++ { ++ log_error ("no memory for billing"); ++ class_dereference (newclass, MDL); ++ ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } ++ memset ((*newclass)->billed_leases, 0, ++ ((*newclass)->lease_limit * sizeof (*newclass)->billed_leases)); ++ } ++ ++ data_string_copy (&(*newclass)->hash_string, data, MDL); ++ ++ ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); ++ return (1); ++ } ++ ++ if(res) ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++} ++ ++#endif /* LDAP_CONFIGURATION */ +diff -urNad isc-dhcp.orig/server/mdb.c isc-dhcp/server/mdb.c +--- isc-dhcp.orig/server/mdb.c 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/server/mdb.c 2009-12-30 12:34:28.000000000 +0100 +@@ -600,6 +600,14 @@ + const char *file, int line) + { + struct hardware h; ++ int ret; ++ ++#if defined(LDAP_CONFIGURATION) ++ if(local_family == AF_INET) { ++ if ((ret = find_haddr_in_ldap (hp, htype, hlen, haddr, file, line))) ++ return ret; ++ } ++#endif + + h.hlen = hlen + 1; + h.hbuf [0] = htype; +diff -urNad isc-dhcp.orig/server/stables.c isc-dhcp/server/stables.c +--- isc-dhcp.orig/server/stables.c 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/server/stables.c 2009-12-30 12:34:28.000000000 +0100 +@@ -244,9 +244,89 @@ + { "delayed-ack", "S", &server_universe, 58, 1 }, + { "max-ack-delay", "L", &server_universe, 59, 1 }, + #endif ++#if defined(LDAP_CONFIGURATION) ++ { "ldap-server", "t", &server_universe, 60, 1 }, ++ { "ldap-port", "d", &server_universe, 61, 1 }, ++ { "ldap-username", "t", &server_universe, 62, 1 }, ++ { "ldap-password", "t", &server_universe, 63, 1 }, ++ { "ldap-base-dn", "t", &server_universe, 64, 1 }, ++ { "ldap-method", "Nldap-methods.", &server_universe, 65, 1 }, ++ { "ldap-debug-file", "t", &server_universe, 66, 1 }, ++ { "ldap-dhcp-server-cn", "t", &server_universe, 67, 1 }, ++ { "ldap-referrals", "f", &server_universe, 68, 1 }, ++#if defined(USE_SSL) ++ { "ldap-ssl", "Nldap-ssl-usage.", &server_universe, 69, 1 }, ++ { "ldap-tls-reqcert", "Nldap-tls-reqcert.", ++ &server_universe, 70, 1 }, ++ { "ldap-tls-ca-file", "t", &server_universe, 71, 1 }, ++ { "ldap-tls-ca-dir", "t", &server_universe, 72, 1 }, ++ { "ldap-tls-cert", "t", &server_universe, 73, 1 }, ++ { "ldap-tls-key", "t", &server_universe, 74, 1 }, ++ { "ldap-tls-crlcheck", "Nldap-tls-crlcheck.", ++ &server_universe, 75, 1 }, ++ { "ldap-tls-ciphers", "t", &server_universe, 76, 1 }, ++ { "ldap-tls-randfile", "t", &server_universe, 77, 1 }, ++#endif ++#endif + { NULL, NULL, NULL, 0, 0 } + }; + ++#if defined(LDAP_CONFIGURATION) ++struct enumeration_value ldap_values [] = { ++ { "static", LDAP_METHOD_STATIC }, ++ { "dynamic", LDAP_METHOD_DYNAMIC }, ++ { (char *) 0, 0 } ++}; ++ ++struct enumeration ldap_methods = { ++ (struct enumeration *)0, ++ "ldap-methods", 1, ++ ldap_values ++}; ++ ++#if defined(USE_SSL) ++struct enumeration_value ldap_ssl_usage_values [] = { ++ { "off", LDAP_SSL_OFF }, ++ { "on", LDAP_SSL_ON }, ++ { "ldaps", LDAP_SSL_LDAPS}, ++ { "start_tls", LDAP_SSL_TLS }, ++ { (char *) 0, 0 } ++}; ++struct enumeration ldap_ssl_usage_enum = { ++ (struct enumeration *)0, ++ "ldap-ssl-usage", 1, ++ ldap_ssl_usage_values ++}; ++ ++struct enumeration_value ldap_tls_reqcert_values [] = { ++ { "never", LDAP_OPT_X_TLS_NEVER }, ++ { "hard", LDAP_OPT_X_TLS_HARD }, ++ { "demand", LDAP_OPT_X_TLS_DEMAND}, ++ { "allow", LDAP_OPT_X_TLS_ALLOW }, ++ { "try", LDAP_OPT_X_TLS_TRY }, ++ { (char *) 0, 0 } ++}; ++struct enumeration ldap_tls_reqcert_enum = { ++ (struct enumeration *)0, ++ "ldap-tls-reqcert", 1, ++ ldap_tls_reqcert_values ++}; ++ ++struct enumeration_value ldap_tls_crlcheck_values [] = { ++ { "none", LDAP_OPT_X_TLS_CRL_NONE}, ++ { "peer", LDAP_OPT_X_TLS_CRL_PEER}, ++ { "all", LDAP_OPT_X_TLS_CRL_ALL }, ++ { (char *) 0, 0 } ++}; ++struct enumeration ldap_tls_crlcheck_enum = { ++ (struct enumeration *)0, ++ "ldap-tls-crlcheck", 1, ++ ldap_tls_crlcheck_values ++}; ++#endif ++#endif ++ ++ + struct enumeration_value ddns_styles_values [] = { + { "none", 0 }, + { "ad-hoc", 1 }, +diff -urNad isc-dhcp.orig/dst/Makefile.am isc-dhcp/dst/Makefile.am +--- isc-dhcp.orig/dst/Makefile.am 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/dst/Makefile.am 2009-12-30 12:34:28.000000000 +0100 +@@ -1,8 +1,12 @@ + AM_CPPFLAGS = -DMINIRES_LIB -DHMAC_MD5 + + lib_LIBRARIES = libdst.a ++noinst_LIBRARIES = libdst-nomd5.a + + libdst_a_SOURCES = dst_support.c dst_api.c hmac_link.c md5_dgst.c \ + base64.c prandom.c + ++libdst_nomd5_a_SOURCES = dst_support.c dst_api.c hmac_link.c \ ++ base64.c prandom.c ++ + EXTRA_DIST = dst_internal.h md5.h md5_locl.h +diff -urNad isc-dhcp.orig/server/Makefile.am isc-dhcp/server/Makefile.am +--- isc-dhcp.orig/server/Makefile.am 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/server/Makefile.am 2009-12-30 12:34:28.000000000 +0100 +@@ -1,15 +1,16 @@ +-AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"' ++AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"' $(LDAP_CPPFLAGS) + + dist_sysconf_DATA = dhcpd.conf + sbin_PROGRAMS = dhcpd + dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ + omapi.c mdb.c stables.c salloc.c ddns.c dhcpleasequery.c \ +- dhcpv6.c mdb6.c ++ dhcpv6.c mdb6.c ldap.c ldap_casa.c + ++dhcpd_CFLAGS= $(OPENSSL_CFLAGS) + # libomapi.a this is here twice to handle circular library dependencies :( +-dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a ../dst/libdst.a \ ++dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a ../dst/libdst-nomd5.a \ + ../dhcpctl/libdhcpctl.a ../minires/libres.a \ +- ../omapip/libomapi.a -lcap ++ ../omapip/libomapi.a -lcap $(OPENSSL_LIBS) $(CRYPTO_LIBS) $(LDAP_LIBS) + + man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 + EXTRA_DIST = $(man_MANS) +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp-4.1.1-P1~/configure.ac isc-dhcp-4.1.1-P1/configure.ac +--- isc-dhcp-4.1.1-P1~/configure.ac 2010-10-20 22:14:33.694570303 +0100 ++++ isc-dhcp-4.1.1-P1/configure.ac 2010-10-20 22:17:15.682086336 +0100 +@@ -419,6 +419,75 @@ + # Look for optional headers. + AC_CHECK_HEADERS(sys/socket.h net/if_dl.h net/if6.h regex.h) + ++AC_ARG_ENABLE(ldap-conf, ++ AS_HELP_STRING([--enable-ldap-conf], ++ [enable ldap configuration support (default is no)])) ++AC_ARG_ENABLE(ldap-ssl, ++ AS_HELP_STRING([--enable-ldap-ssl], ++ [enable SSL/TLS in ldap support (default is yes)])) ++AC_ARG_ENABLE(ldap-casa, ++ AS_HELP_STRING([--enable-ldap-casa], ++ [enable casa auth in ldap support (default is yes)])) ++if test "x$enable_ldap_conf" = xyes ; then ++ ++ AC_CHECK_HEADERS([ldap.h]) ++ saved_LIBS="$LIBS" ++ LIBS="" ++ AC_SEARCH_LIBS([ber_init], [ldap], [ ++ LDAP_LIBS="-lldap" ++ ],[ ++ AS_UNSET([ac_cv_search_ber_init]) ++ AC_SEARCH_LIBS([ber_init], [lber], [ ++ LDAP_LIBS="-lldap -llber" ++ ], [ ++ AC_MSG_ERROR([unable to find ldap libraries]) ++ ], [-lldap]) ++ ]) ++ LIBS="$saved_LIBS" ++ ++ # TODO: avoid deprecated functions. until then, enable them ++ LDAP_CPPFLAGS="-DLDAP_DEPRECATED" ++ ++ AC_DEFINE([LDAP_CONFIGURATION], [1], ++ [Define to 1 to enable ldap configuration support.]) ++ ++ if test "x$enable_ldap_ssl" != xno ; then ++ AC_DEFINE([USE_SSL], [1], ++ [Define to 1 to enable SSL/TLS in ldap support]) ++ ++ # Hmm... should be not needed to use explicit -lssl ... ++ # AFAIS libldap is linked against libssl and there is ++ # also no guard around ldap_start_tls in ldap.h, so it ++ # should be possible to just link against libldap... ++ # All this at least in case of openldap-2.4.x. ++ # ++ # However, if we're using something that uses libssl anyway, ++ # we should use libcrypto's MD5, not our own. So link libssl ++ # after all. ++ PKG_CHECK_MODULES(OPENSSL, [openssl]) ++ #if test "x$OPENSSL_LIBS" != x ; then ++ # # reset it, libcrypto is in OPENSSL_LIBS ++ # CRYPTO_LIBS="" ++ #fi ++ fi ++ ++ if test "x$enable_ldap_casa" != xno ; then ++ AC_CHECK_HEADERS([micasa_mgmd.h],[ ++ AC_DEFINE([LDAP_CASA_AUTH], [1], ++ [Define to 1 to enable casa in ldap support]) ++ ],[ ++ # fail, when explicitely requested ++ if test "$x$enable_ldap_casa" = xyes ; then ++ AC_MSG_ERROR([Unable to find micasa_mgmd.h header file]) ++ fi ++ ]) ++ fi ++fi ++AC_SUBST(LDAP_LIBS) ++AC_SUBST(LDAP_CPPFLAGS) ++AC_SUBST(OPENSSL_LIBS) ++AC_SUBST(OPENSSL_CFLAGS) ++ + # Solaris needs some libraries for functions + AC_SEARCH_LIBS(socket, [socket]) + AC_SEARCH_LIBS(inet_ntoa, [nsl]) +diff -urNad isc-dhcp.orig/server/ldap_casa.c isc-dhcp/server/ldap_casa.c +--- isc-dhcp.orig/server/ldap_casa.c 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/server/ldap_casa.c 2009-12-30 12:34:28.000000000 +0100 +@@ -0,0 +1,142 @@ ++/* ldap_casa.c ++ ++ CASA routines for DHCPD... */ ++ ++/* Copyright (c) 2004 Internet Systems Consorium, Inc. ("ISC") ++ * Copyright (c) 1995-2003 Internet Software Consortium. ++ * Copyright (c) 2006 Novell, Inc. ++ ++ * All rights reserved. ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are met: ++ * 1.Redistributions of source code must retain the above copyright notice, ++ * this list of conditions and the following disclaimer. ++ * 2.Redistributions in binary form must reproduce the above copyright notice, ++ * this list of conditions and the following disclaimer in the documentation ++ * and/or other materials provided with the distribution. ++ * 3.Neither the name of ISC, ISC DHCP, nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ ++ * THIS SOFTWARE IS PROVIDED BY INTERNET SYSTEMS CONSORTIUM AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ISC OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ++ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ++ * POSSIBILITY OF SUCH DAMAGE. ++ ++ * This file was written by S Kalyanasundaram ++ */ ++ ++#if defined(HAVE_CONFIG_H) ++#include ++#endif ++ ++#if defined(LDAP_CASA_AUTH) ++#include "dhcpd.h" ++#include "ldap_casa.h" ++ ++int ++load_casa (void) ++{ ++ if( !(casaIDK = dlopen(MICASA_LIB,RTLD_LAZY))) ++ return 0; ++ p_miCASAGetCredential = (CASA_GetCredential_T) dlsym(casaIDK, "miCASAGetCredential"); ++ p_miCASASetCredential = (CASA_SetCredential_T) dlsym(casaIDK, "miCASASetCredential"); ++ p_miCASARemoveCredential = (CASA_RemoveCredential_T) dlsym(casaIDK, "miCASARemoveCredential"); ++ ++ if((p_miCASAGetCredential == NULL) || ++ (p_miCASASetCredential == NULL) || ++ (p_miCASARemoveCredential == NULL)) ++ { ++ if(casaIDK) ++ dlclose(casaIDK); ++ casaIDK = NULL; ++ p_miCASAGetCredential = NULL; ++ p_miCASASetCredential = NULL; ++ p_miCASARemoveCredential = NULL; ++ return 0; ++ } ++ else ++ return 1; ++} ++ ++static void ++release_casa(void) ++{ ++ if(casaIDK) ++ { ++ dlclose(casaIDK); ++ casaIDK = NULL; ++ } ++ ++ p_miCASAGetCredential = NULL; ++ p_miCASASetCredential = NULL; ++ p_miCASARemoveCredential = NULL; ++ ++} ++ ++int ++load_uname_pwd_from_miCASA (char **ldap_username, char **ldap_password) ++ { ++ int result = 0; ++ uint32_t credentialtype = SSCS_CRED_TYPE_SERVER_F; ++ SSCS_BASIC_CREDENTIAL credential; ++ SSCS_SECRET_ID_T applicationSecretId; ++ char *tempVar = NULL; ++ ++ const char applicationName[10] = "dhcp-ldap"; ++ ++ if ( load_casa() ) ++ { ++ memset(&credential, 0, sizeof(SSCS_BASIC_CREDENTIAL)); ++ memset(&applicationSecretId, 0, sizeof(SSCS_SECRET_ID_T)); ++ ++ applicationSecretId.len = strlen(applicationName) + 1; ++ memcpy (applicationSecretId.id, applicationName, applicationSecretId.len); ++ ++ credential.unFlags = USERNAME_TYPE_CN_F; ++ ++ result = p_miCASAGetCredential (0, ++ &applicationSecretId,NULL,&credentialtype, ++ &credential,NULL); ++ ++ if(credential.unLen) ++ { ++ tempVar = dmalloc (credential.unLen + 1, MDL); ++ if (!tempVar) ++ log_fatal ("no memory for ldap_username"); ++ memcpy(tempVar , credential.username, credential.unLen); ++ *ldap_username = tempVar; ++ ++ tempVar = dmalloc (credential.pwordLen + 1, MDL); ++ if (!tempVar) ++ log_fatal ("no memory for ldap_password"); ++ memcpy(tempVar, credential.password, credential.pwordLen); ++ *ldap_password = tempVar; ++ ++#if defined (DEBUG_LDAP) ++ log_info ("Authentication credential taken from CASA"); ++#endif ++ ++ release_casa(); ++ return 1; ++ ++ } ++ else ++ { ++ release_casa(); ++ return 0; ++ } ++ } ++ else ++ return 0; //casa libraries not loaded ++ } ++ ++#endif /* LDAP_CASA_AUTH */ ++ +diff -urNad isc-dhcp.orig/server/ldap_casa.h isc-dhcp/server/ldap_casa.h +--- isc-dhcp.orig/server/ldap_casa.h 2009-12-30 10:56:15.000000000 +0100 ++++ isc-dhcp/server/ldap_casa.h 2009-12-30 12:34:28.000000000 +0100 +@@ -0,0 +1,83 @@ ++/* ldap_casa.h ++ ++ Definition for CASA modules... */ ++ ++/* Copyright (c) 2004 Internet Systems Consorium, Inc. ("ISC") ++ * Copyright (c) 1995-2003 Internet Software Consortium. ++ * Copyright (c) 2006 Novell, Inc. ++ ++ * All rights reserved. ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions are met: ++ * 1.Redistributions of source code must retain the above copyright notice, ++ * this list of conditions and the following disclaimer. ++ * 2.Redistributions in binary form must reproduce the above copyright notice, ++ * this list of conditions and the following disclaimer in the documentation ++ * and/or other materials provided with the distribution. ++ * 3.Neither the name of ISC, ISC DHCP, nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ ++ * THIS SOFTWARE IS PROVIDED BY INTERNET SYSTEMS CONSORTIUM AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ISC OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ++ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ++ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ++ * POSSIBILITY OF SUCH DAMAGE. ++ ++ * This file was written by S Kalyanasundaram ++ */ ++ ++#if defined(LDAP_CASA_AUTH) ++#ifndef __LDAP_CASA_H__ ++#define __LDAP_CASA_H__ ++ ++#include ++#include ++#include ++ ++#define MICASA_LIB "libmicasa.so.1" ++ ++SSCS_TYPEDEF_LIBCALL(int, CASA_GetCredential_T) ++( ++ uint32_t ssFlags, ++ SSCS_SECRET_ID_T *appSecretID, ++ SSCS_SECRET_ID_T *sharedSecretID, ++ uint32_t *credentialType, ++ void *credential, ++ SSCS_EXT_T *ext ++); ++SSCS_TYPEDEF_LIBCALL(int, CASA_SetCredential_T) ++( ++ uint32_t ssFlags, ++ SSCS_SECRET_ID_T *appSecretID, ++ SSCS_SECRET_ID_T *sharedSecretID, ++ uint32_t credentialType, ++ void *credential, ++ SSCS_EXT_T *ext ++); ++ ++SSCS_TYPEDEF_LIBCALL(int, CASA_RemoveCredential_T) ++( ++ uint32_t ssFlags, ++ SSCS_SECRET_ID_T *appSecretID, ++ SSCS_SECRET_ID_T *sharedSecretID, ++ SSCS_EXT_T *ext ++); ++static CASA_GetCredential_T p_miCASAGetCredential = NULL; ++static CASA_SetCredential_T p_miCASASetCredential = NULL; ++static CASA_RemoveCredential_T p_miCASARemoveCredential = NULL; ++static void *casaIDK = NULL; ++ ++int load_casa(void); ++static void release_casa(void); ++int load_uname_pwd_from_miCASA(char **, char **); ++ ++#endif /* __LDAP_CASA_H__ */ ++#endif /* LDAP_CASA_AUTH */ ++ --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/CVE-2012-3955.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/CVE-2012-3955.dpatch @@ -0,0 +1,138 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +# Description: fix denial of service via ipv6 lease expiration time reduction +# Origin: backported from 4.1-ESV-R7 + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp-4.1.ESV-R4~/server/dhcpv6.c isc-dhcp-4.1.ESV-R4/server/dhcpv6.c +--- isc-dhcp-4.1.ESV-R4~/server/dhcpv6.c 2012-09-14 12:55:36.000000000 -0400 ++++ isc-dhcp-4.1.ESV-R4/server/dhcpv6.c 2012-09-14 12:55:50.581841187 -0400 +@@ -1835,9 +1835,6 @@ + ia_reference(&tmp->ia, reply->ia, MDL); + + /* Commit 'hard' bindings. */ +- tmp->hard_lifetime_end_time = +- tmp->soft_lifetime_end_time; +- tmp->soft_lifetime_end_time = 0; + renew_lease6(tmp->ipv6_pool, tmp); + schedule_lease_timeout(tmp->ipv6_pool); + +@@ -2491,9 +2488,6 @@ + ia_reference(&tmp->ia, reply->ia, MDL); + + /* Commit 'hard' bindings. */ +- tmp->hard_lifetime_end_time = +- tmp->soft_lifetime_end_time; +- tmp->soft_lifetime_end_time = 0; + renew_lease6(tmp->ipv6_pool, tmp); + schedule_lease_timeout(tmp->ipv6_pool); + +@@ -3356,9 +3350,6 @@ + ia_reference(&tmp->ia, reply->ia, MDL); + + /* Commit 'hard' bindings. */ +- tmp->hard_lifetime_end_time = +- tmp->soft_lifetime_end_time; +- tmp->soft_lifetime_end_time = 0; + renew_lease6(tmp->ipv6_pool, tmp); + schedule_lease_timeout(tmp->ipv6_pool); + } +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp-4.1.ESV-R4~/server/mdb6.c isc-dhcp-4.1.ESV-R4/server/mdb6.c +--- isc-dhcp-4.1.ESV-R4~/server/mdb6.c 2011-01-20 15:51:16.000000000 -0500 ++++ isc-dhcp-4.1.ESV-R4/server/mdb6.c 2012-09-14 12:55:50.581841187 -0400 +@@ -316,6 +316,8 @@ + ia_remove_iasubopt(struct ia_xx *ia, struct iasubopt *iasubopt, + const char *file, int line) { + int i, j; ++ if (ia == NULL || iasubopt == NULL) ++ return; + + for (i=0; inum_iasubopt; i++) { + if (ia->iasubopt[i] == iasubopt) { +@@ -1005,29 +1007,49 @@ + return insert_result; + } + +-/* +- * Renew an lease in the pool. ++/*! ++ * \brief Renew a lease in the pool. + * +- * To do this, first set the new hard_lifetime_end_time for the resource, +- * and then invoke renew_lease6() on it. ++ * The hard_lifetime_end_time of the lease should be set to ++ * the current expiration time. ++ * The soft_lifetime_end_time of the lease should be set to ++ * the desired expiration time. + * +- * WARNING: lease times must only be extended, never reduced!!! ++ * This routine will compare the two and call the correct ++ * heap routine to move the lease. If the lease is active ++ * and the new expiration time is greater (the normal case) ++ * then we call isc_heap_decreased() as a larger time is a ++ * lower priority. If the new expiration time is less then ++ * we call isc_heap_increased(). ++ * ++ * If the lease is abandoned then it will be on the active list ++ * and we will always call isc_heap_increased() as the previous ++ * expiration would have been all 1s (as close as we can get ++ * to infinite). ++ * ++ * If the lease is moving to active we call that routine ++ * which will move it from the inactive list to the active list. ++ * ++ * \param pool a pool the lease belongs to ++ * \param lease the lease to be renewed ++ * ++ * \return result of the renew operation (ISC_R_SUCCESS if successful, ++ ISC_R_NOMEMORY when run out of memory) + */ + isc_result_t + renew_lease6(struct ipv6_pool *pool, struct iasubopt *lease) { +- /* +- * If we're already active, then we can just move our expiration +- * time down the heap. +- * +- * If we're abandoned then we are already on the active list +- * but we need to retag the lease and move our expiration +- * from infinite to the current value +- * +- * Otherwise, we have to move from the inactive heap to the +- * active heap. +- */ ++ time_t old_end_time = lease->hard_lifetime_end_time; ++ lease->hard_lifetime_end_time = lease->soft_lifetime_end_time; ++ lease->soft_lifetime_end_time = 0; ++ + if (lease->state == FTS_ACTIVE) { +- isc_heap_decreased(pool->active_timeouts, lease->heap_index); ++ if (old_end_time <= lease->hard_lifetime_end_time) { ++ isc_heap_decreased(pool->active_timeouts, ++ lease->heap_index); ++ } else { ++ isc_heap_increased(pool->active_timeouts, ++ lease->heap_index); ++ } + return ISC_R_SUCCESS; + } else if (lease->state == FTS_ABANDONED) { + char tmp_addr[INET6_ADDRSTRLEN]; +@@ -1153,7 +1175,7 @@ + * Create a prefix by hashing the input, and using that for + * the part subject to allocation. + */ +-static void ++void + build_prefix6(struct in6_addr *pref, + const struct in6_addr *net_start_pref, + int pool_bits, int pref_bits, +@@ -1686,9 +1708,8 @@ + /* + * Renew all leases in an IA from all pools. + * +- * The new hard_lifetime_end_time should be updated for the addresses/prefixes. +- * +- * WARNING: lease times must only be extended, never reduced!!! ++ * The new lifetime should be in the soft_lifetime_end_time ++ * and will be moved to hard_lifetime_end_time by renew_lease6. + */ + isc_result_t + renew_leases(struct ia_xx *ia) { --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/multi-ip-addr-per-if.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/multi-ip-addr-per-if.dpatch @@ -0,0 +1,123 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +# Description: Resolve issue of interfaces not being +# able to have more than one IP address assigned. +# Author: Daniel Nurmi +# Bug-Ubuntu: https://launchpad.net/bugs/717166 +# Last-Update: 2011-03-16 + +@DPATCH@ +diff -urNad isc-dhcp~/common/discover.c isc-dhcp/common/discover.c +--- isc-dhcp~/common/discover.c 2011-03-16 07:49:44.000000000 +0000 ++++ isc-dhcp/common/discover.c 2011-03-16 07:55:29.348030652 +0000 +@@ -377,7 +377,7 @@ + * + * Linux low level access is documented in the netdevice man page. + */ +- ++#include + /* + * Structure holding state about the scan. + */ +@@ -983,59 +983,79 @@ + (*dhcp_interface_discovery_hook)(tmp); + } + +- if ((info.addr.ss_family == AF_INET) && +- (local_family == AF_INET)) { +- struct sockaddr_in *a = (struct sockaddr_in*)&info.addr; +- struct iaddr addr; ++ { ++ struct ifaddrs *ifaddr, *ifa; ++ getifaddrs(&ifaddr); ++ for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { ++ if ( (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET) && ++ (local_family == AF_INET)) { ++ struct sockaddr_in *a = (struct sockaddr_in *)ifa->ifa_addr; ++ struct iaddr addr; ++ char *s=NULL; + ++ s = strchr(ifa->ifa_name, ':'); ++ if (s != NULL) { ++ *s = '\0'; ++ } ++ if (!strcmp(ifa->ifa_name, info.name)) { + /* We don't want the loopback interface. */ + if (a->sin_addr.s_addr == htonl(INADDR_LOOPBACK) && + ((tmp->flags & INTERFACE_AUTOMATIC) && + state == DISCOVER_SERVER)) +- continue; +- ++ continue; ++ + /* If the only address we have is 0.0.0.0, we + shouldn't consider the interface configured. */ + if (a->sin_addr.s_addr != htonl(INADDR_ANY)) +- tmp->configured = 1; +- ++ tmp->configured = 1; ++ + add_ipv4_addr_to_interface(tmp, &a->sin_addr); +- ++ + /* invoke the setup hook */ + addr.len = 4; + memcpy(addr.iabuf, &a->sin_addr.s_addr, addr.len); + if (dhcp_interface_setup_hook) { +- (*dhcp_interface_setup_hook)(tmp, &addr); ++ (*dhcp_interface_setup_hook)(tmp, &addr); + } +- } ++ } ++ } + #ifdef DHCPv6 +- else if ((info.addr.ss_family == AF_INET6) && +- (local_family == AF_INET6)) { +- struct sockaddr_in6 *a = +- (struct sockaddr_in6*)&info.addr; +- struct iaddr addr; ++ else if ( (ifa->ifa_addr && ifa->ifa_addr->sa_family == AF_INET6) && ++ (local_family == AF_INET6)) { ++ struct sockaddr_in6 *a = ++ (struct sockaddr_in6*)ifa->ifa_addr; ++ struct iaddr addr; ++ char *s=NULL; + ++ s = strchr(ifa->ifa_name, ':'); ++ if (s != NULL) { ++ *s = '\0'; ++ } ++ if (!strcmp(ifa->ifa_name, info.name)) { + /* We don't want the loopback interface. */ + if (IN6_IS_ADDR_LOOPBACK(&a->sin6_addr) && + ((tmp->flags & INTERFACE_AUTOMATIC) && + state == DISCOVER_SERVER)) +- continue; +- ++ continue; ++ + /* If the only address we have is 0.0.0.0, we + shouldn't consider the interface configured. */ + if (IN6_IS_ADDR_UNSPECIFIED(&a->sin6_addr)) +- tmp->configured = 1; +- ++ tmp->configured = 1; ++ + add_ipv6_addr_to_interface(tmp, &a->sin6_addr); +- ++ + /* invoke the setup hook */ + addr.len = 16; + memcpy(addr.iabuf, &a->sin6_addr, addr.len); + if (dhcp_interface_setup_hook) { +- (*dhcp_interface_setup_hook)(tmp, &addr); ++ (*dhcp_interface_setup_hook)(tmp, &addr); + } +- } ++ } ++ } + #endif /* DHCPv6 */ ++ } ++ } + } + + if (err) { --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/dhclient-fix-backoff.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/dhclient-fix-backoff.dpatch @@ -0,0 +1,98 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhclient-fix-backoff.dpatch by Michel Lespinasse +## +## DP: Fix the delays between consecutive requests (the backoff algorithm). +## DP: This algorithm is best explained in the following code comment: +## DP: /* If we're supposed to increase the interval, do so. If it's +## DP: currently zero (i.e., we haven't sent any packets yet), set +## DP: it to initial_interval; otherwise, add to it a random number +## DP: between zero and two times itself. On average, this means +## DP: that it will double with every transmission. */ +## DP: However contrary to what the comment indicates, client->interval has +## DP: been initialised, before the first request is sent, to the initial_interval +## DP: value rather than to 0. Because of that, the delay between the first two +## DP: requests is, on average, double of the initial_interval value, instead of +## DP: being equal to the initial_interval value. I'm proposing to change the +## DP: initialization value to zero, in order to match the programmers expectations +## DP: as documented in that comment, and to have the initial-interval option +## DP: in dhclient.conf work as per the documented behavior. +## DP: +## DP: Additionally, I'm proposing to enforce that the delay between consecutive +## DP: requests is always at least one second - this was already the case when +## DP: using the default values, but could be messed with if setting an +## DP: initial-interval of 0 or a backoff-cutoff of 1. Some people +## DP: (see for example http://syn.theti.ca/ ) have been suggesting to use +## DP: a backoff-cutoff of 1, so such configurations do exist in the wild. +## DP: http://bugs.debian.org/509089 + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/client/dhclient.c isc-dhcp/client/dhclient.c +--- isc-dhcp~/client/dhclient.c 2010-11-01 17:20:59.000000000 +0000 ++++ isc-dhcp/client/dhclient.c 2010-11-01 17:20:59.000000000 +0000 +@@ -839,7 +839,7 @@ + make_request (client, client -> active); + client -> destination = iaddr_broadcast; + client -> first_sending = cur_time; +- client -> interval = client -> config -> initial_interval; ++ client -> interval = 0; + + /* Zap the medium list... */ + client -> medium = NULL; +@@ -865,7 +865,7 @@ + client -> destination = iaddr_broadcast; + client -> state = S_SELECTING; + client -> first_sending = cur_time; +- client -> interval = client -> config -> initial_interval; ++ client -> interval = 0; + + /* Add an immediate timeout to cause the first DHCPDISCOVER packet + to go out. */ +@@ -946,7 +946,7 @@ + client -> destination = iaddr_broadcast; + client -> state = S_REQUESTING; + client -> first_sending = cur_time; +- client -> interval = client -> config -> initial_interval; ++ client -> interval = 0; + + /* Make a DHCPREQUEST packet from the lease we picked. */ + make_request (client, picked); +@@ -1214,7 +1214,7 @@ + client -> destination = iaddr_broadcast; + + client -> first_sending = cur_time; +- client -> interval = client -> config -> initial_interval; ++ client -> interval = 0; + client -> state = S_RENEWING; + + /* Send the first packet immediately. */ +@@ -1816,6 +1816,10 @@ + (client -> first_sending + + client -> config -> timeout) - cur_time + 1; + ++ /* Make sure the computed interval is at least one second. */ ++ if (!client->interval) ++ client->interval = 1; ++ + /* Record the number of seconds since we started sending. */ + if (interval < 65536) + client -> packet.secs = htons (interval); +@@ -2048,6 +2052,10 @@ + client -> interval = + client -> active -> expiry - cur_time + 1; + ++ /* Make sure the computed interval is at least one second. */ ++ if (!client->interval) ++ client->interval = 1; ++ + /* If the lease T2 time has elapsed, or if we're not yet bound, + broadcast the DHCPREQUEST rather than unicasting. */ + if (client -> state == S_REQUESTING || +@@ -3397,7 +3405,7 @@ + } else + client -> destination = iaddr_broadcast; + client -> first_sending = cur_time; +- client -> interval = client -> config -> initial_interval; ++ client -> interval = 0; + + /* Zap the medium list... */ + client -> medium = (struct string_list *)0; --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/deroot-server.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/deroot-server.dpatch @@ -0,0 +1,63 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## deroot-server.dpatch by Martin Pitt +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/server/Makefile.am isc-dhcp/server/Makefile.am +--- isc-dhcp~/server/Makefile.am 2007-05-29 17:32:11.000000000 +0100 ++++ isc-dhcp/server/Makefile.am 2010-11-01 17:22:02.000000000 +0000 +@@ -9,7 +9,7 @@ + # libomapi.a this is here twice to handle circular library dependencies :( + dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a ../dst/libdst.a \ + ../dhcpctl/libdhcpctl.a ../minires/libres.a \ +- ../omapip/libomapi.a ++ ../omapip/libomapi.a -lcap + + man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 + EXTRA_DIST = $(man_MANS) +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/server/Makefile.in isc-dhcp/server/Makefile.in +--- isc-dhcp~/server/Makefile.in 2010-05-17 21:52:18.000000000 +0100 ++++ isc-dhcp/server/Makefile.in 2010-11-01 17:22:02.000000000 +0000 +@@ -177,7 +177,7 @@ + # libomapi.a this is here twice to handle circular library dependencies :( + dhcpd_LDADD = ../common/libdhcp.a ../omapip/libomapi.a ../dst/libdst.a \ + ../dhcpctl/libdhcpctl.a ../minires/libres.a \ +- ../omapip/libomapi.a ++ ../omapip/libomapi.a -lcap + + man_MANS = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 + EXTRA_DIST = $(man_MANS) +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/server/dhcpd.c isc-dhcp/server/dhcpd.c +--- isc-dhcp~/server/dhcpd.c 2010-01-07 21:53:53.000000000 +0000 ++++ isc-dhcp/server/dhcpd.c 2010-11-01 17:22:02.000000000 +0000 +@@ -40,6 +40,7 @@ + "For info, please visit https://www.isc.org/software/dhcp/"; + + #include "dhcpd.h" ++#include "droppriv.h" + #include + #include + #include +@@ -264,6 +265,10 @@ + gid_t set_gid = 0; + #endif /* PARANOIA */ + ++ /* drop privileges */ ++ cap_value_t capsneeded[] = { CAP_NET_RAW, CAP_NET_BIND_SERVICE }; ++ drop_privileges( "dhcpd", "dhcpd", 2, capsneeded, -1 ); ++ + /* Make sure that file descriptors 0 (stdin), 1, (stdout), and + 2 (stderr) are open. To do this, we assume that when we + open a file the lowest available file descriptor is used. */ +@@ -829,6 +834,9 @@ + + register_eventhandler(&rw_queue_empty,commit_leases_readerdry); + ++ /* drop all remaining capabilities */ ++ drop_privileges("dhcpd", "dhcpd", 0, NULL, -1); ++ + /* Receive packets and dispatch them... */ + dispatch (); + --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/dhcpd.conf-subnet-examples.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/dhcpd.conf-subnet-examples.dpatch @@ -0,0 +1,17 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhcpd.conf-subnet-examples.dpatch by Martin Pitt +## +## DP: Give an example for subnet-mask in dhcpd.conf. (LP #26661) + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/server/dhcpd.conf isc-dhcp/server/dhcpd.conf +--- isc-dhcp~/server/dhcpd.conf 2002-08-13 01:55:17.000000000 +0100 ++++ isc-dhcp/server/dhcpd.conf 2010-11-01 17:22:16.000000000 +0000 +@@ -49,6 +49,7 @@ + option domain-name-servers ns1.internal.example.org; + option domain-name "internal.example.org"; + option routers 10.5.5.1; ++ option subnet-mask 255.255.255.224; + option broadcast-address 10.5.5.31; + default-lease-time 600; + max-lease-time 7200; --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/dhclient-script-exit-status.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/dhclient-script-exit-status.dpatch @@ -0,0 +1,20 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhclient-script-exit-status.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Use exit status 2, rather than 1, to indicate that binding failed, +## DP: so that unrelated errors do not result in DHCPDECLINE + +@DPATCH@ +diff -urNad dhcp3-3.0.2/client/dhclient.c /tmp/dpep.DiNW3N/dhcp3-3.0.2/client/dhclient.c +--- dhcp3-3.0.2/client/dhclient.c 2004-11-25 04:39:14.000000000 +1100 ++++ /tmp/dpep.DiNW3N/dhcp3-3.0.2/client/dhclient.c 2005-06-15 12:51:38.952349445 +1000 +@@ -869,7 +869,7 @@ + /* If the BOUND/RENEW code detects another machine using the + offered address, it exits nonzero. We need to send a + DHCPDECLINE and toss the lease. */ +- if (script_go (client)) { ++ if (script_go (client) == 2) { + make_decline (client, client -> new); + send_decline (client); + destroy_client_lease (client -> new); --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/00list +++ isc-dhcp-4.1.ESV-R4/debian/patches/00list @@ -0,0 +1,34 @@ +# emailed upstream +dhclient-script-exit-status + +# Debian specific, not appropriate to send upstream +fix_exit_hook_doc_manpage + +# I think this has been independently emailed upstream +no_loopback_checksum + +# Ubuntu patches (see patch headers) +# emailed upstream +dhclient-fix-backoff +# emailed upstream +droppriv +deroot-server +revert-next-server +dhcpd.conf-subnet-examples +dhclient-onetry-call-clientscript +dynamic-hostname +dhclient-more-debug +multi-ip-addr-per-if +dhclient-safer-timeout.dpatch +CVE-2012-3571 +CVE-2012-3954 +CVE-2012-3955 + +# LP: #974284 +onetry_retry_after_initial_success + +#ldap backend for dhcp server (docs and code) +#these get reverted during the build, so put non-ldap +#patches earlier +dhcp-4.1.0-ldap-docs +dhcp-4.1.0-ldap-code --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/dynamic-hostname.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/dynamic-hostname.dpatch @@ -0,0 +1,124 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dynamic-hostname.dpatch by +## +## DP: Add support for a new string type 'h' which behaves like 't' except that +## DP: '' is changed to the current hostname. + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/common/options.c isc-dhcp/common/options.c +--- isc-dhcp~/common/options.c 2009-07-23 20:02:09.000000000 +0100 ++++ isc-dhcp/common/options.c 2010-11-01 17:24:04.000000000 +0000 +@@ -1501,6 +1501,7 @@ + switch (*p++) { + case 'd': + case 't': ++ case 'h': + return 1; + + /* These symbols are arbitrary, not fixed or +@@ -1626,6 +1627,7 @@ + case 'd': /* "Domain name" */ + case 'D': /* "rfc1035 formatted names" */ + case 't': /* "ASCII Text" */ ++ case 'h': /* "ASCII Text with magic" */ + case 'X': /* "ASCII or Hex Conditional */ + case 'x': /* "Hex" */ + case 'A': /* Array of all that precedes. */ +@@ -1750,6 +1752,7 @@ + fmtbuf[l] = 't'; + /* Fall Through ! */ + case 't': ++ case 'h': + fmtbuf[l + 1] = 0; + numhunk = -2; + break; +@@ -1837,6 +1840,7 @@ + for (j = 0; j < numelem; j++) { + switch (fmtbuf [j]) { + case 't': ++ case 'h': + /* endbuf-1 leaves room for NULL. */ + k = pretty_text(&op, endbuf - 1, &dp, + data + len, emit_quotes); +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/common/parse.c isc-dhcp/common/parse.c +--- isc-dhcp~/common/parse.c 2009-07-23 20:02:09.000000000 +0100 ++++ isc-dhcp/common/parse.c 2010-11-01 17:24:16.000000000 +0000 +@@ -34,6 +34,7 @@ + + #include "dhcpd.h" + #include ++#include + + /* Enumerations can be specified in option formats, and are used for + parsing, so we define the routines that manage them here. */ +@@ -5043,6 +5044,23 @@ + return 1; + } + ++int make_possible_hostname(val, len) ++ char** val; ++ unsigned* len; ++{ ++ static char localhostname[HOST_NAME_MAX]; ++ ++ if (!strcmp(*val, "")) { ++ if (gethostname (localhostname, HOST_NAME_MAX)) ++ return 0; ++ localhostname [HOST_NAME_MAX-1] = 0; ++ *val = localhostname; ++ *len = strlen(localhostname); ++ } ++ return 1; ++} ++ ++ + int parse_option_token (rv, cfile, fmt, expr, uniform, lookups) + struct expression **rv; + struct parse *cfile; +@@ -5144,6 +5162,7 @@ + goto make_string; + + case 't': /* Text string... */ ++ case 'h': /* Text string with magic... */ + token = next_token (&val, &len, cfile); + if (token != STRING && !is_identifier (token)) { + if ((*fmt) [1] != 'o') { +@@ -5153,6 +5172,9 @@ + } + return 0; + } ++ if (**fmt == 'h' && !make_possible_hostname (&val, &len)) ++ parse_warn (cfile, "resolving failed"); ++ + make_string: + if (!make_const_data (&t, (const unsigned char *)val, + len, 1, 1, MDL)) +@@ -5364,6 +5386,7 @@ + break; + + case 't': /* Text string... */ ++ case 'h': /* Text string with magic... */ + token = peek_token (&val, + &len, cfile); + if (token == SEMI && fmt[1] == 'o') { +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/common/tables.c isc-dhcp/common/tables.c +--- isc-dhcp~/common/tables.c 2009-07-24 23:04:52.000000000 +0100 ++++ isc-dhcp/common/tables.c 2010-11-01 17:24:04.000000000 +0000 +@@ -59,6 +59,8 @@ + b - 8-bit signed integer + B - 8-bit unsigned integer + t - ASCII text ++ h - same as t, but if the ASCII string is "", option is set ++ to the value returned by gethostname(2) + T - Lease Time, 32-bit unsigned integer implying a number of seconds from + some event. The special all-ones value means 'infinite'. May either + be printed as a decimal, eg, "3600", or as this name, eg, "infinite". +@@ -108,7 +110,7 @@ + { "lpr-servers", "IA", &dhcp_universe, 9, 1 }, + { "impress-servers", "IA", &dhcp_universe, 10, 1 }, + { "resource-location-servers", "IA", &dhcp_universe, 11, 1 }, +- { "host-name", "t", &dhcp_universe, 12, 1 }, ++ { "host-name", "h", &dhcp_universe, 12, 1 }, + { "boot-size", "S", &dhcp_universe, 13, 1 }, + { "merit-dump", "t", &dhcp_universe, 14, 1 }, + { "domain-name", "t", &dhcp_universe, 15, 1 }, --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/dhcp-4.1.0-ldap-docs.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/dhcp-4.1.0-ldap-docs.dpatch @@ -0,0 +1,2799 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhcp-3.1.0-ldap.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Patch to use ldap as a backend for dhcp3 server +## DP: These are the files with documentation and utils +## DP: This patch is deeply based on the Brian Masney work + +@DPATCH@ + +diff -urNad isc-dhcp.orig/Changelog-LDAP isc-dhcp/Changelog-LDAP +--- isc-dhcp.orig/Changelog-LDAP 1970-01-01 01:00:00.000000000 +0100 ++++ isc-dhcp/Changelog-LDAP 2009-12-30 10:57:24.000000000 +0100 +@@ -0,0 +1,267 @@ ++2009-12-30 José L. Redrejo ++ * server/ldap.c: Apply patch to avoid DHCP server stops with SIGPIPE ++ when talking to LDAP server. Thanks to Petter Reinholdtsen ++ at http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559160 ++ ++2009-09-29 Marius Tomaschewski ++ * Fixed gcc warnings by adding casts with expected signedness. ++ * Added configure checks and the options --enable-ldap-conf=no, ++ --enable-ldap-ssl=yes, --enable-ldap-casa=yes ++ Removed ldap constants from site.h, adopted Makefile.am in dst ++ and server directories, added config.h inclusions to ldap*.c ++ ++2008-2-8 José L. Redrejo ++ * includes/dhcpd.h: fixed SV_LDAP_ values according to server/stables.c ++ * server/ldap.c : fixed sprintf call ++ ++2007-2-23 Brian Masney ++ * contrib/dhcpd-conf-to-ldap.pl - fixed a parsing bug in which ++ didn't handle correctly quoted string containing spaces. ++ (Rapha?l Luta ) ++ ++ * dst/Makefile.dist server/Makefile.dist site.conf - updated build ++ method when using -lssl. ++ (from Marius Tomaschewski ) ++ ++ * server/ldap.c - fix for ldap_read_function to avoid returning ++ empty strings (skipped host declaration from ldap) that are causing ++ parsing errors in ldap-dynamic mode. ++ (from Marius Tomaschewski ) ++ ++ * includes/dhcpd.h README.ldap server/dhcpd.c server/ldap.c ++ server/stables.c - added ldap-ssl option and ++ several ldap-tls* options, that are described in the "man ldap.conf". ++ (from Marius Tomaschewski ) ++ ++ * includes/dhcpd.h server/ldap.c server/stables.c - added ldap-referrals ++ option. Also implemented a LDAP rebuind function ++ (from Kalyan ) ++ ++ * includes/dhcpd.h server/ldap.c server/stables.c - renamed dhcpd.conf ++ option ldap-server-cn to ldap-dhcp-server-cn ++ (from Marius Tomaschewski ) ++ ++ * contrib/dhcp.schema - schema updates ++ (from Kalyan ) ++ ++ * server/ldap.c server/ldap_casa.c - CASA support fixes ++ (from Marius Tomaschewski ) ++ ++ * server/ldap.c - added strncat() fix ++ (from Marius Tomaschewski ) ++ ++2006-12-15 Brian Masney ++ * server/ldap.c (ldap_read_config) - unbind from the LDAP server after ++ the config file has been ran if the server is being ran in static mode ++ (from Tomas Hoger ) ++ ++ * server/ldap.c (ldap_read_function) - fixed bug where the entire ++ configuration was not being processed in the LDAP directory. ++ ++ * server/ldap.c - added the following functions for reading values ++ from the config file: _do_lookup_dhcp_string_option(), ++ _do_lookup_dhcp_int_option() and _do_lookup_dhcp_enum_option(). This ++ helped to clean up ldap_start() start a bit. Also, various small ++ formatting changes to the code. ++ ++2006-12-15 Marius Tomaschewski ++ * Changelog-LDAP - Added / changed some of entries in ++ Changelog-LDAP, e.g. changes to the dhcpServer and ++ dhcpService objectclasses in schema file was not mentioned. ++ ++ * server/ldap.c Some a little bit paranoid checks to strchr results ++ in the group patch, avoided allocation of groupname using snprintf ++ with a "%.*s" format. ++ ++ * server/ldap.c - Readded FIXME comment about one space in ++ dhcpHWAddress. ++ ++ * server/ldap.c Changed "dhcpdnsZone" and "dhcpdnszoneServer" into ++ "dhcpDnsZone" and "dhcpDnsZoneServer". ++ ++ * Fixed memory leak in ldap_parse_zone (dfree of keyCn), added checks ++ for dmalloc and strchr results. ++ ++ * ldap_casa.c, ldap_casa.h - surrounded content of ldap_casa.h and ++ ldap_casa.c with if defined(LDAP_CASA_AUTH). ++ ++ * contrib/dhcp.schema - Reverted the equality change for dhcpOption. ++ The dhcp options are case-insensitive in dhcpd.conf. ++ ++ * Changed "dhcpdnsZone" and "dhcpdnszoneServer" into "dhcpDnsZone" ++ and "dhcpDnsZoneServer". ++ ++ * Changed "FQDNs" into "DNs" in dhcpLocatorDN description (DN is already ++ absolute, RDN is relative DN, FQDN means a full qualified domain name). ++ ++2006-12-15 Kalyan ++ * includes/ldap_casa.h server/ldap_casa.c - updated to support CASA ++ 1.7 ++ ++2006-8-15 Kalyan ++ * server/ldap.c (ldap_parse_options) - fetch option from the group ++ if the host belongs to that group in the dynamic method. ++ ++ * contrib/dhcp.schema - modified dhcpServiceDN attribute in dhcpServer ++ objectclasses to be optional instead of mandatory ++ ++ * contrib/dhcp.schema - modified dhcpPrimaryDN attribute in dhcpService ++ objectclasses to be optional instead of mandatory ++ ++ * contrib/dhcp.schema - schema has been updated with ++ new objectclasses dhcpLocator,dhcpTsigKey,dhcpdnsZone,dhcpFailOver and ++ many attributes. ++ ++ * contrib/dhcp.schema - dhcpHWAddress's equality has been modified to ++ caseIgnoreIA5Match. ++ ++ * server/ldap.c - added support for reading the dhcpTsigKey and ++ dhcpdnsZone objects. ++ ++ * server/ldap.c (ldap_parse_options) Fetch option from the group if ++ the host belongs to that group in the dynamic method. ++ ++ * server/ldap.c - CASA authentication is enabled. ++ ++ * server/ldap.c - introduced new attribute ldap-server-cn to mention ++ the dhcpServer object name in configuration. ++ ++2006-7-17 Brian Masney ++ * server/ldap.c (ldap_read_function) - fixes for reading the data ++ from the LDAP tree in some cases (patch from ++ Darrin Smith ) ++ ++2006-3-17 Brian Masney ++ * server/ldap.c (ldap_read_function) - added patch from ++ Dmitriy Bogun . This patch fixes a bug when ++ EOF wasn't returned in some cases. ++ ++2005-9-26 Brian Masney ++ * server/ldap.c (ldap_start) - added support for reading the ++ ldap-port option. This option was not being used. ++ ++2005-5-24 Brian Masney ++ * server/ldap.c (ldap_parse_host) - allow dhcpHost entries that do ++ not have a hardware address associated with them ++ ++2005-4-11 Brian Masney ++ * README.ldap - updated directions on how to use LDAP over SSL on ++ non-Linux machines ++ ++2005-2-23 Brian Masney ++ * server/ldap.c (ldap_generate_config_string) - do a case insensitive ++ string comparsion when comparing the object classes ++ ++2004-11-8 Brian Masney ++ * debian/control - updated the depends and build-depends line ++ (from Andrew Pollock ) ++ ++2004-10-13 Brian Masney ++ * server/ldap.c (ldap_start) - allow doing an anonymous bind to the ++ LDAP server ++ ++2004-9-27 Brian Masney ++ * contrib/dhcpd-conf-to-ldap.pl - make sure the DHCP hardware address ++ is always lowercased ++ ++2004-7-30 Brian Masney ++ * server/ldap.c - added more debbuging statements. Fixed possible crash ++ that could occur whenever more than 1 external DN is added to an LDAP ++ entry. Fixed possible infinite loop when reading the external DNs. ++ (from Sebastian Hetze ) ++ ++2004-7-1 Brian Masney ++ * README.ldap - updated build instructions paragraph ++ (from Mason Schmitt ) ++ ++2004-6-29 Brian Masney ++ * debian/control - set the minimum required version of the DHCP server ++ to be 3.0.1rc9 ++ ++ * configure - fix for sed when configure was run from an older shell ++ ++2004-6-22 Brian Masney ++ * Updated patch to use ISC DHCP 3.0.1rc14 ++ ++2004-5-24 Brian Masney ++ * server/ldap.c - don't append a ; to the end of a dhcpStatement if it ++ ends in } ++ ++ * server/ldap.c contrib/dhcpd-conf-to-ldap.pl - support having multiple ++ dhcpRange statements (from Marco D'Ettorre ) ++ ++2004-5-5 Brian Masney ++ * server/ldap.c - added more debugging statements when ++ it is compiled in to help troubleshoot parsing errors. Don't free ++ a LDAP connection prematurely when there is a reference to another ++ LDAP tree. If the config entry ends in }, make sure a ; gets tacked ++ on ++ ++ * debian/* - Updated version number. Renamed package from ++ dhcp3-ldap-ntelos to dhcp3-server-ldap. ++ ++ * server/ldap.c - enclose the shared-network name in quotes so ++ that there can be shared network statements in LDAP that have spaces ++ in them ++ ++ * configure - after the work directory is setup, add -lldap -llber ++ to the server Makefile ++ ++Wed Apr 21 15:09:08 CEST 2004 - mt@suse.de ++ * contrib/dhcpd-conf-to-ldap.pl: ++ - added "--conf=file" option usable instead of stdin ++ - added "--ldif=file" option usable instead of stdout ++ - added "--second=host|dn" option usefull for failover ++ - added "--use=feature" option to enable extended features; ++ currently used to enable failover (default is disabled). ++ - extended remaining_line() to support block statements ++ - fixed / improved failover support, added notes about ++ ++ * server/ldap.c: ++ - moved code checking statement ends to check_statement_end() ++ - moved parsing of entry options/statements to ++ ldap_parse_entry_options() ++ - moved code closing debug fd into ldap_close_debug_fd() ++ - moved code writing to debug fd into ldap_write_debug() ++ - added support for full hostname in dhcpServer search filter ++ - added support for multiple dhcpService entries in dhcpServer object ++ - added parsing of options and statements for dhcpServer object ++ - added verify if dhcpService contains server dn as primary or ++ secondary ++ - changed to search for dhcpHost,dhcpSubClass bellow of all ++ dhcpService trees instead of base-dn (avoids finding of hosts in ++ foreign configs) ++ - fixes to free all dn's fetched by ldap_get_dn (e.g. debug output) ++ - fixes to free ldap results, mainly in cases where no LDAP_SUCCESS ++ returned or other error conditions happened ++ - fixed/improved some log messages ++ ++2004-3-30 Brian Masney ++ * contrib/dhcpd-conf-to-ldap.pl - added option to control the ++ DHCP Config DN. Wrap the DHCP Statements in { } ++ This patch was contributed by Marius Tomaschewski ++ ++ * server/ldap.c - changed ldap_username and ldap_password to ++ be optional (anonymous bind is used then). Added {} block support ++ to dhcpStatements. (no ";" at end if statement ends with a "}"). ++ Fixed writing to ldap-debug-file. Changed find_haddr_in_ldap() to ++ use dhcpHost objectClass in its filter ++ This patch was contributed by Marius Tomaschewski ++ ++2004-3-23 Brian Masney ++ * contrib/dhcpd-conf-to-ldap.pl - added options for server, basedn ++ options and usage message (Net::Domain instead of SYS::Hostname). ++ Added handling of zone, authoritative and failover (config and ++ pool-refs) statements. Added numbering of groups and pools per ++ subnet. This patch was contributed by Marius Tomaschewski ++ ++2004-2-26 Brian Masney ++ * fixed an instance where the LDAP server would restart, but the DHCP ++ server would not reconnect ++ ++2004-2-18 Brian Masney ++ * allow multiple dhcp*DN entries in the LDAP entry. ++ ++2003-9-11 Brian Masney ++ * updated patch to work with 3.0.1rc12 ++ +diff -urNad dhcp3-3.1.0.orig/contrib/dhcpd-conf-to-ldap.pl dhcp3-3.1.0/contrib/dhcpd-conf-to-ldap.pl +--- dhcp3-3.1.0.orig/contrib/dhcpd-conf-to-ldap.pl 1970-01-01 01:00:00.000000000 +0100 ++++ dhcp3-3.1.0/contrib/dhcpd-conf-to-ldap.pl 2008-02-20 13:21:26.000000000 +0100 +@@ -0,0 +1,760 @@ ++#!/usr/bin/perl -w ++ ++# Brian Masney ++# To use this script, set your base DN below. Then run ++# ./dhcpd-conf-to-ldap.pl < /path-to-dhcpd-conf/dhcpd.conf > output-file ++# The output of this script will generate entries in LDIF format. You can use ++# the slapadd command to add these entries into your LDAP server. You will ++# definately want to double check that your LDAP entries are correct before ++# you load them into LDAP. ++ ++# This script does not do much error checking. Make sure before you run this ++# that the DHCP server doesn't give any errors about your config file ++ ++# FailOver notes: ++# Failover is disabled by default, since it may need manually intervention. ++# You can try the '--use=failover' option to see what happens :-) ++# ++# If enabled, the failover pool references will be written to LDIF output. ++# The failover configs itself will be added to the dhcpServer statements ++# and not to the dhcpService object (since this script uses only one and ++# it may be usefull to have multiple service containers in failover mode). ++# Further, this script does not check if primary or secondary makes sense, ++# it simply converts what it gets... ++ ++use Net::Domain qw(hostname hostfqdn hostdomain); ++use Getopt::Long; ++ ++my $domain = hostdomain(); # your.domain ++my $basedn = "dc=".$domain; ++ $basedn =~ s/\./,dc=/g; # dc=your,dc=domain ++my $server = hostname(); # hostname (nodename) ++my $dhcpcn = 'DHCP Config'; # CN of DHCP config tree ++my $dhcpdn = "cn=$dhcpcn, $basedn"; # DHCP config tree DN ++my $second = ''; # secondary server DN / hostname ++my $i_conf = ''; # dhcp.conf file to read or stdin ++my $o_ldif = ''; # output ldif file name or stdout ++my @use = (); # extended flags (failover) ++ ++sub usage($;$) ++{ ++ my $rc = shift; ++ my $err= shift; ++ ++ print STDERR "Error: $err\n\n" if(defined $err); ++ print STDERR <<__EOF_USAGE__; ++usage: ++ $0 [options] < dhcpd.conf > dhcpd.ldif ++ ++options: ++ ++ --basedn "dc=your,dc=domain" ("$basedn") ++ ++ --dhcpdn "dhcp config DN" ("$dhcpdn") ++ ++ --server "dhcp server name" ("$server") ++ ++ --second "secondary server or DN" ("$second") ++ ++ --conf "/path/to/dhcpd.conf" (default is stdin) ++ --ldif "/path/to/output.ldif" (default is stdout) ++ ++ --use "extended features" (see source comments) ++__EOF_USAGE__ ++ exit($rc); ++} ++ ++ ++sub next_token ++{ ++ local ($lowercase) = @_; ++ local ($token, $newline); ++ ++ do ++ { ++ if (!defined ($line) || length ($line) == 0) ++ { ++ $line = <>; ++ return undef if !defined ($line); ++ chop $line; ++ $line_number++; ++ $token_number = 0; ++ } ++ ++ $line =~ s/#.*//; ++ $line =~ s/^\s+//; ++ $line =~ s/\s+$//; ++ } ++ while (length ($line) == 0); ++ ++ if (($token, $newline) = $line =~ /^(.*?)\s+(.*)/) ++ { ++ if ($token =~ /^"/) { ++ #handle quoted token ++ if ($token !~ /"\s*$/) ++ { ++ ($tok, $newline) = $newline =~ /([^"]+")(.*)/; ++ $token .= " $tok"; ++ } ++ } ++ $line = $newline; ++ } ++ else ++ { ++ $token = $line; ++ $line = ''; ++ } ++ $token_number++; ++ ++ $token =~ y/[A-Z]/[a-z]/ if $lowercase; ++ ++ return ($token); ++} ++ ++ ++sub remaining_line ++{ ++ local ($block) = shift || 0; ++ local ($tmp, $str); ++ ++ $str = ""; ++ while (defined($tmp = next_token (0))) ++ { ++ $str .= ' ' if !($str eq ""); ++ $str .= $tmp; ++ last if $tmp =~ /;\s*$/; ++ last if($block and $tmp =~ /\s*[}{]\s*$/); ++ } ++ ++ $str =~ s/;$//; ++ return ($str); ++} ++ ++ ++sub ++add_dn_to_stack ++{ ++ local ($dn) = @_; ++ ++ $current_dn = "$dn, $current_dn"; ++} ++ ++ ++sub ++remove_dn_from_stack ++{ ++ $current_dn =~ s/^.*?,\s*//; ++} ++ ++ ++sub ++parse_error ++{ ++ print "Parse error on line number $line_number at token number $token_number\n"; ++ exit (1); ++} ++ ++ ++sub ++print_entry ++{ ++ return if (scalar keys %curentry == 0); ++ ++ if (!defined ($curentry{'type'})) ++ { ++ $hostdn = "cn=$server, $basedn"; ++ print "dn: $hostdn\n"; ++ print "cn: $server\n"; ++ print "objectClass: top\n"; ++ print "objectClass: dhcpServer\n"; ++ print "dhcpServiceDN: $current_dn\n"; ++ if(grep(/FaIlOvEr/i, @use)) ++ { ++ foreach my $fo_peer (keys %failover) ++ { ++ next if(scalar(@{$failover{$fo_peer}}) <= 1); ++ print "dhcpStatements: failover peer $fo_peer { ", ++ join('; ', @{$failover{$fo_peer}}), "; }\n"; ++ } ++ } ++ print "\n"; ++ ++ print "dn: $current_dn\n"; ++ print "cn: $dhcpcn\n"; ++ print "objectClass: top\n"; ++ print "objectClass: dhcpService\n"; ++ if (defined ($curentry{'options'})) ++ { ++ print "objectClass: dhcpOptions\n"; ++ } ++ print "dhcpPrimaryDN: $hostdn\n"; ++ if(grep(/FaIlOvEr/i, @use) and ($second ne '')) ++ { ++ print "dhcpSecondaryDN: $second\n"; ++ } ++ } ++ elsif ($curentry{'type'} eq 'subnet') ++ { ++ print "dn: $current_dn\n"; ++ print "cn: " . $curentry{'ip'} . "\n"; ++ print "objectClass: top\n"; ++ print "objectClass: dhcpSubnet\n"; ++ if (defined ($curentry{'options'})) ++ { ++ print "objectClass: dhcpOptions\n"; ++ } ++ ++ print "dhcpNetMask: " . $curentry{'netmask'} . "\n"; ++ if (defined ($curentry{'ranges'})) ++ { ++ foreach $statement (@{$curentry{'ranges'}}) ++ { ++ print "dhcpRange: $statement\n"; ++ } ++ } ++ } ++ elsif ($curentry{'type'} eq 'shared-network') ++ { ++ print "dn: $current_dn\n"; ++ print "cn: " . $curentry{'descr'} . "\n"; ++ print "objectClass: top\n"; ++ print "objectClass: dhcpSharedNetwork\n"; ++ if (defined ($curentry{'options'})) ++ { ++ print "objectClass: dhcpOptions\n"; ++ } ++ } ++ elsif ($curentry{'type'} eq 'group') ++ { ++ print "dn: $current_dn\n"; ++ print "cn: group", $curentry{'idx'}, "\n"; ++ print "objectClass: top\n"; ++ print "objectClass: dhcpGroup\n"; ++ if (defined ($curentry{'options'})) ++ { ++ print "objectClass: dhcpOptions\n"; ++ } ++ } ++ elsif ($curentry{'type'} eq 'host') ++ { ++ print "dn: $current_dn\n"; ++ print "cn: " . $curentry{'host'} . "\n"; ++ print "objectClass: top\n"; ++ print "objectClass: dhcpHost\n"; ++ if (defined ($curentry{'options'})) ++ { ++ print "objectClass: dhcpOptions\n"; ++ } ++ ++ if (defined ($curentry{'hwaddress'})) ++ { ++ $curentry{'hwaddress'} =~ y/[A-Z]/[a-z]/; ++ print "dhcpHWAddress: " . $curentry{'hwaddress'} . "\n"; ++ } ++ } ++ elsif ($curentry{'type'} eq 'pool') ++ { ++ print "dn: $current_dn\n"; ++ print "cn: pool", $curentry{'idx'}, "\n"; ++ print "objectClass: top\n"; ++ print "objectClass: dhcpPool\n"; ++ if (defined ($curentry{'options'})) ++ { ++ print "objectClass: dhcpOptions\n"; ++ } ++ ++ if (defined ($curentry{'ranges'})) ++ { ++ foreach $statement (@{$curentry{'ranges'}}) ++ { ++ print "dhcpRange: $statement\n"; ++ } ++ } ++ } ++ elsif ($curentry{'type'} eq 'class') ++ { ++ print "dn: $current_dn\n"; ++ print "cn: " . $curentry{'class'} . "\n"; ++ print "objectClass: top\n"; ++ print "objectClass: dhcpClass\n"; ++ if (defined ($curentry{'options'})) ++ { ++ print "objectClass: dhcpOptions\n"; ++ } ++ } ++ elsif ($curentry{'type'} eq 'subclass') ++ { ++ print "dn: $current_dn\n"; ++ print "cn: " . $curentry{'subclass'} . "\n"; ++ print "objectClass: top\n"; ++ print "objectClass: dhcpSubClass\n"; ++ if (defined ($curentry{'options'})) ++ { ++ print "objectClass: dhcpOptions\n"; ++ } ++ print "dhcpClassData: " . $curentry{'class'} . "\n"; ++ } ++ ++ if (defined ($curentry{'statements'})) ++ { ++ foreach $statement (@{$curentry{'statements'}}) ++ { ++ print "dhcpStatements: $statement\n"; ++ } ++ } ++ ++ if (defined ($curentry{'options'})) ++ { ++ foreach $statement (@{$curentry{'options'}}) ++ { ++ print "dhcpOption: $statement\n"; ++ } ++ } ++ ++ print "\n"; ++ undef (%curentry); ++} ++ ++ ++sub parse_netmask ++{ ++ local ($netmask) = @_; ++ local ($i); ++ ++ if ((($a, $b, $c, $d) = $netmask =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/) != 4) ++ { ++ parse_error (); ++ } ++ ++ $num = (($a & 0xff) << 24) | ++ (($b & 0xff) << 16) | ++ (($c & 0xff) << 8) | ++ ($d & 0xff); ++ ++ for ($i=1; $i<=32 && $num & (1 << (32 - $i)); $i++) ++ { ++ } ++ $i--; ++ ++ return ($i); ++} ++ ++ ++sub parse_subnet ++{ ++ local ($ip, $tmp, $netmask); ++ ++ print_entry () if %curentry; ++ ++ $ip = next_token (0); ++ parse_error () if !defined ($ip); ++ ++ $tmp = next_token (1); ++ parse_error () if !defined ($tmp); ++ parse_error () if !($tmp eq 'netmask'); ++ ++ $tmp = next_token (0); ++ parse_error () if !defined ($tmp); ++ $netmask = parse_netmask ($tmp); ++ ++ $tmp = next_token (0); ++ parse_error () if !defined ($tmp); ++ parse_error () if !($tmp eq '{'); ++ ++ add_dn_to_stack ("cn=$ip"); ++ $curentry{'type'} = 'subnet'; ++ $curentry{'ip'} = $ip; ++ $curentry{'netmask'} = $netmask; ++ $cursubnet = $ip; ++ $curcounter{$ip} = { pool => 0, group => 0 }; ++} ++ ++ ++sub parse_shared_network ++{ ++ local ($descr, $tmp); ++ ++ print_entry () if %curentry; ++ ++ $descr = next_token (0); ++ parse_error () if !defined ($descr); ++ ++ $tmp = next_token (0); ++ parse_error () if !defined ($tmp); ++ parse_error () if !($tmp eq '{'); ++ ++ add_dn_to_stack ("cn=$descr"); ++ $curentry{'type'} = 'shared-network'; ++ $curentry{'descr'} = $descr; ++} ++ ++ ++sub parse_host ++{ ++ local ($descr, $tmp); ++ ++ print_entry () if %curentry; ++ ++ $host = next_token (0); ++ parse_error () if !defined ($host); ++ ++ $tmp = next_token (0); ++ parse_error () if !defined ($tmp); ++ parse_error () if !($tmp eq '{'); ++ ++ add_dn_to_stack ("cn=$host"); ++ $curentry{'type'} = 'host'; ++ $curentry{'host'} = $host; ++} ++ ++ ++sub parse_group ++{ ++ local ($descr, $tmp); ++ ++ print_entry () if %curentry; ++ ++ $tmp = next_token (0); ++ parse_error () if !defined ($tmp); ++ parse_error () if !($tmp eq '{'); ++ ++ my $idx; ++ if(exists($curcounter{$cursubnet})) { ++ $idx = ++$curcounter{$cursubnet}->{'group'}; ++ } else { ++ $idx = ++$curcounter{''}->{'group'}; ++ } ++ ++ add_dn_to_stack ("cn=group".$idx); ++ $curentry{'type'} = 'group'; ++ $curentry{'idx'} = $idx; ++} ++ ++ ++sub parse_pool ++{ ++ local ($descr, $tmp); ++ ++ print_entry () if %curentry; ++ ++ $tmp = next_token (0); ++ parse_error () if !defined ($tmp); ++ parse_error () if !($tmp eq '{'); ++ ++ my $idx; ++ if(exists($curcounter{$cursubnet})) { ++ $idx = ++$curcounter{$cursubnet}->{'pool'}; ++ } else { ++ $idx = ++$curcounter{''}->{'pool'}; ++ } ++ ++ add_dn_to_stack ("cn=pool".$idx); ++ $curentry{'type'} = 'pool'; ++ $curentry{'idx'} = $idx; ++} ++ ++ ++sub parse_class ++{ ++ local ($descr, $tmp); ++ ++ print_entry () if %curentry; ++ ++ $class = next_token (0); ++ parse_error () if !defined ($class); ++ ++ $tmp = next_token (0); ++ parse_error () if !defined ($tmp); ++ parse_error () if !($tmp eq '{'); ++ ++ $class =~ s/\"//g; ++ add_dn_to_stack ("cn=$class"); ++ $curentry{'type'} = 'class'; ++ $curentry{'class'} = $class; ++} ++ ++ ++sub parse_subclass ++{ ++ local ($descr, $tmp); ++ ++ print_entry () if %curentry; ++ ++ $class = next_token (0); ++ parse_error () if !defined ($class); ++ ++ $subclass = next_token (0); ++ parse_error () if !defined ($subclass); ++ ++ $tmp = next_token (0); ++ parse_error () if !defined ($tmp); ++ parse_error () if !($tmp eq '{'); ++ ++ add_dn_to_stack ("cn=$subclass"); ++ $curentry{'type'} = 'subclass'; ++ $curentry{'class'} = $class; ++ $curentry{'subclass'} = $subclass; ++} ++ ++ ++sub parse_hwaddress ++{ ++ local ($type, $hw, $tmp); ++ ++ $type = next_token (1); ++ parse_error () if !defined ($type); ++ ++ $hw = next_token (1); ++ parse_error () if !defined ($hw); ++ $hw =~ s/;$//; ++ ++ $curentry{'hwaddress'} = "$type $hw"; ++} ++ ++ ++sub parse_range ++{ ++ local ($tmp, $str); ++ ++ $str = remaining_line (); ++ ++ if (!($str eq '')) ++ { ++ $str =~ s/;$//; ++ push (@{$curentry{'ranges'}}, $str); ++ } ++} ++ ++ ++sub parse_statement ++{ ++ local ($token) = shift; ++ local ($str); ++ ++ if ($token eq 'option') ++ { ++ $str = remaining_line (); ++ push (@{$curentry{'options'}}, $str); ++ } ++ elsif($token eq 'failover') ++ { ++ $str = remaining_line (1); # take care on block ++ if($str =~ /[{]/) ++ { ++ my ($peername, @statements); ++ ++ parse_error() if($str !~ /^\s*peer\s+(.+?)\s+[{]\s*$/); ++ parse_error() if(($peername = $1) !~ /^\"?[^\"]+\"?$/); ++ ++ # ++ # failover config block found: ++ # e.g. 'failover peer "some-name" {' ++ # ++ if(not grep(/FaIlOvEr/i, @use)) ++ { ++ print STDERR "Warning: Failover config 'peer $peername' found!\n"; ++ print STDERR " Skipping it, since failover disabled!\n"; ++ print STDERR " You may try out --use=failover option.\n"; ++ } ++ ++ until($str =~ /[}]/ or $str eq "") ++ { ++ $str = remaining_line (1); ++ # collect all statements, except ending '}' ++ push(@statements, $str) if($str !~ /[}]/); ++ } ++ $failover{$peername} = [@statements]; ++ } ++ else ++ { ++ # ++ # pool reference to failover config is fine ++ # e.g. 'failover peer "some-name";' ++ # ++ if(not grep(/FaIlOvEr/i, @use)) ++ { ++ print STDERR "Warning: Failover reference '$str' found!\n"; ++ print STDERR " Skipping it, since failover disabled!\n"; ++ print STDERR " You may try out --use=failover option.\n"; ++ } ++ else ++ { ++ push (@{$curentry{'statements'}}, $token. " " . $str); ++ } ++ } ++ } ++ elsif($token eq 'zone') ++ { ++ $str = $token; ++ while($str !~ /}$/) { ++ $str .= ' ' . next_token (0); ++ } ++ push (@{$curentry{'statements'}}, $str); ++ } ++ elsif($token =~ /^(authoritative)[;]*$/) ++ { ++ push (@{$curentry{'statements'}}, $1); ++ } ++ else ++ { ++ $str = $token . " " . remaining_line (); ++ push (@{$curentry{'statements'}}, $str); ++ } ++} ++ ++ ++my $ok = GetOptions( ++ 'basedn=s' => \$basedn, ++ 'dhcpdn=s' => \$dhcpdn, ++ 'server=s' => \$server, ++ 'second=s' => \$second, ++ 'conf=s' => \$i_conf, ++ 'ldif=s' => \$o_ldif, ++ 'use=s' => \@use, ++ 'h|help|usage' => sub { usage(0); }, ++); ++ ++unless($server =~ /^\w+/) ++ { ++ usage(1, "invalid server name '$server'"); ++ } ++unless($basedn =~ /^\w+=[^,]+/) ++ { ++ usage(1, "invalid base dn '$basedn'"); ++ } ++ ++if($dhcpdn =~ /^cn=([^,]+)/i) ++ { ++ $dhcpcn = "$1"; ++ } ++$second = '' if not defined $second; ++unless($second eq '' or $second =~ /^cn=[^,]+\s*,\s*\w+=[^,]+/i) ++ { ++ if($second =~ /^cn=[^,]+$/i) ++ { ++ # relative DN 'cn=name' ++ $second = "$second, $basedn"; ++ } ++ elsif($second =~ /^\w+/) ++ { ++ # assume hostname only ++ $second = "cn=$second, $basedn"; ++ } ++ else ++ { ++ usage(1, "invalid secondary '$second'") ++ } ++ } ++ ++usage(1) unless($ok); ++ ++if($i_conf ne "" and -f $i_conf) ++ { ++ if(not open(STDIN, '<', $i_conf)) ++ { ++ print STDERR "Error: can't open conf file '$i_conf': $!\n"; ++ exit(1); ++ } ++ } ++if($o_ldif ne "") ++ { ++ if(-e $o_ldif) ++ { ++ print STDERR "Error: output ldif name '$o_ldif' already exists!\n"; ++ exit(1); ++ } ++ if(not open(STDOUT, '>', $o_ldif)) ++ { ++ print STDERR "Error: can't open ldif file '$o_ldif': $!\n"; ++ exit(1); ++ } ++ } ++ ++ ++print STDERR "Creating LDAP Configuration with the following options:\n"; ++print STDERR "\tBase DN: $basedn\n"; ++print STDERR "\tDHCP DN: $dhcpdn\n"; ++print STDERR "\tServer DN: cn=$server, $basedn\n"; ++print STDERR "\tSecondary DN: $second\n" ++ if(grep(/FaIlOvEr/i, @use) and $second ne ''); ++print STDERR "\n"; ++ ++my $token; ++my $token_number = 0; ++my $line_number = 0; ++my %curentry; ++my $cursubnet = ''; ++my %curcounter = ( '' => { pool => 0, group => 0 } ); ++ ++$current_dn = "$dhcpdn"; ++$curentry{'descr'} = $dhcpcn; ++$line = ''; ++%failover = (); ++ ++while (($token = next_token (1))) ++ { ++ if ($token eq '}') ++ { ++ print_entry () if %curentry; ++ if($current_dn =~ /.+?,\s*${dhcpdn}$/) { ++ # don't go below dhcpdn ... ++ remove_dn_from_stack (); ++ } ++ } ++ elsif ($token eq 'subnet') ++ { ++ parse_subnet (); ++ next; ++ } ++ elsif ($token eq 'shared-network') ++ { ++ parse_shared_network (); ++ next; ++ } ++ elsif ($token eq 'class') ++ { ++ parse_class (); ++ next; ++ } ++ elsif ($token eq 'subclass') ++ { ++ parse_subclass (); ++ next; ++ } ++ elsif ($token eq 'pool') ++ { ++ parse_pool (); ++ next; ++ } ++ elsif ($token eq 'group') ++ { ++ parse_group (); ++ next; ++ } ++ elsif ($token eq 'host') ++ { ++ parse_host (); ++ next; ++ } ++ elsif ($token eq 'hardware') ++ { ++ parse_hwaddress (); ++ next; ++ } ++ elsif ($token eq 'range') ++ { ++ parse_range (); ++ next; ++ } ++ else ++ { ++ parse_statement ($token); ++ next; ++ } ++ } ++ ++close(STDIN) if($i_conf); ++close(STDOUT) if($o_ldif); ++ ++print STDERR "Done.\n"; ++ +diff -urNad dhcp3-3.1.0.orig/contrib/dhcp.schema dhcp3-3.1.0/contrib/dhcp.schema +--- dhcp3-3.1.0.orig/contrib/dhcp.schema 1970-01-01 01:00:00.000000000 +0100 ++++ dhcp3-3.1.0/contrib/dhcp.schema 2008-02-20 13:21:26.000000000 +0100 +@@ -0,0 +1,462 @@ ++attributetype ( 2.16.840.1.113719.1.203.4.1 ++ NAME 'dhcpPrimaryDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The DN of the dhcpServer which is the primary server for the configuration.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.2 ++ NAME 'dhcpSecondaryDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The DN of dhcpServer(s) which provide backup service for the configuration.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.3 ++ NAME 'dhcpStatements' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'Flexible storage for specific data depending on what object this exists in. Like conditional statements, server parameters, etc. This allows the standard to evolve without needing to adjust the schema.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.4 ++ NAME 'dhcpRange' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'The starting & ending IP Addresses in the range (inclusive), separated by a hyphen; if the range only contains one address, then just the address can be specified with no hyphen. Each range is defined as a separate value.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.5 ++ NAME 'dhcpPermitList' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'This attribute contains the permit lists associated with a pool. Each permit list is defined as a separate value.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.6 ++ NAME 'dhcpNetMask' ++ EQUALITY integerMatch ++ DESC 'The subnet mask length for the subnet. The mask can be easily computed from this length.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.7 ++ NAME 'dhcpOption' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'Encoded option values to be sent to clients. Each value represents a single option and contains (OptionTag, Length, OptionValue) encoded in the format used by DHCP.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.8 ++ NAME 'dhcpClassData' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'Encoded text string or list of bytes expressed in hexadecimal, separated by colons. Clients match subclasses based on matching the class data with the results of match or spawn with statements in the class name declarations.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.9 ++ NAME 'dhcpOptionsDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The distinguished name(s) of the dhcpOption objects containing the configuration options provided by the server.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.10 ++ NAME 'dhcpHostDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'the distinguished name(s) of the dhcpHost objects.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.11 ++ NAME 'dhcpPoolDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The distinguished name(s) of pools.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.12 ++ NAME 'dhcpGroupDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The distinguished name(s) of the groups.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.13 ++ NAME 'dhcpSubnetDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The distinguished name(s) of the subnets.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.14 ++ NAME 'dhcpLeaseDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The distinguished name of a client address.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.15 ++ NAME 'dhcpLeasesDN' ++ DESC 'The distinguished name(s) client addresses.' ++ EQUALITY distinguishedNameMatch ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.16 ++ NAME 'dhcpClassesDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The distinguished name(s) of a class(es) in a subclass.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.17 ++ NAME 'dhcpSubclassesDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The distinguished name(s) of subclass(es).' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.18 ++ NAME 'dhcpSharedNetworkDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The distinguished name(s) of sharedNetworks.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.19 ++ NAME 'dhcpServiceDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The DN of dhcpService object(s)which contain the configuration information. Each dhcpServer object has this attribute identifying the DHCP configuration(s) that the server is associated with.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.20 ++ NAME 'dhcpVersion' ++ DESC 'The version attribute of this object.' ++ EQUALITY caseIgnoreIA5Match ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.21 ++ NAME 'dhcpImplementation' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'Description of the DHCP Server implementation e.g. DHCP Servers vendor.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.22 ++ NAME 'dhcpAddressState' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'This stores information about the current binding-status of an address. For dynamic addresses managed by DHCP, the values should be restricted to the following: "FREE", "ACTIVE", "EXPIRED", "RELEASED", "RESET", "ABANDONED", "BACKUP". For other addresses, it SHOULD be one of the following: "UNKNOWN", "RESERVED" (an address that is managed by DHCP that is reserved for a specific client), "RESERVED-ACTIVE" (same as reserved, but address is currently in use), "ASSIGNED" (assigned manually or by some other mechanism), "UNASSIGNED", "NOTASSIGNABLE".' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.23 ++ NAME 'dhcpExpirationTime' ++ EQUALITY generalizedTimeMatch ++ DESC 'This is the time the current lease for an address expires.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.24 ++ NAME 'dhcpStartTimeOfState' ++ EQUALITY generalizedTimeMatch ++ DESC 'This is the time of the last state change for a leased address.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.25 ++ NAME 'dhcpLastTransactionTime' ++ EQUALITY generalizedTimeMatch ++ DESC 'This is the last time a valid DHCP packet was received from the client.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.26 ++ NAME 'dhcpBootpFlag' ++ EQUALITY booleanMatch ++ DESC 'This indicates whether the address was assigned via BOOTP.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.27 ++ NAME 'dhcpDomainName' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'This is the name of the domain sent to the client by the server. It is essentially the same as the value for DHCP option 15 sent to the client, and represents only the domain - not the full FQDN. To obtain the full FQDN assigned to the client you must prepend the "dhcpAssignedHostName" to this value with a ".".' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.28 ++ NAME 'dhcpDnsStatus' ++ EQUALITY integerMatch ++ DESC 'This indicates the status of updating DNS resource records on behalf of the client by the DHCP server for this address. The value is a 16-bit bitmask.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.29 ++ NAME 'dhcpRequestedHostName' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'This is the hostname that was requested by the client.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.30 ++ NAME 'dhcpAssignedHostName' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'This is the actual hostname that was assigned to a client. It may not be the name that was requested by the client. The fully qualified domain name can be determined by appending the value of "dhcpDomainName" (with a dot separator) to this name.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.31 ++ NAME 'dhcpReservedForClient' ++ EQUALITY distinguishedNameMatch ++ DESC 'The distinguished name of a "dhcpClient" that an address is reserved for. This may not be the same as the "dhcpAssignedToClient" attribute if the address is being reassigned but the current lease has not yet expired.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.32 ++ NAME 'dhcpAssignedToClient' ++ EQUALITY distinguishedNameMatch ++ DESC 'This is the distinguished name of a "dhcpClient" that an address is currently assigned to. This attribute is only present in the class when the address is leased.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.33 ++ NAME 'dhcpRelayAgentInfo' ++ EQUALITY octetStringMatch ++ DESC 'If the client request was received via a relay agent, this contains information about the relay agent that was available from the DHCP request. This is a hex-encoded option value.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.34 ++ NAME 'dhcpHWAddress' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'The clients hardware address that requested this IP address.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.35 ++ NAME 'dhcpHashBucketAssignment' ++ EQUALITY octetStringMatch ++ DESC 'HashBucketAssignment bit map for the DHCP Server, as defined in DHC Load Balancing Algorithm [RFC 3074].' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.36 ++ NAME 'dhcpDelayedServiceParameter' ++ EQUALITY integerMatch ++ DESC 'Delay in seconds corresponding to Delayed Service Parameter configuration, as defined in DHC Load Balancing Algorithm [RFC 3074]. ' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.37 ++ NAME 'dhcpMaxClientLeadTime' ++ EQUALITY integerMatch ++ DESC 'Maximum Client Lead Time configuration in seconds, as defined in DHCP Failover Protocol [FAILOVR]' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.38 ++ NAME 'dhcpFailOverEndpointState' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'Server (Failover Endpoint) state, as defined in DHCP Failover Protocol [FAILOVR]' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.39 ++ NAME 'dhcpErrorLog' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'Generic error log attribute that allows logging error conditions within a dhcpService or a dhcpSubnet, like no IP addresses available for lease.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.40 ++ NAME 'dhcpLocatorDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The DN of dhcpLocator object which contain the DNs of all DHCP configuration objects. There will be a single dhcpLocator object in the tree with links to all the DHCP objects in the tree' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.41 ++ NAME 'dhcpKeyAlgorithm' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'Algorithm to generate TSIG Key' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.42 ++ NAME 'dhcpKeySecret' ++ EQUALITY octetStringMatch ++ DESC 'Secret to generate TSIG Key' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.43 ++ NAME 'dhcpDnsZoneServer' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'Master server of the DNS Zone' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.44 ++ NAME 'dhcpKeyDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The DNs of TSIG Key to use in secure dynamic updates. In case of locator object, this will be list of TSIG keys. In case of DHCP Service, Shared Network, Subnet and DNS Zone, it will be a single key.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.45 ++ NAME 'dhcpZoneDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The DNs of DNS Zone. In case of locator object, this will be list of DNS Zones in the tree. In case of DHCP Service, Shared Network and Subnet, it will be a single DNS Zone.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.46 ++ NAME 'dhcpFailOverPrimaryServer' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'IP address or DNS name of the server playing primary role in DHC Load Balancing and Fail over.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.47 ++ NAME 'dhcpFailOverSecondaryServer' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'IP address or DNS name of the server playing secondary role in DHC Load Balancing and Fail over.' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.48 ++ NAME 'dhcpFailOverPrimaryPort' ++ EQUALITY integerMatch ++ DESC 'Port on which primary server listens for connections from its fail over peer (secondary server)' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.49 ++ NAME 'dhcpFailOverSecondaryPort' ++ EQUALITY integerMatch ++ DESC 'Port on which secondary server listens for connections from its fail over peer (primary server)' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.50 ++ NAME 'dhcpFailOverResponseDelay' ++ EQUALITY integerMatch ++ DESC 'Maximum response time in seconds, before Server assumes that connection to fail over peer has failed' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.51 ++ NAME 'dhcpFailOverUnackedUpdates' ++ EQUALITY integerMatch ++ DESC 'Number of BNDUPD messages that server can send before it receives BNDACK from its fail over peer' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.52 ++ NAME 'dhcpFailOverSplit' ++ EQUALITY integerMatch ++ DESC 'Split between the primary and secondary servers for fail over purpose' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.53 ++ NAME 'dhcpFailOverLoadBalanceTime' ++ EQUALITY integerMatch ++ DESC 'Cutoff time in seconds, after which load balance is disabled' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.54 ++ NAME 'dhcpFailOverPeerDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'The DNs of Fail over peers. In case of locator object, this will be list of fail over peers in the tree. In case of Subnet and pool, it will be a single Fail Over Peer' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++#List of all servers in the tree ++attributetype ( 2.16.840.1.113719.1.203.4.55 ++ NAME 'dhcpServerDN' ++ EQUALITY distinguishedNameMatch ++ DESC 'List of all DHCP Servers in the tree. Used by dhcpLocatorObject' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++attributetype ( 2.16.840.1.113719.1.203.4.56 ++ NAME 'dhcpComments' ++ EQUALITY caseIgnoreIA5Match ++ DESC 'Generic attribute that allows coments within any DHCP object' ++ SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++# Classes ++ ++objectclass ( 2.16.840.1.113719.1.203.6.1 ++ NAME 'dhcpService' ++ DESC 'Service object that represents the actual DHCP Service configuration. This is a container object.' ++ SUP top ++ MUST (cn) ++ MAY ( dhcpPrimaryDN $ dhcpSecondaryDN $ dhcpServerDN $ dhcpSharedNetworkDN $ dhcpSubnetDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ dhcpOptionsDN $ dhcpZoneDN $ dhcpKeyDN $ dhcpFailOverPeerDN $ dhcpStatements $dhcpComments $ dhcpOption) ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.2 ++ NAME 'dhcpSharedNetwork' ++ DESC 'This stores configuration information for a shared network.' ++ SUP top ++ MUST cn ++ MAY ( dhcpSubnetDN $ dhcpPoolDN $ dhcpOptionsDN $ dhcpZoneDN $ dhcpStatements $dhcpComments $ dhcpOption) X-NDS_CONTAINMENT ('dhcpService' ) ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.3 ++ NAME 'dhcpSubnet' ++ DESC 'This class defines a subnet. This is a container object.' ++ SUP top ++ MUST ( cn $ dhcpNetMask ) ++ MAY ( dhcpRange $ dhcpPoolDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ dhcpLeasesDN $ dhcpOptionsDN $ dhcpZoneDN $ dhcpKeyDN $ dhcpFailOverPeerDN $ dhcpStatements $ dhcpComments $ dhcpOption ) X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork') ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.4 ++ NAME 'dhcpPool' ++ DESC 'This stores configuration information about a pool.' ++ SUP top ++ MUST ( cn $ dhcpRange ) ++ MAY ( dhcpClassesDN $ dhcpPermitList $ dhcpLeasesDN $ dhcpOptionsDN $ dhcpZoneDN $dhcpKeyDN $ dhcpStatements $ dhcpComments $ dhcpOption ) ++ X-NDS_CONTAINMENT ('dhcpSubnet' 'dhcpSharedNetwork') ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.5 ++ NAME 'dhcpGroup' ++ DESC 'Group object that lists host DNs and parameters. This is a container object.' ++ SUP top ++ MUST cn ++ MAY ( dhcpHostDN $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption ) ++ X-NDS_CONTAINMENT ('dhcpSubnet' 'dhcpService' ) ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.6 ++ NAME 'dhcpHost' ++ DESC 'This represents information about a particular client' ++ SUP top ++ MUST cn ++ MAY (dhcpLeaseDN $ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption) ++ X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' 'dhcpGroup') ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.7 ++ NAME 'dhcpClass' ++ DESC 'Represents information about a collection of related clients.' ++ SUP top ++ MUST cn ++ MAY (dhcpSubClassesDN $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption) ++ X-NDS_CONTAINMENT ('dhcpService' 'dhcpSubnet' ) ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.8 ++ NAME 'dhcpSubClass' ++ DESC 'Represents information about a collection of related classes.' ++ SUP top ++ MUST cn ++ MAY (dhcpClassData $ dhcpOptionsDN $ dhcpStatements $ dhcpComments $ dhcpOption) X-NDS_CONTAINMENT 'dhcpClass' ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.9 ++ NAME 'dhcpOptions' ++ DESC 'Represents information about a collection of options defined.' ++ SUP top AUXILIARY ++ MUST cn ++ MAY ( dhcpOption $ dhcpComments ) ++ X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet' 'dhcpPool' 'dhcpGroup' 'dhcpHost' 'dhcpClass' ) ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.10 ++ NAME 'dhcpLeases' ++ DESC 'This class represents an IP Address, which may or may not have been leased.' ++ SUP top ++ MUST ( cn $ dhcpAddressState ) ++ MAY ( dhcpExpirationTime $ dhcpStartTimeOfState $ dhcpLastTransactionTime $ dhcpBootpFlag $ dhcpDomainName $ dhcpDnsStatus $ dhcpRequestedHostName $ dhcpAssignedHostName $ dhcpReservedForClient $ dhcpAssignedToClient $ dhcpRelayAgentInfo $ dhcpHWAddress ) ++ X-NDS_CONTAINMENT ( 'dhcpService' 'dhcpSubnet' 'dhcpPool') ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.11 ++ NAME 'dhcpLog' ++ DESC 'This is the object that holds past information about the IP address. The cn is the time/date stamp when the address was assigned or released, the address state at the time, if the address was assigned or released.' ++ SUP top ++ MUST ( cn ) ++ MAY ( dhcpAddressState $ dhcpExpirationTime $ dhcpStartTimeOfState $ dhcpLastTransactionTime $ dhcpBootpFlag $ dhcpDomainName $ dhcpDnsStatus $ dhcpRequestedHostName $ dhcpAssignedHostName $ dhcpReservedForClient $ dhcpAssignedToClient $ dhcpRelayAgentInfo $ dhcpHWAddress $ dhcpErrorLog) ++ X-NDS_CONTAINMENT ('dhcpLeases' 'dhcpPool' 'dhcpSubnet' 'dhcpSharedNetwork' 'dhcpService' ) ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.12 ++ NAME 'dhcpServer' ++ DESC 'DHCP Server Object' ++ SUP top ++ MUST ( cn ) ++ MAY (dhcpServiceDN $ dhcpLocatorDN $ dhcpVersion $ dhcpImplementation $ dhcpHashBucketAssignment $ dhcpDelayedServiceParameter $ dhcpMaxClientLeadTime $ dhcpFailOverEndpointState $ dhcpStatements $ dhcpComments $ dhcpOption) ++ X-NDS_CONTAINMENT ('organization' 'organizationalunit' 'domain') ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.13 ++ NAME 'dhcpTSigKey' ++ DESC 'TSIG key for secure dynamic updates' ++ SUP top ++ MUST (cn $ dhcpKeyAlgorithm $ dhcpKeySecret ) ++ MAY ( dhcpComments ) ++ X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet') ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.14 ++ NAME 'dhcpDnsZone' ++ DESC 'DNS Zone for updating leases' ++ SUP top ++ MUST (cn $ dhcpDnsZoneServer ) ++ MAY (dhcpKeyDN $ dhcpComments) ++ X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet') ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.15 ++ NAME 'dhcpFailOverPeer' ++ DESC 'This class defines the Fail over peer' ++ SUP top ++ MUST ( cn $ dhcpFailOverPrimaryServer $ dhcpFailOverSecondaryServer $ dhcpFailoverPrimaryPort $ dhcpFailOverSecondaryPort) MAY (dhcpFailOverResponseDelay $ dhcpFailOverUnackedUpdates $ dhcpMaxClientLeadTime $ dhcpFailOverSplit $ dhcpHashBucketAssignment $ dhcpFailOverLoadBalanceTime $ dhcpComments ) ++ X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' 'dhcpSubnet') ) ++ ++objectclass ( 2.16.840.1.113719.1.203.6.16 ++ NAME 'dhcpLocator' ++ DESC 'Locator object for DHCP configuration in the tree. There will be a single dhcpLocator object in the tree with links to all the DHCP objects in the tree' ++ SUP top ++ MUST ( cn ) ++ MAY ( dhcpServiceDN $dhcpServerDN $ dhcpSharedNetworkDN $ dhcpSubnetDN $ dhcpPoolDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ dhcpKeyDN $ dhcpZoneDN $ dhcpFailOverPeerDN $ dhcpOption $ dhcpComments) ++ X-NDS_CONTAINMENT ('organization' 'organizationalunit' 'domain') ) ++ ++ +diff -urNad dhcp3-3.1.0.orig/doc/draft-ietf-dhc-ldap-schema-01.txt dhcp3-3.1.0/doc/draft-ietf-dhc-ldap-schema-01.txt +--- dhcp3-3.1.0.orig/doc/draft-ietf-dhc-ldap-schema-01.txt 1970-01-01 01:00:00.000000000 +0100 ++++ dhcp3-3.1.0/doc/draft-ietf-dhc-ldap-schema-01.txt 2008-02-20 13:21:26.000000000 +0100 +@@ -0,0 +1,1089 @@ ++ ++ ++ ++ ++ ++Network Working Group M. Meredith, ++Internet Draft V. Nanjundaswamy, ++Document: M. Hinckley ++Category: Proposed Standard Novell Inc. ++Expires: 15th December 2001 16th June 2001 ++ ++ ++ LDAP Schema for DHCP ++ ++Status of this Memo ++ ++This document is an Internet-Draft and is in full conformance with all ++provisions of Section 10 of RFC2026 [ ]. ++ ++Internet-Drafts are working documents of the Internet Engineering Task ++Force (IETF), its areas, and its working groups. Note that other groups ++may also distribute working documents as Internet-Drafts. Internet- ++Drafts are draft documents valid for a maximum of six months and may be ++updated, replaced, or obsolete by other documents at any time. It is ++inappropriate to use Internet-Drafts as reference material or to cite ++them other than as "work in progress." The list of current Internet- ++Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The ++list of Internet-Draft Shadow Directories can be accessed at ++http://www.ietf.org/shadow.html. ++ ++1. Abstract ++ ++This document defines a schema for representing DHCP configuration in an ++LDAP directory. It can be used to represent the DHCP Service ++configuration(s) for an entire enterprise network, a subset of the ++network, or even a single server. Representing DHCP configuration in an ++LDAP directory enables centralized management of DHCP services offered ++by one or more DHCP Servers within the enterprise. ++ ++2. Conventions used in this document ++ ++The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", ++"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this ++document are to be interpreted as described in RFC-2119 [ ]. ++ ++In places where different sets of terminology are commonly used to ++represent similar DHCP concepts, this schema uses the terminology of the ++Internet Software Consortium's DHCP server reference implementation. ++For more information see www.isc.org. ++ ++3. Design Considerations ++ ++The DHCP LDAP schema is designed to be a simple multi-server schema. The ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 1] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++intent of this schema is to provide a basic framework for representing ++the most common elements used in the configuration of DHCP Server. This ++should allow other network services to obtain and use basic DHCP ++configuration information in a server-independent but knowledgeable way. ++ ++It is expected that some implementations may need to extend the schema ++objects, in order to implement all of their features or needs. It is ++recommended that you use the schema defined in this draft to represent ++DHCP configuration information in an LDAP directory. Conforming to a ++standard schema improves interoperability between DHCP implementations ++from different vendors. ++ ++Some implementations may choose not to support all of the objects ++defined here. ++ ++Two decisions are explicitly left up to each implementation: ++ ++First, implementations may choose not to store the lease information in ++the directory, so those objects would not be used. ++ ++Second, implementations may choose not to implement the auditing ++information. ++ ++It is up to the implementation to determine if the data in the directory ++is considered "authoritative", or if it is simply a copy of data from an ++authoritative source. Validity of the information if used as a copy is ++to be ensured by the implementation. ++ ++Primarily two types of applications will use the information in this ++schema: 1. DHCP servers (for loading their configuration) 2. Management ++Interfaces (for defining/editing configurations). ++ ++The schema should be efficient for the needs of both types of ++applications. The schema is designed to allow objects managed by DHCP ++(such as computers, subnets, etc) to be present anywhere in a directory ++hierarchy (to allow those objects to be placed in the directory for ++managing administrative control and access to the objects). ++ ++The schema uses a few naming conventions - all object classes and ++attributes are prefixed with "dhcp" to decrease the chance that object ++classes and attributes will have the same name. The schema also uses ++standard naming attributes ("cn", "ou", etc) for all objects. ++ ++4. Common DHCP Configuration Attributes ++ ++Although DHCP manages several different types of objects, the ++configuration of those objects is often similar. Consequently, most of ++these objects have a common set of attributes, which are defined below. ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 2] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++4.1. Attributes Definitions ++ ++The schema definitions listed below are for readability. The LDIF ++layout for this schema will follow in section 8. ++ ++Name: dhcpPrimaryDN Description: The Distinguished Name of the ++dhcpServer object, which is the primary server for the configuration. ++Syntax: DN Flags: SINGLE-VALUE ++ ++Named: dhcpSecondaryDN Description: The Distinguished Name(s) of the ++dhcpServer object(s), which are secondary servers for the configuration. ++Syntax: DN ++ ++Name: dhcpStatements Description: Flexible storage for representing any ++specific data depending on the object to which it is attached. Examples ++include conditional statements, Server parameters, etc. This also ++serves as a 'catch-all' attribute that allows the standard to evolve ++without needing to update the schema. Syntax: IA5String ++ ++Name: dhcpRange Description: The starting and ending IP Addresses in the ++range (inclusive), separated by a hyphen; if the range only contains one ++address, then just the address can be specified with no hyphen. Each ++range is defined as a separate value. Syntax: IA5String ++ ++Name: dhcpPermitList Description: This attribute contains the permit ++lists associated with a pool. Each permit list is defined as a separate ++value. Syntax: IA5String ++ ++Name: dhcpNetMask Description: The subnet mask length for the subnet. ++The mask can be easily computed from this length. Syntax: Integer ++Flags: SINGLE-VALUE ++ ++Name: dhcpOption Description: Encoded option values to be sent to ++clients. Each value represents a single option and contains (OptionTag, ++Length, OptionData) encoded in the format used by DHCP. For more ++information see [DHCPOPT]. Syntax: OctetString ++ ++Name: dhcpClassData Description: Encoded text string or list of bytes ++expressed in hexadecimal, separated by colons. Clients match subclasses ++based on matching the class data with the results of a 'match' or 'spawn ++with' statement in the class name declarations. Syntax: IA5String ++Flags: SINGLE-VALUE ++ ++Name: dhcpSubclassesDN Description: List of subclasses, these are the ++actual DN of each subclass object. Syntax: DN ++ ++Name: dhcpClassesDN Description: List of classes, these are the actual ++DN of each class object. Syntax: DN ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 3] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++Name: dhcpSubnetDN Description: List of subnets, these are the actual DN ++of each subnet object. Syntax: DN ++ ++Name: dhcpPoolDN Description: List of pools, these are the actual DN of ++each Pool object. Syntax: DN ++ ++Name: dhcpOptionsDN Description: List of options, these are the actual ++DN of each Options object. Syntax: DN ++ ++Name: dhcpHostDN Description: List of hosts, these are the actual DN of ++each host object. Syntax: DN ++ ++Name: dhcpSharedNetworkDN Description: List of shared networks, these ++are the actual DN of each shared network object. Syntax: DN ++ ++Name: dhcpGroupDN Description: List of groups, these are the actual DN ++of each Group object. Syntax: DN ++ ++Name: dhcpLeaseDN Description: Single Lease DN. A dhcpHost configuration ++uses this attribute to identify a static IP address assignment. Syntax: ++DN Flags: SINGLE-VALUE ++ ++Name: dhcpLeasesDN Description: List of leases, these are the actual DN ++of each lease object. Syntax: DN ++ ++Name: dhcpServiceDN Description: The DN of dhcpService object(s)which ++contain the configuration information. Each dhcpServer object has this ++attribute identifying the DHCP configuration(s) that the server is ++associated with. Syntax: DN ++ ++Name: dhcpHWAddress Description: The hardware address of the client ++associated with a lease Syntax: OctetString Flags: SINGLE-VALUE ++ ++Name: dhcpVersion Description: This is the version identified for the ++object that this attribute is part of. In case of the dhcpServer object, ++this represents the DHCP software version. Syntax: IA5String Flags: ++SINGLE-VALUE ++ ++Name: dhcpImplementation Description: DHCP Server implementation ++description e.g. DHCP Vendor information. Syntax: IA5String Flags: ++SINGLE-VALUE ++ ++Name: dhcpHashBucketAssignment Description: HashBucketAssignment bit map ++for the DHCP Server, as defined in DHC Load Balancing Algorithm [RFC ++3074]. Syntax: Octet String Flags: SINGLE-VALUE ++ ++Name: dhcpDelayedServiceParameter Description: Delay in seconds ++corresponding to Delayed Service Parameter configuration, as defined in ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 4] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++DHC Load Balancing Algorithm [RFC 3074]. Syntax: Integer Flags: SINGLE- ++VALUE ++ ++Name: dhcpMaxClientLeadTime Description: Maximum Client Lead Time ++configuration in seconds, as defined in DHCP Failover Protocol [FAILOVR] ++Syntax: Integer Flags: SINGLE-VALUE ++ ++Name: dhcpFailOverEndpointState Description: Server (Failover Endpoint) ++state, as defined in DHCP Failover Protocol [FAILOVR] Syntax: IA5String ++Flags: SINGLE-VALUE ++ ++5. Configurations and Services ++ ++The schema definitions below are for readability the LDIF layout for ++this schema will follow in section 8. ++ ++The DHC working group is currently considering several proposals for ++fail-over and redundancy of DHCP servers. These may require sharing of ++configuration information between servers. This schema provides a ++generalized mechanism for supporting any of these proposals, by ++separating the definition of a server from the definition of ++configuration service provided by the server. ++ ++Separating the DHCP Server (dhcpServer) and the DHCP Configuration ++(dhcpService) representations allows a configuration service to be ++provided by one or more servers. Similarly, a server may provide one or ++more configurations. The schema allows a server to be configured as ++either a primary or secondary provider of a DHCP configuration. ++ ++Configurations are also defined so that one configuration can include ++some of the objects that are defined in another configuration. This ++allows for sharing and/or a hierarchy of related configuration items. ++ ++Name: dhcpService Description: Service object that represents the ++actual DHCP Service configuration. This will be a container with the ++following attributes. Must: cn, dhcpPrimaryDN May: dhcpSecondaryDN, ++dhcpSharedNetworkDN, dhcpSubnetDN, dhcpGroupDN, dhcpHostDN, ++dhcpClassesDN, dhcpOptionsDN, dhcpStatements ++ ++The following objects could exist inside the dhcpService container: ++dhcpSharedNetwork, dhcpSubnet, dhcpGroup, dhcpHost, dhcpClass, ++dhcpOptions, dhcpLog ++ ++Name: dhcpServer Description: Server object that the DHCP server will ++login as. The configuration information is in the dhcpService container ++that the dhcpServiceDN points to. Must: cn, dhcpServiceDN May: ++dhcpVersion, dhcpImplementation, dhcpHashBucketAssignment, ++dhcpDelayedServiceParameter, dhcpMaxClientLeadTime, ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 5] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++dhcpFailOverEndpointState, dhcpStatements ++ ++5.1. DHCP Declaration related classes: ++ ++Name: dhcpSharedNetwork Description: Shared Network class will list what ++pools and subnets are in this network. ++ ++This will be a container with the following attributes. Must: cn May: ++dhcpSubnetDN, dhcpPoolDN, dhcpOptionsDN, dhcpStatements ++ ++The following objects can exist within a dhcpSharedNetwork container: ++dhcpSubnet, dhcpPool, dhcpOptions, dhcpLog ++ ++Name: dhcpSubnet Description: Subnet object will include configuration ++information associated with a subnet, including a range and a net mask. ++ ++This will be a container with the following attributes. Must: cn ++(Subnet address), dhcpNetMask May: dhcpRange, dhcpPoolDN, dhcpGroupDN, ++dhcpHostDN, dhcpClassesDN, dhcpLeasesDN, dhcpOptionsDN, dhcpStatements ++ ++The following objects can exist within a dhcpSubnet container: dhcpPool, ++dhcpGroup, dhcpHost, dhcpClass, dhcpOptions, dhcpLease, dhcpLog ++ ++Name: dhcpGroup Description: Group object will have configuration ++information associated with a group. ++ ++This will be a container with the following attributes. Must: cn May: ++dhcpHostDN, dhcpOptionsDN, dhcpStatements ++ ++The following objects can exist within a dhcpGroup container: dhcpHost, ++dhcpOptions ++ ++Name: dhcpHost Description: The host object includes DHCP host ++declarations to assign a static IP address or declare the client as ++known or specify statements for a specific client. Must: cn May: ++dhcpLeaseDN, dhcpHWAddress, dhcpOptionsDN, dhcpStatements ++ ++The following objects can exist within a dhcpHost container: dhcpLease, ++dhcpOptions ++ ++Name: dhcpOptions Description: The options class is for option space ++declarations, it contains a list of options. Must: cn, dhcpOption ++ ++Name: dhcpClass Description: This is a class to group clients together ++based on matching rules. ++ ++This will be a container with the following attributes. Must: cn May: ++dhcpSubClassesDN, dhcpOptionsDN, dhcpStatements ++ ++The following object can exist within a dhcpClass container: ++dhcpSubclass, dhcpOptions ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 6] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++Name: dhcpSubClass Description: This includes configuration information ++for a subclass associated with a class. The dhcpSubClass object will ++always be contained within the corresponding class container object. ++Must: cn May: dhcpClassData, dhcpOptionsDN, dhcpStatements ++ ++Name: dhcpPool Description: This contains configuration for a pool that ++will have the range of addresses, permit lists and point to classes and ++leases that are members of this pool. ++ ++This will be a container that could be contained by dhcpSubnet or a ++dhcpSharedNetwork. Must: cn, dhcpRange May: dhcpClassesDN, ++dhcpPermitList, dhcpLeasesDN, dhcpOptionsDN, dhcpStatements ++ ++The following objects can exist within a dhcpPool container: dhcpClass, ++dhcpOptions, dhcpLease, dhcpLog ++ ++6. Tracking Address Assignments ++ ++The behavior of a DHCP server is influenced by two factors - it's ++configuration and the current state of the addresses that have been ++assigned to clients. This schema defines a set of objects for ++representing the DHCP configuration associated with a server. The ++following object classes provide the ability to record how addresses are ++used including maintaining history (audit log) on individual leases. ++Recording lease information in a directory could result in a significant ++performance impact and is therefore optional. Implementations supporting ++logging of leases need to consider the performance impact. ++ ++6.1. dhcpLeases Attribute Definitions ++ ++The schema definitions below are for readability the LDIF layout for ++this schema will follow in section 8. ++ ++Name: dhcpAddressState Description: This stores information about the ++current binding-status of an address. For dynamic addresses managed by ++DHCP, the values should be restricted to the states defined in the DHCP ++Failover Protocol draft [FAILOVR]: 'FREE', 'ACTIVE', 'EXPIRED', ++'RELEASED', 'RESET', 'ABANDONED', 'BACKUP'. For more information on ++these states see [FAILOVR]. For other addresses, it SHOULD be one of ++the following: 'UNKNOWN', 'RESERVED' (an address that is managed by DHCP ++that is reserved for a specific client), 'RESERVED-ACTIVE' (same as ++reserved, but address is currently in use), 'ASSIGNED' (assigned ++manually or by some other mechanism), 'UNASSIGNED', 'NOTASSIGNABLE'. ++Syntax: IA5String Flags: SINGLE-VALUE ++ ++Name: dhcpExpirationTime Description: This is the time the current lease ++for an address expires. Syntax: DateTime Flags: SINGLE-VALUE ++ ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 7] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++Name: dhcpStartTimeOfState Description: This is the time of the last ++state change for a leased address. Syntax: DateTime Flags: SINGLE-VALUE ++ ++Name: dhcpLastTransactionTime Description: This is the last time a valid ++DHCP packet was received from the client. Syntax: DateTime Flags: ++SINGLE-VALUE ++ ++Name: dhcpBootpFlag Description: This indicates whether the address was ++assigned via BOOTP Syntax: Boolean Flags: SINGLE-VALUE ++ ++Name: dhcpDomainName Description: This is the name of the domain sent to ++the client by the server. It is essentially the same as the value for ++DHCP option 15 sent to the client, and represents only the domain - not ++the full FQDN. To obtain the full FQDN assigned to the client you must ++prepend the "dhcpAssignedHostName" to this value with a ".". Syntax: ++IA5String Flags: SINGLE-VALUE ++ ++Name: dhcpDnsStatus Description: This indicates the status of updating ++DNS resource records on behalf of the client by the DHCP server for this ++address. The value is a 16-bit bitmask that has the same values as ++specified by the Failover-DDNS option (see [FAILOVR]). Syntax: Integer ++Flags: SINGLE-VALUE ++ ++Name: dhcpRequestedHostName Description: This is the hostname that was ++requested by the client. Syntax: IA5String Flags: SINGLE-VALUE ++ ++Name: dhcpAssignedHostName Description: This is the actual hostname that ++was assigned to a client. It may not be the name that was requested by ++the client. The fully qualified domain name can be determined by ++appending the value of "dhcpDomainName" (with a dot separator) to this ++name. Syntax: IA5String Flags: SINGLE-VALUE ++ ++Name: dhcpReservedForClient Description: This is the distinguished name ++of the "dhcpHost" that an address is reserved for. This may not be the ++same as the "dhcpAssignedToClient" attribute if the address is being ++reassigned but the current lease has not yet expired. Syntax: DN Flags: ++SINGLE-VALUE ++ ++Name: dhcpAssignedToClient Description: This is the distinguished name ++of a "dhcpHost" that an address is currently assigned to. This ++attribute is only present in the class when the address is leased. ++Syntax: DN Flags: SINGLE-VALUE ++ ++Name: dhcpRelayAgentInfo Description: If the client request was received ++via a relay agent, this contains information about the relay agent that ++was available from the DHCP request. This is a hex-encoded option ++value. Syntax: OctetString Flags: SINGLE-VALUE ++ ++Name: dhcpErrorLog Description: Generic error log attribute that allows ++logging error conditions within a dhcpService or a dhcpSubnet, like no IP ++addresses available for lease. Syntax: IA5String ++ ++M. Meredith et al. Expires December 2001 [Page 8] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++6.2. dhcpLeases Object Class ++ ++This class represents an IP address. It may or may not be leaseable, ++and the object may exist even though a lease is not currently active for ++the associated IP address. ++ ++It is recommended that all Lease objects for a single DHCP Service be ++centrally located within a single container. This ensures that the lease ++objects and the corresponding logs do not have to be relocated, when ++address ranges allocated to individual DHCP subnets and/or pools change. ++ ++The schema definitions below are for readability the LDIF layout for ++this schema will follow in section 8. ++ ++Name: dhcpLeases Description: This is the object that holds state ++information about an IP address. The cn (which is the IP address), and ++the current address-state are mandatory attributes. If the address is ++assigned then, some of the optional attributes will have valid data. ++Must: cn, dhcpAddressState May: dhcpExpirationTime, ++dhcpStartTimeOfState, dhcpLastTransactionTime, dhcpBootpFlag, ++dhcpDomainName, dhcpDnsStatus, dhcpRequestedHostName, ++dhcpAssignedHostName, dhcpReservedForClient, dhcpAssignedToClient, ++dhcpRelayAgentInfo, dhcpHWAddress ++ ++6.3 Audit Log Information ++ ++A dhcpLog object is created whenever a lease is assigned or released. ++This object is intended to be created under the corresponding dhcpLeases ++container, or dhcpPool, dhcpSubnet, dhcpSharedNetwork or dhcpService ++containers. ++ ++The log information under the dhcpLeases container would be for ++addresses matching that lease information. The log information in the ++other containers could be used for errors, i.e. when a pool or subnet is ++out our addresses or if a server is not able to assign any more ++addresses for a particular dhcpService. ++ ++Name: dhcpLog Description: This is the object that holds past ++information about an IP address. The cn is the time/date stamp when the ++address was assigned or released, the address state at the time, if the ++address was assigned or released. Must: cn May: dhcpAddressState, ++dhcpExpirationTime, dhcpStartTimeOfState, dhcpLastTransactionTime, ++dhcpBootpFlag, dhcpDomainName, dhcpDnsStatus, dhcpRequestedHostName, ++dhcpAssignedHostName, dhcpReservedForClient, dhcpAssignedToClient, ++dhcpRelayAgentInfo, dhcpHWAddress, dhcpErrorLog ++ ++ ++ ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 9] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++7. Determining settings ++ ++The dhcpStatements attribute is the key to DHC enhancements that may ++come along, and the different key words that a particular server ++implementation may use. This attribute can be used to hold conditional ++DHCP Statements and DHCP server parameters. Having a generic settings ++attribute that is just a string, allows this schema to be extensible and ++easy to configure. ++ ++All of the attributes that end with DN are references to the class that ++precedes the DN e.g. the dhcpPrimaryDN and dhcpSecondaryDN attributes ++hold the Distinguished Names of the dhcpServer objects that are ++associated with the dhcpService object. ++ ++8. LDIF format for attributes and classes. ++ ++# Attributes ++ ++( 2.16.840.1.113719.1.203.4.1 NAME 'dhcpPrimaryDN' DESC ++'The DN of the dhcpServer which is the primary server for the ++configuration.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.2 NAME 'dhcpSecondaryDN' DESC 'The DN of ++dhcpServer(s) which provide backup service for the configuration.' ++SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.3 NAME 'dhcpStatements' DESC 'Flexible ++storage for specific data depending on what object this exists in. Like ++conditional statements, server parameters, etc. This allows the standard ++to evolve without needing to adjust the schema.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++( 2.16.840.1.113719.1.203.4.4 NAME 'dhcpRange' DESC 'The starting & ++ending IP Addresses in the range (inclusive), separated by a hyphen; if ++the range only contains one address, then just the address can be ++specified with no hyphen. Each range is defined as a separate value.' ++SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++( 2.16.840.1.113719.1.203.4.5 NAME 'dhcpPermitList' DESC 'This attribute ++contains the permit lists associated with a pool. Each permit list is ++defined as a separate value.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) ++ ++( 2.16.840.1.113719.1.203.4.6 NAME 'dhcpNetMask' DESC 'The subnet mask ++length for the subnet. The mask can be easily computed from this ++length.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.7 NAME 'dhcpOption' DESC 'Encoded option ++values to be sent to clients. Each value represents a single option and ++contains (OptionTag, Length, OptionValue) encoded in the format used by ++DHCP.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ) ++ ++M. Meredith et al. Expires December 2001 [Page 10] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++( 2.16.840.1.113719.1.203.4.8 NAME 'dhcpClassData' DESC 'Encoded text ++string or list of bytes expressed in hexadecimal, separated by colons. ++Clients match subclasses based on matching the class data with the ++results of match or spawn with statements in the class name ++declarations.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.9 NAME 'dhcpOptionsDN' DESC 'The ++distinguished name(s) of the dhcpOption objects containing the ++configuration options provided by the server.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.10 NAME 'dhcpHostDN' DESC 'the distinguished ++name(s) of the dhcpHost objects.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.11 NAME 'dhcpPoolDN' DESC 'The distinguished ++name(s) of pools.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.12 NAME 'dhcpGroupDN' DESC 'The ++distinguished name(s) of the groups.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.13 NAME 'dhcpSubnetDN' DESC 'The ++distinguished name(s) of the subnets.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.14 NAME 'dhcpLeaseDN' DESC 'The ++distinguished name of a client address.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE) ++ ++( 2.16.840.1.113719.1.203.4.15 NAME 'dhcpLeasesDN' DESC 'The ++distinguished name(s) client addresses.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.16 NAME 'dhcpClassesDN' DESC 'The ++distinguished name(s) of a class(es) in a subclass.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.17 NAME 'dhcpSubclassesDN' DESC 'The ++distinguished name(s) of subclass(es).' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.18 NAME 'dhcpSharedNetworkDN' DESC 'The ++distinguished name(s) of sharedNetworks.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.19 NAME 'dhcpServiceDN' DESC 'The DN of ++dhcpService object(s)which contain the configuration information. Each ++dhcpServer object has this attribute identifying the DHCP ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 11] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++configuration(s) that the server is associated with.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.12 ) ++ ++( 2.16.840.1.113719.1.203.4.20 NAME 'dhcpVersion' DESC 'The version ++attribute of this object.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE- ++VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.21 NAME 'dhcpImplementation' DESC ++'Description of the DHCP Server implementation e.g. DHCP Server's ++vendor.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.22 NAME 'dhcpAddressState' DESC 'This stores ++information about the current binding-status of an address. For dynamic ++addresses managed by DHCP, the values should be restricted to the ++following: "FREE", "ACTIVE", "EXPIRED", "RELEASED", "RESET", ++"ABANDONED", "BACKUP". For other addresses, it SHOULD be one of the ++following: "UNKNOWN", "RESERVED" (an address that is managed by DHCP ++that is reserved for a specific client), "RESERVED-ACTIVE" (same as ++reserved, but address is currently in use), "ASSIGNED" (assigned ++manually or by some other mechanism), "UNASSIGNED", "NOTASSIGNABLE".' ++SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.23 NAME 'dhcpExpirationTime' DESC 'This is ++the time the current lease for an address expires.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.24 NAME 'dhcpStartTimeOfState' DESC 'This is ++the time of the last state change for a leased address.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.25 NAME 'dhcpLastTransactionTime' DESC 'This ++is the last time a valid DHCP packet was received from the client.' ++SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.26 NAME 'dhcpBootpFlag' DESC 'This indicates ++whether the address was assigned via BOOTP.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.27 NAME 'dhcpDomainName' DESC 'This is the ++name of the domain sent to the client by the server. It is essentially ++the same as the value for DHCP option 15 sent to the client, and ++represents only the domain - not the full FQDN. To obtain the full FQDN ++assigned to the client you must prepend the "dhcpAssignedHostName" to ++this value with a ".".' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE- ++VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.28 NAME 'dhcpDnsStatus' DESC 'This indicates ++the status of updating DNS resource records on behalf of the client by ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 12] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++the DHCP server for this address. The value is a 16-bit bitmask.' ++SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.29 NAME 'dhcpRequestedHostName' DESC 'This ++is the hostname that was requested by the client.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.30 NAME 'dhcpAssignedHostName' DESC 'This is ++the actual hostname that was assigned to a client. It may not be the ++name that was requested by the client. The fully qualified domain name ++can be determined by appending the value of "dhcpDomainName" (with a dot ++separator) to this name.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE- ++VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.31 NAME 'dhcpReservedForClient' DESC 'The ++distinguished name of a "dhcpClient" that an address is reserved for. ++This may not be the same as the "dhcpAssignedToClient" attribute if the ++address is being reassigned but the current lease has not yet expired.' ++SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.32 NAME 'dhcpAssignedToClient' DESC 'This is ++the distinguished name of a "dhcpClient" that an address is currently ++assigned to. This attribute is only present in the class when the ++address is leased.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.33 NAME 'dhcpRelayAgentInfo' DESC 'If the ++client request was received via a relay agent, this contains information ++about the relay agent that was available from the DHCP request. This is ++a hex-encoded option value.' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 ++SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.34 NAME 'dhcpHWAddress' DESC 'The clients ++hardware address that requested this IP address.' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.35 NAME 'dhcpHashBucketAssignment' DESC ++'HashBucketAssignment bit map for the DHCP Server, as defined in DHC ++Load Balancing Algorithm [RFC 3074].' SYNTAX ++1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.36 NAME 'dhcpDelayedServiceParameter' DESC ++'Delay in seconds corresponding to Delayed Service Parameter ++configuration, as defined in DHC Load Balancing Algorithm [RFC 3074]. ' ++SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.37 NAME 'dhcpMaxClientLeadTime' DESC ++'Maximum Client Lead Time configuration in seconds, as defined in DHCP ++Failover Protocol [FAILOVR]' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 13] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.38 NAME 'dhcpFailOverEndpointState' DESC ++'Server (Failover Endpoint) state, as defined in DHCP Failover Protocol ++[FAILOVR]' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++( 2.16.840.1.113719.1.203.4.39 NAME 'dhcpErrorLog' DESC ++Generic error log attribute that allows logging error conditions within a ++dhcpService or a dhcpSubnet, like no IP addresses available for lease. ++SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) ++ ++#Classes ++ ++( 2.16.840.1.113719.1.203.6.1 NAME 'dhcpService' DESC ' Service object ++that represents the actual DHCP Service configuration. This is a ++container object.' SUP top MUST (cn $ dhcpPrimaryDN) MAY ++(dhcpSecondaryDN $ dhcpSharedNetworkDN $ dhcpSubnetDN $ dhcpGroupDN $ ++dhcpHostDN $ dhcpClassesDN $ dhcpOptionsDN $ dhcpStatements ) ) ++ ++( 2.16.840.1.113719.1.203.6.2 NAME 'dhcpSharedNetwork' DESC 'This stores ++configuration information for a shared network.' SUP top MUST cn MAY ++(dhcpSubnetDN $ dhcpPoolDN $ dhcpOptionsDN $ dhcpStatements) X- ++NDS_CONTAINMENT ('dhcpService' ) ) ++ ++( 2.16.840.1.113719.1.203.6.3 NAME 'dhcpSubnet' DESC 'This class defines ++a subnet. This is a container object.' SUP top MUST ( cn $ dhcpNetMask ) ++MAY (dhcpRange $ dhcpPoolDN $ dhcpGroupDN $ dhcpHostDN $ dhcpClassesDN $ ++dhcpLeasesDN $ dhcpOptionsDN $ dhcpStatements) X-NDS_CONTAINMENT ++('dhcpService' 'dhcpSharedNetwork') ) ++ ++( 2.16.840.1.113719.1.203.6.4 NAME 'dhcpPool' DESC 'This stores ++configuration information about a pool.' SUP top MUST ( cn $ dhcpRange ) ++MAY (dhcpClassesDN $ dhcpPermitList $ dhcpLeasesDN $ dhcpOptionsDN $ ++dhcpStatements) X-NDS_CONTAINMENT ('dhcpSubnet' 'dhcpSharedNetwork') ) ++ ++( 2.16.840.1.113719.1.203.6.5 NAME 'dhcpGroup' DESC 'Group object that ++lists host DNs and parameters. This is a container object.' SUP top MUST ++cn MAY ( dhcpHostDN $ dhcpOptionsDN $ dhcpStatements ) X-NDS_CONTAINMENT ++('dhcpSubnet' 'dhcpService' ) ) ++ ++( 2.16.840.1.113719.1.203.6.6 NAME 'dhcpHost' DESC 'This represents ++information about a particular client' SUP top MUST cn MAY (dhcpLeaseDN ++$ dhcpHWAddress $ dhcpOptionsDN $ dhcpStatements) X-NDS_CONTAINMENT ++('dhcpService' 'dhcpSubnet' 'dhcpGroup') ) ++ ++( 2.16.840.1.113719.1.203.6.7 NAME 'dhcpClass' DESC 'Represents ++information about a collection of related clients.' SUP top MUST cn MAY ++(dhcpSubClassesDN $ dhcpOptionsDN $ dhcpStatements) X-NDS_CONTAINMENT ++('dhcpService' 'dhcpSubnet' ) ) ++ ++( 2.16.840.1.113719.1.203.6.8 NAME 'dhcpSubClass' DESC 'Represents ++information about a collection of related classes.' SUP top MUST cn MAY ++(dhcpClassData $ dhcpOptionsDN $ dhcpStatements) X-NDS_CONTAINMENT ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 14] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++'dhcpClass' ) ++ ++( 2.16.840.1.113719.1.203.6.9 NAME 'dhcpOptions' DESC 'Represents ++information about a collection of options defined.' SUP top MUST cn MAY ++( dhcpOption ) X-NDS_CONTAINMENT ('dhcpService' 'dhcpSharedNetwork' ++'dhcpSubnet' 'dhcpPool' 'dhcpGroup' 'dhcpHost' 'dhcpClass' ) ++ ++( 2.16.840.1.113719.1.203.6.10 NAME 'dhcpLeases' DESC 'This class ++represents an IP Address, which may or may not have been leased.' SUP ++top MUST ( cn $ dhcpAddressState ) MAY ( dhcpExpirationTime $ ++dhcpStartTimeOfState $ dhcpLastTransactionTime $ dhcpBootpFlag $ ++dhcpDomainName $ dhcpDnsStatus $ dhcpRequestedHostName $ ++dhcpAssignedHostName $ dhcpReservedForClient $ dhcpAssignedToClient $ ++dhcpRelayAgentInfo $ dhcpHWAddress ) X-NDS_CONTAINMENT ( 'dhcpService' ++'dhcpSubnet' 'dhcpPool') ) ++ ++( 2.16.840.1.113719.1.203.6.11 NAME 'dhcpLog' DESC 'This is the object ++that holds past information about the IP address. The cn is the ++time/date stamp when the address was assigned or released, the address ++state at the time, if the address was assigned or released.' SUP top ++MUST ( cn ) MAY ( dhcpAddressState $ dhcpExpirationTime $ ++dhcpStartTimeOfState $ dhcpLastTransactionTime $ dhcpBootpFlag $ ++dhcpDomainName $ dhcpDnsStatus $ dhcpRequestedHostName $ ++dhcpAssignedHostName $ dhcpReservedForClient $ dhcpAssignedToClient $ ++dhcpRelayAgentInfo $ dhcpHWAddress $ dhcpErrorLog) X-NDS_CONTAINMENT ++('dhcpLeases' 'dhcpPool' 'dhcpSubnet' 'dhcpSharedNetwork' 'dhcpService' ) ) ++ ++( 2.16.840.1.113719.1.203.6.12 NAME 'dhcpServer' DESC 'DHCP Server ++Object' SUP top MUST (cn, dhcpServiceDN) MAY (dhcpVersion $ ++dhcpImplementation $ dhcpHashBucketAssignment $ ++dhcpDelayedServiceParameter $ dhcpMaxClientLeadTime $ ++dhcpFailOverEndpointState $ dhcpStatements) X-NDS_CONTAINMENT ('O' 'OU' ++'dc') ) ++ ++9. Security Considerations ++ ++Since the DHCP Configuration information is stored in a directory, the ++security of the information is limited to the security offered by the ++directory including the security of the objects within that directory. ++ ++10. Intellectual Property Rights Notices ++ ++The IETF takes no position regarding the validity or scope of any ++intellectual property or other rights that might be claimed to pertain ++to the implementation or use of the technology described in this ++document or the extent to which any license under such rights might or ++might not be available; neither does it represent that it has made any ++effort to identify any such rights. Information on the IETF's ++procedures with respect to rights in standards-track and standards- ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 15] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++related documentation can be found in BCP-11. Copies of claims of ++rights made available for publication and any assurances of licenses to ++be made available, or the result of an attempt made to obtain a general ++license or permission for the use of such proprietary rights by ++implementors or users of this specification can be obtained from the ++IETF Secretariat. ++ ++The IETF invites any interested party to bring to its attention any ++copyrights, patents or patent applications, or other proprietary rights ++which may cover technology that may be required to practice this ++standard. Please address the information to the IETF Executive ++Director. ++ ++11. Full Copyright Statement ++ ++Copyright (C) The Internet Society (2001). All Rights Reserved. ++ ++This document and translations of it may be copied and furnished to ++others, and derivative works that comment on or otherwise explain it or ++assist in its implementation may be prepared, copied, published and ++distributed, in whole or in part, without restriction of any kind, ++provided that the above copyright notice and this paragraph are included ++on all such copies and derivative works. However, this document itself ++may not be modified in any way, such as by removing the copyright notice ++or references to the Internet Society or other Internet organizations, ++except as needed for the purpose of developing Internet standards in ++which case the procedures for copyrights defined in the Internet ++Standards process must be followed, or as required to translate it into ++languages other than English. ++ ++The limited permissions granted above are perpetual and will not be ++revoked by the Internet Society or its successors or assigns. ++ ++This document and the information contained herein is provided on an "AS ++IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK ++FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT ++LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT ++INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR ++FITNESS FOR A PARTICULAR PURPOSE. ++ ++12. References ++ ++[RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, ++March 1997. ++ ++[RFC2132] Alexander, S., Droms, R., "DHCP Options and BOOTP Vendor ++Extensions", RFC 2132, March 1997. ++ ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 16] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++[MSDHCP] Gu, Y., Vyaghrapuri, R., "An LDAP Schema for Dynamic Host ++Configuration Protocol Service", Internet Draft , August 1998. ++ ++[NOVDHCP] Miller, T., Patel, A., Rao, P., "Lightweight Directory Access ++Protocol (v3): Schema for Dynamic Host Configuration Protocol (DHCP)", ++Internet Draft , June 1998. ++ ++[FAILOVR] Droms, R., Rabil, G., Dooley, M., Kapur, A., Gonczi, S., Volz, ++B., "DHCP Failover Protocol", Internet Draft , July 2000. ++ ++[RFC 3074] Volz B., Gonczi S., Lemon T., Stevens R., "DHC Load Balancing ++Algorithm", February 2001 ++ ++[AGENT] Patrick, M., "DHCP Relay Agent Information Option", Internet ++Draft , March 2000. ++ ++[DHCPOPT] Carney, M., "New Option Review Guidelines and Additional ++Option Namespace", Internet Draft , October 1999. ++ ++[POLICY] Strassner, J., Elleson, E., Moore, B., "Policy Framework LDAP ++Core Schema", Internet Draft , ++November 1999. ++ ++[RFC2251] Wahl, M., Howes, T., Kille, S., "Lightweight Directory Access ++Protocol (v3)", RFC 2251, December 1997. ++ ++[RFC2252] Wahl, M., Coulbeck, A., Howes, T., Kille, S., "Lightweight ++Directory Access Protocol (v3) Attribute Syntax Definitions", RFC 2252, ++December 1997. ++ ++[RFC2255] Howes, T., Smith, M., "The LDAP URL Format", RFC 2255, ++December 1997. ++ ++[RFC951] Croft, B., Gilmore, J., "Bootstrap Protocol (BOOTP)", RFC 951, ++September 1985. ++ ++[RFC2119] Bradner, S. "Key words for use in RFCs to Indicate Requirement ++Levels", RFC 2119, March 1997. ++ ++13. Acknowledgments ++ ++This work is partially based on a previous draft draft-ietf-dhc- ++schema-02.doc. ++ ++ ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 17] ++ ++ ++ ++ ++ ++INTERNET-DRAFT LDAP Schema for DHCP 16 June 2001 ++ ++ ++14. Author's Addresses ++ ++Comments regarding this draft may be sent to the authors at the ++following address: ++ ++Mark Meredith ++Mark Hinckley ++Novell Inc. ++1800 S. Novell Place ++Provo, Utah 84606 ++ ++Vijay K. Nanjundaswamy ++Novell Software Development (I) Ltd ++49/1 & 49/3, Garvebhavi Palya, ++7th Mile, Hosur Road ++Bangalore 560068 ++ ++email: mark_meredith@novell.com ++email: knvijay@novell.com ++email: mhinckley@novell.com ++ ++This Internet Draft expires December 16, 2001. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++M. Meredith et al. Expires December 2001 [Page 18] ++ ++ ++ ++ +diff -urNad dhcp3-3.1.0.orig/README.ldap dhcp3-3.1.0/README.ldap +--- dhcp3-3.1.0.orig/README.ldap 1970-01-01 01:00:00.000000000 +0100 ++++ dhcp3-3.1.0/README.ldap 2008-02-20 13:21:26.000000000 +0100 +@@ -0,0 +1,190 @@ ++LDAP Support in DHCP ++Brian Masney ++Last updated 3/23/2003 ++ ++This document describes setting up the DHCP server to read it's configuration ++from LDAP. This work is based on the IETF document ++draft-ietf-dhc-ldap-schema-01.txt included in the doc directory. For the latest ++version of this document, please see http://home.ntelos.net/~masneyb. ++ ++First question on most people's mind is "Why do I want to store my ++configuration in LDAP?" If you run a small DHCP server, and the configuration ++on it rarely changes, then you won't need to store your configuration in LDAP. ++But, if you have several DHCP servers, and you want an easy way to manage your ++configuration, this can be a solution. ++ ++The first step will be to setup your LDAP server. I am using OpenLDAP from ++www.openldap.org. Building and installing OpenLDAP is beyond the scope of this ++document. There is plenty of documentation out there about this. Once you have ++OpenLDAP installed, you will have to edit your slapd.conf file. I added the ++following 2 lines to my configuration file: ++ ++include /etc/ldap/schema/dhcp.schema ++index dhcpHWAddress eq ++index dhcpClassData eq ++ ++The first line tells it to include the dhcp schema file. You will find this ++file under the contrib directory in this distribution. You will need to copy ++this file to where your other schema files are (maybe ++/usr/local/openldap/etc/openldap/schema/). The second line sets up ++an index for the dhcpHWAddress parameter. The third parameter is for reading ++subclasses from LDAP every time a DHCP request comes in. Make sure you run the ++slapindex command and restart slapd to have these changes to into effect. ++ ++Now that you have LDAP setup, you should be able to use gq (http://biot.com/gq/) ++to verify that the dhcp schema file is loaded into LDAP. Pull up gq, and click ++on the Schema tab. Go under objectClasses, and you should see at least the ++following object classes listed: dhcpClass, dhcpGroup, dhcpHost, dhcpOptions, ++dhcpPool, dhcpServer, dhcpService, dhcpSharedNetwork, dhcpSubClass, and ++dhcpSubnet. If you do not see these, you need to check over your LDAP ++configuration before you go any further. ++ ++You should now be ready to build DHCP. If you would like to enable LDAP over ++SSL, you will need to perform the following steps: ++ ++ * Edit the includes/site.h file and uncomment the USE_SSL line ++ or specify "-DUSE_SSL" via CFLAGS. ++ * Edit the dst/Makefile.dist file and remove md5_dgst.c and md5_dgst.o ++ from the SRC= and OBJ= lines (around line 24) ++ * Now run configure in the base source directory. If you chose to enable ++ LDAP over SSL, you must append -lcrypto -lssl to the LIBS= line in the file ++ work.os/server/Makefile (replace os with your operating system, linux-2.2 on ++ my machine). You should now be able to type make to build your DHCP server. ++ ++If you choose to not enable LDAP over SSL, then you only need to run configure ++and make in the toplevel source directory. ++ ++Once you have DHCP installed, you will need to setup your initial plaintext ++config file. In my /etc/dhcpd.conf file, I have: ++ ++ldap-server "localhost"; ++ldap-port 389; ++ldap-username "cn=DHCP User, dc=ntelos, dc=net"; ++ldap-password "blah"; ++ldap-base-dn "dc=ntelos, dc=net"; ++ldap-method dynamic; ++ldap-debug-file "/var/log/dhcp-ldap-startup.log"; ++ ++If SSL has been enabled at compile time using the USE_SSL flag, the dhcp ++server trys to use TLS if possible, but continues without TLS if not. ++ ++You can modify this behaviour using following option in /etc/dhcpd.conf: ++ ++ldap-ssl ++ off: disables TLS/LDAPS. ++ ldaps: enables LDAPS -- don't forget to set ldap-port to 636. ++ start_tls: enables TLS using START_TLS command ++ on: enables LDAPS if ldap-port is set to 636 or TLS in ++ other cases. ++ ++See also "man 5 ldap.conf" for description the following TLS related ++options: ++ ldap-tls-reqcert, ldap-tls-ca-file, ldap-tls-ca-dir, ldap-tls-cert ++ ldap-tls-key, ldap-tls-crlcheck, ldap-tls-ciphers, ldap-tls-randfile ++ ++All of these parameters should be self explanatory except for the ldap-method. ++You can set this to static or dynamic. If you set it to static, the ++configuration is read once on startup, and LDAP isn't used anymore. But, if you ++set this to dynamic, the configuration is read once on startup, and the ++hosts that are stored in LDAP are looked up every time a DHCP request comes in. ++ ++When the optional statement ldap-debug-file is specified, on startup the DHCP ++server will write out the configuration that it generated from LDAP. If you are ++getting errors about your LDAP configuration, this is a good place to start ++looking. ++ ++The next step is to set up your LDAP tree. Here is an example config that will ++give a 10.100.0.x address to machines that have a host entry in LDAP. ++Otherwise, it will give a 10.200.0.x address to them. (NOTE: replace ++dc=ntelos, dc=net with your base dn). If you would like to convert your ++existing dhcpd.conf file to LDIF format, there is a script ++contrib/dhcpd-conf-to-ldap.pl that will convert it for you. Type ++dhcpd-conf-to-ldap.pl --help to see the usage information for this script. ++ ++# You must specify the server's host name in LDAP that you are going to run ++# DHCP on and point it to which config tree you want to use. Whenever DHCP ++# first starts up, it will do a search for this entry to find out which ++# config to use ++dn: cn=brian.ntelos.net, dc=ntelos, dc=net ++objectClass: top ++objectClass: dhcpServer ++cn: brian.ntelos.net ++dhcpServiceDN: cn=DHCP Service Config, dc=ntelos, dc=net ++ ++# Here is the config tree that brian.ntelos.net points to. ++dn: cn=DHCP Service Config, dc=ntelos, dc=net ++cn: DHCP Service Config ++objectClass: top ++objectClass: dhcpService ++dhcpPrimaryDN: dc=ntelos, dc=net ++dhcpStatements: ddns-update-style none ++dhcpStatements: default-lease-time 600 ++dhcpStatements: max-lease-time 7200 ++ ++# Set up a shared network segment ++dn: cn=WV Test, cn=DHCP Service Config, dc=ntelos, dc=net ++cn: WV ++objectClass: top ++objectClass: dhcpSharedNetwork ++ ++# Set up a subnet declaration with a pool statement. Also note that we have ++# a dhcpOptions object with this entry ++dn: cn=10.100.0.0, cn=WV Test, cn=DHCP Service Config, dc=ntelos, dc=net ++cn: 10.100.0.0 ++objectClass: top ++objectClass: dhcpSubnet ++objectClass: dhcpOptions ++dhcpOption: domain-name-servers 10.100.0.2 ++dhcpOption: routers 10.100.0.1 ++dhcpOption: subnet-mask 255.255.255.0 ++dhcpOption: broadcast-address 10.100.0.255 ++dhcpNetMask: 24 ++ ++# Set up a pool for this subnet. Only known hosts will get these IPs ++dn: cn=Known Pool, cn=10.100.0.0, cn=WV Test, cn=DHCP Service Config, dc=ntelos, dc=net ++cn: Known Pool ++objectClass: top ++objectClass: dhcpPool ++dhcpRange: 10.100.0.3 10.100.0.254 ++dhcpPermitList: deny unknown-clients ++ ++# Set up another subnet declaration with a pool statement ++dn: cn=10.200.0.0, cn=WV Test, cn=DHCP Service Config, dc=ntelos, dc=net ++cn: 10.200.0.0 ++objectClass: top ++objectClass: dhcpSubnet ++objectClass: dhcpOptions ++dhcpOption: domain-name-servers 10.200.0.2 ++dhcpOption: routers 10.200.0.1 ++dhcpOption: subnet-mask 255.255.255.0 ++dhcpOption: broadcast-address 10.200.0.255 ++dhcpNetMask: 24 ++ ++# Set up a pool for this subnet. Only unknown hosts will get these IPs ++dn: cn=Known Pool, cn=10.200.0.0, cn=WV Test, cn=DHCP Service Config, dc=ntelos, dc=net ++cn: Known Pool ++objectClass: top ++objectClass: dhcpPool ++dhcpRange: 10.200.0.3 10.200.0.254 ++dhcpPermitList: deny known clients ++ ++# Set aside a group for all of our known MAC addresses ++dn: cn=Customers, cn=DHCP Service Config, dc=ntelos, dc=net ++objectClass: top ++objectClass: dhcpGroup ++cn: Customers ++ ++# Host entry for my laptop ++dn: cn=brianlaptop, cn=Customers, cn=DHCP Service Config, dc=ntelos, dc=net ++objectClass: top ++objectClass: dhcpHost ++cn: brianlaptop ++dhcpHWAddress: ethernet 00:00:00:00:00:00 ++ ++You can use the command slapadd to load all of these entries into your LDAP ++server. After you load this, you should be able to start up DHCP. If you run ++into problems reading the configuration, try running dhcpd with the -d flag. ++If you still have problems, edit the site.conf file in the DHCP source and ++add the line: COPTS= -DDEBUG_LDAP and recompile DHCP. (make sure you run make ++clean and rerun configure before you rebuild). ++ + --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/dhclient-safer-timeout.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/dhclient-safer-timeout.dpatch @@ -0,0 +1,82 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +# Description: Increase default timeout to ensure we don't hit it +# In some cases, the 60 second client timeout has been shown to be too +# low, resulting in ifupdown declaring an interface as 'up' when in fact +# the dhclient has simply backgrounded to continue trying. This is +# addressed in ifupdown by calling dhclient3 with -1 (exit non-zero +# after the timeout), but we don't ever want to *reach* that timeout: +# having an interface fail to come up and never be retried is only +# slightly better than having ifup say the interface is up before it is. +# Now that ifup's dhclient handling is both reliable and highly +# parallelized, we can afford to wait longer to be sure we don't hit +# the timeout when DHCP is really working, so do this by default. +# Author: Steve Langasek +# Bug-Ubuntu: https://launchpad.net/bugs/838968 + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/client/clparse.c isc-dhcp/client/clparse.c +--- isc-dhcp~/client/clparse.c 2011-09-02 14:08:47.220222989 -0700 ++++ isc-dhcp/client/clparse.c 2011-09-02 14:13:52.201999111 -0700 +@@ -122,7 +122,7 @@ + memset (&top_level_config, 0, sizeof top_level_config); + + /* Set some defaults... */ +- top_level_config.timeout = 60; ++ top_level_config.timeout = 300; + top_level_config.select_interval = 0; + top_level_config.reboot_timeout = 10; + top_level_config.retry_interval = 300; +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/client/dhclient.conf isc-dhcp/client/dhclient.conf +--- isc-dhcp~/client/dhclient.conf 2011-09-02 14:05:11.000000000 -0700 ++++ isc-dhcp/client/dhclient.conf 2011-09-02 14:12:53.751658616 -0700 +@@ -6,7 +6,7 @@ + request subnet-mask, broadcast-address, time-offset, routers, + domain-name, domain-name-servers, host-name; + require subnet-mask, domain-name-servers; +-timeout 60; ++timeout 300; + retry 60; + reboot 10; + select-timeout 5; +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/client/dhclient.conf.5 isc-dhcp/client/dhclient.conf.5 +--- isc-dhcp~/client/dhclient.conf.5 2011-09-02 14:05:11.000000000 -0700 ++++ isc-dhcp/client/dhclient.conf.5 2011-09-02 14:13:27.521856391 -0700 +@@ -74,7 +74,7 @@ + statement determines the amount of time that must pass between the + time that the client begins to try to determine its address and the + time that it decides that it's not going to be able to contact a +-server. By default, this timeout is sixty seconds. After the ++server. By default, this timeout is 300 seconds. After the + timeout has passed, if there are any static leases defined in the + configuration file, or any leases remaining in the lease database that + have not yet expired, the client will loop through these leases +@@ -669,7 +669,7 @@ + + .nf + +-timeout 60; ++timeout 300; + retry 60; + reboot 10; + select-timeout 5; +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/doc/ja_JP.eucJP/dhclient.conf.5 isc-dhcp/doc/ja_JP.eucJP/dhclient.conf.5 +--- isc-dhcp~/doc/ja_JP.eucJP/dhclient.conf.5 2011-09-02 14:05:11.000000000 -0700 ++++ isc-dhcp/doc/ja_JP.eucJP/dhclient.conf.5 2011-09-02 14:10:30.840824600 -0700 +@@ -77,7 +77,7 @@ + ʸϡ饤Ȥɥ쥹ߤ򳫻ϤƤ顢 + Ф˥뤳Ȥ + ǤʤȽǤޤǤ˷в᤹٤֤ޤ +-ǥեȤǤϤΥॢͤ 60 äǤ ++ǥեȤǤϤΥॢͤ 300 äǤ + Υॢͤ᤮ϡ + ⤷Ūʥ꡼եƤ뤫 + ꡼ǡ١ˤޤڤˤʤäƤʤ꡼ĤäƤС +@@ -583,7 +583,7 @@ + + .nf + +-timeout 60; ++timeout 300; + retry 60; + reboot 10; + select-timeout 5; --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/revert-next-server.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/revert-next-server.dpatch @@ -0,0 +1,27 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## revert-next-server.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/server/dhcp.c isc-dhcp/server/dhcp.c +--- isc-dhcp~/server/dhcp.c 2009-07-24 18:22:27.000000000 +0100 ++++ isc-dhcp/server/dhcp.c 2010-11-01 17:22:08.000000000 +0000 +@@ -1190,6 +1190,7 @@ + log_info ("%s", msgbuf); + + /* Figure out the address of the boot file server. */ ++ raw.siaddr = from; + if ((oc = + lookup_option (&server_universe, options, SV_NEXT_SERVER))) { + if (evaluate_option_cache (&d1, packet, (struct lease *)0, +@@ -2615,7 +2616,7 @@ + } + + /* Figure out the address of the boot file server. */ +- memset (&state -> siaddr, 0, sizeof state -> siaddr); ++ memcpy (&state -> siaddr, state -> from.iabuf, sizeof state -> siaddr); + if ((oc = + lookup_option (&server_universe, + state -> options, SV_NEXT_SERVER))) { --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/dhclient-more-debug.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/dhclient-more-debug.dpatch @@ -0,0 +1,70 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhclient-more-debug.dpatch by Martin Pitt +## +## DP: Show offered/requested client IP in log, for better debugging. +## DP: Ubuntu: https://launchpad.net/bugs/35265 +## DP: Forwarded to dhcp-bugs@isc.org, Debian #486611 +## DP: Patch by Peter Miller + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/client/dhclient.c isc-dhcp/client/dhclient.c +--- isc-dhcp~/client/dhclient.c 2010-11-01 17:22:41.000000000 +0000 ++++ isc-dhcp/client/dhclient.c 2010-11-01 17:22:41.000000000 +0000 +@@ -969,6 +969,7 @@ + struct interface_info *ip = packet -> interface; + struct client_state *client; + struct client_lease *lease; ++ char *leasestr; + struct option_cache *oc; + struct data_string ds; + +@@ -999,13 +1000,16 @@ + return; + } + +- log_info ("DHCPACK from %s", piaddr (packet -> client_addr)); +- + lease = packet_to_lease (packet, client); + if (!lease) { ++ log_info ("DHCPACK from %s", piaddr (packet -> client_addr)); + log_info ("packet_to_lease failed."); + return; + } ++ leasestr = strdup (piaddr (lease -> address)); ++ log_info ("DHCPACK of %s from %s", leasestr, ++ piaddr (packet -> client_addr)); ++ free (leasestr); + + client -> new = lease; + +@@ -1413,6 +1417,7 @@ + struct interface_info *ip = packet -> interface; + struct client_state *client; + struct client_lease *lease, *lp; ++ char *leasestr; + struct option **req; + int i; + int stop_selecting; +@@ -1491,6 +1496,10 @@ + log_info ("%s: packet_to_lease failed.", obuf); + return; + } ++ leasestr = strdup (piaddr (lease -> address)); ++ sprintf (obuf, "%s of %s from %s", name, leasestr, ++ piaddr (packet -> client_addr)); ++ free (leasestr); + + /* If this lease was acquired through a BOOTREPLY, record that + fact. */ +@@ -2092,7 +2101,10 @@ + client -> packet.secs = htons (65535); + } + +- log_info ("DHCPREQUEST on %s to %s port %d", ++ log_info ("DHCPREQUEST of %s on %s to %s port %d", ++ piaddr ((client -> state == S_BOUND || client -> state == ++ S_RENEWING || client -> state == S_REBINDING) ? ++ client -> active -> address : client -> requested_address), + client -> name ? client -> name : client -> interface -> name, + inet_ntoa (destination.sin_addr), + ntohs (destination.sin_port)); --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/CVE-2012-3571.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/CVE-2012-3571.dpatch @@ -0,0 +1,87 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +# Description: fix denial of service via malformed client identifiers +# Origin: backported from 4.1-ESV-R6 + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp-4.1.ESV-R4~/common/options.c isc-dhcp-4.1.ESV-R4/common/options.c +--- isc-dhcp-4.1.ESV-R4~/common/options.c 2012-07-25 17:03:40.000000000 -0400 ++++ isc-dhcp-4.1.ESV-R4/common/options.c 2012-07-25 17:03:55.266102448 -0400 +@@ -3752,11 +3754,13 @@ + data_string_forget (&dp, MDL); + } + } +- +- if (decoded_packet -> packet_type) +- dhcp (decoded_packet); +- else +- bootp (decoded_packet); ++ ++ if (validate_packet(decoded_packet) != 0) { ++ if (decoded_packet->packet_type) ++ dhcp(decoded_packet); ++ else ++ bootp(decoded_packet); ++ } + + /* If the caller kept the packet, they'll have upped the refcnt. */ + packet_dereference (&decoded_packet, MDL); +@@ -4074,4 +4078,47 @@ + return 1; + } + ++/** ++ * Checks if received BOOTP/DHCPv4 packet is sane ++ * ++ * @param packet received, decoded packet ++ * ++ * @return 1 if packet is sane, 0 if it is not ++ */ ++int validate_packet(struct packet *packet) ++{ ++ struct option_cache *oc = NULL; + ++ oc = lookup_option (&dhcp_universe, packet->options, ++ DHO_DHCP_CLIENT_IDENTIFIER); ++ if (oc) { ++ /* Let's check if client-identifier is sane */ ++ if (oc->data.len == 0) { ++ log_debug("Dropped DHCPv4 packet with zero-length client-id"); ++ return (0); ++ ++ } else if (oc->data.len == 1) { ++ /* ++ * RFC2132, section 9.14 states that minimum length of client-id ++ * is 2. We will allow single-character client-ids for now (for ++ * backwards compatibility), but warn the user that support for ++ * this is against the standard. ++ */ ++ log_debug("Accepted DHCPv4 packet with one-character client-id - " ++ "a future version of ISC DHCP will reject this"); ++ } ++ } else { ++ /* ++ * If hlen is 0 we don't have any identifier, we warn the user ++ * but continue processing the packet as we can. ++ */ ++ if (packet->raw->hlen == 0) { ++ log_debug("Received DHCPv4 packet without client-id" ++ " option and empty hlen field."); ++ } ++ } ++ ++ /* @todo: Add checks for other received options */ ++ ++ return (1); ++} +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp-4.1.ESV-R4~/includes/dhcpd.h isc-dhcp-4.1.ESV-R4/includes/dhcpd.h +--- isc-dhcp-4.1.ESV-R4~/includes/dhcpd.h 2012-07-25 17:03:40.000000000 -0400 ++++ isc-dhcp-4.1.ESV-R4/includes/dhcpd.h 2012-07-25 17:03:55.266102448 -0400 +@@ -1708,6 +1708,8 @@ + int, int, const struct iaddr *, isc_boolean_t); + int packet6_len_okay(const char *, int); + ++int validate_packet(struct packet *); ++ + int add_option(struct option_state *options, + unsigned int option_num, + void *data, --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/dhclient-onetry-call-clientscript.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/dhclient-onetry-call-clientscript.dpatch @@ -0,0 +1,20 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhclient-onetry-call-clientscript.dpatch by Martin Pitt +## +## DP: Call 'dhclient-script FAIL' when failing to get an address also when +## DP: operating in oneshot mode (-1). This fixes avahi-autoipd invocation +## DP: through dhcdbd. (Debian #486520) + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp~/client/dhclient.c isc-dhcp/client/dhclient.c +--- isc-dhcp~/client/dhclient.c 2010-11-01 17:22:25.000000000 +0000 ++++ isc-dhcp/client/dhclient.c 2010-11-01 17:22:26.000000000 +0000 +@@ -1939,6 +1939,8 @@ + if (!quiet) + log_info ("Unable to obtain a lease on first try.%s", + " Exiting."); ++ script_init (client, "FAIL", (struct string_list *)0); ++ script_go (client); + exit (2); + } + --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/dhclient.c.stale-pids.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/dhclient.c.stale-pids.dpatch @@ -0,0 +1,42 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhclient.c.stale-pids.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Patch from Ubuntu via Martin Pitt to prevent multiple dhclients starting +## DP: up. (See #178885) + +@DPATCH@ +diff -urNad dhcp3-3.1.1~/client/dhclient.c dhcp3-3.1.1/client/dhclient.c +--- dhcp3-3.1.1~/client/dhclient.c 2008-05-14 22:21:38.292160952 -0700 ++++ dhcp3-3.1.1/client/dhclient.c 2008-05-14 22:33:50.327182983 -0700 +@@ -248,7 +248,7 @@ + } + + /* first kill of any currently running client */ +- if (release_mode || exit_mode) { ++ if (1) { + FILE *pidfd; + pid_t oldpid; + long temp; +@@ -258,10 +258,19 @@ + if ((pidfd = fopen(path_dhclient_pid, "r")) != NULL) { + e = fscanf(pidfd, "%ld\n", &temp); + oldpid = (pid_t)temp; ++ log_info ("There is already a pid file %s with pid %i", path_dhclient_pid, oldpid); + + if (e != 0 && e != EOF) { +- if (oldpid) +- kill(oldpid, SIGTERM); ++ if (oldpid) { ++ if (kill(oldpid, SIGTERM) == 0) { ++ log_info ("killed old client process, removed PID file"); ++ /* Upstream removed the unlink in 3.1.1, is it because the SIGTERM handler does it anyway? */ ++ unlink(path_dhclient_pid); ++ } else if (errno == ESRCH) { ++ log_info ("removed stale PID file"); ++ unlink(path_dhclient_pid); ++ } ++ } + } + fclose(pidfd); + } --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/fix_exit_hook_doc_manpage.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/fix_exit_hook_doc_manpage.dpatch @@ -0,0 +1,60 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## fix_exit_hook_doc_manpage.diff by +## packaging by Dustin Kirkland +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Patch from nfm for LP: #53024 +## DP: Modified client/dhclient-script.8 manpage to include information about +## DP: the script directories /etc/dhcp/dhclient-enter-hooks.d and +## DP: /etc/dhcp/dhclient-enter-hooks.d. + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp-4.1.1-P1~/client/dhclient-script.8 isc-dhcp-4.1.1-P1/client/dhclient-script.8 +--- isc-dhcp-4.1.1-P1~/client/dhclient-script.8 2009-07-24 23:04:51.000000000 +0100 ++++ isc-dhcp-4.1.1-P1/client/dhclient-script.8 2010-11-01 16:42:20.000000000 +0000 +@@ -66,13 +66,15 @@ + file. To override the default behaviour, redefine this function in + the enter hook script. + .PP +-On after defining the make_resolv_conf function, the client script checks ++After defining the make_resolv_conf function, the client script checks + for the presence of an executable + .B ETCDIR/dhclient-enter-hooks + script, and if present, it invokes the script inline, using the Bourne +-shell \'.\' command. The entire environment documented under OPERATION +-is available to this script, which may modify the environment if needed +-to change the behaviour of the script. If an error occurs during the ++shell \'.\' command. It also invokes all executable scripts in ++.B ETCDIR/dhclient-enter-hooks.d/* ++in the same way. The entire environment documented under OPERATION is ++available to this script, which may modify the environment if needed to ++change the behaviour of the script. If an error occurs during the + execution of the script, it can set the exit_status variable to a nonzero + value, and + .B CLIENTBINDIR/dhclient-script +@@ -82,14 +84,18 @@ + .B CLIENTBINDIR/dhclient-script + checks for the presence of an executable + .B ETCDIR/dhclient-exit-hooks +-script, which if present is invoked using the \'.\' command. The exit +-status of dhclient-script will be passed to dhclient-exit-hooks in the +-exit_status shell variable, and will always be zero if the script +-succeeded at the task for which it was invoked. The rest of the +-environment as described previously for dhclient-enter-hooks is also +-present. The ++script, which if present is invoked using the \'.\' command. All executable ++scripts in ++.B ETCDIR/dhclient-exit-hooks.d/* ++are also invoked. The exit status of dhclient-script will be passed ++to dhclient-exit-hooks in the exit_status shell variable, and will ++always be zero if the script succeeded at the task for which it was ++invoked. The rest of the environment as described previously for ++dhclient-enter-hooks is also present. The + .B ETCDIR/dhclient-exit-hooks +-script can modify the valid of exit_status to change the exit status ++and ++.B ETCDIR/dhclient-exit-hooks.d/* ++scripts can modify the valid of exit_status to change the exit status + of dhclient-script. + .SH OPERATION + When dhclient needs to invoke the client configuration script, it --- isc-dhcp-4.1.ESV-R4.orig/debian/patches/CVE-2012-3954.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/CVE-2012-3954.dpatch @@ -0,0 +1,46 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +# Description: fix denial of service via memory leaks +# Origin: backported from 4.1-ESV-R6 + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp-4.1.ESV-R4~/common/options.c isc-dhcp-4.1.ESV-R4/common/options.c +--- isc-dhcp-4.1.ESV-R4~/common/options.c 2012-07-25 17:03:40.000000000 -0400 ++++ isc-dhcp-4.1.ESV-R4/common/options.c 2012-07-25 17:03:55.266102448 -0400 +@@ -2357,6 +2357,8 @@ + + /* And let go of our references. */ + cleanup: ++ if (lbp != NULL) ++ buffer_dereference(&lbp, MDL); + option_dereference(&option, MDL); + + return 1; +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp-4.1.ESV-R4~/server/dhcpv6.c isc-dhcp-4.1.ESV-R4/server/dhcpv6.c +--- isc-dhcp-4.1.ESV-R4~/server/dhcpv6.c 2011-05-10 21:00:51.000000000 -0400 ++++ isc-dhcp-4.1.ESV-R4/server/dhcpv6.c 2012-07-25 17:04:09.330102808 -0400 +@@ -1240,6 +1240,8 @@ + struct data_string packet_oro; + isc_boolean_t no_resources_avail; + ++ memset(&packet_oro, 0, sizeof(packet_oro)); ++ + /* Locate the client. */ + if (shared_network_from_packet6(&reply.shared, + packet) != ISC_R_SUCCESS) +@@ -1262,7 +1264,6 @@ + * Get the ORO from the packet, if any. + */ + oc = lookup_option(&dhcpv6_universe, packet->options, D6O_ORO); +- memset(&packet_oro, 0, sizeof(packet_oro)); + if (oc != NULL) { + if (!evaluate_option_cache(&packet_oro, packet, + NULL, NULL, +@@ -1517,6 +1518,8 @@ + packet_dereference(&reply.packet, MDL); + if (reply.client_id.data != NULL) + data_string_forget(&reply.client_id, MDL); ++ if (packet_oro.buffer != NULL) ++ data_string_forget(&packet_oro, MDL); + reply.renew = reply.rebind = reply.prefer = reply.valid = 0; + reply.cursor = 0; + } --- isc-dhcp-4.1.ESV-R4.orig/debian/usr/share/doc/dhcp-on-linux.txt +++ isc-dhcp-4.1.ESV-R4/debian/usr/share/doc/dhcp-on-linux.txt @@ -0,0 +1,54 @@ +From: mellon@hoffman.vix.com (Ted Lemon) +Subject: Re: Linux 2.0/2.1/2.2 -- Anyway to avoid different binaries?? +Date: 4 Feb 1999 17:30:11 -0400 +Message-ID: <199902041802.NAA01184@grosse.fugue.com> + + *** From dhcp-client -- To unsubscribe, see the end of this message. *** + +> Any way to avoid having to have different binaries for the various Linux +> kernels? On one or two boxes, it's no big deal to maintain, but in an +> enterprise it can be real pain. + +Yes. Send email to the Linux kernel network people requesting that +they revisit the issue of whether or not to allow network interfaces +to be configured with IP addresses of 0.0.0.0. + +The reason behind switching to lpf is that in 2.1.100 (or thereabouts) +somebody noticed that if you configured a network interface with an IP +address of 0.0.0.0 and some other machine arped for 0.0.0.0, it would +respond, which is incorrect. This bug was fixed by making it +impossible to configure an interface with that address. A preferable, +and equally effective fix would have been to hack the ARP code to +never reply to requests of this kind. + +Since DHCP clients depend on being able to send requests from the +0.0.0.0 IP address, which is a perfectly legitimate thing to do, and +since this is no longer permitted in Linux, DHCP clients and servers +for 2.0 and 2.1/2.2 are not interchangeable. An additional +consequence is that it is not possible to run the DHCP server or +client on a Linux 2.1/2.2 box connected to a token ring network, +because the physical layer encapsulation protocol is different, and +with lpf the application has to do the physical layer encapsulation (I +kid you not!). This can be worked around by adding code to support +token ring - there's already similar code to support FDDI. But my +take on this is that it's really the O.S.'s job to do physical layer +encapsulation, and doing it in the application is just needless +duplication. + +I've tried arguing this point with the Linux network gods, but for +some reason they concluded that my motivation was to avoid having to +do extra work, not that my concern was legitimate, so they refused to +back out the change. A sufficiently vocal response from real Linux +users like you might change their minds. + + _MelloN_ + + +------------------------------------------------------------------------------ +To unsubscribe from this list, please visit http://www.fugue.com/dhcp/lists +If you are without web access, or if you are having trouble with the web page, +please send mail to dhcp-request@fugue.com. Please try to use the web +page first - it will take a long time for your request to be processed by hand. +------------------------------------------------------------------------------ + + --- isc-dhcp-4.1.ESV-R4.orig/debian/source/format +++ isc-dhcp-4.1.ESV-R4/debian/source/format @@ -0,0 +1 @@ +1.0