History log of /openbsd/usr.sbin/dhcpd/dhcp.c (Results 1 – 25 of 57)
Revision Date Author Comments
# 8415e52b 11-Jul-2017 reyk <reyk@openbsd.org>

Handle DHCPINFORM from clients behind a DHCP relay.

The dhcpinform() function has assumed that ciaddr matches the packet's
IP source address and didn't consider a relay, such as dhcrelay(8) -
indica

Handle DHCPINFORM from clients behind a DHCP relay.

The dhcpinform() function has assumed that ciaddr matches the packet's
IP source address and didn't consider a relay, such as dhcrelay(8) -
indicated by giaddr, has forwarded the request.

Tested by landry@
OK krw@

show more ...


# a51e9872 24-Apr-2017 krw <krw@openbsd.org>

Add 'echo-client-id' statment, so that RFC 6842 behaviour can be
turned off for those clients and networks that find it impossible to
move past RFC 2131. Modelled on the same statement in recent ISC

Add 'echo-client-id' statment, so that RFC 6842 behaviour can be
turned off for those clients and networks that find it impossible to
move past RFC 2131. Modelled on the same statement in recent ISC
versions, though we default to 'on' (a.k.a. RFC 6842) rather that
'off' (a.k.a. RFC 2131).

Problems reported by Bastien Durel (Xerox Phaser 6022 printer) and
Bryan Vyhmeister (Hon Hai Precision router) via misc@. Thanks!

show more ...


# 0438cf0a 13-Feb-2017 krw <krw@openbsd.org>

Eliminate pointless'%m' (a.k.a. hand rolled strerror()) by using fatal() and
log_warn(). Zap a couple of explicit 'syslog()' calls.


# 35318e8f 13-Feb-2017 krw <krw@openbsd.org>

Adjust some long lines.


# c525a185 13-Feb-2017 krw <krw@openbsd.org>

Switch from old errwarn.c logging to shiny new log.[ch].

ok benno@


# 7e041c99 24-Oct-2016 krw <krw@openbsd.org>

Compare server-identifiers and reject packets only *after* applying
value specified in dhcpd.conf.

i.e. don't assume it is always the primary address of the interface
the packet arrived on.

Fixes i

Compare server-identifiers and reject packets only *after* applying
value specified in dhcpd.conf.

i.e. don't assume it is always the primary address of the interface
the packet arrived on.

Fixes issues with redundant dhcpd servers and CARP'd interfaces.

Issue reported and fix tested by Johan Huldtgren

show more ...


# 8d148acd 12-Oct-2016 krw <krw@openbsd.org>

client_identifier is not a string so using strlen() on it is
inappropriate. Which is why client_identifier_len exists.

Replace copy&pasted strlen() with client_identifier_len.

Symptoms (crash) and

client_identifier is not a string so using strlen() on it is
inappropriate. Which is why client_identifier_len exists.

Replace copy&pasted strlen() with client_identifier_len.

Symptoms (crash) and cause (bad c&p) spotted by sthen@.

tested & ok sthen@

show more ...


# a82310c0 10-Oct-2016 krw <krw@openbsd.org>

Stop pretending we use RFC 3046/Option 82/Relay Agent Information.

RFC 3042 says servers that do not understand the option will not
echo it.

Plus, our desultory attempt at echoing was almost certai

Stop pretending we use RFC 3046/Option 82/Relay Agent Information.

RFC 3042 says servers that do not understand the option will not
echo it.

Plus, our desultory attempt at echoing was almost certainly broken
for OFFERs (use after free of packet data) and not even attempted
for NACKs.

ok millert@

show more ...


# 2c9b957a 06-Oct-2016 krw <krw@openbsd.org>

Add support for RFC 6842. RFC 2131 said the server MUST NOT echo
the client-identifier value. RFC 6842 says the server MUST echo it.

Echoing the information disambiguates packets for relays and clie

Add support for RFC 6842. RFC 2131 said the server MUST NOT echo
the client-identifier value. RFC 6842 says the server MUST echo it.

Echoing the information disambiguates packets for relays and clients
when chaddr is 0. Similar to what dhcpv6 does.

show more ...


# 9e601734 05-Oct-2016 krw <krw@openbsd.org>

Use consistant idiom (intermediate variable 'i' rather than repeated
uses of very long #define names) to access option data in nak_lease()
and ack_lease().

Shortens a lot of lines, which allows a nu

Use consistant idiom (intermediate variable 'i' rather than repeated
uses of very long #define names) to access option data in nak_lease()
and ack_lease().

Shortens a lot of lines, which allows a number of line splits to
be eliminates.

Makes some upcoming diffs easier to integrate.

No intentional functional change.

show more ...


# d10ef319 04-Oct-2016 krw <krw@openbsd.org>

Zap stray whitespace.


# 94bf53e6 05-Aug-2016 krw <krw@openbsd.org>

Don't leak the option data of non-DHCPINFORM messages received on
the udp socket.

Found by David Carlier.

ok yasuoka@


# 837cddff 06-Feb-2016 krw <krw@openbsd.org>

Eliminate #include inside *.h files and include only needed headers in
each *.c file.

Inspired by mention of header silliness by Edgar Pettijohn and mmcc@
on tech@.


# 0582c210 21-Dec-2015 mmcc <mmcc@openbsd.org>

remove NULL-checks before free()


# 35de856e 20-Aug-2015 deraadt <deraadt@openbsd.org>

stdlib.h is in scope; do not cast malloc/calloc/realloc*
ok millert krw


# d7503dcf 15-Apr-2015 krw <krw@openbsd.org>

Avoid using inet_ntoa() twice in a single printf() parameter list
by caching the results from excess inet_ntoa() calls before doing
the printf(). Should improve usefullness (?) of DHCPRELEASE log
ent

Avoid using inet_ntoa() twice in a single printf() parameter list
by caching the results from excess inet_ntoa() calls before doing
the printf(). Should improve usefullness (?) of DHCPRELEASE log
entries by actually printing ciaddr and giaddr correctly when
dhcprelays stand between servers and clients.

Looks good to dlg@.

show more ...


# c9109787 11-Nov-2014 krw <krw@openbsd.org>

Tweak the the DHCPACK to DHCPINFORM log entry so that it is
less threatening and more informative.

e.g.

DHCPACK on <null address> to 5c:51:4f:56:81:c3 via em0

changes to

DHCPACK to 192.168.19.62

Tweak the the DHCPACK to DHCPINFORM log entry so that it is
less threatening and more informative.

e.g.

DHCPACK on <null address> to 5c:51:4f:56:81:c3 via em0

changes to

DHCPACK to 192.168.19.62 (3c:97:0e:0c:0c:d7) via em0

Issue noted and diff tested by Marc Peters. Thanks!

ok yasuoka@ millert@

show more ...


# 6b03e9c2 10-Nov-2014 krw <krw@openbsd.org>

Typo: consitent -> consistent.


# 41b6b05b 11-Aug-2014 tobias <tobias@openbsd.org>

validate len field for proper length, not just "not zero."

ok krw@


# fc9106f9 11-Jul-2014 yasuoka <yasuoka@openbsd.org>

Fix DHCPINFORM not to lookup the lease database, not to fill the yiaddr
field and not to include the lease time parameters.

ok krw


# 84d8c049 11-Jul-2014 yasuoka <yasuoka@openbsd.org>

Add -u option to bind UDP port as a socket to answer DHCPINFORM from
the clients on non ethernet interfaces (eg. tun(4) or pppx(4)).

input krw
ok krw


# 1a4d4b6b 05-Apr-2013 krw <krw@openbsd.org>

send_packet() and writev() return ssize_t, not int. Use correct
type to store the returned value. From dhill.


# 3fd9b174 22-Mar-2013 krw <krw@openbsd.org>

RFC 2131 4.3.1 seems clear that a server MUST NOT include the
client-identifier option in OFFER or ACK messages. So stop
doing so.


# 09a99a61 11-Mar-2013 krw <krw@openbsd.org>

RFC 2131 says don't ACK any REQUEST messages that contain a
server-identifier option that specifies a different dhcp server.

So don't.

Pointed put and fix tested by Andy via bugs@


# e4a7785e 14-Feb-2013 krw <krw@openbsd.org>

Obey RFC 2131 and when the broadcast flag is set send reply back
via udp broadcast and link-local broadcast. Not udp broadcast to
link address of client. Fixes at least some switches who
use the broa

Obey RFC 2131 and when the broadcast flag is set send reply back
via udp broadcast and link-local broadcast. Not udp broadcast to
link address of client. Fixes at least some switches who
use the broadcast flag.

Bug submitted by Andy via bugs@, and fix tested by same. Thanks!

ok beck@

show more ...


123