| // Copyright 2023 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| //go:build go1.21 |
| |
| package quic |
| |
| import "net/netip" |
| |
| // Per-plaform consts describing support for various features. |
| // |
| // const udpECNSupport indicates whether the platform supports setting |
| // the ECN (Explicit Congestion Notification) IP header bits. |
| // |
| // const udpInvalidLocalAddrIsError indicates whether sending a packet |
| // from an local address not associated with the system is an error. |
| // For example, assuming 127.0.0.2 is not a local address, does sending |
| // from it (using IP_PKTINFO or some other such feature) result in an error? |
| |
| // unmapAddrPort returns a with any IPv4-mapped IPv6 address prefix removed. |
| func unmapAddrPort(a netip.AddrPort) netip.AddrPort { |
| if a.Addr().Is4In6() { |
| return netip.AddrPortFrom( |
| a.Addr().Unmap(), |
| a.Port(), |
| ) |
| } |
| return a |
| } |