use embedded structs

Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com>
This commit is contained in:
Mohammed Al Sahaf 2025-04-03 01:50:17 +03:00
parent c65fc0bb1a
commit 57a85ede02
No known key found for this signature in database
3 changed files with 12 additions and 10 deletions

View File

@ -42,6 +42,8 @@ linters:
- whitespace - whitespace
- zerologlint - zerologlint
settings: settings:
staticcheck:
checks: ["all", "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022", "-QF1008"] # default, and exclude 1 more undesired check
errcheck: errcheck:
exclude-functions: exclude-functions:
- fmt.* - fmt.*

View File

@ -147,7 +147,7 @@ func (fcl *fakeCloseListener) Accept() (net.Conn, error) {
err = tconn.SetKeepAlive(false) err = tconn.SetKeepAlive(false)
} }
if err != nil { if err != nil {
Log().With(zap.String("server", fcl.key)).Warn("unable to set keepalive for new connection:", zap.Error(err)) Log().With(zap.String("server", fcl.sharedListener.key)).Warn("unable to set keepalive for new connection:", zap.Error(err))
} }
} }
return conn, nil return conn, nil
@ -165,7 +165,7 @@ func (fcl *fakeCloseListener) Accept() (net.Conn, error) {
// users of this listener, not just our own reference to it; we also don't // users of this listener, not just our own reference to it; we also don't
// do anything with the error because all we could do is log it, but we // do anything with the error because all we could do is log it, but we
// explicitly assign it to nothing so we don't forget it's there if needed // explicitly assign it to nothing so we don't forget it's there if needed
_ = fcl.clearDeadline() _ = fcl.sharedListener.clearDeadline()
if netErr, ok := err.(net.Error); ok && netErr.Timeout() { if netErr, ok := err.(net.Error); ok && netErr.Timeout() {
return nil, fakeClosedErr(fcl) return nil, fakeClosedErr(fcl)
@ -188,8 +188,8 @@ func (fcl *fakeCloseListener) Close() error {
// file). But we can set the deadline in the past, // file). But we can set the deadline in the past,
// and this is kind of cheating, but it works, and // and this is kind of cheating, but it works, and
// it apparently even works on Windows. // it apparently even works on Windows.
_ = fcl.setDeadline() _ = fcl.sharedListener.setDeadline()
_, _ = listenerPool.Delete(fcl.key) _, _ = listenerPool.Delete(fcl.sharedListener.key)
} }
return nil return nil
} }
@ -236,7 +236,7 @@ func (sl *sharedListener) setDeadline() error {
// Destruct is called by the UsagePool when the listener is // Destruct is called by the UsagePool when the listener is
// finally not being used anymore. It closes the socket. // finally not being used anymore. It closes the socket.
func (sl *sharedListener) Destruct() error { func (sl *sharedListener) Destruct() error {
return sl.Close() return sl.Listener.Close()
} }
// fakeClosePacketConn is like fakeCloseListener, but for PacketConns, // fakeClosePacketConn is like fakeCloseListener, but for PacketConns,
@ -279,13 +279,13 @@ func (fcpc *fakeClosePacketConn) ReadFrom(p []byte) (n int, addr net.Addr, err e
func (fcpc *fakeClosePacketConn) Close() error { func (fcpc *fakeClosePacketConn) Close() error {
if atomic.CompareAndSwapInt32(&fcpc.closed, 0, 1) { if atomic.CompareAndSwapInt32(&fcpc.closed, 0, 1) {
_ = fcpc.SetReadDeadline(time.Now()) // unblock ReadFrom() calls to kick old servers out of their loops _ = fcpc.SetReadDeadline(time.Now()) // unblock ReadFrom() calls to kick old servers out of their loops
_, _ = listenerPool.Delete(fcpc.key) _, _ = listenerPool.Delete(fcpc.sharedPacketConn.key)
} }
return nil return nil
} }
func (fcpc *fakeClosePacketConn) Unwrap() net.PacketConn { func (fcpc *fakeClosePacketConn) Unwrap() net.PacketConn {
return fcpc.PacketConn return fcpc.sharedPacketConn.PacketConn
} }
// sharedPacketConn is like sharedListener, but for net.PacketConns. // sharedPacketConn is like sharedListener, but for net.PacketConns.
@ -296,7 +296,7 @@ type sharedPacketConn struct {
// Destruct closes the underlying socket. // Destruct closes the underlying socket.
func (spc *sharedPacketConn) Destruct() error { func (spc *sharedPacketConn) Destruct() error {
return spc.Close() return spc.PacketConn.Close()
} }
// Unwrap returns the underlying socket // Unwrap returns the underlying socket

View File

@ -574,7 +574,7 @@ type sharedQuicListener struct {
// Destruct closes the underlying QUIC listener and its associated net.PacketConn. // Destruct closes the underlying QUIC listener and its associated net.PacketConn.
func (sql *sharedQuicListener) Destruct() error { func (sql *sharedQuicListener) Destruct() error {
// close EarlyListener first to stop any operations being done to the net.PacketConn // close EarlyListener first to stop any operations being done to the net.PacketConn
_ = sql.Close() _ = sql.EarlyListener.Close()
// then close the net.PacketConn // then close the net.PacketConn
return sql.packetConn.Close() return sql.packetConn.Close()
} }
@ -626,7 +626,7 @@ func (fcql *fakeCloseQuicListener) Accept(_ context.Context) (quic.EarlyConnecti
func (fcql *fakeCloseQuicListener) Close() error { func (fcql *fakeCloseQuicListener) Close() error {
if atomic.CompareAndSwapInt32(&fcql.closed, 0, 1) { if atomic.CompareAndSwapInt32(&fcql.closed, 0, 1) {
fcql.contextCancel() fcql.contextCancel()
_, _ = listenerPool.Delete(fcql.key) _, _ = listenerPool.Delete(fcql.sharedQuicListener.key)
} }
return nil return nil
} }