--- dhcp3-3.1.3.orig/debian/dhcp3-client.preinst +++ dhcp3-3.1.3/debian/dhcp3-client.preinst @@ -0,0 +1,75 @@ +#!/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 + +APP_PROFILE="sbin.dhclient3" +APP_CONFFILE="/etc/apparmor.d/$APP_PROFILE" +APP_COMPLAIN="/etc/apparmor.d/force-complain/$APP_PROFILE" +if [ "$1" = "upgrade" ]; then + mkdir -p `dirname $APP_COMPLAIN` 2>/dev/null || true + if dpkg --compare-versions $2 lt "3.0.4-12ubuntu4" ; then + # force-complain for pre-apparmor upgrades + ln -sf $APP_CONFFILE $APP_COMPLAIN + fi +fi + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + --- dhcp3-3.1.3.orig/debian/dhcp-on-linux.txt +++ dhcp3-3.1.3/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. +------------------------------------------------------------------------------ + + --- dhcp3-3.1.3.orig/debian/dhcp3-server.preinst +++ dhcp3-3.1.3/debian/dhcp3-server.preinst @@ -0,0 +1,40 @@ +#!/bin/sh + +set -e + +case "$1" in + install|upgrade) + if [ ! -e /etc/dhcp3/dhcpd.conf ] && [ -e /etc/dhcpd.conf ]; then + mkdir -p /etc/dhcp3 + cp /etc/dhcpd.conf /etc/dhcp3/dhcpd.conf + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +APP_PROFILE="usr.sbin.dhcpd3" +APP_CONFFILE="/etc/apparmor.d/$APP_PROFILE" +APP_COMPLAIN="/etc/apparmor.d/force-complain/$APP_PROFILE" +if [ "$1" = "upgrade" ]; then + mkdir -p `dirname $APP_COMPLAIN` 2>/dev/null || true + if dpkg --compare-versions $2 lt "3.0.4-12ubuntu4" ; then + # force-complain for pre-apparmor upgrades + ln -sf $APP_CONFFILE $APP_COMPLAIN + fi +fi + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + + --- dhcp3-3.1.3.orig/debian/dhcp3-server.NEWS +++ dhcp3-3.1.3/debian/dhcp3-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 --- dhcp3-3.1.3.orig/debian/dhcp3-client-udeb.dirs +++ dhcp3-3.1.3/debian/dhcp3-client-udeb.dirs @@ -0,0 +1,3 @@ +sbin +etc +var/lib/dhcp3 --- dhcp3-3.1.3.orig/debian/dhclient.conf +++ dhcp3-3.1.3/debian/dhclient.conf @@ -0,0 +1,53 @@ +# 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; +#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; +#} --- dhcp3-3.1.3.orig/debian/dhcp3-relay.init.d +++ dhcp3-3.1.3/debian/dhcp3-relay.init.d @@ -0,0 +1,57 @@ +#!/bin/sh +# +# $Id: dhcp3-relay.init.d,v 1.2 2003/06/18 18:11:21 peloy Exp $ +# + +### BEGIN INIT INFO +# Provides: dhcp3-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/dhcp3-relay ]; then + echo "/etc/default/dhcp3-relay does not exist! - Aborting..." + echo "Run 'dpkg-reconfigure dhcp3-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/dhcp3-relay ] && . /etc/default/dhcp3-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/dhcrelay3 -- -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/dhcp3-relay {start|stop|restart|force-reload}" + exit 1 +esac + +exit 0 --- dhcp3-3.1.3.orig/debian/dhcp3-dev.files +++ dhcp3-3.1.3/debian/dhcp3-dev.files @@ -0,0 +1,4 @@ +usr/include +usr/lib +usr/share/man/man3/dhcpctl.3 +usr/share/man/man3/omapi.3 --- dhcp3-3.1.3.orig/debian/dhcp3-relay.prerm +++ dhcp3-3.1.3/debian/dhcp3-relay.prerm @@ -0,0 +1,15 @@ +#!/bin/sh -e +# +# $Id: dhcp3-relay.prerm,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ +# + +if ( [ "$1" = "upgrade" ] || [ "$1" = "remove" ] ) && \ + [ -L /usr/doc/dhcp3-relay ]; then + rm -f /usr/doc/dhcp3-relay +fi + +invoke-rc.d dhcp3-relay stop + +#DEBHELPER# + +exit 0 --- dhcp3-3.1.3.orig/debian/dhcp3-server.prerm +++ dhcp3-3.1.3/debian/dhcp3-server.prerm @@ -0,0 +1,10 @@ +#!/bin/sh -e +# +# $Id: dhcp3-server.prerm,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ +# + +invoke-rc.d dhcp3-server stop + +#DEBHELPER# + +exit 0 --- dhcp3-3.1.3.orig/debian/dhcp3-server.files +++ dhcp3-3.1.3/debian/dhcp3-server.files @@ -0,0 +1,7 @@ +usr/share/man/man5/dhcpd.conf.5 +usr/share/man/man5/dhcpd.leases.5 +usr/share/man/man8/dhcpd3.8 +usr/sbin/dhcpd3 +usr/share/apport/package-hooks/dhcp3-server.py +etc/dhcp3/dhcpd.conf +etc/apparmor.d/usr.sbin.dhcpd3 --- dhcp3-3.1.3.orig/debian/copyright +++ dhcp3-3.1.3/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'. --- dhcp3-3.1.3.orig/debian/dhcp3-server.config +++ dhcp3-3.1.3/debian/dhcp3-server.config @@ -0,0 +1,34 @@ +#!/bin/sh -e +# +# $Id: dhcp3-server.config,v 1.2 2003/01/29 19:49:17 peloy Exp $ +# + +# Source debconf library. +. /usr/share/debconf/confmodule + +# Read in the current defaults (if available) +INITCONFFILE=/etc/default/dhcp3-server + +# Read current configuration - the user might not use dpkg-reconfigure +# to change /etc/default/dhcp3-server, so we need to do this to +# preserve the configuration. +if [ -r ${INITCONFFILE} ]; then + . ${INITCONFFILE} + db_set dhcp3-server/interfaces "${INTERFACES}" +fi + +db_title "DHCP Server" + +db_input low dhcp3-server/interfaces || true +db_go + +#db_input high dhcp3-server/config_warn || true +#db_go + +db_input medium dhcp3-server/new_auth_behavior || true +db_go + +if dpkg --compare-versions "$2" lt-nl "3.0.3-4"; then + db_input medium dhcp3-server/new_next-server_behaviour || true + db_go +fi --- dhcp3-3.1.3.orig/debian/dhcp3-common.dirs +++ dhcp3-3.1.3/debian/dhcp3-common.dirs @@ -0,0 +1,3 @@ +usr/share/man/ja/man8 +usr/share/man/ja/man5 +usr/share/apport/package-hooks --- dhcp3-3.1.3.orig/debian/dhcp3-server-ldap.install +++ dhcp3-3.1.3/debian/dhcp3-server-ldap.install @@ -0,0 +1 @@ +patched-ldap/server/dhcpd3 usr/sbin --- dhcp3-3.1.3.orig/debian/control +++ dhcp3-3.1.3/debian/control @@ -0,0 +1,119 @@ +Source: dhcp3 +Section: net +Priority: important +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Andrew Pollock +Uploaders: Eloy A. Paris +Build-Depends: debhelper (>= 7.4.20ubuntu6), dpkg-dev (>= 1.13.2), groff, dpatch, po-debconf, libldap2-dev, libssl-dev, libcap-dev, hardening-wrapper +Standards-Version: 3.8.3 + +Package: dhcp3-server +Priority: optional +Architecture: any +Depends: debianutils (>= 2.8.2), dhcp3-common (= ${binary:Version}), lsb-base, ${shlibs:Depends}, ${misc:Depends} +Conflicts: dhcp +Suggests: dhcp3-server-ldap, apparmor +Description: DHCP server for automatic IP address assignment + This is the server from version 3 of 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: dhcp3-server-ldap +Priority: optional +Architecture: any +Depends: debianutils (>= 2.8.2), dhcp3-common (= ${binary:Version}), dhcp3-server (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Enhances: dhcp3-server +Description: DHCP server able to use LDAP as backend + This is the server from version 3 of 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: dhcp3-common +Architecture: any +Section: net +Depends: debianutils (>= 2.8.2), ${shlibs:Depends}, ${misc:Depends} +Description: common files used by all the dhcp3* packages + This package contains the files used by all the packages from ISC + DHCP version 3. + +Package: dhcp3-dev +Priority: optional +Architecture: any +Section: devel +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: dhcp-client +Priority: extra +Architecture: all +Depends: dhcp3-client, ${misc:Depends} +Conflicts: dhcp-client (<< 3.0) +Description: DHCP client transitional package + This is the client from version 3 of 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 v2 dhcp-client package + to the v3 dhcp3-client package. + . + This dummy package may be safely removed after upgrading to lenny + +Package: dhcp3-client +Architecture: any +Depends: debianutils (>= 2.8.2), dhcp3-common (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Suggests: resolvconf, avahi-autoipd, apparmor +Conflicts: dhcp-client (<< 3.0), samba-common (<< 3.0.0beta1-2) +Description: DHCP client + This is the client from version 3 of 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 dhcp3-common. + +Package: dhcp3-client-udeb +Priority: extra +Architecture: any +Section: debian-installer +Depends: ${shlibs:Depends} +XC-Package-Type: udeb +Description: DHCP Client for debian-installer + dhcp-client-udeb is a minimal dhcp package used by the debian-installer. + +Package: dhcp3-relay +Priority: optional +Architecture: any +Depends: debianutils (>= 2.8.2), dhcp3-common (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Conflicts: dhcp-relay +Description: DHCP relay daemon + This is the relay from version 3 of 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 dhcp3-common. --- dhcp3-3.1.3.orig/debian/dhcp3-relay.dirs +++ dhcp3-3.1.3/debian/dhcp3-relay.dirs @@ -0,0 +1 @@ +var/run --- dhcp3-3.1.3.orig/debian/rules +++ dhcp3-3.1.3/debian/rules @@ -0,0 +1,231 @@ +#!/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 = dhcp3 + +include /usr/share/dpatch/dpatch.make + +CFLAGS = -Wall -g +INSTALL = install +INSTALL_FILE = $(INSTALL) -p -o root -g root -m 644 +INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755 + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) +CFLAGS += -O0 +else +CFLAGS += -O2 +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) +INSTALL_PROGRAM += -s +endif + +IVARS = DESTDIR=$(DESTDIR) + +BVARS = PREDEFINES='-D_PATH_DHCPD_DB=\"/var/lib/dhcp3/dhcpd.leases\" \ + -D_PATH_DHCLIENT_DB=\"/var/lib/dhcp3/dhclient.leases\" \ + -D_PATH_DHCLIENT_SCRIPT=\"/sbin/dhclient-script\" \ + -D_PATH_DHCPD_CONF=\"/etc/dhcp3/dhcpd.conf\" \ + -D_PATH_DHCLIENT_CONF=\"/etc/dhcp3/dhclient.conf\"' + + +patched-ldap/build-stamp: + dh_testdir + + ./configure --copts "$(CFLAGS)" + + for f in common $(MINIRES) dst omapip server; do \ + @sysname=`./configure --print-sysname`; \ + cd work.$$sysname/$$f;\ + $(MAKE) $(BVARS) $(CROSS);\ + done + + @sysname=`./configure --print-sysname`; \ + mv work.$$sysname patched-ldap + mv patched-ldap/server/dhcpd patched-ldap/server/dhcpd3 + + touch $@ + + +build: patch-stamp build-stamp + +build-stamp: patched-ldap/build-stamp + dpatch deapply-until dhcp-3.1.0-ldap-code + + + ./configure --copts "$(CFLAGS)" + + $(MAKE) $(BVARS) $(CROSS) + + cp debian/dhclient-script.$(DEB_HOST_ARCH_OS) client/scripts/debian + + touch build-stamp + +clean: unpatch + dh_testdir + rm -f build-stamp install-stamp + + #CFLAGS="$(CFLAGS)" sh -x debian/scripts/insert_cflags.sh unpatch + + # Add here commands to clean up after the build process. + [ ! -f Makefile ] || $(MAKE) distclean + + # Remove leftover junk... + rm -Rf work.*/ + rm -Rf patched-ldap + rm -f client/scripts/debian + + debconf-updatepo + dh_clean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs -A + + # Add here commands to install the package into debian/tmp. + $(MAKE) $(CROSS) install $(IVARS) + + + mkdir -p $(DESTDIR)/etc/dhcp3 + + #mv $(DESTDIR)/etc/dhclient-script $(DESTDIR)/sbin + + # Install apparmor profile + mkdir -p $(DESTDIR)/etc/apparmor.d + $(INSTALL_FILE) debian/apparmor-profile.dhcpd3 $(DESTDIR)/etc/apparmor.d/usr.sbin.dhcpd3 + $(INSTALL_FILE) debian/apparmor-profile.dhclient3 $(DESTDIR)/etc/apparmor.d/sbin.dhclient3 + + # Install apparmor hooks + mkdir -p $(DESTDIR)/usr/share/apport/package-hooks + $(INSTALL_FILE) -m 644 debian/apport/dhcp3-client.py $(DESTDIR)/usr/share/apport/package-hooks/dhcp3-client.py + $(INSTALL_FILE) -m 644 debian/apport/dhcp3-server.py $(DESTDIR)/usr/share/apport/package-hooks/dhcp3-server.py + + # Install dhcp's conffile. + $(INSTALL_FILE) -m 644 debian/dhcpd.conf $(DESTDIR)/etc/dhcp3 + + # Install dhcp-client's conffiles. + $(INSTALL_FILE) -m 644 debian/dhclient.conf $(DESTDIR)/etc/dhcp3 + + # install the udeb binary + $(INSTALL_PROGRAM) -m 755 $(DESTDIR)/sbin/dhclient \ + `pwd`/debian/dhcp3-client-udeb/sbin/ + + # udeb needs simplified dhclient script + $(INSTALL_FILE) -m 755 `pwd`/debian/dhclient-script.udeb \ + `pwd`/debian/dhcp3-client-udeb/sbin/dhclient-script + + # Rename binaries so they do not conflict with the binaries in the + # v2 packages. + for f in /usr/sbin/dhcpd /usr/sbin/dhcrelay /sbin/dhclient; do \ + mv $(DESTDIR)$$f $(DESTDIR)$${f}3; \ + done + + # Rename man page so the have the same name as the binaries. + for f in dhcpd dhcrelay dhclient; do \ + mv $(DESTDIR)/usr/share/man/man8/$$f.8 \ + $(DESTDIR)/usr/share/man/man8/$${f}3.8; \ + done + + # 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/dhcp3-client/etc/dhcp3/dhclient-enter-hooks.d/debug + cp debian/debug-exit debian/dhcp3-client/etc/dhcp3/dhclient-exit-hooks.d/debug + cp debian/rfc3442-classless-routes debian/dhcp3-client/etc/dhcp3/dhclient-exit-hooks.d + + dh_movefiles + # Create symlink so we don't break ifupdown + dh_link -a + + # Remove unwanted directories that dh_movefiles leaves around + rmdir $(DESTDIR)/sbin/ + rmdir $(DESTDIR)/usr/lib/ + rm -Rf $(DESTDIR)/usr/include/ + + # Install Linux specific documentation +ifeq ($(DEB_HOST_ARCH_OS), linux) + for p in dhcp3-client dhcp3-relay dhcp3-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 + $(INSTALL_FILE) debian/dhcp3-client.lintian \ + debian/dhcp3-client/usr/share/lintian/overrides/dhcp3-client + $(INSTALL_FILE) debian/dhcp3-server-ldap.lintian \ + debian/dhcp3-server-ldap/usr/share/lintian/overrides/dhcp3-server-ldap + + touch install-stamp + +UDEBPACKAGE=dhcp3-client-udeb +VERSION=$(shell dpkg-parsechangelog | grep ^Version:.* | cut -d ' ' -f 2) +ARCH=$(shell dpkg --print-architecture) +#UDEBFILENAME=$(UDEBPACKAGE)_$(VERSION)_$(ARCH).udeb +PRIORITY=$(shell grep ^Priority: debian/control | cut -d ' ' -f 2) + +# Build architecture-dependent files here (this package does not contain +# architecture-independent files). +binary-arch: build install +# dh_testversion + dh_testdir + dh_testroot + dh_installdebconf + dh_installdocs -A debian/README.Debian -X doc/ja_JP.eucJP + dh_installdocs -p dhcp3-server-ldap contrib/dhcpd-conf-to-ldap.pl + dh_installexamples -a +# dh_installmenu -a +# dh_installemacsen -a + dh_installinit -a -n +# dh_installcron -a +# dh_installmanpages -a +# dh_undocumented + dh_installchangelogs + dh_installchangelogs -p dhcp3-server-ldap Changelog-LDAP + dh_install -p dhcp3-server-ldap + dh_apparmor -p dhcp3-client --profile-name=sbin.dhclient3 + dh_apparmor -p dhcp3-server --profile-name=usr.sbin.dhcpd3 + dh_strip -a + dh_compress + dh_fixperms -a + dh_installdeb + dh_shlibdeps -a + dh_gencontrol +# dh_makeshlibs -a + dh_md5sums -a --no-package=dhcp3-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 --- dhcp3-3.1.3.orig/debian/dhcp3-client.postrm +++ dhcp3-3.1.3/debian/dhcp3-client.postrm @@ -0,0 +1,26 @@ +#!/bin/sh -e +# +# $Id: dhcp3-client.postrm,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ +# + +case "$1" in + purge) + # Remove lease database + rm -f /var/lib/dhcp3/dhclient.leases* + + # Try to remove directory + if [ -d /var/lib/dhcp3 ]; then + rmdir --ignore-fail-on-non-empty /var/lib/dhcp3/ + fi + + if [ -e /etc/dhcp3/dhclient-script ]; then + rm /etc/dhcp3/dhclient-script + rmdir --ignore-fail-on-non-empty /etc/dhcp3 + fi + ;; + + abort-install|abort-upgrade) + ;; +esac + +#DEBHELPER# --- dhcp3-3.1.3.orig/debian/dhcp3-common.docs +++ dhcp3-3.1.3/debian/dhcp3-common.docs @@ -0,0 +1 @@ +README RELNOTES doc/api+protocol --- dhcp3-3.1.3.orig/debian/dhcp3-client.links +++ dhcp3-3.1.3/debian/dhcp3-client.links @@ -0,0 +1,3 @@ +sbin/dhclient3 sbin/dhclient +usr/share/man/man8/dhclient3.8.gz usr/share/man/man8/dhclient.8.gz +etc/apparmor.d/sbin.dhclient3 etc/apparmor/init/network-interface-security/sbin.dhclient3 --- dhcp3-3.1.3.orig/debian/dhcp3-server.postinst +++ dhcp3-3.1.3/debian/dhcp3-server.postinst @@ -0,0 +1,100 @@ +#!/bin/sh -e +# +# Inspiration stolen from the fetchmail* packages. Thanks Henrique! +# +# $Id: dhcp3-server.postinst,v 1.4 2003/12/18 21:29:05 mdz Exp $ +# + +#DEBHELPER# + +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/dhcp3-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/dhcp3-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 dhcp3-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 --------------------- + +if [ ! -e /var/lib/dhcp3/dhcpd.leases ]; then + if test -e /var/lib/dhcp/dhcpd.leases; then + cp /var/lib/dhcp/dhcpd.leases /var/lib/dhcp3/dhcpd.leases + else + touch /var/lib/dhcp3/dhcpd.leases + fi +fi + +[ -x /sbin/restorecon ] && restorecon /var/lib/dhcp3/dhcpd.leases + +# If we're upgrading from something before 3.0.2-1 we need to move +# the symlinks in /etc/rc?.d because we want to fix #292357 for existing +# users as well as new users +if dpkg --compare-versions "$2" lt-nl "3.0.2-1"; then + for rcdir in /etc/rc?.d + do + [ -e ${rcdir}/S20dhcp3-server ] && mv ${rcdir}/S20dhcp3-server ${rcdir}/S40dhcp3-server + [ -e ${rcdir}/K20dhcp3-server ] && mv ${rcdir}/K20dhcp3-server ${rcdir}/K40dhcp3-server + done +fi + +update-rc.d dhcp3-server start 40 2 3 4 5 . stop 40 1 . >/dev/null + +# If we're upgrading from something before 3.1.1-2, we need to remove the +# shutdown links from /etc/rc{0,6}.d as part of #486518 +if dpkg --compare-versions "$2" lt-nl "3.1.1-2"; then + rm -f /etc/rc0.d/K40dhcp3-server /etc/rc6.d/K40dhcp3-server +fi + +# Init script could fail, since dhcp3 is unconfigured on a new install +invoke-rc.d dhcp3-server start || true + +db_stop + +exit 0 --- dhcp3-3.1.3.orig/debian/dhcp3-server.init.d +++ dhcp3-3.1.3/debian/dhcp3-server.init.d @@ -0,0 +1,124 @@ +#!/bin/sh +# +# $Id: dhcp3-server.init.d,v 1.4 2003/07/13 19:12:41 mdz Exp $ +# + +### BEGIN INIT INFO +# Provides: dhcp3-server +# Required-Start: $remote_fs $network $syslog +# Required-Stop: $remote_fs $network $syslog +# Should-Start: $local_fs slapd +# Should-Stop: $local_fs slapd +# Default-Start: 2 3 4 5 +# Default-Stop: 1 +# 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/dhcp3/dhcpd.conf + +# Allow ltsp to override +if [ -f /etc/ltsp/dhcpd.conf ]; then + CONFIG_FILE=/etc/ltsp/dhcpd.conf +fi + +test -f /usr/sbin/dhcpd3 || exit 0 + +# It is not safe to start if we don't have a default configuration... +if [ ! -f /etc/default/dhcp3-server ]; then + echo "/etc/default/dhcp3-server does not exist! - Aborting..." + echo "Run 'dpkg-reconfigure dhcp3-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/dhcp3-server ] && . /etc/default/dhcp3-server + +NAME=dhcpd3 +DESC="DHCP server" +DHCPDPID=/var/run/dhcp3-server/dhcpd.pid + +test_config() +{ + if ! /usr/sbin/dhcpd3 -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/dhcpd3 -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/dhcp3-server + chown dhcpd:dhcpd /var/run/dhcp3-server + [ -e /var/lib/dhcp3/dhcpd.leases ] || touch /var/lib/dhcp3/dhcpd.leases + chown dhcpd:dhcpd /var/lib/dhcp3 /var/lib/dhcp3/dhcpd.leases + if [ -e /var/lib/dhcp3/dhcpd.leases~ ]; then + chown dhcpd:dhcpd /var/lib/dhcp3/dhcpd.leases~ + fi + + start-stop-daemon --start --quiet --pidfile $DHCPDPID \ + --exec /usr/sbin/dhcpd3 -- -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 --- dhcp3-3.1.3.orig/debian/dhcp3-relay.files +++ dhcp3-3.1.3/debian/dhcp3-relay.files @@ -0,0 +1,2 @@ +usr/sbin/dhcrelay3 +usr/share/man/man8/dhcrelay3.8 --- dhcp3-3.1.3.orig/debian/dhcp3-server-ldap.preinst +++ dhcp3-3.1.3/debian/dhcp3-server-ldap.preinst @@ -0,0 +1,16 @@ +#!/bin/sh + +set -e + +if [ "$1" = install -o "$1" = upgrade ]; then + if dpkg-divert --list /usr/sbin/dhcpd3 \ + | grep -q "by dhcp3-server-ldap"; + then + exit 0 + fi + + dpkg-divert --package dhcp3-server-ldap --add --rename \ + --divert /usr/sbin/dhcpd3-noldap /usr/sbin/dhcpd3 +fi + +#DEBHELPER# --- dhcp3-3.1.3.orig/debian/dhcp3-server-ldap.postrm +++ dhcp3-3.1.3/debian/dhcp3-server-ldap.postrm @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +if [ "$1" = remove ]; then + dpkg-divert --package dhcp3-server-ldap --remove --rename \ + --divert /usr/sbin/dhcpd3-noldap /usr/sbin/dhcpd3 +fi + +#DEBHELPER# --- dhcp3-3.1.3.orig/debian/watch +++ dhcp3-3.1.3/debian/watch @@ -0,0 +1,3 @@ +version=3 + +ftp://ftp.isc.org/isc/dhcp/dhcp-(.*)\.tar\.gz debian uupdate --- dhcp3-3.1.3.orig/debian/README.source +++ dhcp3-3.1.3/debian/README.source @@ -0,0 +1,4 @@ +This package uses dpatch. The one oddity is that the non-LDAP-enabled +dhcp3-server package is build after the LDAP-enabled one, by rewinding the LDAP +patch, so if any additional pathes are needed, they should be added to +debian/patches/00list *before* the two LDAP-related patches at the end. --- dhcp3-3.1.3.orig/debian/dhcp3-server-ldap.docs +++ dhcp3-3.1.3/debian/dhcp3-server-ldap.docs @@ -0,0 +1,2 @@ +README.ldap +contrib/dhcp.schema --- dhcp3-3.1.3.orig/debian/dhcp3-server-ldap.lintian +++ dhcp3-3.1.3/debian/dhcp3-server-ldap.lintian @@ -0,0 +1 @@ +dhcp3-server-ldap: possible-gpl-code-linked-with-openssl --- dhcp3-3.1.3.orig/debian/dhcp3-relay.config +++ dhcp3-3.1.3/debian/dhcp3-relay.config @@ -0,0 +1,30 @@ +#!/bin/sh -e +# +# $Id: dhcp3-relay.config,v 1.3 2003/06/18 18:11:21 peloy Exp $ +# + +# Source debconf library. +. /usr/share/debconf/confmodule + +# Read in the current defaults (if available) +INITCONFFILE=/etc/default/dhcp3-relay + +# Read current configuration - the user might not use dpkg-reconfigure +# to change /etc/default/dhcp3-relay, so we need to do this to +# preserve the configuration. +if [ -r ${INITCONFFILE} ]; then + . ${INITCONFFILE} + db_set dhcp3-relay/servers "${SERVERS}" + db_set dhcp3-relay/interfaces "${INTERFACES}" +fi + +db_title "DHCP Relay" + +db_input high dhcp3-relay/servers || true +db_go + +db_input high dhcp3-relay/interfaces || true +db_go + +db_input high dhcp3-relay/options || true +db_go --- dhcp3-3.1.3.orig/debian/dhcp3-client.NEWS +++ dhcp3-3.1.3/debian/dhcp3-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 --- dhcp3-3.1.3.orig/debian/dhcp3-server-ldap.dirs +++ dhcp3-3.1.3/debian/dhcp3-server-ldap.dirs @@ -0,0 +1,2 @@ +usr/sbin +usr/share/lintian/overrides --- dhcp3-3.1.3.orig/debian/dhcp3-server.postrm +++ dhcp3-3.1.3/debian/dhcp3-server.postrm @@ -0,0 +1,33 @@ +#!/bin/sh -e +# +# $Id: dhcp3-server.postrm,v 1.4 2004/05/26 17:08:00 peloy Exp $ +# + +case "$1" in + remove) + # Nothing to do + ;; + + purge) + # Remove database + rm -f /var/lib/dhcp3/dhcpd.leases /var/lib/dhcp3/dhcpd.leases~ + + # Remove 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 + + update-rc.d dhcp3-server remove >/dev/null + ;; + + upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + # Nothing to do + ;; +esac + +#DEBHELPER# + +exit 0 --- dhcp3-3.1.3.orig/debian/dhcp3-client.postinst +++ dhcp3-3.1.3/debian/dhcp3-client.postinst @@ -0,0 +1,44 @@ +#!/bin/sh -e +# +# $Id: dhcp3-client.postinst,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ +# + +# Source debconf library. +. /usr/share/debconf/confmodule + +case "$1" in + configure) + if [ ! -e /var/lib/dhcp3/dhclient.leases ]; then + if test -e /var/lib/dhcp/dhclient.leases; then + cp /var/lib/dhcp/dhclient.leases /var/lib/dhcp3/dhclient.leases + else + touch /var/lib/dhcp3/dhclient.leases + fi + fi + + if dpkg --compare-versions "$2" lt-nl "3.0.4-2"; then + if [ -e /etc/dhcp3/dhclient-script ]; then + db_input high dhcp3-client/dhclient-script_moved || true + db_go + else + db_input high dhcp3-client/dhclient-needs-restarting || true + db_go + fi + fi + + if [ -e /etc/dhcp3/dhclient.conf.oldconfig ]; then + mv /etc/dhcp3/dhclient.conf.oldconfig /etc/dhcp3/dhclient.conf + fi + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + exit 0 + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +#DEBHELPER# --- dhcp3-3.1.3.orig/debian/dhclient-script.linux +++ dhcp3-3.1.3/debian/dhclient-script.linux @@ -0,0 +1,281 @@ +#!/bin/bash + +# 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 + +make_resolv_conf() { + if [ "$new_domain_name" -o "$new_domain_name_servers" ]; then + # Find out whether we are going to mount / rw + exec 9>&0 &9 9>&- + + # Wait for /etc/resolv.conf to become writable + if [ "$rootmode" = "rw" ]; then + while [ ! -w /etc ]; do + sleep 0.1 + done + fi + fi + + if [ "$new_domain_name" -o "$new_domain_search" \ + -o "$new_domain_name_servers" ]; then + local new_resolv_conf=/etc/resolv.conf.dhclient-new + rm -f $new_resolv_conf + + if [ "$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 + + if [ "$new_domain_name" ]; then + echo domain ${new_domain_name%% *} >>$new_resolv_conf + fi + + if [ "$new_domain_search" ]; then + if [ "$new_domain_name" ]; then + domain_in_search_list="" + for domain in "$new_domain_search"; do + if [ "$domain" = "$new_domain_name" ]; then + domain_in_search="Yes" + fi + done + if [ ! "$domain_in_search" ]; then + new_domain_search="$new_domain_name $new_domain_search" + fi + fi + echo "search ${new_domain_search}" >> $new_resolv_conf + elif [ "$new_domain_name" ]; then + echo "search ${new_domain_name}" >> $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_hook() { + local script="$1" + local exit_status + 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" + save_exit_status=$exit_status + fi + + return $exit_status +} + +run_hookdir() { + local dir="$1" + local exit_status + 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/dhcp3/dhclient-exit-hooks "$@"; then + exit_status=$? + fi + + # Now run scripts in the Debian-specific directory. + if ! run_hookdir /etc/dhcp3/dhclient-exit-hooks.d "$@"; then + exit_status=$? + fi + + exit $exit_status +} + +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 "$old_subnet_mask" ]; then + old_subnet_arg="netmask $old_subnet_mask" +fi +if [ -n "$alias_subnet_mask" ]; then + alias_subnet_arg="netmask $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 [ -n "$new_interface_mtu" ] && [ $new_interface_mtu -gt 576 ]; 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/dhcp3/dhclient-enter-hooks +run_hookdir /etc/dhcp3/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 + # Bring down alias interface. Its routes will disappear too. + ifconfig $interface:0- inet 0 + fi + ifconfig $interface inet 0 up + + ;; + + BOUND|RENEW|REBIND|REBOOT) + + if [ -n "$new_host_name" ]; then + if [ ! -s /etc/hostname ]; then + hostname "$new_host_name" + fi + fi + + if [ -n "$old_ip_address" -a -n "$alias_ip_address" -a \ + "$alias_ip_address" != "$old_ip_address" ]; then + # Possible new alias. Remove old alias. + ifconfig $interface:0- inet 0 + fi + + if [ -n "$old_ip_address" -a \ + "$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 0 + + fi + + if [ -z "$old_ip_address" -o "$old_ip_address" != "$new_ip_address" -o \ + "$reason" = "BOUND" -o "$reason" = "REBOOT" ]; then + + ifconfig $interface inet $new_ip_address $new_subnet_arg \ + $new_broadcast_arg $mtu_arg + + # point to point + if [ "$new_subnet_mask" == "255.255.255.255" ]; then + for router in $new_routers; do + route add -host $router dev $interface + done + fi + + for router in $new_routers; do + route add default dev $interface gw $router $metric_arg + done + fi + + if [ "$new_ip_address" != "$alias_ip_address" -a -n "$alias_ip_address" ]; + then + ifconfig $interface:0- inet 0 + ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg + route add -host $alias_ip_address $interface:0 + fi + + make_resolv_conf + + ;; + + EXPIRE|FAIL|RELEASE|STOP) + if [ -n "$alias_ip_address" ]; then + # Turn off alias interface. + ifconfig $interface:0- inet 0 + fi + + if [ -n "$old_ip_address" ]; then + # Shut down interface, which will delete routes and clear arp cache. + ifconfig $interface inet 0 + fi + + if [ -n "$alias_ip_address" ]; then + ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg + route add -host $alias_ip_address $interface:0 + fi + + ;; + + TIMEOUT) + if [ -n "$alias_ip_address" ]; then + ifconfig $interface:0- inet 0 + fi + + ifconfig $interface inet $new_ip_address $new_subnet_arg \ + $new_broadcast_arg $mtu_arg + + set -- $new_routers + first_router="$1" + + if [ -z "$first_router" ] || ping -q -c 1 $first_router; then + if [ "$new_ip_address" != "$alias_ip_address" -a \ + -n "$alias_ip_address" ]; then + ifconfig $interface:0 inet $alias_ip_address $alias_subnet_arg + route add -host $alias_ip_address dev $interface:0 + fi + + for router in $new_routers; do + route add default dev $interface gw $router $metric_arg + 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 --- dhcp3-3.1.3.orig/debian/dhclient-script.kfreebsd +++ dhcp3-3.1.3/debian/dhclient-script.kfreebsd @@ -0,0 +1,249 @@ +#!/bin/bash +# dhclient-script for GNU/kFreeBSD. Aurelien Jarno, May, 2005. +# Based on Linux and FreeBSD scripts. + +make_resolv_conf() { + if [ -n "$new_domain_name" -o -n "$new_domain_name_servers" ]; then + local 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 + new_domain_search="${new_domain_search% }" + 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_hook() { + local script="$1" + local exit_status + 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" + save_exit_status=$exit_status + fi + + return $exit_status +} + +run_hookdir() { + local dir="$1" + local exit_status + 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/dhcp3/dhclient-exit-hooks "$@"; then + exit_status=$? + fi + + # Now run scripts in the Debian-specific directory. + if ! run_hookdir /etc/dhcp3/dhclient-exit-hooks.d "$@"; then + exit_status=$? + fi + + exit $exit_status +} + +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 "$old_subnet_mask" ]; then + old_subnet_arg="netmask $old_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/dhcp3/dhclient-enter-hooks +run_hookdir /etc/dhcp3/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" -a -n "$host_name" -a \ + "$host_name" != "$old_host_name" ]; then + hostname "$new_host_name" + fi + + if [ -n "$old_ip_address" -a -n "$alias_ip_address" -a \ + "$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" -a \ + "$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" -o "$old_ip_address" != "$new_ip_address" -o \ + "$reason" = "BOUND" -o "$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 [ "$new_ip_address" != "$alias_ip_address" -a -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 + + 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 [ "$new_ip_address" != "$alias_ip_address" -a \ + -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 + 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 --- dhcp3-3.1.3.orig/debian/apparmor-profile.dhcpd3 +++ dhcp3-3.1.3/debian/apparmor-profile.dhcpd3 @@ -0,0 +1,54 @@ +# vim:syntax=apparmor +# Last Modified: Tue Feb 10 15:02:44 2009 +# Author: Jamie Strandboge + +#include + +/usr/sbin/dhcpd3 { + #include + #include + #include + + capability net_bind_service, + capability net_raw, + capability setgid, + capability setuid, + + network inet raw, + network packet packet, + + /etc/hosts.allow r, + /etc/hosts.deny r, + + /etc/dhcp3/ r, + /etc/dhcp3/** r, + /etc/dhcpd.conf r, + /etc/dhcpd_ldap.conf r, + + /usr/sbin/dhcpd3 mr, + + /var/lib/dhcp3/dhcpd.leases* lrw, + /var/log/ r, + /var/log/** rw, + /var/run/dhcp3-server/dhcpd.pid w, + + # LTSP. See: + # http://www.ltsp.org/~sbalneav/LTSPManual.html + # https://wiki.edubuntu.org/ + /etc/ltsp/ r, + /etc/ltsp/** r, + /etc/dhcpd-k12ltsp.conf r, + /etc/dhcpd.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, + + # Site-specific additions and overrides. See local/README for details. + #include +} --- dhcp3-3.1.3.orig/debian/dhcp3-client.templates +++ dhcp3-3.1.3/debian/dhcp3-client.templates @@ -0,0 +1,32 @@ +# 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. + +# Should probably be dropped +Template: dhcp3-client/dhclient-script_moved +Type: note +_Description: dhclient-script moved + 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. + . + Please consider using the hook infrastructure (see dhclient-script(8) + for more information) instead of modifying dhclient-script. + +# Should probably be dropped +Template: dhcp3-client/dhclient-needs-restarting +Type: note +_Description: dhclient needs restarting + 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. + . + Naturally, you should exercise caution if you are managing a remote server via + an interface using DHCP. --- dhcp3-3.1.3.orig/debian/rfc3442-classless-routes +++ dhcp3-3.1.3/debian/rfc3442-classless-routes @@ -0,0 +1,39 @@ +RUN="yes" + + +if [ "$RUN" = "yes" ]; then + if [ "$new_rfc3442_classless_static_routes" != "" ]; then + if [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then + rfc_routes=($new_rfc3442_classless_static_routes) + + for(( i=0; i < ${#rfc_routes[@]}; )); do + net_length=${rfc_routes[$i]} + + ((i++)) + + net_address=(0 0 0 0) + for(( j=0; j < $[$net_length / 8 + \ + ($net_length % 8 ? 1 : 0)]; j++, i++)); do + + net_address[$j]=${rfc_routes[$i]} + done + + gateway=(0 0 0 0) + for (( j=0; j < 4; j++, i++ )); do + gateway[$j]=${rfc_routes[$i]} + done + + old_IFS="$IFS" + IFS='.' + + if [ "$net_length" == "32" ]; then + /sbin/route add -host "${net_address[*]}" gw "${gateway[*]}" + else + /sbin/route add -net "${net_address[*]}/$net_length" gw "${gateway[*]}" + fi + IFS="$old_IFS" + + done + fi + fi +fi --- dhcp3-3.1.3.orig/debian/changelog +++ dhcp3-3.1.3/debian/changelog @@ -0,0 +1,2125 @@ +dhcp3 (3.1.3-2ubuntu6.2) maverick-security; 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 09:03:47 -0400 + +dhcp3 (3.1.3-2ubuntu6.1) maverick-security; 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 Mon, 11 Apr 2011 08:55:27 -0400 + +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-2) unstable; urgency=low + + * Fix dhclient-script so that changes in the DHCP-provided hostname cause a + hostname change to occur on the client (closes: #508804) + * Remove unnecessary sleep from dhclient-script + * Reorganise the generation of /etc/resolv.conf so that the nameservers are + first + * Generate an /etc/resolv.conf when no domain-name is provided but a + domain-search is + * Add patch from Petter Reinholdtsen to fix SIGPIPE when talking to LDAP + server (closes: #559160) + * Add patch from Petter Reinholdtsen to fix memory leak in LDAP code + (closes: #531050) + + -- Andrew Pollock Fri, 08 Jan 2010 15:58:56 -0800 + +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.3-1) unstable; urgency=low + + * New upstream release + + -- Andrew Pollock Wed, 07 Oct 2009 23:25:53 -0700 + +dhcp3 (3.1.2p1-2) unstable; urgency=high + + * Address DoS when the dhcp-client-identifier and hardware Ethernet + configuration settings are used at the same time (CVE-2009-1892) (closes: + #549584) + * debian/control: bumped Standards-Version (no changes) + * debian/changelog: delimited legacy changelog entry to placate Lintian + * added debian/README.source + + -- Andrew Pollock Sun, 04 Oct 2009 21:29:16 -0700 + +dhcp3 (3.1.2p1-1) unstable; urgency=high + + * New upstream release + * Address stack overflow vulnerability in dhclient when handling large + netmask options (CVE-2009-0692) (CERT VU#410676) + * debian/control: build-depend on debhelper >> 5 + * debian/dhcp3-server.postinst: use a non-absolute path to restorecon + * debian/dhcp3-{server,relay}.init.d: add a Lintian-detectable test for + /etc/default/dhcp3-server before sourcing it + * debian/control: bump Standards-Version + + -- Andrew Pollock Tue, 14 Jul 2009 22:55:03 -0700 + +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 + --- dhcp3-3.1.3.orig/debian/dhcp3-server-ldap.postinst +++ dhcp3-3.1.3/debian/dhcp3-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 dhcp3-server-ldap --remove \ + --rename --divert /usr/sbin/dhcpd3-noldap \ + /usr/sbin/dhcpd3 + done +fi + +#DEBHELPER# --- dhcp3-3.1.3.orig/debian/dhcp3-relay.postinst +++ dhcp3-3.1.3/debian/dhcp3-relay.postinst @@ -0,0 +1,92 @@ +#!/bin/sh -e +# +# $Id: dhcp3-relay.postinst,v 1.4 2003/06/18 18:11:21 peloy Exp $ +# + +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/dhcp3-relay + +# Generate configuration file if it does not exist, using default values. +[ -r "${INITCONFFILE}" ] || { + echo Generating ${INITCONFFILE}... >&2 + cat >${INITCONFFILE} <<'EOFMAGICNUMBER1234' +# Defaults for dhcp3-relay initscript +# sourced by /etc/init.d/dhcp3-relay +# installed at /etc/default/dhcp3-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 dhcp3-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 dhcp3-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 dhcp3-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 --------------------- + +update-rc.d dhcp3-relay defaults > /dev/null + +invoke-rc.d dhcp3-relay start + +db_stop + +#DEBHELPER# + +exit 0 --- dhcp3-3.1.3.orig/debian/dhcp3-server.templates +++ dhcp3-3.1.3/debian/dhcp3-server.templates @@ -0,0 +1,51 @@ +# 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: dhcp3-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/dhcp3/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: dhcp3-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. + +# Should probably be dropped +Template: dhcp3-server/new_auth_behavior +Type: note +_Description: Non-authoritative version of DHCP server + The version 3 DHCP server is non-authoritative by default. + . + 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. + +# Should probably be dropped +Template: dhcp3-server/new_next-server_behaviour +Type: note +_Description: Change in default behaviour of the next-server directive + 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. --- dhcp3-3.1.3.orig/debian/debug-enter +++ dhcp3-3.1.3/debian/debug-enter @@ -0,0 +1,28 @@ +# $Id: debug-enter,v 1.2 2003/06/18 18:11:21 peloy Exp $ +# +# 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 + + for i in reason interface medium alias_ip_address new_ip_address \ + new_subnet_mask new_domain_name new_domain_search \ + new_domain_name_servers \ + new_routers new_static_routes old_ip_address old_subnet_mask \ + old_domain_name old_domain_search old_domain_name_servers \ + old_routers old_static_routes; do + + echo $i=\'${!i}\' >> /tmp/dhclient-script.debug + done + + echo '--------------------------' >> /tmp/dhclient-script.debug +fi --- dhcp3-3.1.3.orig/debian/dhcp3-relay.postrm +++ dhcp3-3.1.3/debian/dhcp3-relay.postrm @@ -0,0 +1,15 @@ +#!/bin/sh -e +# +# $Id: dhcp3-relay.postrm,v 1.2 2004/05/26 17:08:00 peloy Exp $ +# + +if [ "$1" = "purge" ]; then + # Remove init.d configuration file + rm -f /etc/default/dhcp3-relay + + update-rc.d dhcp3-relay remove >/dev/null +fi + +#DEBHELPER# + +exit 0 --- dhcp3-3.1.3.orig/debian/dhcp3-server.examples +++ dhcp3-3.1.3/debian/dhcp3-server.examples @@ -0,0 +1 @@ +server/dhcpd.conf --- dhcp3-3.1.3.orig/debian/dhcp3-server.dirs +++ dhcp3-3.1.3/debian/dhcp3-server.dirs @@ -0,0 +1,4 @@ +var/run +usr/sbin +var/lib/dhcp3 +etc/apparmor.d/force-complain --- dhcp3-3.1.3.orig/debian/dhcp3-client.files +++ dhcp3-3.1.3/debian/dhcp3-client.files @@ -0,0 +1,9 @@ +sbin/dhclient3 +sbin/dhclient-script +etc/dhcp3/dhclient.conf +usr/share/man/man8/dhclient3.8 +usr/share/man/man8/dhclient-script.8 +usr/share/man/man5/dhclient.conf.5 +usr/share/man/man5/dhclient.leases.5 +usr/share/apport/package-hooks/dhcp3-client.py +etc/apparmor.d/sbin.dhclient3 --- dhcp3-3.1.3.orig/debian/debug-exit +++ dhcp3-3.1.3/debian/debug-exit @@ -0,0 +1,27 @@ +# $Id: debug-exit,v 1.2 2003/06/18 18:11:21 peloy Exp $ +# +# 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 + + for i in reason interface medium alias_ip_address new_ip_address \ + new_subnet_mask new_domain_name new_domain_search \ + new_domain_name_servers new_routers new_static_routes \ + old_ip_address old_subnet_mask old_domain_name \ + old_domain_search old_domain_name_servers old_routers \ + old_static_routes; do + echo $i=\'${!i}\' >> /tmp/dhclient-script.debug + done + + echo '--------------------------' >> /tmp/dhclient-script.debug +fi --- dhcp3-3.1.3.orig/debian/dhcp3-relay.templates +++ dhcp3-3.1.3/debian/dhcp3-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: dhcp3-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: dhcp3-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: dhcp3-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'. --- dhcp3-3.1.3.orig/debian/dhcp3-client.dirs +++ dhcp3-3.1.3/debian/dhcp3-client.dirs @@ -0,0 +1,8 @@ +etc/dhcp3/dhclient-enter-hooks.d +etc/dhcp3/dhclient-exit-hooks.d +var/run +var/lib/dhcp3 +usr/share/man/man5 +usr/share/lintian/overrides +etc/apparmor.d/force-complain +etc/network/if-pre-up.d --- dhcp3-3.1.3.orig/debian/compat +++ dhcp3-3.1.3/debian/compat @@ -0,0 +1 @@ +5 --- dhcp3-3.1.3.orig/debian/dhcp3-common.files +++ dhcp3-3.1.3/debian/dhcp3-common.files @@ -0,0 +1,4 @@ +usr/share/man/man5/dhcp-* +usr/share/man/man1/omshell.* +usr/bin/omshell +usr/share/man/ja --- dhcp3-3.1.3.orig/debian/dhcp3-client.lintian +++ dhcp3-3.1.3/debian/dhcp3-client.lintian @@ -0,0 +1,2 @@ +dhcp3-client: no-debconf-config +dhcp3-client: postinst-uses-db-input --- dhcp3-3.1.3.orig/debian/README.Debian +++ dhcp3-3.1.3/debian/README.Debian @@ -0,0 +1,47 @@ +ISC DHCP for Debian +------------------- + +This is the Debian-packaged version of the Internet Software Consortium +(ISC) DHCP package. + +This release has full support for operation on multiple interfaces and needs +a 2.2.x or later kernel; the 2.0.x kernels are _not_ supported. + +The sources of the ISC DHCP package produce the following Debian packages: + +dhcp3-common: Files used by all the dhcp packages. +dhcp3-server: DHCP Server +dhcp3-client: A DHCP Client +dhcp3-client-udeb: Small DHCP client for debian-installer +dhcp3-relay: A DHCP Relay +dhcp3-dev: API for accessing and modifying the DHCP server and client state + +If you get the following error when trying to run dhclient, dhcpd or +dhcrelay: + + Can't install packet filter program: Protocol not available + exiting. + +then you need to edit your linux kernel .config file, set CONFIG_FILTER=y, +and rebuild your kernel. See /usr/share/doc/dhcp3-server/README.gz for +more information. + +PLEASE NOTE: Upon upgrading dhcp3-client, dhclient is NOT restarted. Therefore, +after upgrading, the version of dhclient running will still be from the +previous version of dhcp3-client that was installed. + +Eloy A. Paris +Matt Zimmerman +Andrew Pollock + +$Id: README.Debian,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ + + +Apparmor Profile +---------------- +If your system uses apparmor, please note that the shipped enforcing profiles +for dhcp3-server and dhcp3-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. + --- dhcp3-3.1.3.orig/debian/apparmor-profile.dhclient3 +++ dhcp3-3.1.3/debian/apparmor-profile.dhclient3 @@ -0,0 +1,72 @@ +# vim:syntax=apparmor +# Last Modified: Fri Jul 17 11:46:19 2009 +# Author: Jamie Strandboge +#include + +/sbin/dhclient3 { + #include + #include + + capability net_bind_service, + capability net_raw, + capability sys_module, + capability dac_override, + + network packet, + network raw, + + @{PROC}/*/net/ r, + @{PROC}/*/net/** r, + + /sbin/dhclient3 mr, + + /etc/dhclient.conf r, + /etc/dhcp3/ r, + /etc/dhcp3/** r, + + /var/lib/dhcp3/dhclient* lrw, + /var/run/dhclient*.pid lrw, + /var/run/dhclient*.lease* lrw, + + # NetworkManager + /var/run/nm*conf r, + + # 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/dhcp3/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, +} + --- dhcp3-3.1.3.orig/debian/dhcpd.conf +++ dhcp3-3.1.3/debian/dhcpd.conf @@ -0,0 +1,111 @@ +# +# 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. +# +# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $ +# + +# 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; +# } +#} --- dhcp3-3.1.3.orig/debian/dhclient-script.udeb +++ dhcp3-3.1.3/debian/dhclient-script.udeb @@ -0,0 +1,111 @@ +#!/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 + +make_resolv_conf() { + if [ -n "$new_domain_name" ] || [ -n "$new_domain_name_servers" ]; then + local 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=$(cat /proc/sys/kernel/hostname) + if [ -z "$current_hostname" ] || [ "$current_hostname" = "(none)" ]; then + echo "$new_host_name" > /proc/sys/kernel/hostname + fi +} + +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) + ip link set $interface up + + ;; + 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. + ip addr del $old_ip_address$old_mask $old_broadcast_arg dev $interface + ip link set $interface down + fi + + if [ -n "$new_interface_mtu" ]; then + ip link set $interface mtu $new_interface_mtu || true + fi + + if [ -z "$old_ip_address" ] || [ "$old_ip_address" != "$new_ip_address" ] || \ + [ "$reason" = "BOUND" ] || [ "$reason" = "REBOOT" ]; then + + ip link set $interface up + ip addr flush dev $interface + ip addr add $new_ip_address$new_mask $new_broadcast_arg dev $interface + + for router in $new_routers; do + ip route add default via $router + 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 + # Shut down interface, which will delete routes and clear arp cache. + ip addr flush dev $interface + ip link set $interface down + fi + + ;; + + TIMEOUT) + ip link set $interface down + + ;; +esac + +exit 0 --- dhcp3-3.1.3.orig/debian/po/fi.po +++ dhcp3-3.1.3/debian/po/fi.po @@ -0,0 +1,249 @@ +msgid "" +msgstr "" +"Project-Id-Version: dhcp3, 3.0.6.dfsg-1\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DHCP-välittäjätaustaohjelman lisäasetukset:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Esimerkiksi: â€-m replace†tai â€-a -Dâ€." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Asetuksia tulee muokata käsin asennuksen jälkeen" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/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 +#: ../dhcp3-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 +#: ../dhcp3-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Verkkoliitynnät, joita DHCP-palvelimen tulisi kuunnella:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "DHCP-palvelimen ei-määräävä versio" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "Versiossa 3 DHCP-palvelin on oletuksena ei-määräävä." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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ä." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Määreen â€next-server†oletustoiminta on muuttunut" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-server/" +"NEWS.Debian.gz ja /usr/share/doc/dhcp3-common/RELNOTES.gz löytyy lisäinfoa " +"(englanniksi)." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script siirretty" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/dhclient-" +"script on muokattu jossain vaiheessa, joten sitä ei poistettu. Sitä ei " +"kuitenkaan enää käytetä." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient tulee käynnistää uudelleen." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." --- dhcp3-3.1.3.orig/debian/po/templates.pot +++ dhcp3-3.1.3/debian/po/templates.pot @@ -0,0 +1,213 @@ +# 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: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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 +#: ../dhcp3-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "" + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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 "" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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 "" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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 "" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "" +"Please consider using the hook infrastructure (see dhclient-script(8) for " +"more information) instead of modifying dhclient-script." +msgstr "" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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 "" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"Naturally, you should exercise caution if you are managing a remote server " +"via an interface using DHCP." +msgstr "" --- dhcp3-3.1.3.orig/debian/po/vi.po +++ dhcp3-3.1.3/debian/po/vi.po @@ -0,0 +1,308 @@ +# Vietnamese Translation for DHCP3. +# Copyright © 2007 Free Software Foundation, Inc. +# Clytie Siddall , 2005-2007. +# +msgid "" +msgstr "" +"Project-Id-Version: dhcp3_3.0.4-14\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\n" +"PO-Revision-Date: 2007-06-02 15:46+0930\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.6.3b1\n" + +# msgid "DHCP servers to which the DHCP relay should forward requests to:" +#. Type: string +#. Description +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Máy phục vụ DHCP tá»›i chúng trình gá»­i tiếp DHCP nên tiếp các yêu cầu :" + +# msgid "" +# 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 +#: ../dhcp3-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 hay địa chỉ IP của ít nhất má»™t máy phục vụ DHCP tá»›i đó các " +"yêu cầu kiểu DHCP và BOOTP nên được gởi tiếp." + +# msgid "" +# You can specify more than one server, just separate the server names (or +# IP addresses) with spaces. +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Giao diện trên chúng trình chuyển tiếp DHCP nên lắng nghe:" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Hãy ghi rõ những giao diện mạng nào trình gá»­i tiếp DHCP nên thá»­ cấu hình. " +"Nhiá»u tên giao diện nên được nhập trong danh sách định giá»›i bằng dấu cách." + +#. Type: string +#. Description +#: ../dhcp3-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á» rá»—ng để cho phép khả năng tá»± Ä‘á»™ng phát hiện và cấu hình giao diện mạng " +"bởi trình gá»­i tiếp DHCP, trong trÆ°á»ng hợp đó chỉ giao diện kiểu quảng bá sẽ " +"được dùng (nếu có thể)." + +# msgid "Additional options for the Daemon:" +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Tùy chá»n thêm cho trình ná»n gá»­i tiếp DHCP:" + +# msgid "" +# It is possible to specify additional options for the DHCP relay daemon. +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Hãy ghi rõ tùy chá»n thêm nào cho trình ná»n gởi tiếp DHCP." + +# msgid "example: \"-m replace\" or \"-a -D\"" +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Thí dụ : « -m replace » (thay thế) hay « -a -D »." + +# msgid "Manual configuration required after installation!" +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Cấu hình thủ công cần thiết sau khi cài đặt" + +# msgid "" +# After the DHCP server is installed you will need to manually configure it +# by editing the file /etc/dhcp3/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 +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Sau khi cài đặt xong trình phục vụ DHCP, bạn cần phải tá»± cấu hình nó bằng " +"cách sá»­a đổi tập tin . Ghi chú rằng tập tin có sẵn chỉ là mẫu, vẫn còn cần phải được áp dụng cho môi trÆ°á»ng mạng." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Hãy cấu hình trình phục vụ DHCP đúng sau khi cài đặt xong." + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Giao diện mạng trên chúng trình phục vụ DHCP nên lắng nghe:" + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Hãy ghi rõ trên những giao diện mạng nào trình phục vụ DHCP nên lắng nghe " +"yêu cầu DHCP. Nhiá»u tên giao diện nên được nhập trong danh sách định giá»›i " +"bằng dấu cách." + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "Bá» rá»—ng nên tá»± Ä‘á»™ng phát hiện giao diện." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Phiên bản trình phục vụ DHCP không có thẩm quyá»n" + +# msgid "The version 3 DHCP server is now non-authoritative by default." +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "Trình phục vụ DHCP phiên bản 3 có thẩm quyá»n theo mặc định." + +# 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. +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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 "" +"Có nghÄ©a là nếu trình khách yêu cầu má»™t địa chỉ la, địa chỉ cÅ©ng không đúng " +"cho Ä‘oạn mạng này, trình phục vụ DHCP sẽ _không_ gởi DHCPNAK (mà báo trình " +"khách thôi dùng địa chỉ đó). Muốn thay đổi ứng xá»­ này thì phải ghi dứt khoát " +"vào tập tin những Ä‘oạn mạng cho chúng trình phục vụ của bạn có " +"thẩm quyá»n, bằng cách sá»­ dụng câu lệnh « authoratitive »." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "" +"Thay đổi ứng xá»­ mặc định của chỉ thị 'next-server' (máy phục vụ kế tiếp)" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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 "" +"Kể từ phiên bản 3.0.3, giá trị mặc định của chỉ thị máy phục vụ kế tiếp đã " +"thay đổi cho má»—i máy phục vụ DHCP. Nếu bạn khởi Ä‘á»™ng trình khách qua mạng, " +"và máy phục vụ TFTP cÅ©ng là máy phục vụ DHCP, bạn cần phải đặt riêng má»™t chỉ " +"thị 'next-server' để ghi nhÆ° thế. Hãy xem tài liệu tin tức và tài liệu ghi chú phát hành để tìm thông tin thêm." + +# msgid "dhclient-script has moved!" +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script đã di chuyển" + +# msgid "" +# As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer a +# conffile. /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. +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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 "" +"Kể từ phiên bản 3.0.4-2, « dhclient-script » được cài đặt vào thÆ° mục « /" +"sbin », cÅ©ng không còn được đăng ký lại là tập tin cấu hình. Có vẻ là « /etc/" +"dhcp3/dhclient-script » bị sá»­a đổi vào Ä‘iểm thá»i nào : vì thế nó chÆ°a bị gỡ " +"bá» ; cÅ©ng không còn được dùng lại." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "" +"Please consider using the hook infrastructure (see dhclient-script(8) for " +"more information) instead of modifying dhclient-script." +msgstr "" +"Khuyên bạn dùng hạ tầng cÆ¡ sở « hook » (xem « dhclient-script » để tìm thêm " +"thông tin) thay vào sá»­a đổi « dhclient-script »." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient cần phải được khởi chạy lại" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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 không được khởi chạy lại khi nâng cấp, vì thế bạn vẫn còn chạy " +"phiên bản dhclient trÆ°á»›c. CÅ©ng có thể khởi chạy lại bằng cách làm « ifdown » " +"và « ifup » trên má»—i giao diện được cấu hình để sá»­ dụng DHCP, hoặc bằng cách " +"buá»™c kết thúc và khởi chạy lại dhclient má»™t cách dứt khoát." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"Naturally, you should exercise caution if you are managing a remote server " +"via an interface using DHCP." +msgstr "CÅ©ng cần phải cẩn thận khi quản lý máy phục vụ từ xa bằng 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 "" +#~ "Các tên giao diện mạng mà trình dhcrelay nên thá»­ cấu hình có thể được xác " +#~ "định trên dòng lệnh bằng tùy chá»n « -l ». Không ghi rõ tên nào thì trình " +#~ "dhcrelay sẽ nhận diện má»i giao diện mạng, loại trừ các giao diện khác " +#~ "kiểu quảng bá nếu có thể, và cố gắng cấu hình má»—i giao diện." + +#~ 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 "" +#~ "Có thể nhập má»™t hay nhiá»u tên giao diện hợp lệ, v.d. « eth0 ». Muốn phục " +#~ "vụ yêu cầu DHCP trên nhiá»u giao diện thì định giá»›i những tên giao diện " +#~ "bằng dấu cách. Nếu bạn muốn trình ná»n dhcpd tính giao diện đúng, bá» rá»—ng " +#~ "tham số này." + +#~ msgid "On what network interfaces should the DHCP server listen?" +#~ msgstr "Máy phục vụ DHCP nên lắng nghe trên những giao diện mạng nào?" --- dhcp3-3.1.3.orig/debian/po/pt_BR.po +++ dhcp3-3.1.3/debian/po/pt_BR.po @@ -0,0 +1,301 @@ +# +# 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: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Interfaces nas quais o \"relay\" DHCP deverá escutar:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Opções adicionais para o daemon DHCP \"relay\":" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Por exemplo: '-m replace' ou '-a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Configuração manual requerida após a instalação" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Versão não-autoritária do servidor DHCP" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Mudança no comportamento padrão da diretiva next-server" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-common/RELNOTES.gz para maiores " +"informações." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script foi movido" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/dhclient-script " +"parece ter sido modificado em algum ponto, portanto não foi removido. No " +"entanto ele deixou de ser usado." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient precisa ser reiniciado" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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 ?" --- dhcp3-3.1.3.orig/debian/po/fr.po +++ dhcp3-3.1.3/debian/po/fr.po @@ -0,0 +1,258 @@ +# translation of fr.po to French +# +# +# Nicolas Bertolissio , 2005. +# Christian Perrier , 2007. +msgid "" +msgstr "" +"Project-Id-Version: fr\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Serveurs DHCP auxquels faire suivre les requêtes de relais DHCP :" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Interface où le relais DHCP sera à l'écoute :" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Options supplémentaires pour le démon de relais DHCP :" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Par exemple : « -m replace » ou « -a -D »." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Configuration du serveur DHCP requise après l'installation" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Version non autoritative du serveur DHCP" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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 »." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Modification du comportement par défaut de la directive next-server" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-server/NEWS.Debian.gz et /usr/share/doc/dhcp3-" +"common/RELNOTES.gz pour plus d'informations." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "Déplacement du script dhclient-script" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "" +"As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +"registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +"have been modified at some point, so it has not been removed. However it is " +"no longer being used." +msgstr "" +"Depuis la version 3.0.4-2, le script dhclient-script est installé dans /sbin " +"et n'est plus un fichier de configuration. Ce fichier /etc/dhcp3/dhclient-" +"script a été modifié sans être supprimé mais n'est plus utilisé." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "Redémarrage nécessaire pour dhclient" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." --- dhcp3-3.1.3.orig/debian/po/sv.po +++ dhcp3-3.1.3/debian/po/sv.po @@ -0,0 +1,306 @@ +# Swedish translation of dhcp3. +# Copyright (C) 2005 THE dhcp3'S COPYRIGHT HOLDER +# This file is distributed under the same license as the dhcp3 package. +# Daniel Nylander , 2005. +# +# +msgid "" +msgstr "" +"Project-Id-Version: dhcp3 3.0.3-6\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\n" +"PO-Revision-Date: 2008-07-21 14:29+0100\n" +"Last-Translator: Martin Bagge \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=iso-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Poedit-Language: Swedish\n" +"X-Poedit-Country: SWEDEN\n" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Nätverksgränssnitt som DHCP-relay skall lyssna på:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Ytterligare flaggor för DHCP-vidarebefordringsdemonen:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Till exempel: '-m replace' eller '-a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Manuell konfiguration krävs efter installationen" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/dhcpd.conf. Observera att dhcpd.conf-" +"filen som skickas med endast är ett exempel och behöver ändras för att passa " +"din nätverksmiljö." + +#. Type: note +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Icke-auktoritär version av DHCP server" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "Version 3 av DHCP-servern är icke-auktoritär som standard." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Ändra standarduppträdandet för direktivet next-server" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-server/NEWS.Debian.gz och /" +"usr/share/doc/dhcp3-server/RELNOTES.gz för mer information." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script har flyttats" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/dhclient-script " +"verkar ha ändrats vid något tillfälle, så den filen har inte tagits bort, " +"men den används inte längre." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient behöver startas om" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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?" --- dhcp3-3.1.3.orig/debian/po/ta.po +++ dhcp3-3.1.3/debian/po/ta.po @@ -0,0 +1,253 @@ +# 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: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "டிஹெசà¯à®šà®¿à®ªà®¿(DHCP) வேணà¯à®Ÿà¯à®•à¯‹à®³à¯à®•à®³à¯ˆ அனà¯à®ªà¯à®ª வேணà¯à®Ÿà®¿à®¯ சேவையகஙà¯à®•à®³à¯:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"நீஙà¯à®•à®³à¯ பல சேவயக அலà¯à®²à®¤à¯ à®à®ªà®¿(IP) à®®à¯à®•à®µà®°à®¿à®•à®³à¯ பெயரà¯à®•à®³à¯ˆ இடைவெளியால௠பிரிதà¯à®¤ படà¯à®Ÿà®¿à®¯à®²à®¾à®• " +"கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà®²à®¾à®®à¯." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "டிஹெசà¯à®šà®¿à®ªà®¿(DHCP) அஞà¯à®šà®²à¯ செவிசாயà¯à®•à¯à®• இடைமà¯à®•à®™à¯à®•à®³à¯:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "டிஹெசà¯à®šà®¿à®ªà®¿(DHCP) அஞà¯à®šà®²à¯ கிஙà¯à®•à®°à®©à¯à®•à¯à®•à¯ கூடà¯à®¤à®²à¯ தேரà¯à®µà¯à®•à®³à¯:" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "" +"டிஹெசà¯à®šà®¿à®ªà®¿(DHCP) அஞà¯à®šà®²à¯ கிஙà¯à®•à®°à®©à¯à®•à¯à®•à¯ கூடà¯à®¤à®²à¯ தேரà¯à®µà¯à®•à®³à¯ à®à®¤à®¾à®µà®¤à¯ இரà¯à®ªà¯à®ªà®¿à®©à¯ கà¯à®±à®¿à®ªà¯à®ªà®¿à®Ÿà¯à®•." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "உதாரணம௠: '-m replace' அலà¯à®²à®¤à¯ '-a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "நிறà¯à®µà®²à¯à®•à¯à®•à¯à®ªà¯à®ªà®¿à®©à¯ கைமà¯à®±à¯ˆ வடிவமைபà¯à®ªà¯ தேவை" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"டிஹெசà¯à®šà®¿à®ªà®¿(DHCP) சேவயகம௠நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯à®®à¯ நீஙà¯à®•à®³à¯ அதை கைமà¯à®±à¯ˆà®¯à®¾à®• வடிவமைகà¯à®• வேணà¯à®Ÿà¯à®®à¯. " +"அதறà¯à®•à¯ /etc/dhcp3/dhcpd.conf. கோபà¯à®ªà¯ˆ திரà¯à®¤à¯à®¤à®µà¯à®®à¯. dhcpd.conf எனà¯à®ªà®¤à¯ உதாரணமே. " +"வலையமைபà¯à®ªà¯ சூழலà¯à®•à¯à®•à¯ à®à®±à¯à®ª இத௠மாறà¯à®ªà®Ÿà¯à®®à¯." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "" +"டிஹெசà¯à®šà®¿à®ªà®¿(DHCP) சேவயகம௠நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿ உடனேயே தயை செயà¯à®¤à¯ நீஙà¯à®•à®³à¯ அதை கைமà¯à®±à¯ˆà®¯à®¾à®• " +"வடிவமைகà¯à®• வேணà¯à®Ÿà¯à®®à¯." + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "டிஹெசà¯à®šà®¿à®ªà®¿(DHCP) சேவயகம௠செவி சாயà¯à®•à¯à®• வலையமைபà¯à®ªà¯ இடைமà¯à®•à®™à¯à®•à®³à¯:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "இநà¯à®¤ பà¯à®²à®®à¯ வெறà¯à®±à®¾à®• விடபà¯à®ªà®Ÿà¯à®Ÿà®¾à®²à¯ இடைமà¯à®•à®™à¯à®•à®³à¯ தானியஙà¯à®•à®¿à®¯à®¾à®• கணà¯à®Ÿà¯à®ªà®¿à®Ÿà®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®®à¯." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "அதிகார பூரà¯à®µà®®à®¾à®•à®¾à®¤ டிஹெசà¯à®šà®¿à®ªà®¿(DHCP) சேவையக வடிவ நிலை" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "" +"இநà¯à®¤ 3 ஆம௠பதிபà¯à®ªà¯ டிஹெசà¯à®šà®¿à®ªà®¿(DHCP) சேவையகம௠மà¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà®¾à®• அதிகார பூரà¯à®µà®®à®¾à®•à®¾à®¤à®¤à¯." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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' அறிகà¯à®•à¯ˆ (கூறà¯à®±à®±à®¿à®•à¯à®•à¯ˆ) வழஙà¯à®• உறà¯à®¤à®¿ படà¯à®¤à¯à®¤à®ªà¯ படà¯à®Ÿà®¤à¯ என சொலà¯à®² வேணà¯à®Ÿà¯à®®à¯. " + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "அடà¯à®¤à¯à®¤ சேவையக பணிபà¯à®ªà®¿à®²à¯ à®®à¯à®©à¯à®©à®¿à®°à¯à®ªà¯à®ªà¯ நடதà¯à®¤à¯ˆà®¯à¯ˆ மாறà¯à®±à¯à®•." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-server/NEWS.Debian.gz மறà¯à®±à¯à®®à¯ /" +"usr/share/doc/dhcp3-common/RELNOTES.gz ஆகியவறà¯à®±à¯ˆ பாரà¯à®•à¯à®•à®µà¯à®®à¯." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "டிஹெச௠சாரà¯à®¨à¯à®¤à¯‹à®©à¯ கà¯à®±à¯ நிரல௠(dhclient-script) நகரà¯à®¤à¯à®¤à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/dhclient-script " +"à®à®¤à¯‹ ஒர௠சமயம௠மாறà¯à®±à®ªà¯à®ªà®Ÿà¯à®Ÿà®¤à¯ போல உளà¯à®³à®¤à¯. ஆகவே அத௠நீகà¯à®•à®ªà¯ படà¯à®Ÿà®¤à¯. அத௠இனி பயன௠படாதà¯." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "" +"Please consider using the hook infrastructure (see dhclient-script(8) for " +"more information) instead of modifying dhclient-script." +msgstr "" +"டிஹெச௠சாரà¯à®¨à¯à®¤à¯‹à®©à¯ கà¯à®±à¯ நிரல௠஠மாறà¯à®±à¯à®µà®¤à®±à¯à®•à¯ பதில௠தயை செயà¯à®¤à¯ ஹூக௠அடிபà¯à®ªà®Ÿà¯ˆ கடà¯à®Ÿà®®à¯ˆà®ªà¯à®ªà¯ˆ " +"பயனà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯à®µà®¤à¯ˆà®ªà¯ பறà¯à®±à®¿ யோசிகà¯à®•à®µà¯à®®à¯. மேலà¯à®®à¯ தகவலà¯à®•à®³à¯à®•à¯à®•à¯ dhclient-script(8) ஠காணà¯à®•. " + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "டிஹெச௠சாரà¯à®¨à¯à®¤à¯‹à®©à¯ ஠மீள௠தà¯à®µà®•à¯à®• வேணà¯à®Ÿà¯à®®à¯." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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 செயà¯à®¤à¯‹ அலà¯à®²à®¤à¯ தெளிவாக டிஹெச௠சாரà¯à®¨à¯à®¤à¯‹à®©à¯ à® " +"நிறà¯à®¤à¯à®¤à®¿ மீள௠தà¯à®µà®•à¯à®•à®µà¯‹ வேணà¯à®Ÿà¯à®®à¯." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"Naturally, you should exercise caution if you are managing a remote server " +"via an interface using DHCP." +msgstr "" +"நீஙà¯à®•à®³à¯ டிஹெசà¯à®šà®¿à®ªà®¿ ஠பயன௠படà¯à®¤à¯à®¤à®¿ இடை à®®à¯à®•à®®à¯ வழியாக தொலை சேவையகதà¯à®¤à¯ˆ மேலாணà¯à®Ÿà®¾à®²à¯ இயறà¯à®•à¯ˆà®¯à®¾à®• " +"எசà¯à®šà®°à®¿à®•à¯à®•à¯ˆà®¯à¯à®Ÿà®©à¯ இரà¯à®•à¯à®• வேணà¯à®Ÿà¯à®®à¯." --- dhcp3-3.1.3.orig/debian/po/it.po +++ dhcp3-3.1.3/debian/po/it.po @@ -0,0 +1,256 @@ +# Italian (it) translation of debconf templates for dhcp3 +# Copyright (C) 2006 Software in the Public Interest +# This file is distributed under the same license as the dhcp3 package. +# Luca Monducci , 2006, 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: dhcp3 3.0.4-15 italian debconf templates\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Ulteriori opzioni per il demone relay DHCP:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Per esempio: '-m replace' o '-a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "È necessaria una configurazione manuale al termine dell'installazione" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/dhcpd.conf. Notare che il file " +"dhcpd.conf fornito è solo un semplice esempio e deve essere adattato alle " +"caratteristiche della rete." + +#. Type: note +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Versione del server DHCP non-autoritario" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "Il server DHCP versione 3 è normalmente non-autoritario." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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\"." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Cambiamento nel comportamento predefinito della direttiva next-server" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-server/NEWS.Debian.gz e /usr/share/" +"doc/dhcp3-server/RELNOTES.gz per ulteriori informazioni." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "Spostato dhclient-script" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/" +"dhclient-script sia stato modificato e quindi non viene rimosso, comunque " +"non viene più usato." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient deve essere riavviato" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." --- dhcp3-3.1.3.orig/debian/po/eu.po +++ dhcp3-3.1.3/debian/po/eu.po @@ -0,0 +1,257 @@ +# 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: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Eskakizunak birbidali behar zitzaizkien DHCP zerbitzariak:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "DHCP eskakizunak entzun behar diren interfazeak:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DHCP birbidalketa deabruaren aukera gehigarriak:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Adibidez: '-m ordeztu' edo '-a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Eskuzko konfigurazioa beharrezkoa da instalatu ondoren." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/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 +#: ../dhcp3-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 +#: ../dhcp3-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "DHCP zerbitzariak entzun behar dituen sare interfazeak:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "DHCP zerbitzariaren bertsio ez-autoritarioa" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "DHCP zerbitzariaren 3 bertsioa ez da autoritarioa lehenespen bezala." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Hurrengo-zerbitzari direktibaren lehenetsiriko portamoldea aldatu." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-server/NEWS." +"Debian.gz eta /usr/share/doc/dhcp3-common/RELNOTES.gz begiratu." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script mugitua izan da" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/" +"dhclient-script aldatu duzu beraz ez da ezabatua izan. Hala ere ez da " +"luzaroago erabilia izango." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient berrabiarazi egin behar da" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." --- dhcp3-3.1.3.orig/debian/po/POTFILES.in +++ dhcp3-3.1.3/debian/po/POTFILES.in @@ -0,0 +1,3 @@ +[type: gettext/rfc822deb] dhcp3-relay.templates +[type: gettext/rfc822deb] dhcp3-server.templates +[type: gettext/rfc822deb] dhcp3-client.templates --- dhcp3-3.1.3.orig/debian/po/ko.po +++ dhcp3-3.1.3/debian/po/ko.po @@ -0,0 +1,248 @@ +# 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: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "DHCP 중계기가 ë°›ì€ ìš”ì²­ì„ ì „ë‹¬í•  서버 목ë¡:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "서버명ì´ë‚˜ IP 주소를 (빈칸으로 연결하여) 여러 ê°œ 지정하실 수 있습니다." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "DHCP 중계기가 대기하고 ìžˆì„ ì¸í„°íŽ˜ì´ìŠ¤ 목ë¡:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DHCP 중계 ë°ëª¬ì´ 사용할 추가ì ì¸ 옵션:" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "DHCP 중계 ë°ëª¬ì´ 사용할 추가ì ì¸ ì˜µì…˜ì„ ì§€ì •í•´ì£¼ì‹­ì‹œì˜¤." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "예: '-m replace'나 '-a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "설치 후 ì§ì ‘ 설정 í•„ìš”" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"DHCP 서버가 ì„¤ì¹˜ëœ í›„ /etc/dhcp3/dhcpd.conf 파ì¼ì„ ê³ ì³ì„œ 서버를 ì§ì ‘ 설정하" +"셔야 합니다. 참고로 ì œê³µëœ dhcpd.conf 파ì¼ì€ ì˜ˆì œì¼ ë¿ì´ë¯€ë¡œ 사용하시는 환경" +"ì— ë”°ë¼ ë³€ê²½í•˜ì…”ì•¼ 합니다." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "설치가 ë나면 곧바로 DHCP 서버를 설정해주십시오." + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "DHCP 서버가 대기하고 ìžˆì„ ë„¤íŠ¸ì›Œí¬ ì¸í„°íŽ˜ì´ìŠ¤ 목ë¡:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "ì´ í•­ëª©ì„ ë¹„ì›Œë‘˜ 경우ì—는 ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ ìžë™ìœ¼ë¡œ ê°ì§€í•©ë‹ˆë‹¤." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "DHCP ì„œë²„ì˜ ë¹„ê´€ìž¥ 버전" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "DHCP 서버 버전 3ì€ ê¸°ë³¸ì ìœ¼ë¡œ 비관장으로 설정ë˜ì–´ 있습니다." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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' ì§€ì¹¨ì„ ì´ìš©í•˜ì—¬ ì´ ì„œë²„ê°€ 관장하고 있는 ë„¤íŠ¸ì›Œí¬ ë¶€ë¶„ì„ ëª…ì‹œì " +"으로 지정하셔야 합니다." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "next-server ì§€ì¹¨ì˜ ê¸°ë³¸ 방침 변경" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/" +"dhcp3-server/NEWS.Debian.gz와 /usr/share/doc/dhcp3-common/RELNOTES.gz를 참조" +"하십시오." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script 위치 변경" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/dhclient-scriptì— ë³€ê²½ì‚¬í•­ì´ ìžˆëŠ” 것으로 ë³´ì—¬ 지우" +"지는 않았습니다. 하지만 ì´ íŒŒì¼ì„ ë” ì´ìƒ 사용하지는 않습니다." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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) " +"참조)ì„ ì‚¬ìš©í•˜ê¸¸ 권장합니다." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient를 재시작해야 합니다" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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를 ì§ì ‘ 죽여서 다시 시작하실 수 습니" +"다." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"Naturally, you should exercise caution if you are managing a remote server " +"via an interface using DHCP." +msgstr "" +"DHCP를 ì´ìš©í•˜ëŠ” ì¸í„°íŽ˜ì´ìŠ¤ë¥¼ 통해 ì›ê²© 서버를 관리하고 계신다면 당연히 주ì˜í•˜" +"시길 ë°”ëžë‹ˆë‹¤." --- dhcp3-3.1.3.orig/debian/po/de.po +++ dhcp3-3.1.3/debian/po/de.po @@ -0,0 +1,269 @@ +# translation of dhcp3_3.0.4-15_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-2007. +msgid "" +msgstr "" +"Project-Id-Version: dhcp3_3.0.4-15_de\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\n" +"PO-Revision-Date: 2007-06-11 21:49+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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "" +"Netzwerkschnittstellen, an denen der DHCP-Relay auf Anfragen warten soll:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Zusätzliche Optionen für den DHCP-Relay-Dienst:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Beispiel: »-m replace« oder »-a -D«." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Manuelle Einstellungen nach der Installation erforderlich" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Nichtautoritative Version eines DHCP-Servers" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "Der DHCP-Server Version 3 ist standardmäßig nicht autoritativ." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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 "" +"Das bedeutet, falls ein Client eine Adresse anfordert, die der Server nicht " +"kennt und die Adresse in diesem Netzwerksegment falsch ist, wird der Server " +"_keine_ DHCPNAK-Meldung (die dem Client die Nutzung der Adresse untersagt) " +"senden. Falls Sie das ändern wollen, müssen Sie in der Datei dhcpd.conf " +"durch den Eintrag »authoritative« gezielt die Netzwerksegmente festlegen, " +"für die Ihr Server verantwortlich ist." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Ändern der Standardeinstellung der Next-Server-Richtlinie" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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 "" +"Ab der Version 3.0.3 des DHCP-Servers wurde der Standardwert für die Next-" +"Server-Richtlinie geändert. Falls Sie Clients haben, die über das Netzwerk " +"booten und Ihr TFTP-Server der DHCP-Server ist, müssen Sie gezielt eine Next-" +"Server-Richtlinie festlegen, die das berücksichtigt. Bitte lesen Sie dazu /" +"usr/share/doc/dhcp3-server/NEWS.Debian.gz und /usr/share/doc/dhcp3-common/" +"RELNOTES.gz." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script wurde verschoben" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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 "" +"Mit der Version 3.0.4-2 wird die Datei dhclient-script in das Verzeichnis /" +"sbin installiert und ist nicht mehr als Konfigurationsdatei eingetragen. Die " +"Datei /etc/dhcp3/dhclient-script scheint verändert worden zu sein und wurde " +"deshalb nicht gelöscht. Sie wird aber nicht mehr benutzt." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "" +"Please consider using the hook infrastructure (see dhclient-script(8) for " +"more information) instead of modifying dhclient-script." +msgstr "" +"Bitte benutzen Sie den Hook-Mechanismus (siehe dhclient-script(8) für " +"weitere Informationen) anstatt die Datei dhclient-script zu verändern." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient muss neu gestartet werden" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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 wird, wie immer, während der Aktualisierung nicht neu gestartet, " +"deshalb arbeiten Sie noch mit der vorherigen Version von dhclient. Sie " +"können es durch die Kommandos ifdown und ifup an den Schnittstellen, die " +"DHCP benutzen, neu starten oder dhclient ausdrücklich beenden und neu " +"starten." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"Naturally, you should exercise caution if you are managing a remote server " +"via an interface using DHCP." +msgstr "" +"Sie sollten vorsichtig sein, falls Sie einen entfernten Rechner über eine " +"Schnittstelle verwalten, die DHCP benutzt." --- dhcp3-3.1.3.orig/debian/po/es.po +++ dhcp3-3.1.3/debian/po/es.po @@ -0,0 +1,328 @@ +# 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 +# +# 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: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\n" +"PO-Revision-Date: 2007-05-30 21:43+0200\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" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Opciones adicional para el demonio repetidor de DHCP:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Por ejemplo: «-m replace» o «-a -D»." + +#. Type: note +#. Description +#: ../dhcp3-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 +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/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 personalizarse para que se adapte a su " +"propio entorno de red." + +#. Type: note +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Versión no autoritaria del servidor de DHCP" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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»." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "" +"Cambio en el comportamiento por omisión de la directiva del siguiente " +"servidor" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-server/NEWS.Debian.gz y /usr/share/doc/dhcp3-common/" +"RELNOTES.gz si desea más información." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "Se ha movido dhclient-script" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/dhclient-script» por lo que no se ha eliminado. Sin " +"embargo debe tener en cuenta que ya no va a utilizarse." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "Es necesario reiniciar dhclient" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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?" --- dhcp3-3.1.3.orig/debian/po/ru.po +++ dhcp3-3.1.3/debian/po/ru.po @@ -0,0 +1,265 @@ +# 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. +msgid "" +msgstr "" +"Project-Id-Version: dhcp3_3.0.4-15_ru\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\n" +"PO-Revision-Date: 2007-06-06 21:46+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: KBabel 1.11.4\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 +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Серверы, на которые DHCP-релей будет переÑылать запроÑÑ‹:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Ð’Ñ‹ можете указать более одного имени Ñервера или IP-адреÑа (через пробел)." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Сетевые интерфейÑÑ‹, на которых будет работать DHCP-релей:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Дополнительные параметры Ð´Ð»Ñ Ð´ÐµÐ¼Ð¾Ð½Ð° DHCP-релеÑ:" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "Укажите любые дополнительные параметры Ð´Ð»Ñ Ð´ÐµÐ¼Ð¾Ð½Ð° DHCP-релеÑ." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Ðапример: '-m replace' или '-a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "ПоÑле уÑтановки требуетÑÑ Ñ€ÑƒÑ‡Ð½Ð°Ñ Ð½Ð°Ñтройка" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"ПоÑле того как DHCP-Ñервер уÑтановлен, вам нужно вручную наÑтроить его путём " +"Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ„Ð°Ð¹Ð»Ð° /etc/dhcp3/dhcpd.conf. Обратите внимание, что " +"уÑтанавливаетÑÑ Ð²Ñего лишь пример файла dhcpd.conf, и его нужно адаптировать " +"к ÑущеÑтвующей Ñети." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "ПожалуйÑта, наÑтройте DHCP-Ñервер Ñразу поÑле Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ ÑƒÑтановки." + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "Сетевые интерфейÑÑ‹, на которых будет работать DHCP-Ñервер:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"ЕÑли Ñто поле оÑтавить пуÑтым, интерфейÑÑ‹ будут определены автоматичеÑки." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "ÐÐµÐ°Ð²Ñ‚Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ DHCP-Ñервера" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "ВерÑÐ¸Ñ 3 DHCP-Ñервера по умолчанию неавторитетна." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Изменение наÑтройки по умолчанию Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° next-server" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-server/NEWS.Debian.gz и /usr/share/" +"doc/dhcp3-common/RELNOTES.gz." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "Изменено раÑположение dhclient-script" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/dhclient-script, поÑтому он не был " +"удалён. Однако, иÑпользоватьÑÑ Ð¾Ð½ больше не будет." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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))." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "ТребуетÑÑ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑтить dhclient" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"Naturally, you should exercise caution if you are managing a remote server " +"via an interface using DHCP." +msgstr "" +"ЕÑтеÑтвенно, вы должны быть оÑторожны, еÑли делаете Ñто на Ñервере удалённо " +"через интерфейÑ, иÑпользующий DHCP." --- dhcp3-3.1.3.orig/debian/po/gl.po +++ dhcp3-3.1.3/debian/po/gl.po @@ -0,0 +1,297 @@ +# Galician translation of dhcp3's debconf templates. +# This file is distributed under the same license as the dhcp3 package. +# Jacobo Tarrio , 2006. +# +msgid "" +msgstr "" +"Project-Id-Version: dhcp3\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\n" +"PO-Revision-Date: 2007-05-30 21:19+0200\n" +"Last-Translator: Jacobo Tarrio \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" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Interfaces nas que o repetidor DHCP debe escoitar:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Opcións adicionais para o servizo repetidor DHCP:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Por exemplo: \"-m replace\" ou \"-a -D\"." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Hai que realizar configuración manual trala instalación" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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 á man editando o " +"ficheiro /etc/dhcp3/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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Versión sen autoridade do servidor DHCP" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "O servidor DHCP versión 3 non ten autoridade por defecto." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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\"." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Cambio no comportamento por defecto da directiva next-server" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-server/NEWS.Debian.gz e /usr/share/doc/dhcp3-common/RELNOTES." +"gz para obter máis información." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "Trasladouse dhclient-script" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/" +"dhclient-script foi modificado nalgún momento, así que non se eliminou. " +"Nembargantes, xa non se emprega." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "Hai que reiniciar dhclient" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." --- dhcp3-3.1.3.orig/debian/po/nl.po +++ dhcp3-3.1.3/debian/po/nl.po @@ -0,0 +1,300 @@ +# 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: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "Servers waarnaar de DHCP-doorgifteservice verzoeken moet doorsturen:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Netwerkinterface(s) waarop de DHCP-doorgifteservice moet luisteren:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "" +"Aanvullende opties voor de DHCP-doorgifteservice achtergronddienst (dhcp3-" +"relay):" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Voorbeeld: '-m replace' of 'a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Na de installatie is handmatige configuratie noodzakelijk" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Niet-gezaghebbende versie van DHCP-server" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "Versie 3 van de DHCP-server is nu standaard niet-gezaghebbend." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Wijziging in de standaard werking van de \"next-server\"-optie" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-common/RELNOTES.gz." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "Het dhclient-script is verplaatst" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/dhclient-script op enig moment is gewijzigd; het " +"is daarom niet verwijderd, maar het wordt niet langer gebruikt." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient moet worden herstart" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." --- dhcp3-3.1.3.orig/debian/po/pt.po +++ dhcp3-3.1.3/debian/po/pt.po @@ -0,0 +1,291 @@ +# Portuguese translation of dhcp3 debconf messages. +# This file is distributed under the same license as the dhcp3 package. +# Ricardo Silva , 2007. +# +msgid "" +msgstr "" +"Project-Id-Version: dhcp3 3.0.4-13\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\n" +"PO-Revision-Date: 2007-05-31 19:43+0100\n" +"Last-Translator: Ricardo Silva \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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Interfaces onde o relay de DHCP deve ouvir:" + +#. Type: string +#. Description +#: ../dhcp3-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 DHCP relay tentar " +"configurar. Vários nomes de interfaces devem ser introduzidos como uma lista " +"separada por espaços." + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "Opções adicionais para o daemon de reencaminhamento DHCP:" + +#. Type: string +#. Description +#: ../dhcp3-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 reencaminhamento " +"DHCP." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Por Exemplo: '-m replace' ou '-a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "É necessária configuração manual depois da instalação" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Versão não autoritária do servidor DHCP" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "Alteração no comportamento por omissão da directiva next-server " + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-" +"server/NEWS.Debian.gz e /usr/share/doc/dhcp3-common/RELNOTES.gz para mais " +"informação." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "o dhclient-script foi movido" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/dhclient-" +"script parece ter sido modificado algures no tempo, portanto não foi " +"removido. No entanto já não está a ser usado." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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)." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "o dhclient precisa de ser reiniciado" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." --- dhcp3-3.1.3.orig/debian/po/sk.po +++ dhcp3-3.1.3/debian/po/sk.po @@ -0,0 +1,245 @@ +msgid "" +msgstr "" +"Project-Id-Version: dhcp3 3.0.6-1\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "Rozhrania, na kotrých má DHCP relay poÄúvaÅ¥:" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Prosím, uveÄte, ktoré sieÅ¥ové rozhrania by sa mal DHCP relay pokúsiÅ¥ " +"nakonfigurovaÅ¥. Viaceré názvy rozhraní sa zadávajú ako zoznam oddelený " +"medzerami." + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DodatoÄné voľby démona DHCP relay:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Napríklad: '-m replace' alebo '-a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Po inÅ¡talácii sa vyžaduje manuálna konfigurácia" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Po inÅ¡talácii DHCP servera ho budete musieÅ¥ ruÄne nakonfigurovaÅ¥ editáciou " +"súboru /etc/dhcp3/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 +#: ../dhcp3-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "Prosím, nakofigurujte DHCP server hneÄ po skonÄení inÅ¡talácie." + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Prosím, uveÄte na ktorých sieÅ¥ových rozhraniach by mal DHCP server poÄúvaÅ¥ " +"DHCP požiadavky. Viaceré názvy rozhraní sa zadávajú ako zoznam oddelený " +"medzerami." + +#. Type: string +#. Description +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Neautoritatívna verzia DHCP servera" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "Verzia 3 DHCP servera je Å¡tandardne neautoritatívna." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "ZmeniÅ¥ Å¡tandardné správanie direktívy next-server" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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/dhcp3-server/NEWS.Debian.gz a v /" +"usr/share/doc/dhcp3-common/RELNOTES.gz." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script sa presunul" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "" +"As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +"registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +"have been modified at some point, so it has not been removed. However it is " +"no longer being used." +msgstr "" +"Od verzie 3.0.4-2, je dhclient-script nainÅ¡talovaný v /sbin a už nie je " +"registrovaný ako konfiguraÄný súbor. Zdá sa, že /etc/dhcp3/dhclient-script " +"bol niekedy zmenený, takže nebol odstránený. Už sa vÅ¡ak nepoužíva." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient potrebuje reÅ¡tart" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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." --- dhcp3-3.1.3.orig/debian/po/tr.po +++ dhcp3-3.1.3/debian/po/tr.po @@ -0,0 +1,292 @@ +# 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: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\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 +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "DHCP relay isteklerinin yönlendirileceÄŸi DHCP sunucuları:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"Birden fazla sunucu adı veya IP adresi (boÅŸluk karakterleriyle ayrılmış " +"olarak) belirtilebilir." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "DHCP sunucusunun dinlemesi gereken aÄŸ arayüzleri:" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"Lütfen DHCP relay'in yapılandırmayı denemesini istediÄŸiniz aÄŸ arayüzlerini " +"isimlerini boÅŸluk bırakarak bir liste halinde belirtin." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:3001 +msgid "" +"Leave this field blank to allow for automatic detection and configuration of " +"network interfaces by the DHCP relay, in which case only broadcast " +"interfaces will be used (if possible)." +msgstr "" +"AÄŸ arayüzlerinin DHCP relay tarafından otomatik algılanıp yapılandırılması " +"için bu alanı boÅŸ bırakın. EÄŸer mümkünse sadece broadcast arayüzleri " +"kullanılacaktır." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DHCP relay sunucusu için ek seçenekler:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Örnek: '-m replace' ya da '-a -D'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "DHCP sunucusu kurulumdan sonra elle yapılandırma gerektirir" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/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/dhcp3/dhcpd.conf dosyasını düzenleyerek " +"elle yapılandırmalısınız. Lütfen aklınızda bulunsun, paketle birlikte örnek " +"bir dhcpd.conf dosyası saÄŸlanmıştır. Fakat bu dosya sadece düzenlenmesi " +"gereken bir örnektir ve bunu kendi aÄŸ ortamınıza uyarlamanız gerekir." + +#. Type: note +#. Description +#: ../dhcp3-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 +#: ../dhcp3-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "DHCP sunucusunun dinleyeceÄŸi aÄŸ arayüzleri:" + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Lütfen DHCP sunucusunun DHCP isteklerini dinlemesi gereken aÄŸ arayüzlerini " +"belirtin. Birden fazla arayüz ismi var ise bunlar boÅŸluklarla ayrılmış bir " +"liste halinde girilmelidir." + +#. Type: string +#. Description +#: ../dhcp3-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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "DHCP sunucusunun yetkisiz (Non-authoritative) sürümü" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "" +"This means that if a client requests an address that the server knows " +"nothing about and the address is incorrect for that network segment, the " +"server will _not_ send a DHCPNAK (which tells the client it should stop " +"using the address). If you want to change this behavior, you must explicitly " +"state in dhcpd.conf what network segments your server is authoritative for " +"using the 'authoritative' statement." +msgstr "" +"Bunun anlamı eÄŸer bir istemci, sunucunun hakkında birÅŸey bilmediÄŸi bir adres " +"isterse ve bu adres bu aÄŸ kesimi için doÄŸru deÄŸilse, sunucu (istemciye bu " +"adresi kullanmayı bırakmasını söyleyen) bir DHCPNAK _göndermeyecektir_. EÄŸer " +"bu davranışı deÄŸiÅŸtirmek isterseniz, dhcpd.conf dosyasında hangi aÄŸ " +"kesimlerinin yetkili olduÄŸunu 'authoritative' satırını kullanarak açıkça " +"belirtmeniz gerekir." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "" +"\"next-server\" (sonraki sunucu) yönergesinin varsayılan davranışında " +"deÄŸiÅŸiklik" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "" +"From version 3.0.3, the DHCP server's default value of the next-server " +"directive has changed. If you are network booting clients, and your TFTP " +"server is your DHCP server, you need to explicitly set a next-server " +"directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS.Debian." +"gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more information." +msgstr "" +"Sürüm 3.0.3 ten beri, DHCP sunucusunun sonraki-sunucu yönergesi öntanımlı " +"deÄŸeri deÄŸiÅŸmiÅŸtir. EÄŸer aÄŸ üzerinden baÅŸlatılan (boot) istemcileriniz " +"mevcut ise, ve TFTP sunucunuz aynı zamanda DHCP sunucu ise, bunu belirtmek " +"için bir \"next-server\" (sonraki sunucu) yönergesi tanımlamanız gerekir. " +"Lütfen daha fazla bilgi için /usr/share/doc/dhcp3-server/NEWS.Debian.gz ve /" +"usr/share/doc/dhcp3-common/RELNOTES.gz dosyalarına bakın." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script taşındı" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "" +"As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +"registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +"have been modified at some point, so it has not been removed. However it is " +"no longer being used." +msgstr "" +"Sürüm 3.0.4-2 ile birlikte dhclient-script /sbin içine kurulur ve artık bir " +"yapılandırma dosyası deÄŸildir. /etc/dhcp3/dhclient-script bir noktasında " +"deÄŸiÅŸtirilmiÅŸ gibi gözüküyor, buyüzden silinmeyecek. Fakat artık " +"kullanılmayacaktır." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "" +"Please consider using the hook infrastructure (see dhclient-script(8) for " +"more information) instead of modifying dhclient-script." +msgstr "" +"Lütfen dhclient-script betiÄŸini deÄŸiÅŸtirmek yerine hook altyapısını (daha " +"fazla bilgi için dhclient-script(8) kısmına gözatın) kullanmayı tercih edin." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient takrar baÅŸlatmayı gerektiriyor" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"As always, dhclient is not restarted on upgrade, so you are still running " +"the previous version of dhclient. You can restart it by doing an ifdown and " +"ifup on the interface(s) that are configured to use DHCP, or by explicitly " +"killing and restarting dhclient." +msgstr "" +"Herzamanki gibi dhclient güncellenmelerde tekrar baÅŸlatılmıyor, dolayısıyla " +"hala dhclient'ın eski sürümünü kullanıyorsunuz. DHCP kullanan arayüzler için " +"birer ifdown ve ifup yaparak tekrar baÅŸlatabilirsiniz, yada tamamen öldürüp " +"dhclient'ı tekrar baÅŸlatabilirsiniz." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"Naturally, you should exercise caution if you are managing a remote server " +"via an interface using DHCP." +msgstr "" +"EÄŸer uzak bir sunucuyu DHCP kullanan bir arayüz üzerinden yönetiyorsanız " +"doÄŸal olarak dikkatli olmalısınız." + +#~ msgid "" +#~ "Please enter a space-separated list of interfaces names (e.g. eth0) on " +#~ "which the server should answer DHCP requests." +#~ msgstr "" +#~ "Lütfen boÅŸluklarla ayrılmış ÅŸekilde sunucunun DHCP isteklerine cevap " +#~ "vereceÄŸi arayüz isimleri (örn: eth0) listesi girin." + +#, fuzzy +#~ msgid "" +#~ "The names of the network interfaces that dhcrelay should attempt to " +#~ "configure may be specified on the command line using the -i option. If no " +#~ "interface names are specified on the command line dhcrelay will identify " +#~ "all network interfaces, elimininating non-broadcast interfaces if " +#~ "possible, and attempt to configure each interface." +#~ msgstr "" +#~ "Dhcrelay'in yapılandırmaya teÅŸebbüs edeceÄŸi aÄŸ arayüzlerinin isimleri " +#~ "komut satırında -i seçeneÄŸi kullanılarak belirtilebilir. EÄŸer komut " +#~ "satırında bir arayüz ismi belirtilmez ise; dhcrelay, eÄŸer mümkünse \"non-" +#~ "broadcast\" arayüzleri elimine ederek, bütün aÄŸ arayüzlerini tanıyacak ve " +#~ "her bir arayüzü yapılandıracaktır." + +#~ msgid "" +#~ "You can enter one or more valid interface names, like eth0. If you want " +#~ "to serve DHCP request on more than one interface, please separate them " +#~ "with spaces. If you want dhcpd to figure out the interface leave this " +#~ "parameter blank." +#~ msgstr "" +#~ "eth0 gibi bir veya daha fazla geçerli arayüz ismi girebilirsiniz. EÄŸer " +#~ "DHCP isteÄŸini birden fazla arayüz üzerinden sunmak isterseniz, lütfen " +#~ "bunları boÅŸluk karakterleriyle ayırın. EÄŸer dhcpd'nin arayüze kendisinin " +#~ "karar vermesini isterseniz bu parametreyi boÅŸ bırakın." + +#~ msgid "On what network interfaces should the DHCP server listen?" +#~ msgstr "DHCP sunucusu hangi aÄŸ arayüzlerini dinlemeli?" --- dhcp3-3.1.3.orig/debian/po/ja.po +++ dhcp3-3.1.3/debian/po/ja.po @@ -0,0 +1,260 @@ +# +# 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: dhcp3 3.1.0-2\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\n" +"PO-Revision-Date: 2008-01-27 21:26+0900\n" +"Last-Translator: Hideki Yamane(Debian-JP) \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 +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "DHCP リレーè¦æ±‚ãŒè»¢é€ã•ã‚Œã‚‹ã‚µãƒ¼ãƒ:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "" +"サーãƒåã¾ãŸã¯ IP アドレスã®è¤‡æ•°æŒ‡å®šãŒå¯èƒ½ã§ã™ (リストを空白ã§åŒºåˆ‡ã£ã¦ãã ã•" +"ã„)。" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:3001 +msgid "Interfaces the DHCP relay should listen on:" +msgstr "DHCP リレーエージェント㌠listen ã™ã‚‹ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DHCP リレーデーモンã¸ã®è¿½åŠ ã‚ªãƒ—ション:" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "Please specify any additional options for the DHCP relay daemon." +msgstr "DHCP リレーデーモンã¸ã®è¿½åŠ ã‚ªãƒ—ションを指定ã—ã¦ãã ã•ã„。" + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "例: '-m replace' ã¾ãŸã¯ '-a -D'" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "インストール後ã«æ‰‹å‹•ã§ã®è¨­å®šãŒå¿…è¦ã§ã™" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"DHCP サーãƒã®ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«å¾Œã€/etc/dhcp3/dhcpd.conf ファイルを編集ã—ã¦æ‰‹å‹•ã§è¨­" +"定を行ã†å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚æä¾›ã•ã‚Œã¦ã„ã‚‹ dhcpd.conf ã¯å˜ãªã‚‹ã‚µãƒ³ãƒ—ルã§ã‚ã‚Šã€" +"ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ç’°å¢ƒã«å¿œã˜ãŸä¿®æ­£ãŒå¿…è¦ã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "インストール完了後ã€ã™ãã« DHCP サーãƒã®è¨­å®šã‚’è¡Œã£ã¦ãã ã•ã„。" + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "Network interfaces on which the DHCP server should listen:" +msgstr "DHCP サーãƒãŒ listen ã™ã‚‹å¿…è¦ã®ã‚ã‚‹ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹:" + +#. Type: string +#. Description +#: ../dhcp3-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 リクエストを listen ã™" +"ã‚‹ã®ã‹ã‚’指定ã—ã¦ãã ã•ã„。複数ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹åã¯ç©ºç™½ã§åŒºåˆ‡ã£ãŸãƒªã‚¹ãƒˆã§å…¥" +"力ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚" + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "値ãŒå…¥åŠ›ã•ã‚Œãªã‹ã£ãŸå ´åˆã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ã‚§ã‚¤ã‚¹ã¯è‡ªå‹•çš„ã«æ¤œå‡ºã•ã‚Œã¾ã™ã€‚" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "non-authoritative 設定ãŒã•ã‚Œã¦ã„ã‚‹ DHCP サーãƒã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "DHCP サーãƒãƒãƒ¼ã‚¸ãƒ§ãƒ³ 3 ã§ã¯ã€non-authoritative ãŒæ¨™æº–ã¨ãªã£ã¦ã„ã¾ã™ã€‚" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +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' 文を" +"使用ã—ã¦ã€ã‚ãªãŸã®ã‚µãƒ¼ãƒãŒã©ã®ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã®æ¨©å¨ã‚’æŒã£ã¦ã„ã‚‹ã‹ã‚’明" +"示的ã«æŒ‡å®šã—ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“。" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "next-server 指示å­ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ã®æŒ™å‹•ã®å¤‰æ›´ã«ä»˜ã„ã¦" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +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 指示å­ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã®å€¤ãŒå¤‰æ›´" +"ã•ã‚Œã¾ã—ãŸã€‚ã‚ãªãŸãŒ network boot クライアントを利用ã—ã¦ãŠã‚Šã€TFTP サーãƒãŒ " +"DHCP サーãƒã§ã‚‚ã‚ã‚‹å ´åˆã€next-server 指示å­ã§æ˜Žç¤ºçš„ã«ã“ã®çŠ¶æ…‹ã‚’設定ã™ã‚‹å¿…è¦ãŒ" +"ã‚ã‚Šã¾ã™ã€‚詳細ã«ä»˜ã„ã¦ã¯ã€/usr/share/doc/dhcp3-server/NEWS.Debian.gz 㨠/usr/" +"share/doc/dhcp3-common/RELNOTES.gz ã‚’ã”覧下ã•ã„。" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script ã¯ç§»å‹•ã—ã¾ã—ãŸ" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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/dhcp3/dhclient-script ã«ã¯" +"何箇所ã‹å¤‰æ›´ãŒåŠ ãˆã‚‰ã‚Œã¦ã„るよã†ãªã®ã§ã€å‰Šé™¤ã¯ã•ã‚Œã¦ã„ã¾ã›ã‚“。ã—ã‹ã—ã€ä»Šå¾Œã¯" +"使ã‚れるã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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) ã‚’å‚ç…§ã—ã¦ãã ã•ã„)。" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient ã¯å†èµ·å‹•ãŒå¿…è¦ã§ã™" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +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 ã‚’ kill ã—ã¦å†èµ·å‹•ã™ã‚‹ã“ã¨ã§ã‚‚å¯èƒ½ã§ã™ã€‚" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"Naturally, you should exercise caution if you are managing a remote server " +"via an interface using DHCP." +msgstr "" +"当然ã®äº‹ã§ã™ãŒã€DHCP を使ã£ã¦ã„るインターフェイス経由ã§ãƒªãƒ¢ãƒ¼ãƒˆã‚µãƒ¼ãƒã‚’管ç†ã—" +"ã¦ã„ã‚‹å ´åˆã¯æ³¨æ„を払ã†ã¹ãã§ã™ã€‚" --- dhcp3-3.1.3.orig/debian/po/cs.po +++ dhcp3-3.1.3/debian/po/cs.po @@ -0,0 +1,279 @@ +# +# 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: dhcp3\n" +"Report-Msgid-Bugs-To: peloy@debian.org\n" +"POT-Creation-Date: 2007-05-30 21:05+0200\n" +"PO-Revision-Date: 2007-05-31 08:26+0100\n" +"Last-Translator: Grumpa \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 +#: ../dhcp3-relay.templates:2001 +msgid "Servers the DHCP relay should forward requests to:" +msgstr "DHCP servery, kterým má DHCP relay pÅ™eposílat žádosti:" + +#. Type: string +#. Description +#: ../dhcp3-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 jméno hostitele nebo IP adresu alespoň jednoho DHCP serveru, " +"kterému mají být DHCP a BOOTP požadavky smÄ›rovány." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:2001 +msgid "" +"You can specify multiple server names or IP addresses (in a space-separated " +"list)." +msgstr "Můžete zadat více jmen serverů nebo IP adres (údaje oddÄ›lte mezerami)." + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:3001 +msgid "" +"Please specify which network interface(s) the DHCP relay should attempt to " +"configure. Multiple interface names should be entered as a space-separated " +"list." +msgstr "" +"UrÄete prosím, která síťová rozhraní se má DHCP pokouÅ¡et nastavit. Zadáte-li " +"více rozhraní, oddÄ›lte je mezerami." + +#. Type: string +#. Description +#: ../dhcp3-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í DHCP detekoval a nastavil automaticky, " +"nechte tuto kolonku prázdnou. V tom případÄ› budou použita pouze boradcast " +"rozhraní (je-li to možné)." + +#. Type: string +#. Description +#: ../dhcp3-relay.templates:4001 +msgid "Additional options for the DHCP relay daemon:" +msgstr "DodateÄné volby pro démona DHCP:" + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-relay.templates:4001 +msgid "For example: '-m replace' or '-a -D'." +msgstr "Například: '-m replace', nebo '-a -D'" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Manual configuration required after installation" +msgstr "Po instalaci je vyžadováno ruÄní nastavení" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "" +"After the DHCP server is installed, you will need to manually configure it " +"by editing the file /etc/dhcp3/dhcpd.conf. Please note that the dhcpd.conf " +"supplied is just a sample, and must be adapted to the network environment." +msgstr "" +"Po nainstalování DHCP serveru je potÅ™eba ho jeÅ¡tÄ› ruÄnÄ› nastavit úpravou " +"souboru /etc/dhcp3/dhcpd.conf. VezmÄ›te prosím v potaz, že dodávaný dhcpd." +"conf je pouze příklad a musí být pÅ™izpůsoben síťovému prostÅ™edí." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:2001 +msgid "Please configure the DHCP server as soon as the installation finishes." +msgstr "DHCP server nastavte co nejdříve po dokonÄení instalace." + +#. Type: string +#. Description +#: ../dhcp3-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 +#: ../dhcp3-server.templates:3001 +msgid "" +"Please specify on which network interface(s) the DHCP server should listen " +"for DHCP requests. Multiple interface names should be entered as a space-" +"separated list." +msgstr "" +"Zadejte prosím, na kterých síťových rozhraních má DHCP server naslouchat " +"DHCP požadavkům. Zadáváte-li více rozhraní, oddÄ›lte je mezerou." + +#. Type: string +#. Description +#: ../dhcp3-server.templates:3001 +msgid "" +"The interfaces will be automatically detected if this field is left blank." +msgstr "" +"Rozhraní budou detekována automaticky, necháte-li tuto kolonku prázdnou." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "Non-authoritative version of DHCP server" +msgstr "Neautoritativní verze DHCP serveru" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "The version 3 DHCP server is non-authoritative by default." +msgstr "Verze 3 DHCP serveru je ve výchozím nastavení neautoritativní." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:4001 +msgid "" +"This means that if a client requests an address that the server knows " +"nothing about and the address is incorrect for that network segment, the " +"server will _not_ send a DHCPNAK (which tells the client it should stop " +"using the address). If you want to change this behavior, you must explicitly " +"state in dhcpd.conf what network segments your server is authoritative for " +"using the 'authoritative' statement." +msgstr "" +"To znamená, že když klient požaduje adresu, o které server nic neví a adresa " +"je v daném segmentu sítÄ› nesprávná, server _ne_poÅ¡le DHCPNAK (který říká " +"klientu, že má tuto adresu pÅ™estat používat). Chcete-li toto chování zmÄ›nit, " +"musíte v dhcpd.conf výslovnÄ› stanovit, v kterých síťových segmentech je váš " +"server autoritativní pomocí příkazu 'authoritative'." + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "Change in default behaviour of the next-server directive" +msgstr "ZmÄ›na ve výchozím chování u direktivy next-server" + +#. Type: note +#. Description +#: ../dhcp3-server.templates:5001 +msgid "" +"From version 3.0.3, the DHCP server's default value of the next-server " +"directive has changed. If you are network booting clients, and your TFTP " +"server is your DHCP server, you need to explicitly set a next-server " +"directive to state this. Please see /usr/share/doc/dhcp3-server/NEWS.Debian." +"gz and /usr/share/doc/dhcp3-common/RELNOTES.gz for more information." +msgstr "" +"Od verze 3.0.3 se zmÄ›nila výchozí hodnota DHCP serveru u direktivy next-" +"server. Jestliže máte klienty zavádÄ›né ze sítÄ› a TFTP server je váš DHCP " +"server, musíte pro to explicitnÄ› nastavit direktivu next-server. Pro více " +"informací se podívejte do /usr/share/doc/dhcp3-server/NEWS.Debian.gz a /usr/" +"share/doc/dhcp3-common/RELNOTES.gz." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "dhclient-script moved" +msgstr "dhclient-script se pÅ™esunul" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +msgid "" +"As of 3.0.4-2, dhclient-script is installed in /sbin and is no longer " +"registered as a configuration file. /etc/dhcp3/dhclient-script appears to " +"have been modified at some point, so it has not been removed. However it is " +"no longer being used." +msgstr "" +"Od verze 3.0.4-2 je dhclient-script instalován do /sbin a již není považován " +"za konfiguraÄní soubor. Zdá se, že /etc/dhcp3/dhclient-script byl nÄ›kdy " +"upravován a proto jej neodstraňuji, nicménÄ› už se k niÄemu nepoužívá." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:2001 +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)." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "dhclient needs restarting" +msgstr "dhclient vyžaduje restart" + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"As always, dhclient is not restarted on upgrade, so you are still running " +"the previous version of dhclient. You can restart it by doing an ifdown and " +"ifup on the interface(s) that are configured to use DHCP, or by explicitly " +"killing and restarting dhclient." +msgstr "" +"BěžnÄ› se dhclient pÅ™i aktualizaci nerestartuje, takže stále používáte starší " +"verzi dhclienta. Restartovat jej můžete buÄ zavoláním ifdown a ifup na " +"rozhraních, která jsou nastavena pro používání DHCP, nebo také explicitnÄ› " +"zabitím a novým spuÅ¡tÄ›ním dhclienta." + +#. Type: note +#. Description +#: ../dhcp3-client.templates:3001 +msgid "" +"Naturally, you should exercise caution if you are managing a remote server " +"via an interface using DHCP." +msgstr "" +"PochopitelnÄ› byste mÄ›li být opatrní například v situaci, kdy spravujete " +"vzdálený server pÅ™es rozhraní spravované pomocí DHCP." + +#~ msgid "" +#~ "The names of the network interfaces that dhcrelay should attempt to " +#~ "configure may be specified on the command line using the -i option. If no " +#~ "interface names are specified on the command line dhcrelay will identify " +#~ "all network interfaces, elimininating non-broadcast interfaces if " +#~ "possible, and attempt to configure each interface." +#~ msgstr "" +#~ "Jména síťových rozhraní, která se má dhcrelay pokusit zkonfigurovat, " +#~ "mohou být zadána na příkazovém řádku pomocí volby -i. Pokud na příkazové " +#~ "řádce nejsou zadána žádná jména rozhraní, dhcrelay identifikuje vÅ¡echna " +#~ "síťová rozhraní, kromÄ› ne-vÅ¡esmÄ›rových, pokud je to možné, a pokusí se " +#~ "zkonfigurovat každé z nich." + +#~ msgid "" +#~ "You can enter one or more valid interface names, like eth0. If you want " +#~ "to serve DHCP request on more than one interface, please separate them " +#~ "with spaces. If you want dhcpd to figure out the interface leave this " +#~ "parameter blank." +#~ msgstr "" +#~ "Můžete zadat jedno nebo více platných jmen rozhraní, jako eth0. Pokud " +#~ "chcete obsluhovat DHCP žádosti na více než jednom rozhraní, oddÄ›lte je " +#~ "mezerami. Pokud chcete, aby si dhcpd zjistil rozhraní, nechte tento " +#~ "parametr prázdný." --- dhcp3-3.1.3.orig/debian/usr/share/doc/dhcp-on-linux.txt +++ dhcp3-3.1.3/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. +------------------------------------------------------------------------------ + + --- dhcp3-3.1.3.orig/debian/apport/dhcp3-server.py +++ dhcp3-3.1.3/debian/apport/dhcp3-server.py @@ -0,0 +1,90 @@ +#!/usr/bin/python + +'''apport hook for dhcp3 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/dhcp3/dhcpd.leases' which match a regex. + pattern should be a "re" object. ''' + lines = "" + if os.path.exists('/var/lib/dhcp3/dhcpd.leases') + file = '/var/lib/dhcp3/dhcpd.leases') + else: + return lines + + for line in open(file): + if pattern.search(line): + lines += line + return lines + +def recent_kernlog(pattern): + '''Extract recent messages from kern.log or message which match a regex. + pattern should be a "re" object. ''' + lines = '' + if os.path.exists('/var/log/kern.log'): + file = '/var/log/kern.log' + elif os.path.exists('/var/log/messages'): + file = '/var/log/messages' + else: + return lines + + for line in open(file): + if pattern.search(line): + lines += line + return lines + +def recent_auditlog(pattern): + '''Extract recent messages from kern.log or message which match a regex. + pattern should be a "re" object. ''' + lines = '' + if os.path.exists('/var/log/audit/audit.log'): + file = '/var/log/audit/audit.log' + 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/dhcp3/dhclient3.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/dhcp3/dhcpd.conf', 'DHCPServerConf') + + # get apparmor stuff, copied from libvirt-bin.py + # runs hooks via attach_related packages + attach_file(report, '/proc/version_signature', 'ProcVersionSignature') + attach_file(report, '/proc/cmdline', 'ProcCmdLine') + + attach_related_packages(report, ['apparmor', 'libapparmor1', + 'libapparmor-perl', 'apparmor-utils', 'auditd', 'libaudit0']) + + sec_re = re.compile('audit\(|apparmor|selinux|security', re.IGNORECASE) + report['KernLog'] = recent_kernlog(sec_re) + + attach_file(report, '/etc/apparmor.d/usr.sbin.dhcpd') + + if os.path.exists("/var/log/audit"): + # this needs to be run as root + report['AuditLog'] = recent_auditlog(sec_re) + + leases = re.compile('option|renew|rebind|expire', re.IGNORECASE) + report['DhServerLeases'] = dhcp_leases(leases) --- dhcp3-3.1.3.orig/debian/apport/dhcp3-client.py +++ dhcp3-3.1.3/debian/apport/dhcp3-client.py @@ -0,0 +1,90 @@ +#!/usr/bin/python + +'''apport hook for dhclient3 + +(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/dhcp3/dhclient.leases' which match a regex. + pattern should be a "re" object. ''' + lines = "" + if os.path.exists('/var/lib/dhcp3/dhclient.leases'): + file = '/var/lib/dhcp3/dhclient.leases' + else: + return lines + + for line in open(file): + if pattern.search(line): + lines += line + return lines + +def recent_kernlog(pattern): + '''Extract recent messages from kern.log or message which match a regex. + pattern should be a "re" object. ''' + lines = '' + if os.path.exists('/var/log/kern.log'): + file = '/var/log/kern.log' + elif os.path.exists('/var/log/messages'): + file = '/var/log/messages' + else: + return lines + + for line in open(file): + if pattern.search(line): + lines += line + return lines + +def recent_auditlog(pattern): + '''Extract recent messages from kern.log or message which match a regex. + pattern should be a "re" object. ''' + lines = '' + if os.path.exists('/var/log/audit/audit.log'): + file = '/var/log/audit/audit.log' + 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/dhcp3/dhclient3.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/dhcp3/dhclient.conf', 'Dhclient') + + # get apparmor stuff, copied from libvirt-bin.py + # runs hooks via attach_related packages + attach_file(report, '/proc/version_signature', 'ProcVersionSignature') + attach_file(report, '/proc/cmdline', 'ProcCmdLine') + + attach_related_packages(report, ['apparmor', 'libapparmor1', + 'libapparmor-perl', 'apparmor-utils', 'auditd', 'libaudit0']) + + sec_re = re.compile('audit\(|apparmor|selinux|security', re.IGNORECASE) + report['KernLog'] = recent_kernlog(sec_re) + + attach_file(report, '/etc/apparmor.d/sbin.dhclient3') + + if os.path.exists("/var/log/audit"): + # this needs to be run as root + report['AuditLog'] = recent_auditlog(sec_re) + + leases = re.compile('option|renew|rebind|expire', re.IGNORECASE) + report['DhclientLeases'] = dhcp_leases(leases) --- dhcp3-3.1.3.orig/debian/patches/dhclient-more-debug.dpatch +++ dhcp3-3.1.3/debian/patches/dhclient-more-debug.dpatch @@ -0,0 +1,76 @@ +#! /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 dhcp3-3.1.1~/client/dhclient.c dhcp3-3.1.1/client/dhclient.c +--- dhcp3-3.1.1~/client/dhclient.c 2008-06-17 10:07:27.000000000 +0200 ++++ dhcp3-3.1.1/client/dhclient.c 2008-06-17 10:15:02.000000000 +0200 +@@ -741,13 +741,14 @@ + 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; + } ++ log_info("DHCPACK of %s from %s", piaddr(lease->address), ++ piaddr(packet -> client_addr)); + + client -> new = lease; + +@@ -1176,6 +1177,8 @@ + log_info ("%s: packet_to_lease failed.", obuf); + return; + } ++ sprintf(obuf, "%s of %s from %s", name, piaddr(lease->address), ++ piaddr (packet -> client_addr)); + + /* If this lease was acquired through a BOOTREPLY, record that + fact. */ +@@ -1761,7 +1764,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)); +diff -urNad dhcp3-3.1.1~/common/inet.c dhcp3-3.1.1/common/inet.c +--- dhcp3-3.1.1~/common/inet.c 2008-06-17 10:07:10.000000000 +0200 ++++ dhcp3-3.1.1/common/inet.c 2008-06-17 10:07:27.000000000 +0200 +@@ -213,8 +213,11 @@ + char *piaddr (addr) + struct iaddr addr; + { +- static char pbuf [4 * 16]; +- char *s = pbuf; ++ static int num; ++ static char pbuf[4][4 * 16]; ++ char *base = pbuf[num]; ++ char *s = base; ++ num = (num + 1) & 3; + int i; + + if (addr.len > sizeof(addr.iabuf)) +@@ -227,7 +230,7 @@ + sprintf (s, "%s%d", i ? "." : "", addr.iabuf [i]); + s += strlen (s); + } +- return pbuf; ++ return base; + } + + char *piaddrmask (struct iaddr addr, struct iaddr mask, --- dhcp3-3.1.3.orig/debian/patches/dhcp-3.1.0-ldap-code.dpatch +++ dhcp3-3.1.3/debian/patches/dhcp-3.1.0-ldap-code.dpatch @@ -0,0 +1,2736 @@ +#! /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: This part of the patch modifies the original dhcp3 code +## DP: This patch is deeply based on the Brian Masney work + +@DPATCH@ + +diff -urNad dhcp3-3.1.0.orig/common/conflex.c dhcp3-3.1.0/common/conflex.c +--- dhcp3-3.1.0.orig/common/conflex.c 2007-05-29 19:49:44.000000000 +0200 ++++ dhcp3-3.1.0/common/conflex.c 2008-02-20 13:21:26.000000000 +0100 +@@ -47,6 +47,7 @@ + static enum dhcp_token read_number PROTO ((int, struct parse *)); + static enum dhcp_token read_num_or_name PROTO ((int, struct parse *)); + static enum dhcp_token intern PROTO ((unsigned char *, enum dhcp_token)); ++static int read_function PROTO ((struct parse *)); + + isc_result_t new_parse (cfile, file, inbuf, buflen, name, eolp) + struct parse **cfile; +@@ -74,6 +75,10 @@ + tmp -> file = file; + tmp -> eol_token = eolp; + ++ if (file != -1) { ++ tmp -> read_function = read_function;; ++ } ++ + tmp -> bufix = 0; + tmp -> buflen = buflen; + if (inbuf) { +@@ -113,22 +118,11 @@ + int c; + + if (cfile -> bufix == cfile -> buflen) { +- if (cfile -> file != -1) { +- cfile -> buflen = +- read (cfile -> file, +- cfile -> inbuf, cfile -> bufsiz); +- if (cfile -> buflen == 0) { +- c = EOF; +- cfile -> bufix = 0; +- } else if (cfile -> buflen < 0) { +- c = EOF; +- cfile -> bufix = cfile -> buflen = 0; +- } else { +- c = cfile -> inbuf [0]; +- cfile -> bufix = 1; +- } +- } else ++ if (cfile -> read_function) { ++ c = cfile -> read_function (cfile); ++ } else { + c = EOF; ++ } + } else { + c = cfile -> inbuf [cfile -> bufix]; + cfile -> bufix++; +@@ -1213,3 +1207,23 @@ + } + return dfv; + } ++ ++static int ++read_function (struct parse * cfile) ++{ ++ int c; ++ ++ cfile -> buflen = read (cfile -> file, cfile -> inbuf, cfile -> bufsiz); ++ if (cfile -> buflen == 0) { ++ c = EOF; ++ cfile -> bufix = 0; ++ } else if (cfile -> buflen < 0) { ++ c = EOF; ++ cfile -> bufix = cfile -> buflen = 0; ++ } else { ++ c = cfile -> inbuf [0]; ++ cfile -> bufix = 1; ++ } ++ ++ return c; ++} +diff -urNad dhcp3-3.1.0.orig/common/print.c dhcp3-3.1.0/common/print.c +--- dhcp3-3.1.0.orig/common/print.c 2007-05-29 19:49:44.000000000 +0200 ++++ dhcp3-3.1.0/common/print.c 2008-02-20 13:21:26.000000000 +0100 +@@ -168,9 +168,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 dhcp3-3.1.0.orig/dst/Makefile.dist dhcp3-3.1.0/dst/Makefile.dist +--- dhcp3-3.1.0.orig/dst/Makefile.dist 2005-03-17 21:15:06.000000000 +0100 ++++ dhcp3-3.1.0/dst/Makefile.dist 2008-02-20 13:21:26.000000000 +0100 +@@ -23,12 +23,13 @@ + + SRC = dst_support.c dst_api.c hmac_link.c md5_dgst.c base64.c prandom.c + OBJ = dst_support.o dst_api.o hmac_link.o md5_dgst.o base64.o prandom.o ++OBJ_NM5= dst_support.o dst_api.o hmac_link.o base64.o prandom.o + HDRS = dst_internal.h md5.h md5_locl.h + + INCLUDES = $(BINDINC) -I$(TOP)/includes + CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS) -DHMAC_MD5 -DMINIRES_LIB + +-all: libdst.a ++all: libdst.a libdst-nomd5.a + + install: + +@@ -37,11 +38,16 @@ + ar cruv libdst.a $(OBJ) + $(RANLIB) libdst.a + ++libdst-nomd5.a: $(OBJ_NM5) ++ rm -f libdst-nomd5.a ++ ar cruv libdst-nomd5.a $(OBJ_NM5) ++ $(RANLIB) libdst-nomd5.a ++ + depend: + $(MKDEP) $(INCLUDES) $(PREDEFINES) $(SRC) + + clean: +- -rm -f $(OBJ) libdst.a ++ -rm -f $(OBJ) libdst.a libdst-nomd5.a + + realclean: clean + -rm -f *~ $(CATMANPAGES) $(SEDMANPAGES) +diff -urNad dhcp3-3.1.0.orig/includes/dhcpd.h dhcp3-3.1.0/includes/dhcpd.h +--- dhcp3-3.1.0.orig/includes/dhcpd.h 2007-05-29 19:49:44.000000000 +0200 ++++ dhcp3-3.1.0/includes/dhcpd.h 2008-02-20 13:21:26.000000000 +0100 +@@ -81,6 +81,11 @@ + #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 rediculous. */ + #endif +@@ -251,6 +256,8 @@ + char *inbuf; + unsigned bufix, buflen; + unsigned bufsiz; ++ ++ int (*read_function) (struct parse *); + }; + + /* Variable-length array of data. */ +@@ -362,6 +369,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 *children; ++ struct ldap_config_stack *next; ++}; ++#endif ++ + typedef enum { + server_startup = 0, + server_running = 1, +@@ -558,6 +591,29 @@ + # define DEFAULT_PING_TIMEOUT 1 + #endif + ++#if defined(LDAP_CONFIGURATION) ++# define SV_LDAP_SERVER 53 ++# define SV_LDAP_PORT 54 ++# define SV_LDAP_USERNAME 55 ++# define SV_LDAP_PASSWORD 56 ++# define SV_LDAP_BASE_DN 57 ++# define SV_LDAP_METHOD 58 ++# define SV_LDAP_DEBUG_FILE 59 ++# define SV_LDAP_DHCP_SERVER_CN 60 ++# define SV_LDAP_REFERRALS 61 ++#if defined (USE_SSL) ++# define SV_LDAP_SSL 62 ++# define SV_LDAP_TLS_REQCERT 63 ++# define SV_LDAP_TLS_CA_FILE 64 ++# define SV_LDAP_TLS_CA_DIR 65 ++# define SV_LDAP_TLS_CERT 66 ++# define SV_LDAP_TLS_KEY 67 ++# define SV_LDAP_TLS_CRLCHECK 68 ++# define SV_LDAP_TLS_CIPHERS 69 ++# define SV_LDAP_TLS_RANDFILE 70 ++#endif ++#endif ++ + #if !defined (DEFAULT_DEFAULT_LEASE_TIME) + # define DEFAULT_DEFAULT_LEASE_TIME 43200 + #endif +@@ -1702,7 +1758,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 PROTO ((int, int, unsigned char *)); ++char *print_hw_addr PROTO ((const int, const int, const unsigned char *)); + void print_lease PROTO ((struct lease *)); + void dump_raw PROTO ((const unsigned char *, unsigned)); + void dump_packet_option (struct option_cache *, struct packet *, +@@ -2812,3 +2868,18 @@ + #endif /* FAILOVER_PROTOCOL */ + + 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 +diff -urNad dhcp3-3.1.0.orig/includes/ldap_casa.h dhcp3-3.1.0/includes/ldap_casa.h +--- dhcp3-3.1.0.orig/includes/ldap_casa.h 1970-01-01 01:00:00.000000000 +0100 ++++ dhcp3-3.1.0/includes/ldap_casa.h 2008-02-20 13:21:26.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 */ ++ +diff -urNad dhcp3-3.1.0.orig/includes/site.h dhcp3-3.1.0/includes/site.h +--- dhcp3-3.1.0.orig/includes/site.h 2006-08-01 00:19:51.000000000 +0200 ++++ dhcp3-3.1.0/includes/site.h 2008-02-20 13:21:26.000000000 +0100 +@@ -183,3 +183,18 @@ + traces. */ + + #define TRACING ++ ++/* Define this if you want to read your config from LDAP. Read README.ldap ++ about how to set this up */ ++ ++#define LDAP_CONFIGURATION ++ ++/* Define this if you want to enable LDAP over a SSL connection. You will need ++ to add -lcrypto -lssl to the LIBS= line of server/Makefile */ ++ ++#define USE_SSL ++ ++#define _PATH_DHCPD_DB "/var/lib/dhcp3/dhcpd.leases" ++#define _PATH_DHCLIENT_DB "/var/lib/dhcp3/dhclient.leases" ++#define _PATH_DHCPD_DB "/var/lib/dhcp3/dhcpd.leases" ++#define _PATH_DHCLIENT_DB "/var/lib/dhcp3/dhclient.leases" +diff -urNad dhcp3-3.1.0.orig/server/class.c dhcp3-3.1.0/server/class.c +--- dhcp3-3.1.0.orig/server/class.c 2006-06-01 22:23:17.000000000 +0200 ++++ dhcp3-3.1.0/server/class.c 2008-02-20 13:21:26.000000000 +0100 +@@ -90,6 +90,7 @@ + int matched = 0; + int status; + int ignorep; ++ int classfound; + + for (class = collection -> classes; class; class = class -> nic) { + #if defined (DEBUG_CLASS_MATCHING) +@@ -135,9 +136,15 @@ + 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 (!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 dhcp3-3.1.0.orig/server/confpars.c dhcp3-3.1.0/server/confpars.c +--- dhcp3-3.1.0.orig/server/confpars.c 2007-06-28 19:20:40.000000000 +0200 ++++ dhcp3-3.1.0/server/confpars.c 2008-02-20 13:21:26.000000000 +0100 +@@ -63,7 +63,17 @@ + + 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 dhcp3-3.1.0.orig/server/dhcpd.c dhcp3-3.1.0/server/dhcpd.c +--- dhcp3-3.1.0.orig/server/dhcpd.c 2007-05-29 19:49:44.000000000 +0200 ++++ dhcp3-3.1.0/server/dhcpd.c 2008-02-20 13:21:26.000000000 +0100 +@@ -440,6 +440,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 dhcp3-3.1.0.orig/server/ldap.c dhcp3-3.1.0/server/ldap.c +--- dhcp3-3.1.0.orig/server/ldap.c 1970-01-01 01:00:00.000000000 +0100 ++++ dhcp3-3.1.0/server/ldap.c 2008-02-20 13:21:26.000000000 +0100 +@@ -0,0 +1,2003 @@ ++/* 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). ++ */ ++ ++#include "dhcpd.h" ++#include ++ ++#if defined(LDAP_CONFIGURATION) ++ ++#if defined(LDAP_CASA_AUTH) ++#include "ldap_casa.h" ++#endif ++ ++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 void ++ldap_parse_class (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ struct berval **tempbv; ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "cn")) == NULL || ++ tempbv[0] == NULL) ++ { ++ if (tempbv != NULL) ++ ldap_value_free_len (tempbv); ++ ++ return; ++ } ++ ++ x_strncat (cfile->inbuf, "class \"", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[0]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, "\" {\n", LDAP_BUFFER_SIZE); ++ ++ item->close_brace = 1; ++ ldap_value_free_len (tempbv); ++} ++ ++ ++static void ++ldap_parse_subclass (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ struct berval **tempbv, **classdata; ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "cn")) == NULL || ++ tempbv[0] == NULL) ++ { ++ if (tempbv != NULL) ++ ldap_value_free_len (tempbv); ++ ++ return; ++ } ++ ++ if ((classdata = ldap_get_values_len (ld, item->ldent, ++ "dhcpClassData")) == NULL || ++ classdata[0] == NULL) ++ { ++ if (classdata != NULL) ++ ldap_value_free_len (classdata); ++ ldap_value_free_len (tempbv); ++ ++ return; ++ } ++ ++ x_strncat (cfile->inbuf, "subclass ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, classdata[0]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[0]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " {\n", LDAP_BUFFER_SIZE); ++ ++ item->close_brace = 1; ++ ldap_value_free_len (tempbv); ++ ldap_value_free_len (classdata); ++} ++ ++ ++static void ++ldap_parse_host (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ struct berval **tempbv, **hwaddr; ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "cn")) == NULL || ++ tempbv[0] == NULL) ++ { ++ if (tempbv != NULL) ++ ldap_value_free_len (tempbv); ++ ++ return; ++ } ++ ++ hwaddr = ldap_get_values_len (ld, item->ldent, "dhcpHWAddress"); ++ ++ x_strncat (cfile->inbuf, "host ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[0]->bv_val, LDAP_BUFFER_SIZE); ++ ++ if (hwaddr != NULL && hwaddr[0] != NULL) ++ { ++ x_strncat (cfile->inbuf, " {\nhardware ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, hwaddr[0]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free_len (hwaddr); ++ } ++ ++ item->close_brace = 1; ++ ldap_value_free_len (tempbv); ++} ++ ++ ++static void ++ldap_parse_shared_network (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ struct berval **tempbv; ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "cn")) == NULL || ++ tempbv[0] == NULL) ++ { ++ if (tempbv != NULL) ++ ldap_value_free_len (tempbv); ++ ++ return; ++ } ++ ++ x_strncat (cfile->inbuf, "shared-network \"", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[0]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, "\" {\n", LDAP_BUFFER_SIZE); ++ ++ item->close_brace = 1; ++ ldap_value_free_len (tempbv); ++} ++ ++ ++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) ++{ ++ struct berval **tempbv, **netmaskstr; ++ char netmaskbuf[16]; ++ int i; ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "cn")) == NULL || ++ tempbv[0] == NULL) ++ { ++ if (tempbv != NULL) ++ ldap_value_free_len (tempbv); ++ ++ return; ++ } ++ ++ if ((netmaskstr = ldap_get_values_len (ld, item->ldent, ++ "dhcpNetmask")) == NULL || ++ netmaskstr[0] == NULL) ++ { ++ if (netmaskstr != NULL) ++ ldap_value_free_len (netmaskstr); ++ ldap_value_free_len (tempbv); ++ ++ return; ++ } ++ ++ x_strncat (cfile->inbuf, "subnet ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[0]->bv_val, LDAP_BUFFER_SIZE); ++ ++ x_strncat (cfile->inbuf, " netmask ", LDAP_BUFFER_SIZE); ++ parse_netmask (strtol (netmaskstr[0]->bv_val, NULL, 10), netmaskbuf); ++ x_strncat (cfile->inbuf, netmaskbuf, LDAP_BUFFER_SIZE); ++ ++ x_strncat (cfile->inbuf, " {\n", LDAP_BUFFER_SIZE); ++ ++ ldap_value_free_len (tempbv); ++ ldap_value_free_len (netmaskstr); ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpRange")) != NULL) ++ { ++ for (i=0; tempbv[i] != NULL; i++) ++ { ++ x_strncat (cfile->inbuf, "range", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[i]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ } ++ } ++ ++ item->close_brace = 1; ++} ++ ++ ++static void ++ldap_parse_pool (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ struct berval **tempbv; ++ int i; ++ ++ x_strncat (cfile->inbuf, "pool {\n", LDAP_BUFFER_SIZE); ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpRange")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "range", LDAP_BUFFER_SIZE); ++ for (i=0; tempbv[i] != NULL; i++) ++ { ++ x_strncat (cfile->inbuf, " ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[i]->bv_val, LDAP_BUFFER_SIZE); ++ } ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free_len (tempbv); ++ } ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpPermitList")) != NULL) ++ { ++ for (i=0; tempbv[i] != NULL; i++) ++ { ++ x_strncat (cfile->inbuf, tempbv[i]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ } ++ ldap_value_free_len (tempbv); ++ } ++ ++ 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) ++{ ++ struct berval **tempbv; ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "cn")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "key ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[0]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " {\n", LDAP_BUFFER_SIZE); ++ ldap_value_free_len (tempbv); ++ } ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpKeyAlgorithm")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "algorithm ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[0]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free_len (tempbv); ++ } ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpKeySecret")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "secret ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[0]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free_len (tempbv); ++ } ++ ++ item->close_brace = 1; ++} ++ ++ ++static void ++ldap_parse_zone (struct ldap_config_stack *item, struct parse *cfile) ++{ ++ char *cnFindStart, *cnFindEnd; ++ struct berval **tempbv; ++ char *keyCn; ++ size_t len; ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "cn")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "zone ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[0]->bv_val, LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, " {\n", LDAP_BUFFER_SIZE); ++ ldap_value_free_len (tempbv); ++ } ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpDnsZoneServer")) != NULL) ++ { ++ x_strncat (cfile->inbuf, "primary ", LDAP_BUFFER_SIZE); ++ x_strncat (cfile->inbuf, tempbv[0]->bv_val, LDAP_BUFFER_SIZE); ++ ++ x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); ++ ldap_value_free_len (tempbv); ++ } ++ ++ if ((tempbv = ldap_get_values_len (ld, item->ldent, "dhcpKeyDN")) != NULL) ++ { ++ cnFindStart = strchr(tempbv[0]->bv_val,'='); ++ 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_len (tempbv); ++ } ++ ++ 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_stop() ++{ ++ struct sigaction old, new; ++ ++ if (ld == NULL) ++ return; ++ ++ /* ++ ** ldap_unbind after a LDAP_SERVER_DOWN result ++ ** causes 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); ++ ++ ldap_unbind_ext_s (ld, NULL, NULL); ++ ld = NULL; ++ ++ sigaction (SIGPIPE, &old, &new); ++} ++ ++ ++static char * ++_do_lookup_dhcp_string_option (struct option_state *options, int option_name) ++{ ++ struct option_cache *oc; ++ struct data_string db; ++ char *ret; ++ ++ 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); ++ } ++ else ++ ret = NULL; ++ ++ 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; ++ ++ 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); ++ } ++ else ++ ret = 0; ++ ++ 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 = -1; ++ ++ 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); ++ } ++ else ++ ret = 0; ++ ++ return (ret); ++} ++ ++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; ++ struct berval creds; ++ ++ 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)); ++ 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)); ++ 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; ++ creds.bv_val = strdup(ldap_password); ++ creds.bv_len = strlen(ldap_password); ++ } ++ ++ if ((ret = ldap_sasl_bind_s (ld, who, LDAP_SASL_SIMPLE, &creds, ++ NULL, NULL, NULL)) != LDAP_SUCCESS) ++ { ++ log_error ("Error: Cannot login into ldap server %s:%d: %s", ++ ldapurl->lud_host, ldapurl->lud_port, ldap_err2string (ret)); ++ } ++ return ret; ++} ++ ++static void ++ldap_start (void) ++{ ++ struct option_state *options; ++ int ret, version; ++ char *uri = NULL; ++ struct berval creds; ++ ++ 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 ++ ++ /* enough for 'ldap://+ + hostname + ':' + port number */ ++ uri = malloc(strlen(ldap_server) + 16); ++ if (uri == NULL) ++ { ++ log_error ("Cannot build ldap init URI %s:%d", ldap_server, ldap_port); ++ return; ++ } ++ ++ sprintf(uri,"ldap://%s:%d", ldap_server, ldap_port); ++ ldap_initialize(&ld, uri); ++ ++ if (ld == NULL) ++ { ++ log_error ("Cannot init ldap session to %s:%d", ldap_server, ldap_port); ++ return; ++ } ++ ++ free(uri); ++ ++ 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') ++ { ++ creds.bv_val = strdup(ldap_password); ++ creds.bv_len = strlen(ldap_password); ++ ++ if ((ret = ldap_sasl_bind_s (ld, ldap_username, LDAP_SASL_SIMPLE, ++ &creds, NULL, NULL, NULL)) != 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", NULL}; ++ LDAPMessage * newres, * newent; ++ struct berval **tempbv; ++ 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 ((tempbv = ldap_get_values_len (ld, ent, search[i])) == NULL) ++ continue; ++ ++ for (j=0; tempbv[j] != NULL; j++) ++ { ++ if (*tempbv[j]->bv_val == '\0') ++ continue; ++ ++ if ((ret = ldap_search_ext_s(ld, tempbv[j]->bv_val, LDAP_SCOPE_BASE, ++ "objectClass=*", NULL, 0, NULL, ++ NULL, NULL, 0, &newres)) != LDAP_SUCCESS) ++ { ++ ldap_value_free_len (tempbv); ++ ldap_stop(); ++ return; ++ } ++ ++#if defined (DEBUG_LDAP) ++ log_info ("Adding contents of subtree '%s' to config stack from '%s' reference", tempbv[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_len (tempbv); ++ } ++} ++ ++ ++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->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) ++{ ++ struct berval **tempbv; ++ int i; ++ ++ if (ent == NULL || buffer == NULL || size == 0) ++ return (ISC_R_FAILURE); ++ ++ if ((tempbv = ldap_get_values_len (ld, ent, "dhcpStatements")) != NULL) ++ { ++ for (i=0; tempbv[i] != NULL; i++) ++ { ++ if (lease_limit != NULL && ++ strncasecmp ("lease limit ", tempbv[i]->bv_val, 12) == 0) ++ { ++ *lease_limit = (int) strtol ((tempbv[i]->bv_val) + 12, NULL, 10); ++ continue; ++ } ++ ++ x_strncat (buffer, tempbv[i]->bv_val, size); ++ ++ switch((int) check_statement_end (tempbv[i]->bv_val)) ++ { ++ case '}': ++ case ';': ++ x_strncat (buffer, "\n", size); ++ break; ++ default: ++ x_strncat (buffer, ";\n", size); ++ break; ++ } ++ } ++ ldap_value_free_len (tempbv); ++ } ++ ++ if ((tempbv = ldap_get_values_len (ld, ent, "dhcpOption")) != NULL) ++ { ++ for (i=0; tempbv[i] != NULL; i++) ++ { ++ x_strncat (buffer, "option ", size); ++ x_strncat (buffer, tempbv[i]->bv_val, size); ++ switch ((int) check_statement_end (tempbv[i]->bv_val)) ++ { ++ case ';': ++ x_strncat (buffer, "\n", size); ++ break; ++ default: ++ x_strncat (buffer, ";\n", size); ++ break; ++ } ++ } ++ ldap_value_free_len (tempbv); ++ } ++ ++ return (ISC_R_SUCCESS); ++} ++ ++ ++static void ++ldap_generate_config_string (struct parse *cfile) ++{ ++ struct berval **objectClass; ++ char *dn; ++ struct ldap_config_stack *entry; ++ LDAPMessage * ent, * res; ++ int i, ignore, found; ++ int ret; ++ ++ if (ld == NULL) ++ ldap_start (); ++ if (ld == NULL) ++ return; ++ ++ entry = ldap_stack; ++ if ((objectClass = ldap_get_values_len (ld, entry->ldent, ++ "objectClass")) == NULL) ++ return; ++ ++ ignore = 0; ++ found = 1; ++ for (i=0; objectClass[i] != NULL; i++) ++ { ++ if (strcasecmp (objectClass[i]->bv_val, "dhcpSharedNetwork") == 0) ++ ldap_parse_shared_network (entry, cfile); ++ else if (strcasecmp (objectClass[i]->bv_val, "dhcpClass") == 0) ++ ldap_parse_class (entry, cfile); ++ else if (strcasecmp (objectClass[i]->bv_val, "dhcpSubnet") == 0) ++ ldap_parse_subnet (entry, cfile); ++ else if (strcasecmp (objectClass[i]->bv_val, "dhcpPool") == 0) ++ ldap_parse_pool (entry, cfile); ++ else if (strcasecmp (objectClass[i]->bv_val, "dhcpGroup") == 0) ++ ldap_parse_group (entry, cfile); ++ else if (strcasecmp (objectClass[i]->bv_val, "dhcpTSigKey") == 0) ++ ldap_parse_key (entry, cfile); ++ else if (strcasecmp (objectClass[i]->bv_val, "dhcpDnsZone") == 0) ++ ldap_parse_zone (entry, cfile); ++ else if (strcasecmp (objectClass[i]->bv_val, "dhcpHost") == 0) ++ { ++ if (ldap_method == LDAP_METHOD_STATIC) ++ ldap_parse_host (entry, cfile); ++ else ++ { ++ ignore = 1; ++ break; ++ } ++ } ++ else if (strcasecmp (objectClass[i]->bv_val, "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_len (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 defined(DEBUG_LDAP) ++ if (dn != NULL) ++ log_info ("Found LDAP entry '%s'", dn); ++#endif ++ ++ if (dn == NULL || ++ (ret = ldap_search_ext_s (ld, dn, LDAP_SCOPE_ONELEVEL, ++ "objectClass=*", NULL, 0, NULL, NULL, ++ NULL, 0, &res)) != LDAP_SUCCESS) ++ { ++ if (dn) ++ ldap_memfree (dn); ++ ++ ldap_stop(); ++ return; ++ } ++ ++ ldap_memfree (dn); ++ ++ if ((ent = ldap_first_entry (ld, res)) != NULL) ++ { ++ add_to_config_stack (res, ent); ++ parse_external_dns (entry->ldent); ++ } ++ else ++ { ++ ldap_msgfree (res); ++ parse_external_dns (entry->ldent); ++ next_ldap_entry (cfile); ++ } ++} ++ ++ ++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->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) ++{ ++ struct berval **name; ++ char *ret; ++ ++ ret = NULL; ++ if ((name = ldap_get_values_len (ld, ent, "cn")) == NULL || name[0] == NULL) ++ { ++ if (name != NULL) ++ ldap_value_free_len (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]->bv_val) + 1, MDL); ++ strcpy (ret, name[0]->bv_val); ++ ldap_value_free_len (name); ++ ++ return (ret); ++} ++ ++ ++static int ++getfqhostname(char *fqhost, size_t size) ++{ ++#if defined(MAXHOSTNAMELEN) ++ char hname[MAXHOSTNAMELEN]; ++#else ++ char hname[65]; ++#endif ++ struct hostent *hp; ++ ++ if(NULL == fqhost || 1 >= size) ++ return -1; ++ ++ memset(hname, 0, sizeof(hname)); ++ if( gethostname(hname, sizeof(hname)-1)) ++ return -1; ++ ++ if(NULL == (hp = gethostbyname(hname))) ++ return -1; ++ ++ strncpy(fqhost, hp->h_name, size-1); ++ fqhost[size-1] = '\0'; ++ return 0; ++} ++ ++ ++isc_result_t ++ldap_read_config (void) ++{ ++ LDAPMessage * ldres, * hostres, * ent, * hostent; ++ char hfilter[1024], sfilter[1024], fqdn[257]; ++ char *buffer, *hostdn; ++ ldap_dn_node *curr = NULL; ++ struct parse *cfile; ++ struct utsname unme; ++ isc_result_t res; ++ size_t length; ++ int ret, cnt; ++ struct berval **tempbv = NULL; ++ ++ 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 == getfqhostname(fqdn, sizeof(fqdn))) ++ { ++ 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_ext_s (ld, ldap_base_dn, LDAP_SCOPE_SUBTREE, ++ hfilter, NULL, 0, NULL, NULL, 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 || ++ (tempbv = ldap_get_values_len (ld, hostent, "dhcpServiceDN")) == NULL || ++ tempbv[0] == NULL) ++ { ++ log_error ("Error: Cannot find LDAP entry matching %s", hfilter); ++ ++ if (tempbv != NULL) ++ ldap_value_free_len (tempbv); ++ ++ 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; tempbv[cnt] != NULL; cnt++) ++ { ++ snprintf(sfilter, sizeof(sfilter), "(&(objectClass=dhcpService)" ++ "(|(dhcpPrimaryDN=%s)(dhcpSecondaryDN=%s)))", ++ hostdn, hostdn); ++ ldres = NULL; ++ if ((ret = ldap_search_ext_s (ld, tempbv[cnt]->bv_val, LDAP_SCOPE_BASE, ++ sfilter, NULL, 0, NULL, NULL, NULL, ++ 0, &ldres)) != LDAP_SUCCESS) ++ { ++ log_error ("Error searching for dhcpServiceDN '%s': %s. Please update the LDAP entry '%s'", ++ tempbv[cnt]->bv_val, 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 primary or secondary server reference. Please update the LDAP server entry '%s'", ++ tempbv[cnt]->bv_val, 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 (tempbv[cnt]->bv_val); ++ curr->dn = dmalloc (length + 1, MDL); ++ if (curr->dn == NULL) ++ { ++ dfree (curr, MDL); ++ curr = NULL; ++ } ++ else ++ strcpy (curr->dn, tempbv[cnt]->bv_val); ++ } ++ ++ 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' ...", tempbv[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'", tempbv[cnt]->bv_val); ++ break; ++ } ++ } ++ ++ end_parse (&cfile); ++ ldap_close_debug_fd(); ++ ++ ldap_memfree (hostdn); ++ ldap_value_free_len (tempbv); ++ ++ 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 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_ext_s (ld, basedn, LDAP_SCOPE_SUBTREE, filter, ++ NULL, 0, NULL, NULL, 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; ++ LDAPMessage * res, *ent; ++ struct host_decl * host; ++ isc_result_t status; ++ ldap_dn_node *curr; ++ int ret; ++ ++ if (ldap_method == LDAP_METHOD_STATIC) ++ return (0); ++ ++ if (ld == NULL) ++ ldap_start (); ++ if (ld == NULL) ++ 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); ++ return (0); ++ } ++ ++ /* ++ ** FIXME: It is not guaranteed, that the dhcpHWAddress attribute ++ ** contains _exactly_ "type addr" with one space between! ++ */ ++ snprintf (buf, sizeof (buf), ++ "(&(objectClass=dhcpHost)(dhcpHWAddress=%s %s))", ++ type_str, print_hw_addr (htype, hlen, haddr)); ++ ++ 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_ext_s (ld, curr->dn, LDAP_SCOPE_SUBTREE, buf, NULL, 0, ++ NULL, NULL, 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..."); ++ return (0); ++ } ++ ++ ret = ldap_search_ext_s (ld, curr->dn, LDAP_SCOPE_SUBTREE, buf, NULL, ++ 0, NULL, NULL, 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(); ++ return (0); ++ } ++#if defined (DEBUG_LDAP) ++ else ++ { ++ log_info ("ldap_search_ext_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); ++ return (0); ++ } ++ ++ host->name = ldap_get_host_name (ent); ++ if (host->name == NULL) ++ { ++ host_dereference (&host, MDL); ++ ldap_msgfree (res); ++ 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); ++ return (0); ++ } ++ ++ ldap_parse_options (ent, host->group, HOST_DECL, host, NULL); ++ ++ *hp = host; ++ ldap_msgfree (res); ++ return (1); ++ } ++ ++ ++ if(res) ldap_msgfree (res); ++ return (0); ++} ++ ++ ++int ++find_subclass_in_ldap (struct class *class, struct class **newclass, ++ struct data_string *data) ++{ ++ LDAPMessage * res, * ent; ++ int ret, lease_limit; ++ isc_result_t status; ++ ldap_dn_node *curr; ++ char buf[1024]; ++ ++ if (ldap_method == LDAP_METHOD_STATIC) ++ return (0); ++ ++ if (ld == NULL) ++ ldap_start (); ++ if (ld == NULL) ++ return (0); ++ ++ snprintf (buf, sizeof (buf), ++ "(&(objectClass=dhcpSubClass)(cn=%s)(dhcpClassData=%s))", ++ print_hex_1 (data->len, data->data, 60), ++ print_hex_2 (strlen (class->name), (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_ext_s (ld, curr->dn, LDAP_SCOPE_SUBTREE, buf, NULL, 0, ++ NULL, NULL, 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..."); ++ return (0); ++ } ++ ++ ret = ldap_search_ext_s (ld, curr->dn, LDAP_SCOPE_SUBTREE, buf, ++ NULL, 0, NULL, NULL, 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(); ++ return (0); ++ } ++#if defined (DEBUG_LDAP) ++ else ++ { ++ log_info ("ldap_search_ext_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); ++ 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); ++ 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); ++ return (1); ++ } ++ ++ if(res) ldap_msgfree (res); ++ return (0); ++} ++ ++#endif +diff -urNad dhcp3-3.1.0.orig/server/ldap_casa.c dhcp3-3.1.0/server/ldap_casa.c +--- dhcp3-3.1.0.orig/server/ldap_casa.c 1970-01-01 01:00:00.000000000 +0100 ++++ dhcp3-3.1.0/server/ldap_casa.c 2008-02-20 13:21:26.000000000 +0100 +@@ -0,0 +1,138 @@ ++/* 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(LDAP_CASA_AUTH) ++#include "ldap_casa.h" ++#include "dhcpd.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; ++ ++ ++ log_info ("Authentication credential taken from CASA"); ++ ++ ++ release_casa(); ++ return 1; ++ ++ } ++ else ++ { ++ release_casa(); ++ return 0; ++ } ++ } ++ else ++ return 0; //casa libraries not loaded ++ } ++ ++#endif /* LDAP_CASA_AUTH */ ++ +diff -urNad dhcp3-3.1.0.orig/server/Makefile.dist dhcp3-3.1.0/server/Makefile.dist +--- dhcp3-3.1.0.orig/server/Makefile.dist 2006-07-25 15:26:00.000000000 +0200 ++++ dhcp3-3.1.0/server/Makefile.dist 2008-02-20 13:21:26.000000000 +0100 +@@ -25,15 +25,15 @@ + CATMANPAGES = dhcpd.cat8 dhcpd.conf.cat5 dhcpd.leases.cat5 + SEDMANPAGES = dhcpd.man8 dhcpd.conf.man5 dhcpd.leases.man5 + SRCS = 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 ++ omapi.c mdb.c stables.c salloc.c ddns.c dhcpleasequery.c ldap.c ldap_casa.c + OBJS = dhcpd.o dhcp.o bootp.o confpars.o db.o class.o failover.o \ +- omapi.o mdb.o stables.o salloc.o ddns.o dhcpleasequery.o ++ omapi.o mdb.o stables.o salloc.o ddns.o dhcpleasequery.o ldap.o ldap_casa.o + PROG = dhcpd + MAN = dhcpd.8 dhcpd.conf.5 dhcpd.leases.5 + + INCLUDES = -I$(TOP) $(BINDINC) -I$(TOP)/includes +-DHCPLIB = ../common/libdhcp.a $(BINDLIB) ../omapip/libomapi.a ../dst/libdst.a +-CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS) ++DHCPLIB = ../common/libdhcp.a $(BINDLIB) ../omapip/libomapi.a ../dst/libdst-nomd5.a ++CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS) -DDEBUG_LDAP + + all: $(PROG) $(CATMANPAGES) + +@@ -106,6 +106,6 @@ + -e "s#RUNDIR#$(VARRUN)#g" < dhcpd.leases.5 >dhcpd.leases.man5 + + dhcpd: $(OBJS) $(COBJ) $(DHCPLIB) +- $(CC) $(LFLAGS) -o dhcpd $(OBJS) $(DHCPLIB) $(LIBS) ++ $(CC) $(LFLAGS) -o dhcpd $(OBJS) $(DHCPLIB) $(LIBS) -lcrypto -lldap -llber + + # Dependencies (semi-automatically-generated) +diff -urNad dhcp3-3.1.0.orig/server/mdb.c dhcp3-3.1.0/server/mdb.c +--- dhcp3-3.1.0.orig/server/mdb.c 2007-06-08 20:57:02.000000000 +0200 ++++ dhcp3-3.1.0/server/mdb.c 2008-02-20 13:21:26.000000000 +0100 +@@ -454,6 +454,12 @@ + { + struct host_decl *foo; + struct hardware h; ++ int ret; ++ ++#if defined(LDAP_CONFIGURATION) ++ 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 dhcp3-3.1.0.orig/server/stables.c dhcp3-3.1.0/server/stables.c +--- dhcp3-3.1.0.orig/server/stables.c 2007-04-28 00:48:10.000000000 +0200 ++++ dhcp3-3.1.0/server/stables.c 2008-02-20 13:21:26.000000000 +0100 +@@ -238,9 +238,107 @@ + { "adaptive-lease-time-threshold", "B", &server_universe, 50, 1 }, + { "do-reverse-updates", "f", &server_universe, 51, 1 }, + { "fqdn-reply", "f", &server_universe, 52, 1 }, ++#if defined(LDAP_CONFIGURATION) ++ { "ldap-server", "t", &server_universe, 53 }, ++ { "ldap-port", "d", &server_universe, 54 }, ++ { "ldap-username", "t", &server_universe, 55 }, ++ { "ldap-password", "t", &server_universe, 56 }, ++ { "ldap-base-dn", "t", &server_universe, 57 }, ++ { "ldap-method", "Nldap-methods.", &server_universe, 58 }, ++ { "ldap-debug-file", "t", &server_universe, 59 }, ++ { "ldap-dhcp-server-cn", "t", &server_universe, 60 }, ++ { "ldap-referrals", "f", &server_universe, 61 }, ++#if defined(USE_SSL) ++ { "ldap-ssl", "Nldap-ssl-usage.", &server_universe, 62 }, ++ { "ldap-tls-reqcert", "Nldap-tls-reqcert.", &server_universe, 63 }, ++ { "ldap-tls-ca-file", "t", &server_universe, 64 }, ++ { "ldap-tls-ca-dir", "t", &server_universe, 65 }, ++ { "ldap-tls-cert", "t", &server_universe, 66 }, ++ { "ldap-tls-key", "t", &server_universe, 67 }, ++ { "ldap-tls-crlcheck", "Nldap-tls-crlcheck.", &server_universe, 68 }, ++ { "ldap-tls-ciphers", "t", &server_universe, 69 }, ++ { "ldap-tls-randfile", "t", &server_universe, 70 }, ++#else ++ { "unknown-62", "X", &server_universe, 62 }, ++ { "unknown-63", "X", &server_universe, 63 }, ++ { "unknown-64", "X", &server_universe, 64 }, ++ { "unknown-65", "X", &server_universe, 65 }, ++ { "unknown-66", "X", &server_universe, 66 }, ++ { "unknown-67", "X", &server_universe, 67 }, ++ { "unknown-68", "X", &server_universe, 68 }, ++ { "unknown-69", "X", &server_universe, 69 }, ++ { "unknown-70", "X", &server_universe, 70 }, ++#endif ++#else ++ { "unknown-53", "X", &server_universe, 53 }, ++ { "unknown-54", "X", &server_universe, 54 }, ++ { "unknown-55", "X", &server_universe, 55 }, ++ { "unknown-56", "X", &server_universe, 56 }, ++ { "unknown-57", "X", &server_universe, 57 }, ++ { "unknown-58", "X", &server_universe, 58 }, ++ { "unknown-59", "X", &server_universe, 59 }, ++ { "unknown-60", "X", &server_universe, 60 }, ++ { "unknown-61", "X", &server_universe, 61 }, ++#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", ++ 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", ++ 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", ++ 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", ++ ldap_tls_crlcheck_values ++}; ++#endif ++#endif ++ + struct enumeration_value ddns_styles_values [] = { + { "none", 0 }, + { "ad-hoc", 1 }, --- dhcp3-3.1.3.orig/debian/patches/dhcp-3.1.0-ldap-fix-sigpipe.dpatch +++ dhcp3-3.1.3/debian/patches/dhcp-3.1.0-ldap-fix-sigpipe.dpatch @@ -0,0 +1,214 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhcp-3.1.0-ldap-nosigpipe by Petter Reinholdtsen + +# Fix LDAP code to avoid SIGPIPE when submitting requests to the LDAP +# server if the server disconnected the connection because of +# inactivity. Fixes BTS request #559160. + +@DPATCH@ + +--- dhcp3-3.1.0.orig/server/ldap.c 2009-12-20 22:12:47.000000000 +0100 ++++ dhcp3-3.1.0/server/ldap.c 2009-12-20 22:20:24.000000000 +0100 +@@ -431,26 +431,11 @@ + static void + ldap_stop() + { +- struct sigaction old, new; +- + if (ld == NULL) + return; + +- /* +- ** ldap_unbind after a LDAP_SERVER_DOWN result +- ** causes 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); +- + ldap_unbind_ext_s (ld, NULL, NULL); + ld = NULL; +- +- sigaction (SIGPIPE, &old, &new); + } + + +@@ -544,7 +529,7 @@ + return (ret); + } + +-int ++static int + ldap_rebind_cb (LDAP *ld, LDAP_CONST char *url, ber_tag_t request, ber_int_t msgid, void *parms) + { + int ret; +@@ -1703,14 +1688,28 @@ + isc_result_t status; + ldap_dn_node *curr; + 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) +- return (0); ++ { ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } + + switch (htype) + { +@@ -1725,6 +1724,7 @@ + break; + default: + log_info ("Ignoring unknown type %d", htype); ++ sigaction (SIGPIPE, &old, &new); + return (0); + } + +@@ -1756,6 +1756,7 @@ + if(ld == NULL) + { + log_info ("LDAP reconnect failed - try again later..."); ++ sigaction (SIGPIPE, &old, &new); + return (0); + } + +@@ -1791,6 +1792,7 @@ + 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) +@@ -1821,6 +1823,7 @@ + log_fatal ("can't allocate host decl struct: %s", + isc_result_totext (status)); + ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); + return (0); + } + +@@ -1829,6 +1832,7 @@ + { + host_dereference (&host, MDL); + ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); + return (0); + } + +@@ -1837,6 +1841,7 @@ + log_fatal ("can't clone group for host %s", host->name); + host_dereference (&host, MDL); + ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); + return (0); + } + +@@ -1844,11 +1849,13 @@ + + *hp = host; + ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); + return (1); + } + + + if(res) ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); + return (0); + } + +@@ -1862,14 +1869,28 @@ + 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) +- return (0); ++ { ++ sigaction (SIGPIPE, &old, &new); ++ return (0); ++ } + + snprintf (buf, sizeof (buf), + "(&(objectClass=dhcpSubClass)(cn=%s)(dhcpClassData=%s))", +@@ -1900,6 +1921,7 @@ + if(ld == NULL) + { + log_info ("LDAP reconnect failed - try again later..."); ++ sigaction (SIGPIPE, &old, &new); + return (0); + } + +@@ -1935,6 +1957,7 @@ + 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) +@@ -1963,6 +1986,7 @@ + { + log_error ("Cannot allocate memory for a new class"); + ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); + return (0); + } + +@@ -1984,6 +2008,7 @@ + log_error ("no memory for billing"); + class_dereference (newclass, MDL); + ldap_msgfree (res); ++ sigaction (SIGPIPE, &old, &new); + return (0); + } + memset ((*newclass)->billed_leases, 0, +@@ -1993,10 +2018,12 @@ + 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); + } + --- dhcp3-3.1.3.orig/debian/patches/dhclient-chdir.dpatch +++ dhcp3-3.1.3/debian/patches/dhclient-chdir.dpatch @@ -0,0 +1,20 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhclient-chdir.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Don't tie up the current working directory (fixes #387723) + +@DPATCH@ +diff -urNad dhcp3-3.1.0~/client/dhclient.c dhcp3-3.1.0/client/dhclient.c +--- dhcp3-3.1.0~/client/dhclient.c 2007-10-27 16:58:05.366089512 -0700 ++++ dhcp3-3.1.0/client/dhclient.c 2007-10-27 16:59:05.401470566 -0700 +@@ -102,6 +102,9 @@ + int no_dhclient_script = 0; + char *s; + ++ /* chdir to / to avoid leaving the cwd busy */ ++ chdir("/"); ++ + /* 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 decriptor is used. */ --- dhcp3-3.1.3.orig/debian/patches/revert-next-server.dpatch +++ dhcp3-3.1.3/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 dhcp3-3.0.3~/server/dhcp.c dhcp3-3.0.3/server/dhcp.c +--- dhcp3-3.0.3~/server/dhcp.c 2005-04-30 01:10:57.000000000 +0200 ++++ dhcp3-3.0.3/server/dhcp.c 2006-02-01 17:21:18.000000000 +0100 +@@ -1209,6 +1209,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, +@@ -2492,7 +2493,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))) { --- dhcp3-3.1.3.orig/debian/patches/CVE-2011-0997.dpatch +++ dhcp3-3.1.3/debian/patches/CVE-2011-0997.dpatch @@ -0,0 +1,217 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +# Description: fix arbitrary code execution via crafted hostname +# Author: Marius Tomaschewski +# Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=621099 + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' dhcp3-3.1.3~/client/dhclient.c dhcp3-3.1.3/client/dhclient.c +--- dhcp3-3.1.3~/client/dhclient.c 2011-04-11 08:53:03.556060342 -0400 ++++ dhcp3-3.1.3/client/dhclient.c 2011-04-11 08:53:16.866060337 -0400 +@@ -77,6 +77,11 @@ + int quiet=0; + int nowait=0; + ++static int check_domain_name(const char *ptr, size_t len, int dots); ++static int check_domain_name_list(const char *ptr, size_t len, int dots); ++static int check_option_values(struct universe *universe, unsigned int opt, ++ const char *ptr, size_t len); ++ + static void usage PROTO ((void)); + + int main (argc, argv, envp) +@@ -2533,13 +2538,23 @@ + if (data.len) { + char name [256]; + if (dhcp_option_ev_name (name, sizeof name, +- oc -> option)) { +- client_envadd (es -> client, es -> prefix, +- name, "%s", +- (pretty_print_option +- (oc -> option, +- data.data, data.len, +- 0, 0))); ++ oc->option)) { ++ const char *value; ++ value = pretty_print_option(oc->option, ++ data.data, ++ data.len, 0, 0); ++ size_t length = strlen(value); ++ ++ if (check_option_values(oc->option->universe, ++ oc->option->code, ++ value, length) == 0) { ++ client_envadd(es->client, es->prefix, ++ name, "%s", value); ++ } else { ++ log_error("suspect value in %s " ++ "option - discarded", ++ name); ++ } + data_string_forget (&data, MDL); + } + } +@@ -2619,12 +2634,32 @@ + data_string_forget (&data, MDL); + } + +- if (lease -> filename) +- client_envadd (client, +- prefix, "filename", "%s", lease -> filename); +- if (lease -> server_name) +- client_envadd (client, prefix, "server_name", +- "%s", lease -> server_name); ++ if (lease->filename) { ++ if (check_option_values(NULL, DHO_ROOT_PATH, ++ lease->filename, ++ strlen(lease->filename)) == 0) { ++ client_envadd(client, prefix, "filename", ++ "%s", lease->filename); ++ } else { ++ log_error("suspect value in %s " ++ "option - discarded", ++ "filename"); ++ } ++ } ++ ++ if (lease->server_name) { ++ if (check_option_values(NULL, DHO_HOST_NAME, ++ lease->server_name, ++ strlen(lease->server_name)) == 0 ) { ++ client_envadd (client, prefix, "server_name", ++ "%s", lease->server_name); ++ } else { ++ log_error("suspect value in %s " ++ "option - discarded", ++ "server_name"); ++ } ++ } ++ + + for (i = 0; i < lease -> options -> universe_count; i++) { + option_space_foreach ((struct packet *)0, (struct lease *)0, +@@ -3249,3 +3284,112 @@ + data_string_forget (&ddns_dhcid, MDL); + return rcode; + } ++ ++/* ++ * The following routines are used to check that certain ++ * strings are reasonable before we pass them to the scripts. ++ * This avoids some problems with scripts treating the strings ++ * as commands - see ticket 23722 ++ * The domain checking code should be done as part of assembling ++ * the string but we are doing it here for now due to time ++ * constraints. ++ */ ++ ++static int check_domain_name(const char *ptr, size_t len, int dots) ++{ ++ const char *p; ++ ++ /* not empty or complete length not over 255 characters */ ++ if ((len == 0) || (len > 256)) ++ return(-1); ++ ++ /* consists of [[:alnum:]-]+ labels separated by [.] */ ++ /* a [_] is against RFC but seems to be "widely used"... */ ++ for (p=ptr; (*p != 0) && (len-- > 0); p++) { ++ if ((*p == '-') || (*p == '_')) { ++ /* not allowed at begin or end of a label */ ++ if (((p - ptr) == 0) || (len == 0) || (p[1] == '.')) ++ return(-1); ++ } else if (*p == '.') { ++ /* each label has to be 1-63 characters; ++ we allow [.] at the end ('foo.bar.') */ ++ size_t d = p - ptr; ++ if ((d <= 0) || (d >= 64)) ++ return(-1); ++ ptr = p + 1; /* jump to the next label */ ++ if ((dots > 0) && (len > 0)) ++ dots--; ++ } else if (isalnum((unsigned char)*p) == 0) { ++ /* also numbers at the begin are fine */ ++ return(-1); ++ } ++ } ++ return(dots ? -1 : 0); ++} ++ ++static int check_domain_name_list(const char *ptr, size_t len, int dots) ++{ ++ const char *p; ++ int ret = -1; /* at least one needed */ ++ ++ if ((ptr == NULL) || (len == 0)) ++ return(-1); ++ ++ for (p=ptr; (*p != 0) && (len > 0); p++, len--) { ++ if (*p != ' ') ++ continue; ++ if (p > ptr) { ++ if (check_domain_name(ptr, p - ptr, dots) != 0) ++ return(-1); ++ ret = 0; ++ } ++ ptr = p + 1; ++ } ++ if (p > ptr) ++ return(check_domain_name(ptr, p - ptr, dots)); ++ else ++ return(ret); ++} ++ ++static int check_option_values(struct universe *universe, ++ unsigned int opt, ++ const char *ptr, ++ size_t len) ++{ ++ if (ptr == NULL) ++ return(-1); ++ ++ /* just reject options we want to protect, will be escaped anyway */ ++ if ((universe == NULL) || (universe == &dhcp_universe)) { ++ switch(opt) { ++ case DHO_HOST_NAME: ++ case DHO_NIS_DOMAIN: ++ case DHO_NETBIOS_SCOPE: ++ return check_domain_name(ptr, len, 0); ++ break; ++ case DHO_DOMAIN_NAME: /* accept a list for compatibiliy */ ++ return check_domain_name_list(ptr, len, 0); ++ break; ++ case DHO_ROOT_PATH: ++ if (len == 0) ++ return(-1); ++ for (; (*ptr != 0) && (len-- > 0); ptr++) { ++ if(!(isalnum((unsigned char)*ptr) || ++ *ptr == '#' || *ptr == '%' || ++ *ptr == '+' || *ptr == '-' || ++ *ptr == '_' || *ptr == ':' || ++ *ptr == '.' || *ptr == ',' || ++ *ptr == '@' || *ptr == '~' || ++ *ptr == '\\' || *ptr == '/' || ++ *ptr == '[' || *ptr == ']' || ++ *ptr == '=' || *ptr == ' ')) ++ return(-1); ++ } ++ return(0); ++ break; ++ } ++ } ++ ++ return(0); ++} ++ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' dhcp3-3.1.3~/common/options.c dhcp3-3.1.3/common/options.c +--- dhcp3-3.1.3~/common/options.c 2011-04-11 08:53:03.536060342 -0400 ++++ dhcp3-3.1.3/common/options.c 2011-04-11 08:53:16.866060337 -0400 +@@ -2951,7 +2951,8 @@ + count += 4; + } + } else if (**src == '"' || **src == '\'' || **src == '$' || +- **src == '`' || **src == '\\') { ++ **src == '`' || **src == '\\' || **src == '|' || ++ **src == '&') { + if (*dst + 2 > dend) + return -1; + --- dhcp3-3.1.3.orig/debian/patches/00list +++ dhcp3-3.1.3/debian/patches/00list @@ -0,0 +1,43 @@ +# emailed upstream +Makefile +# emailed upstream +ddns-update-style-default +# emailed upstream +dhclient-script-exit-status +# emailed upstream +dhclient.c.stale-pids +# emailed upstream +dhcpd-chdir +dhclient-chdir +# Not emailed upstream +remove-excessive-junk +site.conf +# emailed upstream +add-libdst.a-dhcp3-dev +# emailed upstream +ignore-invalid-interfaces +# emailed upstream +dhclient-fix-backoff +# emailed upstream +dhclient-initial-random-delay-option +# GNU/kfreebsd system +kfreebsd +# Ubuntu patches (see patch headers) +droppriv +deroot-server +revert-next-server +dhcpd.conf-subnet-examples +dhclient-onetry-call-clientscript +dynamic-hostname +dhclient-more-debug +# For CVE-2009-1892 / Debian bug #549584 +server-clientid-crash +fix_exit_hook_doc_manpage.diff +CVE-2011-0997 +#ldap backend for dhcp3 server (docs and code) +#these get reverted during the build, so put non-ldap +#patches earlier +dhcp-3.1.0-ldap-docs +dhcp-3.1.0-ldap-code +dhcp-3.1.0-ldap-fix-sigpipe +dhcp-3.1.0-ldap-fix-memory-leak --- dhcp3-3.1.3.orig/debian/patches/dhcpd-chdir.dpatch +++ dhcp3-3.1.3/debian/patches/dhcpd-chdir.dpatch @@ -0,0 +1,21 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhcpd-chdir.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Changes to the root directory, avoids leaving busy whatever the current +## DP: working directory was when started up + +@DPATCH@ +diff -urNad dhcp3-3.1.0~/server/dhcpd.c dhcp3-3.1.0/server/dhcpd.c +--- dhcp3-3.1.0~/server/dhcpd.c 2007-10-27 16:56:02.666826967 -0700 ++++ dhcp3-3.1.0/server/dhcpd.c 2007-10-27 16:57:26.406703518 -0700 +@@ -572,6 +572,9 @@ + log_perror = 0; + + if (daemon) { ++ /* chdir to / to not leave cwd busy */ ++ chdir("/"); ++ + /* Become session leader and get pid... */ + pid = setsid(); + --- dhcp3-3.1.3.orig/debian/patches/dhcpd.conf-subnet-examples.dpatch +++ dhcp3-3.1.3/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 dhcp3-3.0.3~/server/dhcpd.conf dhcp3-3.0.3/server/dhcpd.conf +--- dhcp3-3.0.3~/server/dhcpd.conf 2001-01-25 09:33:11.000000000 +0100 ++++ dhcp3-3.0.3/server/dhcpd.conf 2006-05-05 01:12:48.000000000 +0200 +@@ -46,6 +46,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; --- dhcp3-3.1.3.orig/debian/patches/deroot-server.dpatch +++ dhcp3-3.1.3/debian/patches/deroot-server.dpatch @@ -0,0 +1,50 @@ +#! /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 dhcp3-3.1.1~/server/Makefile.dist dhcp3-3.1.1/server/Makefile.dist +--- dhcp3-3.1.1~/server/Makefile.dist 2006-07-25 15:26:00.000000000 +0200 ++++ dhcp3-3.1.1/server/Makefile.dist 2008-06-16 17:23:52.000000000 +0200 +@@ -22,6 +22,7 @@ + # http://www.isc.org/ + # + ++LIBS = -lcap + CATMANPAGES = dhcpd.cat8 dhcpd.conf.cat5 dhcpd.leases.cat5 + SEDMANPAGES = dhcpd.man8 dhcpd.conf.man5 dhcpd.leases.man5 + SRCS = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ +diff -urNad dhcp3-3.1.1~/server/dhcpd.c dhcp3-3.1.1/server/dhcpd.c +--- dhcp3-3.1.1~/server/dhcpd.c 2008-06-16 17:23:04.000000000 +0200 ++++ dhcp3-3.1.1/server/dhcpd.c 2008-06-16 17:23:05.000000000 +0200 +@@ -45,6 +45,7 @@ + + #include "dhcpd.h" + #include "version.h" ++#include "droppriv.h" + #include + + static void usage PROTO ((void)); +@@ -226,6 +227,10 @@ + char *traceoutfile = (char *)0; + #endif + ++ /* 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 decriptor is used. */ +@@ -604,6 +609,9 @@ + omapi_set_int_value ((omapi_object_t *)dhcp_control_object, + (omapi_object_t *)0, "state", server_running); + ++ /* drop all remaining capabilities */ ++ drop_privileges( "dhcpd", "dhcpd", 0, NULL, -1 ); ++ + /* Receive packets and dispatch them... */ + dispatch (); + --- dhcp3-3.1.3.orig/debian/patches/dhcp-3.1.0-ldap-docs.dpatch +++ dhcp3-3.1.3/debian/patches/dhcp-3.1.0-ldap-docs.dpatch @@ -0,0 +1,2787 @@ +#! /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 dhcp3-3.1.0.orig/Changelog-LDAP dhcp3-3.1.0/Changelog-LDAP +--- dhcp3-3.1.0.orig/Changelog-LDAP 1970-01-01 01:00:00.000000000 +0100 ++++ dhcp3-3.1.0/Changelog-LDAP 2008-02-20 13:21:26.000000000 +0100 +@@ -0,0 +1,255 @@ ++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). ++ + --- dhcp3-3.1.3.orig/debian/patches/dhclient-initial-random-delay-option.dpatch +++ dhcp3-3.1.3/debian/patches/dhclient-initial-random-delay-option.dpatch @@ -0,0 +1,103 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhclient-initial-random-delay-option.dpatch by Michel Lespinasse +## +## DP: the dhcp client was waiting a random delay, between 0 and 4 seconds, before +## DP: sending the first dhcp request. The maximum delay was hardcoded and this +## DP: behavior was not documented anywhere, but my guess is that this may have been +## DP: intended to reduce dhcp floods when a large number of machines boot at the same +## DP: time, following a power failure for example. It seems to me however, that such +## DP: a delay is not necessary in many common situations, such as when running on a +## DP: laptop with its own battery... I don't feel bold enough to just remove that +## DP: random delay, but I think adding a new dhclient.conf option named +## DP: initial-random-delay, which would default to 4 but be user-settable to any +## DP: desired maximum random delay value, including 0 for no delay, is a reasonable +## DP: proposal. Laptop users could then be encouraged to use initial-random-delay = +## DP: 0. +## DP: +## DP: Edited for Ubuntu: Set initial-random-delay to 0, which is a much +## DP: better default and avoids conffile changes. + +## DP: http://bugs.debian.org/509089 + +@DPATCH@ +diff -urNad dhcp3~/client/clparse.c dhcp3/client/clparse.c +--- dhcp3~/client/clparse.c 2010-06-25 10:55:32.000000000 +0200 ++++ dhcp3/client/clparse.c 2010-06-25 11:21:10.992436733 +0200 +@@ -78,6 +78,7 @@ + top_level_config.reboot_timeout = 10; + top_level_config.retry_interval = 300; + top_level_config.backoff_cutoff = 15; ++ top_level_config.initial_random_delay = 0; + top_level_config.initial_interval = 3; + top_level_config.bootp_policy = P_ACCEPT; + top_level_config.script_name = path_dhclient_script; +@@ -490,6 +491,11 @@ + parse_lease_time (cfile, &config -> backoff_cutoff); + return; + ++ case INITIAL_RANDOM_DELAY: ++ token = next_token (&val, (unsigned *)0, cfile); ++ parse_lease_time (cfile, &config -> initial_random_delay); ++ return; ++ + case INITIAL_INTERVAL: + token = next_token (&val, (unsigned *)0, cfile); + parse_lease_time (cfile, &config -> initial_interval); +diff -urNad dhcp3~/client/dhclient.c dhcp3/client/dhclient.c +--- dhcp3~/client/dhclient.c 2010-06-25 11:21:04.452439474 +0200 ++++ dhcp3/client/dhclient.c 2010-06-25 11:21:10.992436733 +0200 +@@ -438,7 +438,8 @@ + client -> state = S_INIT; + /* Set up a timeout to start the initialization + process. */ +- add_timeout (cur_time + random () % 5, ++ add_timeout (cur_time + random () % ++ (client->config->initial_random_delay+1), + state_reboot, client, 0, 0); + } + } +@@ -3036,7 +3037,8 @@ + client -> state = S_INIT; + /* Set up a timeout to start the initialization + process. */ +- add_timeout (cur_time + random () % 5, ++ add_timeout (cur_time + random () % ++ (client->config->initial_random_delay+1), + state_reboot, client, 0, 0); + } + } +diff -urNad dhcp3~/common/conflex.c dhcp3/common/conflex.c +--- dhcp3~/common/conflex.c 2010-06-25 10:55:32.000000000 +0200 ++++ dhcp3/common/conflex.c 2010-06-25 11:21:11.012463300 +0200 +@@ -827,6 +827,8 @@ + return IS; + if (!strcasecmp (atom + 1, "gnore")) + return IGNORE; ++ if (!strcasecmp (atom + 1, "nitial-random-delay")) ++ return INITIAL_RANDOM_DELAY; + break; + case 'k': + if (!strncasecmp (atom + 1, "nown", 4)) { +diff -urNad dhcp3~/includes/dhcpd.h dhcp3/includes/dhcpd.h +--- dhcp3~/includes/dhcpd.h 2010-06-25 10:55:32.000000000 +0200 ++++ dhcp3/includes/dhcpd.h 2010-06-25 11:21:11.012463300 +0200 +@@ -840,6 +840,8 @@ + TIME timeout; /* Start to panic if we don't get a + lease in this time period when + SELECTING. */ ++ TIME initial_random_delay; /* Maximum random delay before sending ++ first request. */ + TIME initial_interval; /* All exponential backoff intervals + start here. */ + TIME retry_interval; /* If the protocol failed to produce +diff -urNad dhcp3~/includes/dhctoken.h dhcp3/includes/dhctoken.h +--- dhcp3~/includes/dhctoken.h 2010-06-25 10:55:32.000000000 +0200 ++++ dhcp3/includes/dhctoken.h 2010-06-25 11:24:11.195266776 +0200 +@@ -326,6 +326,7 @@ + DOMAIN_LIST = 630, + LEASEQUERY = 631, + EXECUTE = 632, ++ INITIAL_RANDOM_DELAY = 633, + CONFLICT_DONE = 660 + }; + --- dhcp3-3.1.3.orig/debian/patches/server-clientid-crash.dpatch +++ dhcp3-3.1.3/debian/patches/server-clientid-crash.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## server-clientid-crash.dpatch by Christoh Biedl +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Server assert involving client IDs (CVE-2009-1892) + +@DPATCH@ +diff -urNad git~/server/dhcp.c git/server/dhcp.c +--- git~/server/dhcp.c 2009-07-12 22:03:17.000000000 +0200 ++++ git/server/dhcp.c 2009-07-12 22:04:42.000000000 +0200 +@@ -1747,6 +1747,8 @@ + host_reference (&host, h, MDL); + } + if (!host) { ++ if (hp) ++ host_dereference (&hp, MDL); + find_hosts_by_haddr (&hp, + packet -> raw -> htype, + packet -> raw -> chaddr, --- dhcp3-3.1.3.orig/debian/patches/site.conf.dpatch +++ dhcp3-3.1.3/debian/patches/site.conf.dpatch @@ -0,0 +1,14 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## site.conf.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Not exactly sure what this does + +@DPATCH@ +diff -urNad dhcp3-3.0.2/site.conf /tmp/dpep.E8xg8r/dhcp3-3.0.2/site.conf +--- dhcp3-3.0.2/site.conf 1999-07-08 01:20:10.000000000 +1000 ++++ /tmp/dpep.E8xg8r/dhcp3-3.0.2/site.conf 2005-06-15 12:48:03.657178152 +1000 +@@ -1,2 +1,3 @@ + # Put local site configuration stuff here to override the default + # settings in Makefile.conf ++SCRIPT=debian --- dhcp3-3.1.3.orig/debian/patches/dhclient-onetry-call-clientscript.dpatch +++ dhcp3-3.1.3/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 dhcp3-3.0.4~/client/dhclient.c dhcp3-3.0.4/client/dhclient.c +--- dhcp3-3.0.4~/client/dhclient.c 2006-12-01 14:18:30.000000000 +0100 ++++ dhcp3-3.0.4/client/dhclient.c 2006-12-01 14:18:45.000000000 +0100 +@@ -1556,6 +1556,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); + } + --- dhcp3-3.1.3.orig/debian/patches/kfreebsd.dpatch +++ dhcp3-3.1.3/debian/patches/kfreebsd.dpatch @@ -0,0 +1,403 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## kfreebsd.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +--- dhcp3-3.0.2.orig/Makefile.conf ++++ dhcp3-3.0.2/Makefile.conf +@@ -485,3 +485,22 @@ + #FFMANEXT = .5 + #MANINSTALL = install -i -m 444 + ##--hpux-gcc-- ++ ++## GNU/kFreeBSD ++##--kfreebsd-- ++#CF = cf/kfreebsd.h ++#COPTS = $(BINDDEF) $(CC_OPTIONS) ++#ADMMANDIR = /usr/share/man/man8 ++#ADMMANEXT = .8 ++#FFMANDIR = /usr/share/man/man5 ++#FFMANEXT = .5 ++#LIBMANDIR = /usr/share/man/man3 ++#LIBMANEXT = .3 ++#USRMANDIR = /usr/share/man/man1 ++#USRMANEXT = .1 ++#MANCAT = man ++#VARRUN = /var/run ++#VARDB = /var/lib/dhcp ++#SCRIPT=kfreebsd ++##--kfreebsd-- ++ +--- dhcp3-3.0.2.orig/configure ++++ dhcp3-3.0.2/configure +@@ -184,6 +184,8 @@ + sysname=nextstep;; + UnixWare) + sysname=uw7;; ++ GNU/kFreeBSD) ++ sysname=kfreebsd; + esac + fi + +@@ -213,6 +215,7 @@ + echo " qnx QNX 4.2 or higher" + echo " NEXTSTEP NeXTSTEP" + echo " sco SCO Open Server" ++ echo " kfreebsd GNU/kFreeBSD" + exit 1; + fi + fi +--- dhcp3-3.0.2.orig/common/bpf.c ++++ dhcp3-3.0.2/common/bpf.c +@@ -407,7 +407,7 @@ + interface -> rbuf, + (size_t)interface -> rbuf_max); + if (length <= 0) { +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + if (errno == ENXIO) { + #else + if (errno == EIO) { +--- dhcp3-3.0.2.orig/includes/osdep.h ++++ dhcp3-3.0.2/includes/osdep.h +@@ -133,6 +133,10 @@ + # endif + #endif + ++#if defined(__FreeBSD_kernel__) && defined(__GLIBC__) ++# include "cf/kfreebsd.h" ++#endif ++ + /* snprintf/vsnprintf hacks. for systems with no libc versions only. */ + #ifdef NO_SNPRINTF + extern int isc_print_snprintf(char *, size_t, const char *, ...); +--- dhcp3-3.0.2.orig/includes/cf/kfreebsd.h ++++ dhcp3-3.0.2/includes/cf/kfreebsd.h +@@ -0,0 +1,148 @@ ++/* kfreebsd.h ++ ++ System dependencies for GNU/kFreeBSD... */ ++ ++/* ++ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") ++ * Copyright (c) 1996-2003 by Internet Software Consortium ++ * ++ * 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/ ++ * ++ * This software has been written for Internet Systems Consortium ++ * by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc. ++ * To learn more about Internet Systems Consortium, see ++ * ``http://www.isc.org/''. To learn more about Vixie Enterprises, ++ * see ``http://www.vix.com''. To learn more about Nominum, Inc., see ++ * ``http://www.nominum.com''. ++ */ ++ ++#include ++ ++typedef u_int8_t u8; ++typedef u_int16_t u16; ++typedef u_int32_t u32; ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern int h_errno; ++ ++#include ++#include ++#include ++#include ++#if !defined (INADDR_LOOPBACK) ++# define INADDR_LOOPBACK ((u_int32_t)0x7f000001) ++#endif ++ ++#include /* gettimeofday()*/ ++ ++/* Databases go in /var/state/dhcp. It would also be valid to put them ++ in /var/state/misc - indeed, given that there's only one lease file, it ++ would probably be better. However, I have some ideas for optimizing ++ the lease database that may result in a _lot_ of smaller files being ++ created, so in that context it makes more sense to have a seperate ++ directory. */ ++ ++#ifndef _PATH_DHCPD_DB ++#define _PATH_DHCPD_DB "/var/state/dhcp/dhcpd.leases" ++#endif ++ ++#ifndef _PATH_DHCLIENT_DB ++#define _PATH_DHCLIENT_DB "/var/state/dhcp/dhclient.leases" ++#endif ++ ++/* Varargs stuff... */ ++#include ++#define VA_DOTDOTDOT ... ++#define VA_start(list, last) va_start (list, last) ++#define va_dcl ++ ++#if defined(__alpha__) || defined(__amd64__) || defined(__ia64__) || \ ++ defined(__sparc64__) ++# define PTRSIZE_64BIT ++#endif ++ ++#define VOIDPTR void * ++ ++#define EOL '\n' ++ ++/* Time stuff... */ ++ ++#include ++ ++#define TIME time_t ++#define GET_TIME(x) time ((x)) ++ ++#define HAVE_SA_LEN ++ ++#if defined (USE_DEFAULT_NETWORK) ++# define USE_BPF ++#endif ++#define HAVE_MKSTEMP ++#ifdef NEED_PRAND_CONF ++#ifndef HAVE_DEV_RANDOM ++ # define HAVE_DEV_RANDOM 1 ++ #endif /* HAVE_DEV_RANDOM */ ++ ++const char *cmds[] = { ++ "/bin/ps -axlw 2>&1", ++ "/sbin/arp -an 2>&1", ++ "/bin/netstat -an 2>&1", ++ "/bin/df 2>&1", ++ "/usr/bin/dig com. soa +ti=1 +retry=0 2>&1", ++ "/usr/bin/uptime 2>&1", ++ "/usr/bin/netstat -an 2>&1", ++ "/usr/bin/dig . soa +ti=1 +retry=0 2>&1", ++ "/usr/bin/vmstat 2>&1", ++ "/usr/bin/w 2>&1", ++ NULL ++}; ++ ++const char *dirs[] = { ++ "/tmp", ++ "/usr/tmp", ++ ".", ++ "/", ++ "/var/spool", ++ "/dev", ++ "/var/spool/mail", ++ "/home", ++ "/usr/home", ++ NULL ++}; ++ ++const char *files[] = { ++ "/proc/stat", ++ "/proc/meminfo", ++ "/proc/self/status", ++ "/var/log/messages", ++ "/var/log/wtmp", ++ "/var/log/lastlog", ++ NULL ++}; ++#endif /* NEED_PRAND_CONF */ +--- dhcp3-3.0.2.orig/client/scripts/kfreebsd ++++ dhcp3-3.0.2/client/scripts/kfreebsd +@@ -0,0 +1,174 @@ ++#!/bin/bash ++# dhclient-script for GNU/kFreeBSD. Aurelien Jarno, May, 2005. ++# Based on Linux and FreeBSD scripts. ++ ++make_resolv_conf() { ++ if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then ++ echo search $new_domain_name >/etc/resolv.conf ++ chmod 644 /etc/resolv.conf ++ for nameserver in $new_domain_name_servers; do ++ echo nameserver $nameserver >>/etc/resolv.conf ++ done ++ fi ++} ++ ++# Must be used on exit. Invokes the local dhcp client exit hooks, if any. ++exit_with_hooks() { ++ exit_status=$1 ++ if [ -f /etc/dhclient-exit-hooks ]; then ++ . /etc/dhclient-exit-hooks ++ fi ++# probably should do something with exit status of the local script ++ exit $exit_status ++} ++ ++# Invoke the local dhcp client enter hooks, if they exist. ++if [ -f /etc/dhclient-enter-hooks ]; then ++ exit_status=0 ++ . /etc/dhclient-enter-hooks ++ # allow the local script to abort processing of this state ++ # local script must set exit_status variable to nonzero. ++ if [ $exit_status -ne 0 ]; then ++ exit $exit_status ++ fi ++fi ++ ++if [ x$new_broadcast_address != x ]; then ++ new_broadcast_arg="broadcast $new_broadcast_address" ++fi ++if [ x$old_broadcast_address != x ]; then ++ old_broadcast_arg="broadcast $old_broadcast_address" ++fi ++if [ x$new_subnet_mask != x ]; then ++ new_subnet_arg="netmask $new_subnet_mask" ++fi ++if [ x$old_subnet_mask != x ]; then ++ old_subnet_arg="netmask $old_subnet_mask" ++fi ++if [ x$alias_subnet_mask != x ]; then ++ alias_subnet_arg="netmask $alias_subnet_mask" ++fi ++ ++if [ x$reason = xMEDIUM ]; then ++ eval "ifconfig $interface $medium" ++ eval "ifconfig $interface inet -alias 0.0.0.0 $medium" >/dev/null 2>&1 ++ sleep 1 ++ exit_with_hooks 0 ++fi ++ ++if [ x$reason = xPREINIT ]; then ++ if [ x$alias_ip_address != x ]; 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 ++ exit_with_hooks 0 ++fi ++ ++if [ x$reason = xARPCHECK ] || [ x$reason = xARPSEND ]; then ++ exit_with_hooks 0 ++fi ++ ++if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \ ++ [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then ++ current_hostname=`hostname` ++ if [ x$current_hostname = x ] || \ ++ [ x$current_hostname = x$old_host_name ]; then ++ if [ x$current_hostname = x ] || \ ++ [ x$new_host_name != x$old_host_name ]; then ++ hostname $new_host_name ++ fi ++ fi ++ ++ if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ ++ [ x$alias_ip_address != x$old_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 ++ if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then ++ eval "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 ++ # routes, and clear the ARP cache. ++ ifconfig $interface inet 0 down ++ fi ++ if [ x$old_ip_address = x ] || [ x$old_ip_address != x$new_ip_address ] || \ ++ [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then ++ eval "ifconfig $interface inet $new_ip_address $new_subnet_arg \ ++ $new_broadcast_arg $medium" ++ route add $new_ip_address 127.1 >/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 [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ]; ++ then ++ ifconfig $interface inet alias $alias_ip_address $alias_subnet_arg ++ route add $alias_ip_address 127.0.0.1 ++ fi ++ make_resolv_conf ++ exit_with_hooks 0 ++fi ++ ++if [ x$reason = xEXPIRE ] || [ x$reason = xFAIL ] || [ x$reason = xRELEASE ] \ ++ || [ x$reason = xSTOP ]; then ++ if [ x$alias_ip_address != x ]; 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 ++ if [ x$old_ip_address != x ]; then ++ eval "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 [ x$alias_ip_address != x ]; then ++ ifconfig $interface inet alias $alias_ip_address $alias_subnet_arg ++ route add $alias_ip_address 127.0.0.1 ++ fi ++ exit_with_hooks 0 ++fi ++ ++if [ x$reason = xTIMEOUT ]; then ++ if [ x$alias_ip_address != x ]; 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 ++ eval "ifconfig $interface inet $new_ip_address $new_subnet_arg \ ++ $new_broadcast_arg $medium" ++ sleep 1 ++ if [ -n "$new_routers" ]; then ++ set -- $new_routers ++ if ping -q -c 1 $1; then ++ if [ x$new_ip_address != x$alias_ip_address ] && \ ++ [ x$alias_ip_address != x ]; 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 >/dev/null 2>&1 ++ done ++ set -- $new_static_routes ++ while [ $# -gt 1 ]; do ++ route add $1 $2 ++ shift; shift ++ done ++ make_resolv_conf ++ exit_with_hooks 0 ++ fi ++ fi ++ eval "ifconfig $interface inet -alias $new_ip_address $medium" ++ ifconfig $interface inet 0 ++ exit_with_hooks 1 ++fi ++ ++exit_with_hooks 0 --- dhcp3-3.1.3.orig/debian/patches/dhcp-3.1.0-ldap-fix-memory-leak.dpatch +++ dhcp3-3.1.3/debian/patches/dhcp-3.1.0-ldap-fix-memory-leak.dpatch @@ -0,0 +1,18 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dhcp-3.1.0-ldap-fix-memory-leak.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Patch from Petter Reinholdtsen for #531050 + +@DPATCH@ +diff -urNad dhcp3-3.1.3~/server/ldap.c dhcp3-3.1.3/server/ldap.c +--- dhcp3-3.1.3~/server/ldap.c 2010-01-08 17:16:30.205275093 -0800 ++++ dhcp3-3.1.3/server/ldap.c 2010-01-08 17:17:22.985280336 -0800 +@@ -269,6 +269,7 @@ + x_strncat (cfile->inbuf, tempbv[i]->bv_val, LDAP_BUFFER_SIZE); + x_strncat (cfile->inbuf, ";\n", LDAP_BUFFER_SIZE); + } ++ ldap_value_free_len (tempbv); + } + + item->close_brace = 1; --- dhcp3-3.1.3.orig/debian/patches/ignore-invalid-interfaces.dpatch +++ dhcp3-3.1.3/debian/patches/ignore-invalid-interfaces.dpatch @@ -0,0 +1,36 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## ignore-invalid-interfaces.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Patch to ignore ARPHRD_VOID interfaces (for #463499) + +@DPATCH@ +diff -urNad dhcp3-3.1.0~/common/discover.c dhcp3-3.1.0/common/discover.c +--- dhcp3-3.1.0~/common/discover.c 2006-11-07 15:41:39.000000000 -0800 ++++ dhcp3-3.1.0/common/discover.c 2008-02-03 14:53:58.216602003 -0800 +@@ -480,6 +480,11 @@ + /* ignore loopback interface */ + break; + #endif ++#ifdef HAVE_ARPHRD_VOID ++ case ARPHRD_VOID: ++ /* ignore void interfaces */ ++ break; ++#endif + + case ARPHRD_ETHER: + tmp -> hw_address.hlen = 7; +diff -urNad dhcp3-3.1.0~/includes/osdep.h dhcp3-3.1.0/includes/osdep.h +--- dhcp3-3.1.0~/includes/osdep.h 2006-02-24 15:16:29.000000000 -0800 ++++ dhcp3-3.1.0/includes/osdep.h 2008-02-03 14:52:53.792501634 -0800 +@@ -307,6 +307,10 @@ + # define HAVE_ARPHRD_METRICOM + #endif + ++#if defined (ARPHRD_VOID) && !defined (HAVE_ARPHRD_VOID) ++# define HAVE_ARPHRD_VOID ++#endif ++ + #if defined (SO_BINDTODEVICE) && !defined (HAVE_SO_BINDTODEVICE) + # define HAVE_SO_BINDTODEVICE + #endif --- dhcp3-3.1.3.orig/debian/patches/dynamic-hostname.dpatch +++ dhcp3-3.1.3/debian/patches/dynamic-hostname.dpatch @@ -0,0 +1,116 @@ +#! /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 dhcp3-3.1.1~/common/options.c dhcp3-3.1.1/common/options.c +--- dhcp3-3.1.1~/common/options.c 2008-04-04 23:36:29.000000000 +0200 ++++ dhcp3-3.1.1/common/options.c 2008-06-16 17:15:46.000000000 +0200 +@@ -1205,6 +1205,7 @@ + switch (*p++) { + case 'd': + case 't': ++ case 'h': + return 1; + + /* These symbols are arbitrary, not fixed or +@@ -1336,6 +1337,7 @@ + case 'd': /* "Domain name" */ + case 'D': /* "rfc1035 compressed 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. */ +@@ -1439,6 +1441,7 @@ + /* Fall Through! */ + case 't': + case 'D': ++ case 'h': + fmtbuf [l + 1] = 0; + numhunk = -2; + break; +@@ -1515,6 +1518,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 dhcp3-3.1.1~/common/parse.c dhcp3-3.1.1/common/parse.c +--- dhcp3-3.1.1~/common/parse.c 2008-01-22 20:02:50.000000000 +0100 ++++ dhcp3-3.1.1/common/parse.c 2008-06-16 17:12:33.000000000 +0200 +@@ -4751,6 +4751,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; +@@ -4845,6 +4862,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') { +@@ -4854,6 +4872,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)) +@@ -5042,6 +5063,7 @@ + break; + + case 't': /* Text string... */ ++ case 'h': /* Text string with magic... */ + token = next_token (&val, + &len, cfile); + if (token != STRING) { +diff -urNad dhcp3-3.1.1~/common/tables.c dhcp3-3.1.1/common/tables.c +--- dhcp3-3.1.1~/common/tables.c 2008-04-11 20:59:11.000000000 +0200 ++++ dhcp3-3.1.1/common/tables.c 2008-06-16 17:12:50.000000000 +0200 +@@ -63,6 +63,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". +@@ -110,7 +112,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 }, --- dhcp3-3.1.3.orig/debian/patches/dhclient.c.stale-pids.dpatch +++ dhcp3-3.1.3/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); + } --- dhcp3-3.1.3.orig/debian/patches/ddns-update-style-default.dpatch +++ dhcp3-3.1.3/debian/patches/ddns-update-style-default.dpatch @@ -0,0 +1,42 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## ddns-update-style-default.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Patch to provide a sane upgrade path from DHCP v2, defaulting +## DP: ddns-update-style to none + +@DPATCH@ +diff -urNad dhcp3-3.0.2/server/dhcpd.c /tmp/dpep.mAiHoU/dhcp3-3.0.2/server/dhcpd.c +--- dhcp3-3.0.2/server/dhcpd.c 2004-09-30 09:01:50.000000000 +1000 ++++ /tmp/dpep.mAiHoU/dhcp3-3.0.2/server/dhcpd.c 2005-06-15 12:43:06.782036067 +1000 +@@ -753,6 +753,13 @@ + data_string_forget (&db, MDL); + } + ++ /* ++ On Debian we default to 'ddns-update-style none' so we do not ++ break upgrades from the version 2 DHCP server. If we do not ++ default to something dhcpd will refuse to start in the absence ++ of the ddns-update-style statement - peloy@debian.org ++ */ ++ ddns_update_style = 0; + oc = lookup_option (&server_universe, options, SV_DDNS_UPDATE_STYLE); + if (oc) { + if (evaluate_option_cache (&db, (struct packet *)0, +@@ -767,16 +774,6 @@ + log_fatal ("invalid dns update type"); + data_string_forget (&db, MDL); + } +- } else { +- log_info ("%s", ""); +- log_error ("** You must add a global ddns-update-style %s%s.", +- "statement to ", path_dhcpd_conf); +- log_error (" To get the same behaviour as in 3.0b2pl11 %s", +- "and previous"); +- log_error (" versions, add a line that says \"%s\"", +- "ddns-update-style ad-hoc;"); +- log_fatal (" Please read the dhcpd.conf manual page %s", +- "for more information. **"); + } + + oc = lookup_option (&server_universe, options, SV_LOG_FACILITY); --- dhcp3-3.1.3.orig/debian/patches/fix_exit_hook_doc_manpage.diff +++ dhcp3-3.1.3/debian/patches/fix_exit_hook_doc_manpage.diff @@ -0,0 +1,61 @@ +#! /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 folders /etc/dhcp3/dhclient-enter-hooks.d and +## DP: /etc/dhcp3/dhclient-enter-hooks.d. + +@DPATCH@ + +diff -Nru dhcp3-3.0.6.dfsg/client/dhclient-script.8 dhcp3-3.0.6.dfsg/client/dhclient-script.8 +--- dhcp3-3.0.6.dfsg/client/dhclient-script.8 2005-09-29 05:17:08.000000000 +1000 ++++ dhcp3-3.0.6.dfsg/client/dhclient-script.8 2009-04-29 12:41:21.000000000 +1000 +@@ -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 --- dhcp3-3.1.3.orig/debian/patches/Makefile.dpatch +++ dhcp3-3.1.3/debian/patches/Makefile.dpatch @@ -0,0 +1,46 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## Makefile.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Install into FHS-compliant directories + +@DPATCH@ +diff -urNad dhcp3-3.0.4~/Makefile.conf dhcp3-3.0.4/Makefile.conf +--- dhcp3-3.0.4~/Makefile.conf 2005-06-16 12:39:35.000000000 -0700 ++++ dhcp3-3.0.4/Makefile.conf 2006-07-02 13:59:16.491088939 -0700 +@@ -42,8 +42,8 @@ + ETC = /etc + VARRUN = /var/run + VARDB = /var/db +-LIBDIR=/usr/local/lib +-INCDIR=/usr/local/include ++LIBDIR=/usr/lib ++INCDIR=/usr/include + LIBS = + COPTS = $(BINDDEF) $(CC_OPTIONS) + DEBUG = -g +@@ -314,18 +314,19 @@ + ##--linux-2.2-- + #COPTS = -DLINUX_MAJOR=$(MAJORVERSION) -DLINUX_MINOR=$(MINORVERSION) \ + # $(BINDDEF) $(CC_OPTIONS) ++#ETC = /etc/dhcp3 + #CF = cf/linux.h +-#ADMMANDIR = /usr/man/man8 ++#ADMMANDIR = /usr/share/man/man8 + #ADMMANEXT = .8 +-#FFMANDIR = /usr/man/man5 ++#FFMANDIR = /usr/share/man/man5 + #FFMANEXT = .5 +-#LIBMANDIR = /usr/man/man3 ++#LIBMANDIR = /usr/share/man/man3 + #LIBMANEXT = .3 +-#USRMANDIR = /usr/man/man1 ++#USRMANDIR = /usr/share/man/man1 + #USRMANEXT = .1 + #MANCAT = man + #VARRUN = /var/run +-#VARDB = /var/state/dhcp ++#VARDB = /var/lib/dhcp3 + #SCRIPT=linux + ##--linux-2.2-- + --- dhcp3-3.1.3.orig/debian/patches/droppriv.dpatch +++ dhcp3-3.1.3/debian/patches/droppriv.dpatch @@ -0,0 +1,159 @@ +#! /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@ +diff -urNad dhcp3-3.0.5~/common/Makefile.dist dhcp3-3.0.5/common/Makefile.dist +--- dhcp3-3.0.5~/common/Makefile.dist 2004-09-21 22:33:35.000000000 +0200 ++++ dhcp3-3.0.5/common/Makefile.dist 2007-07-16 17:12:36.000000000 +0200 +@@ -25,11 +25,11 @@ + SRC = raw.c parse.c nit.c icmp.c dispatch.c conflex.c upf.c bpf.c socket.c \ + lpf.c dlpi.c packet.c tr.c ethernet.c memory.c print.c options.c \ + inet.c tree.c tables.c alloc.c fddi.c ctrace.c dns.c resolv.c \ +- execute.c discover.c comapi.c ++ execute.c discover.c comapi.c droppriv.c + OBJ = raw.o parse.o nit.o icmp.o dispatch.o conflex.o upf.o bpf.o socket.o \ + lpf.o dlpi.o packet.o tr.o ethernet.o memory.o print.o options.o \ + inet.o tree.o tables.o alloc.o fddi.o ctrace.o dns.o resolv.o \ +- execute.o discover.o comapi.o ++ execute.o discover.o comapi.o droppriv.o + MAN = dhcp-options.5 dhcp-eval.5 + + INCLUDES = -I$(TOP) $(BINDINC) -I$(TOP)/includes +diff -urNad dhcp3-3.0.5~/common/droppriv.c dhcp3-3.0.5/common/droppriv.c +--- dhcp3-3.0.5~/common/droppriv.c 1970-01-01 01:00:00.000000000 +0100 ++++ dhcp3-3.0.5/common/droppriv.c 2007-07-16 17:12:52.000000000 +0200 +@@ -0,0 +1,96 @@ ++/** ++ * 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 ++ ++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 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 ); ++ } ++ } ++} ++ +diff -urNad dhcp3-3.0.5~/includes/droppriv.h dhcp3-3.0.5/includes/droppriv.h +--- dhcp3-3.0.5~/includes/droppriv.h 1970-01-01 01:00:00.000000000 +0100 ++++ dhcp3-3.0.5/includes/droppriv.h 2007-07-16 17:12:36.000000000 +0200 +@@ -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 ++ --- dhcp3-3.1.3.orig/debian/patches/add-libdst.a-dhcp3-dev.dpatch +++ dhcp3-3.1.3/debian/patches/add-libdst.a-dhcp3-dev.dpatch @@ -0,0 +1,39 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## add-libdst.a-dhcp3-dev.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Patch from Olivier Houchard for #220525 +## DP: Makes the install target for libdst.a more useful than the default + +@DPATCH@ +diff -urNad dhcp3-3.0.2/dst/Makefile.dist /tmp/dpep.Zd4nUc/dhcp3-3.0.2/dst/Makefile.dist +--- dhcp3-3.0.2/dst/Makefile.dist 2004-06-11 03:59:28.000000000 +1000 ++++ /tmp/dpep.Zd4nUc/dhcp3-3.0.2/dst/Makefile.dist 2005-06-15 20:35:54.133359161 +1000 +@@ -30,13 +30,25 @@ + + all: libdst.a + +-install: +- + libdst.a: $(OBJ) + rm -f dst.a + ar cruv libdst.a $(OBJ) + $(RANLIB) libdst.a + ++install: all ++ for dir in $(LIBDIR);\ ++ do \ ++ foo=""; \ ++ for bar in `echo $(DESTDIR)$${dir} |tr / ' '`; do \ ++ foo=$${foo}/$$bar; \ ++ if [ ! -d $$foo ]; then \ ++ mkdir $$foo; \ ++ chmod 755 $$foo; \ ++ fi; \ ++ done; \ ++ done ++ $(INSTALL) libdst.a $(DESTDIR)$(LIBDIR) ++ + depend: + $(MKDEP) $(INCLUDES) $(PREDEFINES) $(SRC) + --- dhcp3-3.1.3.orig/debian/patches/dhclient-fix-backoff.dpatch +++ dhcp3-3.1.3/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 dhcp3~/client/dhclient.c dhcp3/client/dhclient.c +--- dhcp3~/client/dhclient.c 2010-06-25 11:14:22.424963705 +0200 ++++ dhcp3/client/dhclient.c 2010-06-25 11:14:31.132456620 +0200 +@@ -592,7 +592,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 = (struct string_list *)0; +@@ -618,7 +618,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. */ +@@ -690,7 +690,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); +@@ -961,7 +961,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. */ +@@ -1501,6 +1501,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); +@@ -1728,6 +1732,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 || +@@ -2906,7 +2914,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; --- dhcp3-3.1.3.orig/debian/patches/dhclient-script-exit-status.dpatch +++ dhcp3-3.1.3/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); --- dhcp3-3.1.3.orig/debian/patches/remove-excessive-junk.dpatch +++ dhcp3-3.1.3/debian/patches/remove-excessive-junk.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## remove-excessive-junk.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Removes some unnecessary noise from the logs when logging errors + +@DPATCH@ +diff -urNad dhcp3-3.0.2/omapip/errwarn.c /tmp/dpep.f40ek4/dhcp3-3.0.2/omapip/errwarn.c +--- dhcp3-3.0.2/omapip/errwarn.c 2004-10-01 06:38:32.000000000 +1000 ++++ /tmp/dpep.f40ek4/dhcp3-3.0.2/omapip/errwarn.c 2005-06-15 12:47:51.798490662 +1000 +@@ -76,7 +76,7 @@ + write (STDERR_FILENO, "\n", 1); + } + +-#if !defined (NOMINUM) ++#if 0 + log_error ("%s", ""); + log_error ("If you did not get this software from ftp.isc.org, please"); + log_error ("get the latest from ftp.isc.org and install that before");