
The dhcp server is systemd-networkd, and the dhcp plugin can request an ip but can not renew it. The systemd-networkd just ignore the renew request. ``` 2024/09/14 21:46:00 no DHCP packet received within 10s 2024/09/14 21:46:00 retrying in 31.529038 seconds 2024/09/14 21:46:42 no DHCP packet received within 10s 2024/09/14 21:46:42 retrying in 63.150490 seconds 2024/09/14 21:47:45 98184616c91f15419f5cacd012697f85afaa2daeb5d3233e28b0ec21589fb45a/iot/eth1: no more tries 2024/09/14 21:47:45 98184616c91f15419f5cacd012697f85afaa2daeb5d3233e28b0ec21589fb45a/iot/eth1: renewal time expired, rebinding 2024/09/14 21:47:45 Link "eth1" down. Attempting to set up 2024/09/14 21:47:45 98184616c91f15419f5cacd012697f85afaa2daeb5d3233e28b0ec21589fb45a/iot/eth1: lease rebound, expiration is 2024-09-14 22:47:45.309270751 +0800 CST m=+11730.048516519 ``` Follow the https://datatracker.ietf.org/doc/html/rfc2131#section-4.3.6, following options must not be sent in renew - Requested IP Address - Server Identifier Since the upstream code has been inactive for 6 years, we should switch to another dhcpv4 library. The new selected one is https://github.com/insomniacslk/dhcp. Signed-off-by: Songmin Li <lisongmin@protonmail.com>
3.7 KiB
3.7 KiB
CHANGELOG
v0.5.1
- [Improvement]: revert
go.mod
to Go 1.20 to resolve an issue around Go module version upgrades.
v0.5.0
This is the first release of package socket that only supports Go 1.21+. Users on older versions of Go must use v0.4.1.
- [Improvement]: drop support for older versions of Go.
- [New API]: add
socket.Conn
wrappers for variousGetsockopt
andSetsockopt
system calls.
v0.4.1
- [Bug Fix] commit:
ensure
socket.Conn
can be used with non-socket file descriptors by handlingENOTSOCK
in the constructor.
v0.4.0
This is the first release of package socket that only supports Go 1.18+. Users on older versions of Go must use v0.3.0.
- [Improvement]: drop support for older versions of Go so we can begin using
modern versions of
x/sys
and other dependencies.
v0.3.0
This is the last release of package socket that supports Go 1.17 and below.
- [New API/API change] PR:
numerous
socket.Conn
methods now support context cancelation. Future releases will continue adding support as needed.- New
ReadContext
andWriteContext
methods. Connect
,Recvfrom
,Recvmsg
,Sendmsg
, andSendto
methods now accept a context.Sendto
parameter order was also fixed to match the underlying syscall.
- New
v0.2.3
- [New API] commit:
socket.Conn
has newPidfd*
methods for wrapping thepidfd_*(2)
family of system calls.
v0.2.2
- [New API] commit:
socket.Conn
has newIoctlKCM*
methods for wrappingioctl(2)
forAF_KCM
operations.
v0.2.1
- [New API] commit:
socket.Conn
has a newSetsockoptPacketMreq
method for wrappingsetsockopt(2)
forAF_PACKET
socket options.
v0.2.0
- [New API] commit:
socket.FileConn
can be used to create asocket.Conn
from an existingos.File
, which may be provided by systemd socket activation or another external mechanism. - [API change] commit:
socket.Conn.Connect
now returns theunix.Sockaddr
value provided bygetpeername(2)
, since we have to invoke that system call anyway to verify that a connection to a remote peer was successfully established. - [Bug Fix] commit:
check the correct error from
unix.GetsockoptInt
in thesocket.Conn.Connect
method. Thanks @vcabbage!
v0.1.2
- [Bug Fix]:
socket.Conn.Connect
now properly checks theSO_ERROR
socket option value after callingconnect(2)
to verify whether or not a connection could successfully be established. This means thatConnect
should now report an error for anAF_INET
TCP connection refused orAF_VSOCK
connection reset by peer. - [New API]: add
socket.Conn.Getpeername
for use inConnect
, but also for use by external callers.
v0.1.1
- [New API]:
socket.Conn
now hasCloseRead
,CloseWrite
, andShutdown
methods. - [Improvement]: internal rework to more robustly handle various errors.
v0.1.0
- Initial unstable release. Most functionality has been developed and ported
from package
netlink
.