--- isc-dhcp-4.1.ESV-R4.orig/.git +++ isc-dhcp-4.1.ESV-R4/.git @@ -0,0 +1 @@ +gitdir: /home/smoser-public/src/isc-dhcp/isc-dhcp/.git/worktrees/wtd --- 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-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/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-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-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/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/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/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/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/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/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-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/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.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-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/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/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/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.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-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/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/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/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/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/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/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-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-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/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.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-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-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-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-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/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.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/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/apparmor-profile.dhcpd +++ isc-dhcp-4.1.ESV-R4/debian/apparmor-profile.dhcpd @@ -0,0 +1,67 @@ +# 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, + network packet raw, + + @{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, + + # isc-dhcp-server-ldap + /etc/ldap/ldap.conf r, + + # 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-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-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.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-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/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.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-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.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/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/compat +++ isc-dhcp-4.1.ESV-R4/debian/compat @@ -0,0 +1 @@ +7 --- 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/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/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-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-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.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/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/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/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/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/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-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/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.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.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-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/dhclient-script.linux +++ isc-dhcp-4.1.ESV-R4/debian/dhclient-script.linux @@ -0,0 +1,429 @@ +#!/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 + +# log an error. +error() { logger -p daemon.err "$@"; } + +# 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; } +} + +# set the link up and wait for ipv6 link local dad to finish +ipv6_link_up_and_dad() { + local dev=$1 delay=${2:-0.1} attempts=${3:-60} + ip link set up dev "$dev" || + { error "$dev: failed to set link up"; return 1; } + local n=0 + while :; do + n=$((n+1)) + # note: busybox ip does not understand 'tentative' as input + # so we cannot just use the tentative flag and check for empty + out=$(ip -6 -o address show dev "$dev" scope link) || { + error "$dev: checking for link-local addresses failed"; + return 1 + } + case " $out " in + *\ dadfailed\ *) + error "$dev: ipv6 dad failed." + return 1;; + *\ tentative\ *) :;; + *) return 0;; + esac + [ $n -lt $attempts ] || { + error "$dev: time out waiting for permanent link-local address" + return 1; + } + sleep $delay + done +} + +# 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 + ipv6_link_up_and_dad "$interface" + + # flush any stale global permanent IPs from interface + ip -6 addr flush dev ${interface} scope global permanent + + ;; + + BOUND6|RENEW6|REBIND6) + if [ "${new_ip6_address}" ]; then + # set leased IP + ip -6 addr add ${new_ip6_address} \ + dev ${interface} scope global + fi + + # 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) + # set preferred lifetime of leased IP to 0 + ip -6 addr change ${cur_ip6_address} \ + dev ${interface} scope global preferred_lft 0 + + ;; + + EXPIRE6|RELEASE6|STOP6) + if [ -z "${old_ip6_address}" ]; then + exit_with_hooks 2 + fi + + # delete leased IP + ip -6 addr del ${old_ip6_address} \ + dev ${interface} + + ;; +esac + +exit_with_hooks 0 --- 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-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/changelog +++ isc-dhcp-4.1.ESV-R4/debian/changelog @@ -0,0 +1,2819 @@ +isc-dhcp (4.1.ESV-R4-0ubuntu5.13) precise-security; urgency=medium + + * SECURITY UPDATE: buffer overflow in dhclient + - debian/patches/CVE-2018-573x.patch: check option data size in + common/options.c. + - CVE-2018-5732 + * SECURITY UPDATE: reference counter overflow in dhcpd + - debian/patches/CVE-2018-573x.patch: avoid overflow in + common/options.c. + - CVE-2018-5733 + + -- Leonidas S. Barbosa Fri, 25 May 2018 11:32:13 -0300 + +isc-dhcp (4.1.ESV-R4-0ubuntu5.12) precise; urgency=medium + + * ipv6: wait for duplicate address detection to finish (LP: #1633479). + + -- Scott Moser Mon, 31 Oct 2016 14:30:03 -0400 + +isc-dhcp (4.1.ESV-R4-0ubuntu5.11) precise; urgency=medium + + * Don't assume IPv6 prefix length of 64 (LP: #1609898). + Pulled from debian commit c347ab8a43587164486ce1f104eedfd638594e59. + + -- Dan Streetman Thu, 04 Aug 2016 13:07:23 -0400 + +isc-dhcp (4.1.ESV-R4-0ubuntu5.10) precise-security; urgency=medium + + * SECURITY UPDATE: denial of service via incorrect UDP payload length + - debian/patches/CVE-2015-8605.dpatch: properly check payload length in + common/packet.c. + - CVE-2015-8605 + + -- Marc Deslauriers Mon, 11 Jan 2016 07:59:30 -0500 + +isc-dhcp (4.1.ESV-R4-0ubuntu5.9) precise-proposed; urgency=low + + * debian/dhclient-script.linux: Allow stateless DHCPv6 to complete + configuration. (LP: #1214385) + + -- Philipp Kern Tue, 20 Aug 2013 15:24:27 +0200 + +isc-dhcp (4.1.ESV-R4-0ubuntu5.8) precise-proposed; urgency=low + + [ Dave Chiluk ] + * Allow dhcpd to read /etc/ldap/ldap.conf for isc-dhcp-server-ldap. + (LP: #1057358). Backported from St辿phane Graber's quantal patch. + + [ St辿phane Graber ] + * Include patch from RedHat/Fedora to deal with hardware/xen/virtio offload + of UDP checksums. (LP: #930962) + * Update apparmor profile to add required the "network packet raw" rule + for the checksum change. + + -- St辿phane Graber Thu, 23 May 2013 11:13:07 -0400 + +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/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.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/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-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/source/format +++ isc-dhcp-4.1.ESV-R4/debian/source/format @@ -0,0 +1 @@ +1.0 --- 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/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/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, uvete, 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 "Dodaton辿 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泥 rune 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 skonen鱈 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, uvete 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 konfiguran箪 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/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/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/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/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/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/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/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 pepos鱈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 smrov叩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 nkolik n叩zv哲 server哲 nebo IP adres (炭daje oddlte 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 "" +"Urete pros鱈m, kter叩 s鱈泥ov叩 rozhran鱈 se m叩 DHCP pokou邸et nastavit. Zad叩te-li " +"v鱈ce rozhran鱈, oddlte 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 "Dodaten辿 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 teba prov辿st run鱈 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 teba je邸t run nastavit 炭pravou " +"souboru /etc/dhcp/dhcpd.conf. Vezmte pros鱈m v potaz, 転e dod叩van箪 dhcpd.conf " +"je pouze p鱈klad a mus鱈 b箪t pizp哲soben s鱈泥ov辿mu prosted鱈." + +#. 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 dokonen鱈 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鱈, oddlte 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 pestat pou転鱈vat). Chcete-li toto " +#~ "chov叩n鱈 zmnit, 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 "Zmna 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 zmnila v箪choz鱈 hodnota DHCP serveru u direktivy next-" +#~ "server. Jestli転e m叩te klienty zav叩dn辿 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 pesunul" + +#~| 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 konfiguran鱈 soubor. Zd叩 se, 転e /etc/isc-dhcp/dhclient-" +#~ "script byl nkdy upravov叩n a proto jej neodstrauji, nicm辿n u転 se k " +#~ "niemu 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 pi 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邸tn鱈m dhclienta." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Pochopiteln byste mli b箪t opatrn鱈 nap鱈klad v situaci, kdy spravujete " +#~ "vzd叩len箪 server pes 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邸esmrov箪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鱈, oddlte je " +#~ "mezerami. Pokud chcete, aby si dhcpd zjistil rozhran鱈, nechte tento " +#~ "parametr pr叩zdn箪." --- 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/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/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/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/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/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/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/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 ≪鴻茲井絎純с (鴻腥榊純у阪c" +")" + +#. 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 若荐絎若ゃ潟帥若сゃ鴻絎茲違" +"潟帥若сゃ劫腥榊純у阪c鴻ュ綽荀障" + +#. 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 若茯茘若ゃ潟帥若сゃ" +"荐絎茵障翫(純с) 若c鴻ゃ潟帥若сゃ" +"篏帥障" + +#. 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 泣潟с" +"若医綽篆罩c綽荀с羈" + +#. Type: note +#. Description +#: ../isc-dhcp-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "ゃ潟鴻若絎篋緇 DHCP 泣若荐絎茵c" + +#. 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 鴻緇≦" +"絎茲違ゃ潟帥若сゃ劫腥榊純у阪c鴻уュ" +"綽荀障" + +#. Type: string +#. Description +#: ../isc-dhcp-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "ゃュc翫ゃ潟帥若сゃ鴻罎冴障" --- 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棚tesde 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辿monde 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: 束-mreplace損 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 version3.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/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旦nlendirilecei 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 (boluk 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 istediiniz a aray端zlerini " +"isimlerini boluk 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. Eer 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脹 salanm脹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 dinleyecei 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 boluklarla 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脹 eer bir istemci, sunucunun hakk脹nda birey bilmedii bir " +#~ "adres isterse ve bu adres bu a kesimi i巽in doru deilse, sunucu " +#~ "(istemciye bu adresi kullanmay脹 b脹rakmas脹n脹 s旦yleyen) bir DHCPNAK " +#~ "_g旦ndermeyecektir_. Eer bu davran脹脹 deitirmek isterseniz, dhcpd.conf " +#~ "dosyas脹nda hangi a kesimlerinin yetkili olduunu '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 " +#~ "deiiklik" + +#, 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脹 " +#~ "deeri deimitir. Eer a 端zerinden balat脹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脹 deildir. /etc/isc-dhcp/dhclient-script bir " +#~ "noktas脹nda deitirilmi 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 betiini deitirmek 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 balatmay脹 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 balat脹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 balatabilirsiniz, " +#~ "yada tamamen 旦ld端r端p dhclient'脹 tekrar balatabilirsiniz." + +#~ msgid "" +#~ "Naturally, you should exercise caution if you are managing a remote " +#~ "server via an interface using DHCP." +#~ msgstr "" +#~ "Eer uzak bir sunucuyu DHCP kullanan bir aray端z 端zerinden y旦netiyorsan脹z " +#~ "doal 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 boluklarla ayr脹lm脹 ekilde sunucunun DHCP isteklerine cevap " +#~ "verecei 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 teebb端s edecei a aray端zlerinin isimleri " +#~ "komut sat脹r脹nda -i se巽enei kullan脹larak belirtilebilir. Eer komut " +#~ "sat脹r脹nda bir aray端z ismi belirtilmez ise; dhcrelay, eer 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. Eer " +#~ "DHCP isteini birden fazla aray端z 端zerinden sunmak isterseniz, l端tfen " +#~ "bunlar脹 boluk karakterleriyle ay脹r脹n. Eer 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_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/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 no 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 ny 畛 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 no 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 ci 畉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 ci 畉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 ci 畉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 no 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 no 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 ny th狸 t畛 畛ng ph叩t hi畛n giao di畛n." --- 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/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/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/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/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/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/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/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/udp_checksum_offloading +++ isc-dhcp-4.1.ESV-R4/debian/patches/udp_checksum_offloading @@ -0,0 +1,265 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +# Description: UDP checksum offloading +# This patch has been taken from the RedHat patchset at: +# http://pkgs.fedoraproject.org/cgit/dhcp.git/tree/dhcp-4.2.2-xen-checksum.patch +# . +# This fixes systems on which the UDP checksum contains garbage due to hardware +# checksum offloading or similar technologies (virtio networking). +# . +# The problem was forwarded upstream by Debian with ticket ID: #29769 +# . +# Debian bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=652739 +# Launchpad bug: https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/930962 +# +# --- +# Origin: other, http://pkgs.fedoraproject.org/cgit/dhcp.git/tree/dhcp-4.2.2-xen-checksum.patch +# Bug: ISC private bug, ID: #29769 +# Bug-Debian: http://bugs.debian.org/652739 +# Bug-Ubuntu: https://launchpad.net/bugs/930962 +# Forwarded: not-needed +# Reviewed-By: St辿phane Graber +# Last-Update: 2013-01-17 + +@DPATCH@ +--- isc-dhcp-4.2.4.orig/includes/dhcpd.h ++++ isc-dhcp-4.2.4/includes/dhcpd.h +@@ -2805,7 +2805,7 @@ ssize_t decode_hw_header (struct interfa + unsigned, struct hardware *); + ssize_t decode_udp_ip_header (struct interface_info *, unsigned char *, + unsigned, struct sockaddr_in *, +- unsigned, unsigned *); ++ unsigned, unsigned *, int); + + /* ethernet.c */ + void assemble_ethernet_header (struct interface_info *, unsigned char *, +--- isc-dhcp-4.2.4.orig/common/bpf.c ++++ isc-dhcp-4.2.4/common/bpf.c +@@ -485,7 +485,7 @@ ssize_t receive_packet (interface, buf, + offset = decode_udp_ip_header (interface, + interface -> rbuf, + interface -> rbuf_offset, +- from, hdr.bh_caplen, &paylen); ++ from, hdr.bh_caplen, &paylen, 0); + + /* If the IP or UDP checksum was bad, skip the packet... */ + if (offset < 0) { +--- isc-dhcp-4.2.4.orig/common/nit.c ++++ isc-dhcp-4.2.4/common/nit.c +@@ -369,7 +369,7 @@ ssize_t receive_packet (interface, buf, + + /* Decode the IP and UDP headers... */ + offset = decode_udp_ip_header (interface, ibuf, bufix, +- from, length, &paylen); ++ from, length, &paylen, 0); + + /* If the IP or UDP checksum was bad, skip the packet... */ + if (offset < 0) +--- isc-dhcp-4.2.4.orig/common/lpf.c ++++ isc-dhcp-4.2.4/common/lpf.c +@@ -29,19 +29,33 @@ + #include "dhcpd.h" + #if defined (USE_LPF_SEND) || defined (USE_LPF_RECEIVE) + #include ++#include + #include + #include + + #include + #include + #include ++#include + #include +-#include + #include "includes/netinet/ip.h" + #include "includes/netinet/udp.h" + #include "includes/netinet/if_ether.h" + #include + ++#ifndef PACKET_AUXDATA ++#define PACKET_AUXDATA 8 ++ ++struct tpacket_auxdata ++{ ++ __u32 tp_status; ++ __u32 tp_len; ++ __u32 tp_snaplen; ++ __u16 tp_mac; ++ __u16 tp_net; ++}; ++#endif ++ + /* Reinitializes the specified interface after an address change. This + is not required for packet-filter APIs. */ + +@@ -67,10 +81,14 @@ int if_register_lpf (info) + struct interface_info *info; + { + int sock; +- struct sockaddr sa; ++ union { ++ struct sockaddr_ll ll; ++ struct sockaddr common; ++ } sa; ++ struct ifreq ifr; + + /* Make an LPF socket. */ +- if ((sock = socket(PF_PACKET, SOCK_PACKET, ++ if ((sock = socket(PF_PACKET, SOCK_RAW, + htons((short)ETH_P_ALL))) < 0) { + if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT || + errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || +@@ -85,11 +103,17 @@ int if_register_lpf (info) + log_fatal ("Open a socket for LPF: %m"); + } + ++ memset (&ifr, 0, sizeof ifr); ++ strncpy (ifr.ifr_name, (const char *)info -> ifp, sizeof ifr.ifr_name); ++ ifr.ifr_name[IFNAMSIZ-1] = '\0'; ++ if (ioctl (sock, SIOCGIFINDEX, &ifr)) ++ log_fatal ("Failed to get interface index: %m"); ++ + /* Bind to the interface name */ + memset (&sa, 0, sizeof sa); +- sa.sa_family = AF_PACKET; +- strncpy (sa.sa_data, (const char *)info -> ifp, sizeof sa.sa_data); +- if (bind (sock, &sa, sizeof sa)) { ++ sa.ll.sll_family = AF_PACKET; ++ sa.ll.sll_ifindex = ifr.ifr_ifindex; ++ if (bind (sock, &sa.common, sizeof sa)) { + if (errno == ENOPROTOOPT || errno == EPROTONOSUPPORT || + errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || + errno == EAFNOSUPPORT || errno == EINVAL) { +@@ -171,9 +195,18 @@ static void lpf_gen_filter_setup (struct + void if_register_receive (info) + struct interface_info *info; + { ++ int val; ++ + /* Open a LPF device and hang it on this interface... */ + info -> rfdesc = if_register_lpf (info); + ++ val = 1; ++ if (setsockopt (info -> rfdesc, SOL_PACKET, PACKET_AUXDATA, &val, ++ sizeof val) < 0) { ++ if (errno != ENOPROTOOPT) ++ log_fatal ("Failed to set auxiliary packet data: %m"); ++ } ++ + #if defined (HAVE_TR_SUPPORT) + if (info -> hw_address.hbuf [0] == HTYPE_IEEE802) + lpf_tr_filter_setup (info); +@@ -295,7 +328,6 @@ ssize_t send_packet (interface, packet, + double hh [16]; + double ih [1536 / sizeof (double)]; + unsigned char *buf = (unsigned char *)ih; +- struct sockaddr_pkt sa; + int result; + int fudge; + +@@ -316,17 +348,7 @@ ssize_t send_packet (interface, packet, + (unsigned char *)raw, len); + memcpy (buf + ibufp, raw, len); + +- /* For some reason, SOCK_PACKET sockets can't be connected, +- so we have to do a sentdo every time. */ +- memset (&sa, 0, sizeof sa); +- sa.spkt_family = AF_PACKET; +- strncpy ((char *)sa.spkt_device, +- (const char *)interface -> ifp, sizeof sa.spkt_device); +- sa.spkt_protocol = htons(ETH_P_IP); +- +- result = sendto (interface -> wfdesc, +- buf + fudge, ibufp + len - fudge, 0, +- (const struct sockaddr *)&sa, sizeof sa); ++ result = write (interface -> wfdesc, buf + fudge, ibufp + len - fudge); + if (result < 0) + log_error ("send_packet: %m"); + return result; +@@ -343,14 +365,35 @@ ssize_t receive_packet (interface, buf, + { + int length = 0; + int offset = 0; ++ int nocsum = 0; + unsigned char ibuf [1536]; + unsigned bufix = 0; + unsigned paylen; ++ unsigned char cmsgbuf[CMSG_LEN(sizeof(struct tpacket_auxdata))]; ++ struct iovec iov = { ++ .iov_base = ibuf, ++ .iov_len = sizeof ibuf, ++ }; ++ struct msghdr msg = { ++ .msg_iov = &iov, ++ .msg_iovlen = 1, ++ .msg_control = cmsgbuf, ++ .msg_controllen = sizeof(cmsgbuf), ++ }; ++ struct cmsghdr *cmsg; + +- length = read (interface -> rfdesc, ibuf, sizeof ibuf); ++ length = recvmsg (interface -> rfdesc, &msg, 0); + if (length <= 0) + return length; + ++ for (cmsg = CMSG_FIRSTHDR(&msg); cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) { ++ if (cmsg->cmsg_level == SOL_PACKET && ++ cmsg->cmsg_type == PACKET_AUXDATA) { ++ struct tpacket_auxdata *aux = (void *)CMSG_DATA(cmsg); ++ nocsum = aux->tp_status & TP_STATUS_CSUMNOTREADY; ++ } ++ } ++ + bufix = 0; + /* Decode the physical header... */ + offset = decode_hw_header (interface, ibuf, bufix, hfrom); +@@ -367,7 +410,7 @@ ssize_t receive_packet (interface, buf, + + /* Decode the IP and UDP headers... */ + offset = decode_udp_ip_header (interface, ibuf, bufix, from, +- (unsigned)length, &paylen); ++ (unsigned)length, &paylen, nocsum); + + /* If the IP or UDP checksum was bad, skip the packet... */ + if (offset < 0) +--- isc-dhcp-4.2.4.orig/common/dlpi.c ++++ isc-dhcp-4.2.4/common/dlpi.c +@@ -693,7 +693,7 @@ ssize_t receive_packet (interface, buf, + length -= offset; + #endif + offset = decode_udp_ip_header (interface, dbuf, bufix, +- from, length, &paylen); ++ from, length, &paylen, 0); + + /* + * If the IP or UDP checksum was bad, skip the packet... +--- isc-dhcp-4.2.4.orig/common/upf.c ++++ isc-dhcp-4.2.4/common/upf.c +@@ -320,7 +320,7 @@ ssize_t receive_packet (interface, buf, + + /* Decode the IP and UDP headers... */ + offset = decode_udp_ip_header (interface, ibuf, bufix, +- from, length, &paylen); ++ from, length, &paylen, 0); + + /* If the IP or UDP checksum was bad, skip the packet... */ + if (offset < 0) +--- isc-dhcp-4.2.4.orig/common/packet.c ++++ isc-dhcp-4.2.4/common/packet.c +@@ -226,7 +226,7 @@ ssize_t + decode_udp_ip_header(struct interface_info *interface, + unsigned char *buf, unsigned bufix, + struct sockaddr_in *from, unsigned buflen, +- unsigned *rbuflen) ++ unsigned *rbuflen, int nocsum) + { + unsigned char *data; + struct ip ip; +@@ -342,7 +342,7 @@ decode_udp_ip_header(struct interface_in + } + + udp_packets_seen++; +- if (usum && usum != sum) { ++ if (!nocsum && usum && usum != sum) { + udp_packets_bad_checksum++; + if (udp_packets_seen > 4 && + (udp_packets_seen / udp_packets_bad_checksum) < 2) { --- 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/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/00list +++ isc-dhcp-4.1.ESV-R4/debian/patches/00list @@ -0,0 +1,41 @@ +# 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 + +# LP: #930962 +udp_checksum_offloading + +CVE-2015-8605 +#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 + +CVE-2018-5732 +CVE-2018-5733 --- 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/patches/CVE-2015-8605.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/CVE-2015-8605.dpatch @@ -0,0 +1,146 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +# Description: fix denial of service via incorrect UDP payload length +# Origin: backport of patch provided by upstream + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' isc-dhcp-4.1.ESV-R4~/common/packet.c isc-dhcp-4.1.ESV-R4/common/packet.c +--- isc-dhcp-4.1.ESV-R4~/common/packet.c 2016-01-11 07:57:39.000000000 -0500 ++++ isc-dhcp-4.1.ESV-R4/common/packet.c 2016-01-11 07:57:51.120726041 -0500 +@@ -205,7 +205,28 @@ + return decode_ethernet_header (interface, buf, bufix, from); + } + +-/* UDP header and IP header decoded together for convenience. */ ++/*! ++ * ++ * \brief UDP header and IP header decoded together for convenience. ++ * ++ * Attempt to decode the UDP and IP headers and, if necessary, checksum ++ * the packet. ++ * ++ * \param inteface - the interface on which the packet was recevied ++ * \param buf - a pointer to the buffer for the received packet ++ * \param bufix - where to start processing the buffer, previous ++ * routines may have processed parts of the buffer already ++ * \param from - space to return the address of the packet sender ++ * \param buflen - remaining length of the buffer, this will have been ++ * decremented by bufix by the caller ++ * \param rbuflen - space to return the length of the payload from the udp ++ * header ++ * \param csum_ready - indication if the checksum is valid for use ++ * non-zero indicates the checksum should be validated ++ * ++ * \return - the index to the first byte of the udp payload (that is the ++ * start of the DHCP packet ++ */ + + ssize_t + decode_udp_ip_header(struct interface_info *interface, +@@ -216,22 +237,19 @@ + unsigned char *data; + struct ip ip; + struct udphdr udp; +- unsigned char *upp, *endbuf; ++ unsigned char *upp; + u_int32_t ip_len, ulen, pkt_len; + u_int32_t sum, usum; +- static int ip_packets_seen; +- static int ip_packets_bad_checksum; +- static int udp_packets_seen; +- static int udp_packets_bad_checksum; +- static int udp_packets_length_checked; +- static int udp_packets_length_overflow; ++ static unsigned int ip_packets_seen = 0; ++ static unsigned int ip_packets_bad_checksum = 0; ++ static unsigned int udp_packets_seen = 0; ++ static unsigned int udp_packets_bad_checksum = 0; ++ static unsigned int udp_packets_length_checked = 0; ++ static unsigned int udp_packets_length_overflow = 0; + unsigned len; + +- /* Designate the end of the input buffer for bounds checks. */ +- endbuf = buf + bufix + buflen; +- + /* Assure there is at least an IP header there. */ +- if ((buf + bufix + sizeof(ip)) > endbuf) ++ if (sizeof(ip) > buflen) + return -1; + + /* Copy the IP header into a stack aligned structure for inspection. +@@ -243,13 +261,17 @@ + ip_len = (*upp & 0x0f) << 2; + upp += ip_len; + +- /* Check the IP packet length. */ ++ /* Check packet lengths are within the buffer: ++ * first the ip header (ip_len) ++ * then the packet length from the ip header (pkt_len) ++ * then the udp header (ip_len + sizeof(udp) ++ * We are liberal in what we accept, the udp payload should fit within ++ * pkt_len, but we only check against the full buffer size. ++ */ + pkt_len = ntohs(ip.ip_len); +- if (pkt_len > buflen) +- return -1; +- +- /* Assure after ip_len bytes that there is enough room for a UDP header. */ +- if ((upp + sizeof(udp)) > endbuf) ++ if ((ip_len > buflen) || ++ (pkt_len > buflen) || ++ ((ip_len + sizeof(udp)) > buflen)) + return -1; + + /* Copy the UDP header into a stack aligned structure for inspection. */ +@@ -270,12 +292,13 @@ + return -1; + + udp_packets_length_checked++; +- if ((upp + ulen) > endbuf) { ++ /* verify that the payload length from the udp packet fits in the buffer */ ++ if ((ip_len + ulen) > buflen) { + udp_packets_length_overflow++; +- if ((udp_packets_length_checked > 4) && +- ((udp_packets_length_checked / +- udp_packets_length_overflow) < 2)) { +- log_info("%d udp packets in %d too long - dropped", ++ if (((udp_packets_length_checked > 4) && ++ (udp_packets_length_overflow != 0)) && ++ ((udp_packets_length_checked / udp_packets_length_overflow) < 2)) { ++ log_info("%u udp packets in %u too long - dropped", + udp_packets_length_overflow, + udp_packets_length_checked); + udp_packets_length_overflow = 0; +@@ -284,16 +307,13 @@ + return -1; + } + +- if ((ulen < sizeof(udp)) || ((upp + ulen) > endbuf)) +- return -1; +- + /* Check the IP header checksum - it should be zero. */ +- ++ip_packets_seen; ++ ip_packets_seen++; + if (wrapsum (checksum (buf + bufix, ip_len, 0))) { + ++ip_packets_bad_checksum; +- if (ip_packets_seen > 4 && +- (ip_packets_seen / ip_packets_bad_checksum) < 2) { +- log_info ("%d bad IP checksums seen in %d packets", ++ if (((ip_packets_seen > 4) && (ip_packets_bad_checksum != 0)) && ++ ((ip_packets_seen / ip_packets_bad_checksum) < 2)) { ++ log_info ("%u bad IP checksums seen in %u packets", + ip_packets_bad_checksum, ip_packets_seen); + ip_packets_seen = ip_packets_bad_checksum = 0; + } +@@ -329,9 +349,9 @@ + udp_packets_seen++; + if (!nocsum && usum && usum != sum) { + udp_packets_bad_checksum++; +- if (udp_packets_seen > 4 && +- (udp_packets_seen / udp_packets_bad_checksum) < 2) { +- log_info ("%d bad udp checksums in %d packets", ++ if (((udp_packets_seen > 4) && (udp_packets_bad_checksum != 0)) ++ && ((udp_packets_seen / udp_packets_bad_checksum) < 2)) { ++ log_info ("%u bad udp checksums in %u packets", + udp_packets_bad_checksum, udp_packets_seen); + udp_packets_seen = udp_packets_bad_checksum = 0; + } --- 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/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/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-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/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/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/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/CVE-2018-5733.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/CVE-2018-5733.dpatch @@ -0,0 +1,28 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## CVE-2018-5733.dpatch by Leonidas S. Barbosa +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. +## From: Thomas Markwalder +## Date: Fri, 9 Feb 2018 14:46:08 -0500 +## Subject: [master] Corrected refcnt loss in option parsing +## Origin: https://source.isc.org/cgi-bin/gitweb.cgi?p=dhcp.git;a=commit;h=197b26f25309f947b97a83b8fdfc414b767798f8 +## Bug: https://bugs.isc.org/Public/Bug/Display.html?id=47140 +## Bug-Debian: https://bugs.debian.org/891785 +## Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2018-5733 + +## Merges in 47140. + +@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 2011-07-19 19:27:56.000000000 -0300 ++++ isc-dhcp-4.1.ESV-R4/common/options.c 2018-05-25 11:31:37.341492318 -0300 +@@ -189,6 +189,8 @@ + + /* If the length is outrageous, the options are bad. */ + if (offset + len > length) { ++ /* Avoid reference count overflow */ ++ option_dereference(&option, MDL); + reason = "option length exceeds option buffer length"; + bogus: + log_error("parse_option_buffer: malformed option " --- 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/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/CVE-2018-5732.dpatch +++ isc-dhcp-4.1.ESV-R4/debian/patches/CVE-2018-5732.dpatch @@ -0,0 +1,56 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## CVE-2018-5732.dpatch by Leonidas S. Barbosa +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. +## From: Thomas Markwalder +## Date: Sat, 10 Feb 2018 12:15:27 -0500 +## Subject: [master] Correct buffer overrun in pretty_print_option +## Origin: https://source.isc.org/cgi-bin/gitweb.cgi?p=dhcp.git;a=commit;h=c5931725b48b121d232df4ba9e45bc41e0ba114d +## Bug: https://bugs.isc.org/Public/Bug/Display.html?id=47139 +## Bug-Debian: https://bugs.debian.org/891786 +## Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2018-5732 + +## Merges in rt47139. + +@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 2011-07-19 19:27:56.000000000 -0300 ++++ isc-dhcp-4.1.ESV-R4/common/options.c 2018-05-25 11:30:15.499897729 -0300 +@@ -1653,7 +1653,8 @@ + + + /* Format the specified option so that a human can easily read it. */ +- ++/* Maximum pretty printed size */ ++#define MAX_OUTPUT_SIZE 32*1024 + const char *pretty_print_option (option, data, len, emit_commas, emit_quotes) + struct option *option; + const unsigned char *data; +@@ -1661,8 +1662,9 @@ + int emit_commas; + int emit_quotes; + { +- static char optbuf [32768]; /* XXX */ +- static char *endbuf = &optbuf[sizeof(optbuf)]; ++ /* We add 128 byte pad so we don't have to add checks everywhere. */ ++ static char optbuf [MAX_OUTPUT_SIZE + 128]; /* XXX */ ++ static char *endbuf = optbuf + MAX_OUTPUT_SIZE; + int hunksize = 0; + int opthunk = 0; + int hunkinc = 0; +@@ -2026,7 +2028,14 @@ + log_error ("Unexpected format code %c", + fmtbuf [j]); + } ++ + op += strlen (op); ++ if (op >= endbuf) { ++ log_error ("Option data exceeds" ++ " maximum size %d", MAX_OUTPUT_SIZE); ++ return (""); ++ } ++ + if (dp == data + len) + break; + if (j + 1 < numelem && comma != ':') --- 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. +------------------------------------------------------------------------------ + +