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

Unified Diff: ppapi/shared_impl/private/udp_socket_private_impl.cc

Issue 10735056: AllowBroadcast() is exposed to NaCl. (Closed) Base URL: http://git.chromium.org/chromium/src.git@udp_broadcast
Patch Set: Fixed comments. Created 8 years, 4 months 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: ppapi/shared_impl/private/udp_socket_private_impl.cc
diff --git a/ppapi/shared_impl/private/udp_socket_private_impl.cc b/ppapi/shared_impl/private/udp_socket_private_impl.cc
index 9b509e1f307cf8daf413908e531a4a7b27012ce3..bf2b5ebfc3310bf0f772d3648a5baa7ffc7cb235 100644
--- a/ppapi/shared_impl/private/udp_socket_private_impl.cc
+++ b/ppapi/shared_impl/private/udp_socket_private_impl.cc
@@ -40,6 +40,23 @@ UDPSocketPrivateImpl::AsPPB_UDPSocket_Private_API() {
return this;
}
+int32_t UDPSocketPrivateImpl::SetSocketFeature(
+ PP_UDPSocketFeature_Private name,
+ PP_Var value,
+ scoped_refptr<TrackedCallback> callback) {
+ if (bound_ || closed_)
+ return PP_ERROR_FAILED;
+ if (TrackedCallback::IsPending(setsocketfeature_callback_))
+ return PP_ERROR_INPROGRESS;
+
+ setsocketfeature_callback_ = callback;
+
+ // Send the request, the browser will call us back via
+ // SetSocketFeatureACK.
+ SendSetSocketFeature(name, value);
+ return PP_OK_COMPLETIONPENDING;
+}
+
int32_t UDPSocketPrivateImpl::Bind(const PP_NetAddress_Private* addr,
scoped_refptr<TrackedCallback> callback) {
if (!addr)
@@ -124,11 +141,21 @@ void UDPSocketPrivateImpl::Close() {
socket_id_ = 0;
+ PostAbortIfNecessary(&setsocketfeature_callback_);
PostAbortIfNecessary(&bind_callback_);
PostAbortIfNecessary(&recvfrom_callback_);
PostAbortIfNecessary(&sendto_callback_);
}
+void UDPSocketPrivateImpl::OnSetSocketFeatureCompleted(bool succeeded) {
+ if (!TrackedCallback::IsPending(setsocketfeature_callback_)) {
+ NOTREACHED();
+ return;
+ }
+ TrackedCallback::ClearAndRun(&setsocketfeature_callback_,
+ succeeded ? PP_OK : PP_ERROR_FAILED);
+}
+
void UDPSocketPrivateImpl::OnBindCompleted(
bool succeeded,
const PP_NetAddress_Private& addr) {

Powered by Google App Engine
This is Rietveld 408576698