16 Commits

Author SHA1 Message Date
Michael Stapelberg
53c495091e quirk: enforce minimum lease time of 1 hour for Nintendo devices
The Nintendo Switch has been observed to hold on to IP addresses even after
their expiration. My guess is that this is an oversight: likely the device
enters power saving mode with a configured IP address and just sleeps through
the expiration time.

As the device seems to wake up once every hour, we enforce a minimum lease time
of 1 hour, but only for affected devices. The rest of the network gets short
lease times.

https://twitter.com/zekjur/status/1263949112036282374
2020-05-23 09:07:17 +02:00
Matt Layher
e1f2b975a1
internal/dhcp4d: fix staticcheck issues
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-09 16:51:32 -04:00
Michael Stapelberg
975f05d7ac fix dhcp4d_test.go 2019-07-20 11:30:52 +02:00
Michael Stapelberg
0d2e89cebf dhcp4d_test: fix message to match comparison 2019-01-01 10:44:03 +01:00
Michael Stapelberg
b923f145a5 dhcp4d: don’t incorrectly _offer_ reused addresses
Turns out a5d9e03dd3212f7f0c11dd856b308a16a58a3cdf was not entirely sufficient:
even though reused addresses would not be handed out anymore, they would still
be offered, which results in the client not being able to obtain an address.
2019-01-01 10:41:29 +01:00
Michael Stapelberg
a5d9e03dd3 dhcp4d: don’t incorrectly hand out reused addresses
fixes #18
2018-12-15 12:44:09 +01:00
Michael Stapelberg
ff7aa8f2cb add copyright notices 2018-06-28 20:08:23 +02:00
Michael Stapelberg
ae15230da3 dhcp4d: log in leases callback 2018-06-24 11:56:39 +02:00
Michael Stapelberg
3ba84074c7 dhcp4d: send replies as unicast using raw sockets
Preferring unicast over multicast (which hogs a lot of airtime on WiFi networks)
is a best practice.

Some device/access point vendor combinations even seem to entirely eat (some?)
broadcast traffic (sometimes), e.g. my Apple iPhone SE/Ubiquiti UAP-AC-HD, so
that using unicast is required for reliable WiFi.
2018-06-23 17:46:53 +02:00
Michael Stapelberg
5e11eae951 fix dhcp4d_test for larger pool 2018-06-19 09:46:29 +02:00
Michael Stapelberg
4c69109db5 dhcp4d: implement permanent leases (no expiration) 2018-06-12 08:21:07 +02:00
Michael Stapelberg
d21822f531 dhcp4d: implement loading leases files from persistent storage 2018-06-09 15:18:01 +02:00
Michael Stapelberg
f9c3c23b16 dhcp4d: implement lease expiration 2018-06-09 15:04:54 +02:00
Michael Stapelberg
3561ec3708 dhcp4d: offer requested address if available 2018-06-07 08:39:47 +02:00
Michael Stapelberg
2ef8bf6ea0 dnsd/dhcp4d: listen on configured address (not hard-coded) 2018-06-04 08:22:45 +02:00
Michael Stapelberg
6b9ce5728a Initial commit 2018-05-27 17:30:42 +02:00