Index: net/udp/udp_socket_win.cc |
diff --git a/net/udp/udp_socket_win.cc b/net/udp/udp_socket_win.cc |
index 42cb05af9d24bc6aace1f09918d9881ffdfc8666..e31e173c0b07cd40ea9a90bb38ef7651664142dc 100644 |
--- a/net/udp/udp_socket_win.cc |
+++ b/net/udp/udp_socket_win.cc |
@@ -538,6 +538,15 @@ int UDPSocketWin::SetSendBufferSize(int32_t size) { |
return ERR_SOCKET_SEND_BUFFER_SIZE_UNCHANGEABLE; |
} |
+int UDPSocketWin::SetDoNotFragment(bool do_not_fragment) { |
+ DCHECK_NE(socket_, INVALID_SOCKET); |
+ DCHECK(CalledOnValidThread()); |
+ DWORD val = do_not_fragment ? 1 : 0; |
+ int rv = setsockopt(socket_, IPPROTO_IP, IP_DONTFRAGMENT, |
+ reinterpret_cast<const char*>(&size), sizeof(size)); |
+ return rv == 0 ? OK : MapSystemError(WSAGetLastError()); |
+} |
+ |
int UDPSocketWin::AllowAddressReuse() { |
DCHECK_NE(socket_, INVALID_SOCKET); |
DCHECK(CalledOnValidThread()); |