ping: Fix unprivileged conn

This commit is contained in:
世界 2026-06-01 17:40:22 +08:00
parent 23eaeb3198
commit 568357315c
No known key found for this signature in database
GPG key ID: CD109927C34A63C4

View file

@ -94,8 +94,9 @@ func (c *UnprivilegedConn) Write(b []byte) (n int, err error) {
}
c.mappingAccess.Lock()
if c.ctx.Err() != nil {
return 0, c.ctx.Err()
if err = c.ctx.Err(); err != nil {
c.mappingAccess.Unlock()
return 0, err
}
conn, loaded := c.mapping[identifier]
if !loaded {
@ -159,10 +160,13 @@ func (c *UnprivilegedConn) fetchResponse(conn *net.UDPConn, identifier uint16) {
func (c *UnprivilegedConn) removeConn(conn *net.UDPConn, identifier uint16) {
c.mappingAccess.Lock()
defer c.mappingAccess.Unlock()
_ = conn.Close()
mappedConn, loaded := c.mapping[identifier]
if loaded && mappedConn == conn {
delete(c.mapping, identifier)
}
c.mappingAccess.Unlock()
_ = conn.Close()
}
func (c *UnprivilegedConn) Close() error {
c.mappingAccess.Lock()