History log of /freebsd-current/sbin/dhclient/dhclient-script
Revision Date Author Comments
# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# e2dc8d78 04-Mar-2023 Alexander V. Chernikov <melifaro@FreeBSD.org>

dhclient: do not add 0.0.0.0 interface alias.

Subscribers: imp

Differential Revision: https://reviews.freebsd.org/D38908


# fd6ecc18 04-Oct-2022 Kristof Provost <kp@FreeBSD.org>

dhclient-script: cope with /32 address leases

On certain cloud platforms (Google Cloud, Packet.net and others) the
DHCP server offers a /32 address. This makes adding the default route
fail since it is not reachable via any interface. Linux's
dhclient-script seem to usually have a special case for that and
explicitly adds an interface route to the router's address.

FreeBSD's dhclient-script already has a special case for when the router
address is the same as the leased address. Now also add one for when
it's a different address that doesn't fall in the interface's subnet.

PR: 241792
Event: Aberdeen hackathon 2022
Submitted by: sigsys@gmail.com
Reviewed by: dch, kp, bz (+1 on the idea, not reviewed), thj
MFC after: 1 week


# 999f3972 30-Dec-2011 Jean-Sébastien Pédron <dumbbell@FreeBSD.org>

Set svn:executable on dhclient-script

Sponsored by: Yakaz (http://www.yakaz.com)


# 1c6eedda 13-Dec-2011 Gleb Smirnoff <glebius@FreeBSD.org>

dhclient-script relied on incorrect behavior of SIOCAIFADDR ioctl,
that changed 0.0.0.0/0.0.0.0 prefix to 0.0.0.0/255.0.0.0.

In the r228313 this behavior was fixed, and since dhclient-script
got broken.

I'm not sure this fix is a perfect one, it just changes
dhclient-script to set 0.0.0.0/255.0.0.0 explicitly.

PR: kern/163206


# 409139f0 04-Dec-2011 Jean-Sébastien Pédron <dumbbell@FreeBSD.org>

Support domain-search in dhclient(8)

The "domain-search" option (option 119) allows a DHCP server to publish
a list of implicit domain suffixes used during name lookup. This option
is described in RFC 3397.

For instance, if the domain-search option says:
".example.org .example.com"
and one wants to resolve "foobar", the resolver will try:
1. "foobar.example.org"
2. "foobar.example.com"

The file /etc/resolv.conf is updated with a "search" directive if the
DHCP server provides "domain-search".

A regression test suite is included in this patch under
tools/regression/sbin/dhclient.

PR: bin/151940
Sponsored by Yakaz (http://www.yakaz.com)


# 9201145d 17-Mar-2011 Hajimu UMEMOTO <ume@FreeBSD.org>

Use resolvconf(8) to update /etc/resolv.conf.
If you don't want to use resolvconf(8) to update /etc/resolv.conf,
you can put resolvconf_enable="NO" into /etc/dhclient-enter-hooks.


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 9761cdd8 09-Jun-2008 Brooks Davis <brooks@FreeBSD.org>

Use the -n flag to route(8) when calling "route get". Otherwise we hang
for a long time if we get a lease, but DNS isn't working.

MFC after: 1 week


# d5354256 29-Mar-2008 Brooks Davis <brooks@FreeBSD.org>

Add a new function is_default_interface() which determines if this
interface is one with the default route (or there isn't one). Use it to
decide if we should adjust the default route and /etc/resolv.conf.

Fix the delete of the default route. The if statement was totally bogus
and the delete only worked due to a typo. [1]

Reported by: Jordan Coleman <jordan at JordanColeman dot com> [1]
MFC after: 1 week


# 1547317e 21-Jan-2008 Brooks Davis <brooks@FreeBSD.org>

During PREINIT, when giving the interface the address 0.0.0.0, do it as an
alias to avoid distrubing other addresses.

PR: bin/119255
Submitted by: Jaakko Heinonen <jh at saunalahti dot fi>


# 60932bc9 03-Jul-2007 Andrew Thompson <thompsa@FreeBSD.org>

Use the -n flag on ifconfig so that dhclient does not cause the kernel module
to be reloaded when the interface is torn down.

Reviewed by: brooks
Approved by: re (kensmith)


# 9f0d81ba 13-Apr-2007 Ed Maste <emaste@FreeBSD.org>

The minimum size of an RFC3442 destination descriptor is five bytes, so
correct test to -ge 5. Without this change an RFC3442 encoded default
route would be ignored.

Reported by: Cedric Jonas <cedric at decemplex dot net>


# 2fcc7370 09-Feb-2007 Ed Maste <emaste@FreeBSD.org>

Implement RFC3442, the Classless Static Route option.

The original DHCP specification includes a route option but it supports
only class-based routes. RFC3442 adds support for specifying the netmask
width for each static route. A variable length encoding is used to minimize
the size of this option.

PR: bin/99534
Submitted by: Andrey V. Elsukov <bu7cher@yandex.ru>
Reviewed by: brooks


# f1bacaa5 26-Jan-2006 Brooks Davis <brooks@FreeBSD.org>

Fix rev 1.12.

/tmp may not be writeable yet when dhclient is first run via
/etc/rc.d/netif so using it may not work. Also, writing to a
predictable file in /tmp as root is a really bad idea since a malicious
user may be able to win a race and insert a symlink which will allow
them to cause any file to be overwritten. To solve these problems,
create the tempory file in /var/run which will exist this early and is
writable only by root.

Security: Local risk if users can cause dhclient to run on demand
(such as by unplugging and replugging the network cable).


# b0864f3a 23-Jan-2006 Brooks Davis <brooks@FreeBSD.org>

Give the TIMEOUT case a chance to work by using -t # instead of the
OpenBSD -w # when invoking ping.

PR: bin/92187
Submitted by: "Shin'ya Kumabuchi" <kumabu at t3 dot rim dot or dot jp>
MFC After: 6 days


# 90158aee 22-Jan-2006 Wes Peters <wes@FreeBSD.org>

Make dhclient-script more agreeable with read-only /etc.

PR: 90518
Submitted by: John E. Hein <jhein@timing.com>
MFC after: 3 days


# b1f35e43 09-Jan-2006 Brooks Davis <brooks@FreeBSD.org>

When we give up on an interface, use the arp(8) command to remove all
entries from the interface rather than using ifconfig's delete command.
This preserves non-dhclient configured addresses (though they are wiped
out when dhclient is restarted).

MFC after: 1 week


# dd415a50 08-Sep-2005 Brooks Davis <brooks@FreeBSD.org>

Avoid updating resolv.conf when no changes have actually occured.

Submitted by: ume


# 3d0181db 08-Sep-2005 Brooks Davis <brooks@FreeBSD.org>

When we fail to aquire a lease, our lease expires without a sucessful
renewal, or we lose link, be more forceful about clearing interface
state so another interface that connects to the same network has a
chance of working. This doesn't address attemping to connect to both at
once, but appears to allow unplugging from a wired interface and then
inserting a wireless card that associates with an AP bridged to the same
LAN.


# 001f040a 26-Aug-2005 Brooks Davis <brooks@FreeBSD.org>

The $medium string often contains quoted values with spaces in them (ssids,
for example). Follow the example of the ISC script and wrap ifconfig
calls using $medium in eval "..." so this works.

Reported by: iedowse


# 6ae27cb6 25-Aug-2005 Brooks Davis <brooks@FreeBSD.org>

Use a more robust, grep-free command to get the interface of the current
default route.

Submitted by: Rostislav Krasny <rosti dot bsd at gmail dot com>


# 7e82455e 25-Aug-2005 Brooks Davis <brooks@FreeBSD.org>

Don't and/remove a route to our assigned IP through 127.0.0.1. It
serves no apparent purpose (we commented this out ages ago in the ISC
scripts) and cases problems with some ADSL setups.

Reported by: Rostislav Krasny <rosti dot bsd at gmail dot com>


# 3c089809 26-Jul-2005 Brooks Davis <brooks@FreeBSD.org>

s/if_defaulroute/if_defaultroute/

We may now handle route updates better.


# d5fedb6e 09-Jun-2005 Brooks Davis <brooks@FreeBSD.org>

Add support for /etc/dhclient-enter-hooks to match /etc/dhclient-exit-hooks.


# d6790d5a 08-Jun-2005 Brooks Davis <brooks@FreeBSD.org>

Add support for /etc/dhclient-exit-hooks file.

Tested by: Max Boyarov <max_b at tut dot by>


# 8750adaf 06-Jun-2005 Brooks Davis <brooks@FreeBSD.org>

FreeBSDize the dhclient-script.

Submitted by: sam


# 47c08596 06-Jun-2005 Brooks Davis <brooks@FreeBSD.org>

Import the OpenBSD dhclient as shipped with OpenBSD-3.7 (the tag
OPENBSD_3_7).