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

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
« no previous file with comments | « net/udp/udp_server_socket.h ('k') | net/udp/udp_socket.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..4653f718c68ecef1104b08cab34a4eeef73e798c 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,35 @@ UDPServerSocket::UDPServerSocket(net::NetLog* net_log,
: socket_(DatagramSocket::DEFAULT_BIND,
RandIntCallback(),
net_log,
- source) {
+ source),
+ allow_address_reuse_(false),
+ allow_broadcast_(false) {
}
UDPServerSocket::~UDPServerSocket() {
}
int UDPServerSocket::Listen(const IPEndPoint& address) {
+ int rv = socket_.Open(address.GetFamily());
+ if (rv != OK)
+ return rv;
+
+ if (allow_address_reuse_) {
+ rv = socket_.AllowAddressReuse();
+ if (rv != OK) {
+ socket_.Close();
+ return rv;
+ }
+ }
+
+ if (allow_broadcast_) {
+ rv = socket_.SetBroadcast(true);
+ if (rv != OK) {
+ socket_.Close();
+ return rv;
+ }
+ }
+
return socket_.Bind(address);
}
@@ -62,11 +85,11 @@ const BoundNetLog& UDPServerSocket::NetLog() const {
}
void UDPServerSocket::AllowAddressReuse() {
- socket_.AllowAddressReuse();
+ allow_address_reuse_ = true;
}
void UDPServerSocket::AllowBroadcast() {
- socket_.AllowBroadcast();
+ allow_broadcast_ = true;
}
int UDPServerSocket::JoinGroup(const IPAddressNumber& group_address) const {
« no previous file with comments | « net/udp/udp_server_socket.h ('k') | net/udp/udp_socket.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698