go/src/net
Jesse Rittner 0da7fafac4 net: fix ListenMulitcastUDP to work properly when interface has no IPv4
The existing implementation would either fail or bind to the wrong interface
when the requested interface had no IPv4 address, such as when the Ethernet cable
was unplugged.

Now on Linux, it will always bind to the requested interface.
On other operating systems, it will consistently fail if the requested interface
has no IPv4 address.

Fixes #70132

Change-Id: I22ec7f9d4adaa4b5afb21fc448050fb4219cacee
Reviewed-on: https://go-review.googlesource.com/c/go/+/644375
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Commit-Queue: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
2025-02-06 09:36:55 -08:00
..
http net: use strings.SplitSeq and bytes.SplitSeq 2025-02-04 17:20:47 -08:00
internal net/internal/cgotest: don't try to use cgo with netgo build tag 2024-11-05 17:10:13 +00:00
mail net/mail: add example for ParseDate 2024-10-09 20:12:00 +00:00
netip internal/byteorder: use canonical Go casing in names 2024-11-20 20:59:28 +00:00
rpc net/rpc: move frozen notice to the start of the package doc 2025-02-04 21:26:47 -08:00
smtp net/smtp: ignore HELO error in QUIT 2024-10-25 04:52:06 +00:00
testdata net: add support for /etc/hosts aliases using go resolver 2022-11-10 18:29:14 +00:00
textproto net: use slices and maps to clean up tests 2024-07-25 00:20:13 +00:00
url net/url: add panic to unhex for imposible error case 2025-02-03 08:19:56 -08:00
addrselect.go net: replace sort with slices for address and DNS record sorting 2024-07-31 22:06:36 +00:00
addrselect_test.go
cgo_aix.go
cgo_android.go
cgo_bsd.go net: adjust build tags for darwin libc calls 2022-11-07 21:05:53 +00:00
cgo_darwin.go net: adjust build tags for darwin libc calls 2022-11-07 21:05:53 +00:00
cgo_linux.go
cgo_netbsd.go
cgo_openbsd.go
cgo_resnew.go
cgo_resold.go
cgo_socknew.go
cgo_sockold.go
cgo_solaris.go os: employ sendfile(2) for file-to-file copying on SunOS when needed 2024-08-12 18:44:38 +00:00
cgo_stub.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
cgo_unix.go net: detect EAI_ADDRFAMILY for cgo host lookup on FreeBSD 2024-10-07 20:52:38 +00:00
cgo_unix_cgo.go net: detect EAI_ADDRFAMILY for cgo host lookup on FreeBSD 2024-10-07 20:52:38 +00:00
cgo_unix_cgo_res.go net: don't return errno from _C_res_nsearch 2024-02-07 23:50:56 +00:00
cgo_unix_cgo_resn.go net: don't return errno from _C_res_nsearch 2024-02-07 23:50:56 +00:00
cgo_unix_syscall.go net: detect EAI_ADDRFAMILY for cgo host lookup on FreeBSD 2024-10-07 20:52:38 +00:00
cgo_unix_test.go net: net remove completed return from cgo lookup functions 2023-05-04 16:28:59 +00:00
conf.go net: improve GODEBUG=netdns=1 debug messages 2024-09-30 12:39:31 +00:00
conf_test.go net: don't force cgo resolver for .local subdomain queries 2024-02-26 20:46:36 +00:00
conn_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
dial.go net: document ctx argument to ListenConfig.Listen/ListenPacket 2024-10-21 18:16:19 +00:00
dial_test.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
dial_unix_test.go
dnsclient.go all: document legacy //go:linkname for modules with ≥500 dependents 2024-05-23 01:16:53 +00:00
dnsclient_test.go
dnsclient_unix.go cmd,log,net,runtime: simplify string prefix and suffix processing 2024-07-29 21:29:17 +00:00
dnsclient_unix_test.go net: use slices and maps to clean up tests 2024-07-25 00:20:13 +00:00
dnsconfig.go all: document legacy //go:linkname for final round of modules 2024-05-29 17:58:53 +00:00
dnsconfig_unix.go net: use stringslite.HasPrefix 2024-05-02 22:14:43 +00:00
dnsconfig_unix_test.go net: use slices and maps to clean up tests 2024-07-25 00:20:13 +00:00
dnsconfig_windows.go net: fixes to dnsReadConfig in dnsconfig_windows.go 2024-03-15 10:25:02 +00:00
dnsname_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
error_plan9.go
error_plan9_test.go net: remove unused errTimedout 2023-08-31 16:59:22 +00:00
error_posix.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
error_posix_test.go
error_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
error_unix.go net: add wasip1 support 2023-04-11 20:54:12 +00:00
error_unix_test.go net: remove unused errTimedout 2023-08-31 16:59:22 +00:00
error_windows.go
error_windows_test.go net: remove unused errTimedout 2023-08-31 16:59:22 +00:00
example_test.go net: fix example function name for IP.To4 2024-12-12 13:01:47 -08:00
external_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
fd_fake.go src: a/an grammar fixes 2023-11-20 15:56:08 +00:00
fd_js.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
fd_plan9.go
fd_posix.go
fd_unix.go os: explicitly check for invalid FD in NewFile 2023-05-24 20:19:46 +00:00
fd_wasip1.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
fd_windows.go net: consolidate the existing Windows version checks 2024-03-07 16:46:10 +00:00
file.go
file_plan9.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
file_stub.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
file_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
file_unix.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
file_unix_test.go net: skip TestFileFdBlocks if the "unix" network is not supported 2023-05-22 16:48:53 +00:00
file_wasip1.go net: test net.FileConn and net.FileListener with UDP sockets on wasip1 2023-06-12 23:11:39 +00:00
file_wasip1_test.go net: ensure net.Addr values match the connection type on wasip1 2023-06-13 21:06:56 +00:00
file_windows.go
hook.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
hook_plan9.go net: respect hosts file when resolving names for Windows 2023-09-04 07:21:38 +00:00
hook_unix.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
hook_windows.go net: respect hosts file when resolving names for Windows 2023-09-04 07:21:38 +00:00
hosts.go net: respect hosts file when resolving names for Windows 2023-09-04 07:21:38 +00:00
hosts_test.go net: use slices and maps to clean up tests 2024-07-25 00:20:13 +00:00
interface.go net: permit Interface with no Name 2025-02-03 12:11:12 -08:00
interface_aix.go
interface_bsd.go internal/routebsd: simplify for standard library 2025-02-03 12:11:07 -08:00
interface_bsd_test.go
interface_bsdvar.go internal/routebsd: simplify for standard library 2025-02-03 12:11:07 -08:00
interface_darwin.go internal/routebsd: simplify for standard library 2025-02-03 12:11:07 -08:00
interface_freebsd.go internal/routebsd: simplify for standard library 2025-02-03 12:11:07 -08:00
interface_linux.go net: avoid unnecessary interface lookup fetching all interface addresses 2024-12-11 10:02:08 -08:00
interface_linux_test.go
interface_plan9.go all: make use of stringslite.{HasPrefix, HasSuffix} 2024-05-06 14:00:54 +00:00
interface_solaris.go
interface_stub.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
interface_test.go net: permit Interface with no Name 2025-02-03 12:11:12 -08:00
interface_unix_test.go net: tolerate permission errors in interface tests 2023-07-18 23:51:35 +00:00
interface_windows.go net: fixes to dnsReadConfig in dnsconfig_windows.go 2024-03-15 10:25:02 +00:00
ip.go net,net/netip: implement the encoding.(Binary|Text)Appender 2024-09-23 18:10:51 +00:00
ip_test.go net,net/netip: implement the encoding.(Binary|Text)Appender 2024-09-23 18:10:51 +00:00
iprawsock.go net: add available godoc link 2024-01-10 03:29:50 +00:00
iprawsock_plan9.go
iprawsock_posix.go net: fix typo in ctrlCtxFn parameter name 2024-05-16 16:54:32 +00:00
iprawsock_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
ipsock.go all: document legacy //go:linkname for final round of modules 2024-05-29 17:58:53 +00:00
ipsock_plan9.go net: avoid internal hooks in TestDialTimeout 2023-08-29 20:38:53 +00:00
ipsock_plan9_test.go
ipsock_posix.go all: document legacy //go:linkname for final round of modules 2024-05-29 17:58:53 +00:00
ipsock_test.go
listen_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
lookup.go net: document LookupTXT behavior with multiple strings per record 2024-12-22 16:27:28 -08:00
lookup_plan9.go net: handle more error strings in lookupCNAME on Plan 9 2024-06-04 17:08:38 +00:00
lookup_test.go net: use slices.Contains{,Func} in lookup tests 2024-10-11 22:36:26 +00:00
lookup_unix.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
lookup_windows.go net: add Unwrap to *DNSError 2024-04-14 18:23:45 +00:00
lookup_windows_test.go net: use slices and maps to clean up tests 2024-07-25 00:20:13 +00:00
mac.go
mac_test.go
main_cloexec_test.go
main_conf_test.go net: move go/cgo resolver forcing functions to one file 2024-02-19 20:29:27 +00:00
main_plan9_test.go
main_posix_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
main_test.go net: use strings.SplitSeq and bytes.SplitSeq 2025-02-04 17:20:47 -08:00
main_unix_test.go
main_wasm_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
main_windows_test.go net: remove sysSocket fallback for Windows 7 2023-07-20 18:36:30 +00:00
mockserver_test.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
mptcpsock_linux.go net: use correct address family when testing for MPTCP support 2024-09-30 18:30:23 +00:00
mptcpsock_linux_test.go net: mptcp: force using MPTCP with GODEBUG 2023-07-11 00:36:57 +00:00
mptcpsock_stub.go net: mptcp: add TCPConn's MultipathTCP checker 2023-04-18 13:48:22 +00:00
net.go net: improve documentation of netgo/netcgo build tags 2024-09-30 12:38:42 +00:00
net_fake.go runtime: disable use of runnext on wasm 2024-02-27 19:24:21 +00:00
net_fake_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
net_test.go net: delete TestListenCloseListen 2024-01-22 21:04:44 +00:00
net_windows_test.go net: use strings.SplitSeq and bytes.SplitSeq 2025-02-04 17:20:47 -08:00
netcgo_off.go net: rewrite and simplify resolver configuration 2023-04-27 22:26:09 +00:00
netcgo_on.go net: rewrite and simplify resolver configuration 2023-04-27 22:26:09 +00:00
netgo_netcgo.go net: rewrite and simplify resolver configuration 2023-04-27 22:26:09 +00:00
netgo_off.go net: rewrite and simplify resolver configuration 2023-04-27 22:26:09 +00:00
netgo_on.go net: rewrite and simplify resolver configuration 2023-04-27 22:26:09 +00:00
nss.go net: rewrite nsswitch.conf parsing to work like other parsers 2022-11-15 20:15:51 +00:00
nss_test.go net: rewrite nsswitch.conf parsing to work like other parsers 2022-11-15 20:15:51 +00:00
packetconn_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
parse.go all: make use of stringslite.{HasPrefix, HasSuffix} 2024-05-06 14:00:54 +00:00
parse_test.go net: skip TestReadLine if /etc/services does not exist 2024-02-24 00:04:48 +00:00
pipe.go net: add available godoc link 2024-01-10 03:29:50 +00:00
pipe_test.go
platform_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
port.go
port_test.go
port_unix.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
protoconn_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
rawconn.go net: add available godoc link 2024-01-10 03:29:50 +00:00
rawconn_stub_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
rawconn_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
rawconn_unix_test.go
rawconn_windows_test.go
resolverdialfunc_test.go net: use slices and maps to clean up tests 2024-07-25 00:20:13 +00:00
rlimit_js.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
rlimit_unix.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
sendfile_linux.go net,os: consolidate poll.SendFile sending until EOF with 0 2024-11-01 01:09:12 +00:00
sendfile_stub.go net, os, internal/poll: test for use of sendfile 2024-04-26 18:12:56 +00:00
sendfile_test.go internal/poll: fix the inaccurate comment and add a edge test case 2024-11-01 01:09:09 +00:00
sendfile_unix_alt.go os, net, internal/poll: combine unix sendfile implementations 2024-10-28 23:45:31 +00:00
sendfile_unix_test.go internal/poll: in SendFile treat ENOTSUP like EOPNOTSUPP 2024-12-11 17:52:03 -08:00
sendfile_windows.go net, os, internal/poll: test for use of sendfile 2024-04-26 18:12:56 +00:00
server_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
sock_bsd.go
sock_cloexec.go net: separate the Solaris fast/slow path of setting SOCK_* from others 2024-04-14 18:17:25 +00:00
sock_cloexec_solaris.go net: separate the Solaris fast/slow path of setting SOCK_* from others 2024-04-14 18:17:25 +00:00
sock_linux.go
sock_linux_test.go
sock_plan9.go
sock_posix.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
sock_stub.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
sock_windows.go net: clarify maxListenerBacklog windows implementation 2024-01-08 18:52:56 +00:00
sockaddr_posix.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
sockopt_aix.go
sockopt_bsd.go
sockopt_fake.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
sockopt_linux.go
sockopt_plan9.go
sockopt_posix.go net: fix ListenMulitcastUDP to work properly when interface has no IPv4 2025-02-06 09:36:55 -08:00
sockopt_solaris.go
sockopt_windows.go
sockoptip4_bsdvar.go net: fix ListenMulitcastUDP to work properly when interface has no IPv4 2025-02-06 09:36:55 -08:00
sockoptip4_linux.go net: fix ListenMulitcastUDP to work properly when interface has no IPv4 2025-02-06 09:36:55 -08:00
sockoptip4_posix_nonlinux.go net: fix ListenMulitcastUDP to work properly when interface has no IPv4 2025-02-06 09:36:55 -08:00
sockoptip4_windows.go net: fix ListenMulitcastUDP to work properly when interface has no IPv4 2025-02-06 09:36:55 -08:00
sockoptip6_posix.go net: fix ListenMulitcastUDP to work properly when interface has no IPv4 2025-02-06 09:36:55 -08:00
sockoptip_stub.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
splice_linux.go internal/poll, net, os: remove poll.Splice syscall name return value 2024-04-02 21:49:26 +00:00
splice_linux_test.go internal/poll, net, os: remove poll.Splice syscall name return value 2024-04-02 21:49:26 +00:00
splice_stub.go net,os: arrange zero-copy of os.File and net.TCPConn to net.UnixConn 2023-11-17 23:16:28 +00:00
sys_cloexec.go
tcpconn_keepalive_conf_darwin_test.go net: support TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT on newer Windows 2024-03-07 16:02:18 +00:00
tcpconn_keepalive_conf_posix_test.go net: bifurcate the TCP Keep-Alive mechanism into Solaris and illumos 2024-04-14 18:17:21 +00:00
tcpconn_keepalive_conf_solaris_test.go net: implement TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT on Solaris 11.4 2024-04-15 03:10:07 +00:00
tcpconn_keepalive_conf_unix_test.go net: implement TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT on Solaris 11.4 2024-04-15 03:10:07 +00:00
tcpconn_keepalive_conf_windows_test.go net,internal/syscall/windows: prove that keep alive options exists 2024-03-21 11:49:35 +00:00
tcpconn_keepalive_illumos_test.go net: bifurcate the TCP Keep-Alive mechanism into Solaris and illumos 2024-04-14 18:17:21 +00:00
tcpconn_keepalive_posix_test.go net: support TCP_KEEPIDLE, TCP_KEEPINTVL and TCP_KEEPCNT on newer Windows 2024-03-07 16:02:18 +00:00
tcpconn_keepalive_solaris_test.go net: implement TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT on Solaris 11.4 2024-04-15 03:10:07 +00:00
tcpconn_keepalive_test.go net: implement TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT on Solaris 11.4 2024-04-15 03:10:07 +00:00
tcpsock.go net: check for MPTCP in DialTCP and ListenTCP 2024-11-21 22:53:35 +00:00
tcpsock_plan9.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
tcpsock_posix.go net: fix typo in ctrlCtxFn parameter name 2024-05-16 16:54:32 +00:00
tcpsock_solaris.go net: implement TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT on Solaris 11.4 2024-04-15 03:10:07 +00:00
tcpsock_test.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
tcpsock_unix.go net: implement TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT on Solaris 11.4 2024-04-15 03:10:07 +00:00
tcpsock_unix_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
tcpsock_windows.go net,internal/syscall/windows: prove that keep alive options exists 2024-03-21 11:49:35 +00:00
tcpsockopt_darwin.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
tcpsockopt_openbsd.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
tcpsockopt_plan9.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
tcpsockopt_posix.go
tcpsockopt_solaris.go net: implement TCP_KEEPIDLE, TCP_KEEPINTVL, and TCP_KEEPCNT on Solaris 11.4 2024-04-15 03:10:07 +00:00
tcpsockopt_stub.go net: add KeepAliveConfig and implement SetKeepAliveConfig 2024-02-20 06:04:31 +00:00
tcpsockopt_unix.go net: bifurcate the TCP Keep-Alive mechanism into Solaris and illumos 2024-04-14 18:17:21 +00:00
tcpsockopt_windows.go net,internal/syscall/windows: prove that keep alive options exists 2024-03-21 11:49:35 +00:00
timeout_test.go net: ignore Dial errors in TestAcceptTimeout 2024-01-24 18:06:55 +00:00
udpsock.go net: add godoc links on UDP related symbols 2024-07-22 18:33:24 +00:00
udpsock_plan9.go
udpsock_plan9_test.go
udpsock_posix.go net: fix typo in ctrlCtxFn parameter name 2024-05-16 16:54:32 +00:00
udpsock_test.go all: skip and fix various tests with -asan and -msan 2024-10-28 21:04:51 +00:00
unixsock.go net: add available godoc link 2024-01-10 03:29:50 +00:00
unixsock_linux_test.go
unixsock_plan9.go
unixsock_posix.go net: fix typo in ctrlCtxFn parameter name 2024-05-16 16:54:32 +00:00
unixsock_readmsg_cloexec.go
unixsock_readmsg_cmsg_cloexec.go
unixsock_readmsg_other.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
unixsock_readmsg_test.go internal/poll, internal/syscall/unix, net: move and export fcntl syscall wrapper 2023-05-18 09:15:25 +00:00
unixsock_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
unixsock_windows_test.go internal/syscall/windows: implement SupportUnixSocket by enumerating protocols 2024-03-12 17:24:57 +00:00
write_unix_test.go
writev_test.go net: enable most tests on wasip1 and js 2023-09-18 17:20:52 +00:00
writev_unix.go