Michael Stapelberg
c3c531931c
retry MQTT connections, even if initial connection attempt fails
2020-12-31 16:42:01 +01:00
Michael Stapelberg
32b0dc7d59
Makefile: Go 1.16’s go install wants the @latest suffix
2020-12-19 13:52:03 +01:00
Michael Stapelberg
04f2be01d9
dhcp4d: optionally publish DHCP leases to MQTT
...
Enable using:
mkdir -p /perm/dhcp4d
echo 'tcp://10.0.0.54:1883' > /perm/dhcp4d/mqtt-broker.txt
2020-12-19 13:34:46 +01:00
Michael Stapelberg
e5ea79aef8
update go.{mod,sum} with Go 1.16beta1
2020-12-18 10:10:17 +01:00
Robert Obryk
f8d1b4c8f2
internal/dhcp4: make persistent errors actally persistent ( #62 )
...
Previously, a permanent error would not be persisted for future
invocations of ObtainOrRenew. In practice, the daemon immediately
exited, so this made no difference.
2020-11-23 09:35:00 +01:00
Robert Obryk
8de4eb7ba1
internal/dns: prevent upstreams from being lost during reordering ( #63 )
...
If upstreams were reordered between start of an upstream request and its
conclusion, the move-to-front operation would likely incorrectly reorder
upstreams: duplicate one and remove another. Instead, we abandon the
move-to-front operation if that was about to happen.
2020-11-23 09:34:04 +01:00
Robert Obryk
0507d93b3d
dhcp4d: ensure that SetHostname operates on the correct lease ( #64 )
...
Previously SetHostname could operate on an expired lease, or even on a
lease for a different hwaddr, if the lease for the correct hwaddr
expired and the same lease ID was given away to someone else.
That's though mostly a theoretical concern, given the actual usage of
SetHostname and the time scales involved.
2020-11-23 09:32:42 +01:00
Michael Stapelberg
7f135438b8
dhcp4d: mention apple-suggested lease time of 1 hour
2020-11-01 19:24:24 +01:00
Michael Stapelberg
a8fce3cbbc
diag: drain ping reply channel to avoid goroutine leak
2020-09-14 22:10:09 +02:00
Michael Stapelberg
99c4046ebf
diagd: import net/http/pprof
2020-09-14 22:10:07 +02:00
Michael Stapelberg
efbe826a4e
diagd: -interface flag for easier testing
2020-09-14 22:10:07 +02:00
Michael Stapelberg
416c1a58f6
diag: plug socket leak by adding missing Close()
2020-09-14 22:10:07 +02:00
Michael Stapelberg
f8d79d0ecc
dhcp4: close healthiness checking connection
2020-09-14 12:54:14 +02:00
Michael Stapelberg
fddfe80222
dhcp4: start from scratch after 5 minutes of continued unhealthiness
...
fixes #58
2020-09-14 09:06:05 +02:00
Michael Stapelberg
876f8e320f
netconfig: de-configure old DHCPv4 addresses from uplink0
...
It is generally not a good idea to have multiple IP addresses on the same
interface unless managing their relative priorities via metrics etc.
During an outage, I noticed that with multiple IP addresses,
Linux was using the old obsolete one to send out packets,
which does not work with the ISP.
With this change,
we still hold on to IP addresses for as long as possible,
but no longer.
fixes issue #57
2020-09-12 19:58:47 +02:00
Michael Stapelberg
93fe6457b3
dnsd: serve DNS on tcp/53 as well (DNS must work over TCP)
...
fixes #59
2020-09-12 19:21:58 +02:00
Michael Stapelberg
ee17db29b6
GitHub actions: also exit early if gofmt reports syntax errors
2020-08-01 09:46:19 +02:00
Michael Stapelberg
5573c4dde7
GitHub actions: fix gofmt check
2020-08-01 09:28:02 +02:00
Michael Stapelberg
cf1e1dd480
re-generate website to pick up previous commit
2020-07-06 09:50:52 +02:00
CodeZombieCH
30b160ee55
website: added configuration section ( #55 )
...
Added configuration section to the installation page, including
examples of configuration files.
2020-07-06 09:50:37 +02:00
Michael Stapelberg
f86e20be53
dhcp6: port dhcp4 backoff logic
2020-07-02 22:07:26 +02:00
Michael Stapelberg
ae8cfee616
dhcp6: inspect server advertisment IAPD and report error, if any
...
The fiber7 DHCPv6 servers (sometimes?) use this field for reporting errors.
2020-07-02 22:06:55 +02:00
Michael Stapelberg
281f876834
integration/netconfig: verify wg(8) is available
...
The kernel used on GitHub actions now allows creating wireguard interfaces
apparently.
2020-07-02 21:14:35 +02:00
Michael Stapelberg
8c1b3676ab
gokr-packer invocations: set empty -eeprom_package=
...
We don’t need Raspberry Pi 4 EEPROM files on router7 on amd64,
and this makes the build easier.
fixes #54
2020-07-02 21:06:22 +02:00
Michael Stapelberg
dff392e558
website: bundle assets for faster loading/privacy
2020-06-21 10:06:18 +02:00
Michael Stapelberg
876a3308d2
style tables with bootstrap table styles
...
as per https://willschenk.com/articles/2020/styling_tables_with_hugo/
2020-06-21 09:52:38 +02:00
Michael Stapelberg
cb95bb6df8
move README into (hugo-powered) website router7.org
2020-06-21 09:43:13 +02:00
Michael Stapelberg
1250211381
github actions: try caching the module cache
2020-06-16 23:41:21 +02:00
Michael Stapelberg
9c7e626f7d
switch from travis to GitHub actions
2020-06-16 23:22:34 +02:00
Michael Stapelberg
b090fa2924
qemu: enable i6300esb watchdog device
...
For the corresponding kernel change, see:
0f4dcc4a87
2020-06-16 23:09:35 +02:00
Michael Stapelberg
1fd5468bab
first start of a qemu target
2020-06-04 09:59:24 +02:00
Michael Stapelberg
aa14d119e6
dyndns: add log message when records are updated
...
Now both cases are covered.
2020-05-28 17:24:51 +02:00
Michael Stapelberg
decb0978d7
dyndns: update to newer libdns/cloudflare, remove workaround
2020-05-28 17:22:24 +02:00
Michael Stapelberg
f1e4ee0662
dyndns: don’t crashloop when config does not exist
...
related to #46
2020-05-28 09:46:37 +02:00
Michael Stapelberg
7950291db6
dyndns: tweak up-to-date message output
2020-05-28 09:42:55 +02:00
Michael Stapelberg
4a5f55a5de
defense in depth: verify hex.DecodeString length
...
related to #49
2020-05-27 09:50:04 +02:00
Matt Layher
ead58ad72c
cmd/dyndns: prototype for dynamic DNS daemon ( #50 )
...
Updates #46 .
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-23 23:06:21 +02:00
Matt Layher
7aeb51e9ec
internal/dhcp4d: handle DHCPDECLINE and fix bug regarding MacBook declining leases ( #48 )
...
Fixes #40
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-23 20:53:13 +02:00
Matt Layher
fe68c2dd52
internal/radvd: add support for DNSSL ( #47 )
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-23 19:52:52 +02:00
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
Michael Stapelberg
d81b77a876
Merge pull request #44 from mdlayher/mdl-staticcheck
...
*: apply staticcheck fixes
2020-05-09 23:07:34 +02:00
Matt Layher
61174cde06
internal/netconfig: add missing error check
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-09 17:04:31 -04:00
Matt Layher
9f6257b046
internal/dns: fix staticcheck issues
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-09 17:02:33 -04:00
Matt Layher
b8c40958e8
internal/dhcp6: fix error case
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-09 17:00:43 -04:00
Matt Layher
411780cd8e
internal/dhcp4: fix error case
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-09 17:00:07 -04:00
Matt Layher
988aa405be
cmd/dhcp4d: make use of unused assignment
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-09 16:58:57 -04:00
Matt Layher
f87891a74b
integration/radvd: panic in goroutine instead of fatal
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-09 16:56:51 -04:00
Matt Layher
dd7c3a8a5f
internal/testing/dnsmasq: panic in goroutine instead of fatal
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-09 16:55:46 -04:00
Matt Layher
8efea22943
internal/radvd: remove dead types
...
Signed-off-by: Matt Layher <mdlayher@gmail.com>
2020-05-09 16:52:52 -04: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