Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(288)

Unified Diff: net/udp/udp_server_socket.cc

Issue 721273002: Remove timing limitation to set Broadcast, ReceiveBuffer, and SendBuffer options from UDPSocket. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/udp/udp_server_socket.cc
diff --git a/net/udp/udp_server_socket.cc b/net/udp/udp_server_socket.cc
index 796c04da503bcda479c1822d68ce9e53173ee617..5874c5f82e038445a2d579e73e4bf84de21f79a1 100644
--- a/net/udp/udp_server_socket.cc
+++ b/net/udp/udp_server_socket.cc
@@ -4,6 +4,7 @@
#include "net/udp/udp_server_socket.h"
+#include "net/base/net_errors.h"
#include "net/base/rand_callback.h"
namespace net {
@@ -13,13 +14,26 @@ UDPServerSocket::UDPServerSocket(net::NetLog* net_log,
: socket_(DatagramSocket::DEFAULT_BIND,
RandIntCallback(),
net_log,
- source) {
+ source),
+ allow_broadcast_(false) {
}
UDPServerSocket::~UDPServerSocket() {
}
int UDPServerSocket::Listen(const IPEndPoint& address) {
+ int rv = socket_.Open(address.GetFamily());
+ if (rv != OK)
+ return rv;
+
+ if (allow_broadcast_) {
+ rv = socket_.SetBroadcast(true);
+ if (rv != OK) {
+ socket_.Close();
+ return rv;
+ }
+ }
+
return socket_.Bind(address);
}
@@ -66,7 +80,7 @@ void UDPServerSocket::AllowAddressReuse() {
}
void UDPServerSocket::AllowBroadcast() {
- socket_.AllowBroadcast();
+ allow_broadcast_ = true;
}
int UDPServerSocket::JoinGroup(const IPAddressNumber& group_address) const {

Powered by Google App Engine
This is Rietveld 408576698