Add bind to interface socket option support to QuicClientDefaultNetworkHelper.
Similar to cl/468270056, but as per cl/470077005, Bonnet no longer uses QuicClientEpollNetworkHelper (which is being deprecated).
PiperOrigin-RevId: 473049356
diff --git a/quiche/quic/tools/quic_client_default_network_helper.cc b/quiche/quic/tools/quic_client_default_network_helper.cc
index a408a8f..2db9768 100644
--- a/quiche/quic/tools/quic_client_default_network_helper.cc
+++ b/quiche/quic/tools/quic_client_default_network_helper.cc
@@ -233,6 +233,17 @@
*overflow_supported = api.EnableDroppedPacketCount(fd);
api.EnableReceiveTimestamp(fd);
+
+ std::string interface_name = client_->interface_name();
+ if (!interface_name.empty()) {
+ if (!api.BindInterface(fd, interface_name)) {
+ QUIC_DLOG(WARNING) << "Failed to bind socket (" << fd
+ << ") to interface (" << interface_name << ").";
+ CleanUpUDPSocket(fd);
+ return kQuicInvalidSocketFd;
+ }
+ }
+
return fd;
}