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

Side by Side Diff: content/browser/renderer_host/pepper/pepper_udp_socket.cc

Issue 10909154: Remove PPAPI dependency on 'net'. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/pepper/pepper_udp_socket.h" 5 #include "content/browser/renderer_host/pepper/pepper_udp_socket.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 allow_address_reuse_ = value; 43 allow_address_reuse_ = value;
44 } 44 }
45 45
46 void PepperUDPSocket::AllowBroadcast(bool value) { 46 void PepperUDPSocket::AllowBroadcast(bool value) {
47 allow_broadcast_ = value; 47 allow_broadcast_ = value;
48 } 48 }
49 49
50 void PepperUDPSocket::Bind(const PP_NetAddress_Private& addr) { 50 void PepperUDPSocket::Bind(const PP_NetAddress_Private& addr) {
51 socket_.reset(new net::UDPServerSocket(NULL, net::NetLog::Source())); 51 socket_.reset(new net::UDPServerSocket(NULL, net::NetLog::Source()));
52 52
53 net::IPEndPoint address; 53 net::IPAddressNumber address;
54 int port;
54 if (!socket_.get() || 55 if (!socket_.get() ||
55 !NetAddressPrivateImpl::NetAddressToIPEndPoint(addr, &address)) { 56 !NetAddressPrivateImpl::NetAddressToIPEndPoint(addr, &address, &port)) {
56 SendBindACKError(); 57 SendBindACKError();
57 return; 58 return;
58 } 59 }
59 60
60 if (allow_address_reuse_) 61 if (allow_address_reuse_)
61 socket_->AllowAddressReuse(); 62 socket_->AllowAddressReuse();
62 if (allow_broadcast_) 63 if (allow_broadcast_)
63 socket_->AllowBroadcast(); 64 socket_->AllowBroadcast();
64 65
65 int result = socket_->Listen(address); 66 int result = socket_->Listen(net::IPEndPoint(address, port));
66 67
67 if (result == net::OK && 68 if (result == net::OK &&
68 socket_->GetLocalAddress(&bound_address_) != net::OK) { 69 socket_->GetLocalAddress(&bound_address_) != net::OK) {
69 SendBindACKError(); 70 SendBindACKError();
70 return; 71 return;
71 } 72 }
72 73
73 OnBindCompleted(result); 74 OnBindCompleted(result);
74 } 75 }
75 76
(...skipping 13 matching lines...) Expand all
89 OnRecvFromCompleted(result); 90 OnRecvFromCompleted(result);
90 } 91 }
91 92
92 void PepperUDPSocket::SendTo(const std::string& data, 93 void PepperUDPSocket::SendTo(const std::string& data,
93 const PP_NetAddress_Private& addr) { 94 const PP_NetAddress_Private& addr) {
94 if (sendto_buffer_.get() || data.empty()) { 95 if (sendto_buffer_.get() || data.empty()) {
95 SendSendToACKError(); 96 SendSendToACKError();
96 return; 97 return;
97 } 98 }
98 99
99 net::IPEndPoint address; 100 net::IPAddressNumber address;
100 if (!NetAddressPrivateImpl::NetAddressToIPEndPoint(addr, &address)) { 101 int port;
102 if (!NetAddressPrivateImpl::NetAddressToIPEndPoint(addr, &address, &port)) {
101 SendSendToACKError(); 103 SendSendToACKError();
102 return; 104 return;
103 } 105 }
104 106
105 int data_size = data.size(); 107 int data_size = data.size();
106 108
107 sendto_buffer_ = new net::IOBuffer(data_size); 109 sendto_buffer_ = new net::IOBuffer(data_size);
108 memcpy(sendto_buffer_->data(), data.data(), data_size); 110 memcpy(sendto_buffer_->data(), data.data(), data_size);
109 int result = socket_->SendTo( 111 int result = socket_->SendTo(
110 sendto_buffer_, data_size, address, 112 sendto_buffer_, data_size, net::IPEndPoint(address, port),
111 base::Bind(&PepperUDPSocket::OnSendToCompleted, base::Unretained(this))); 113 base::Bind(&PepperUDPSocket::OnSendToCompleted, base::Unretained(this)));
112 114
113 if (result != net::ERR_IO_PENDING) 115 if (result != net::ERR_IO_PENDING)
114 OnSendToCompleted(result); 116 OnSendToCompleted(result);
115 } 117 }
116 118
117 void PepperUDPSocket::SendRecvFromACKError() { 119 void PepperUDPSocket::SendRecvFromACKError() {
118 PP_NetAddress_Private addr = NetAddressPrivateImpl::kInvalidNetAddress; 120 PP_NetAddress_Private addr = NetAddressPrivateImpl::kInvalidNetAddress;
119 manager_->Send(new PpapiMsg_PPBUDPSocket_RecvFromACK( 121 manager_->Send(new PpapiMsg_PPBUDPSocket_RecvFromACK(
120 routing_id_, plugin_dispatcher_id_, socket_id_, false, std::string(), 122 routing_id_, plugin_dispatcher_id_, socket_id_, false, std::string(),
121 addr)); 123 addr));
122 } 124 }
123 125
124 void PepperUDPSocket::SendSendToACKError() { 126 void PepperUDPSocket::SendSendToACKError() {
125 manager_->Send(new PpapiMsg_PPBUDPSocket_SendToACK( 127 manager_->Send(new PpapiMsg_PPBUDPSocket_SendToACK(
126 routing_id_, plugin_dispatcher_id_, socket_id_, false, 0)); 128 routing_id_, plugin_dispatcher_id_, socket_id_, false, 0));
127 } 129 }
128 130
129 void PepperUDPSocket::SendBindACKError() { 131 void PepperUDPSocket::SendBindACKError() {
130 PP_NetAddress_Private addr = NetAddressPrivateImpl::kInvalidNetAddress; 132 PP_NetAddress_Private addr = NetAddressPrivateImpl::kInvalidNetAddress;
131 manager_->Send(new PpapiMsg_PPBUDPSocket_BindACK( 133 manager_->Send(new PpapiMsg_PPBUDPSocket_BindACK(
132 routing_id_, plugin_dispatcher_id_, socket_id_, false, addr)); 134 routing_id_, plugin_dispatcher_id_, socket_id_, false, addr));
133 } 135 }
134 136
135 void PepperUDPSocket::OnBindCompleted(int result) { 137 void PepperUDPSocket::OnBindCompleted(int result) {
136 PP_NetAddress_Private addr = NetAddressPrivateImpl::kInvalidNetAddress; 138 PP_NetAddress_Private addr = NetAddressPrivateImpl::kInvalidNetAddress;
137 if (result < 0 || 139 if (result < 0 ||
138 !NetAddressPrivateImpl::IPEndPointToNetAddress(bound_address_, 140 !NetAddressPrivateImpl::IPEndPointToNetAddress(bound_address_.address(),
141 bound_address_.port(),
139 &addr)) { 142 &addr)) {
140 SendBindACKError(); 143 SendBindACKError();
141 } else { 144 } else {
142 manager_->Send(new PpapiMsg_PPBUDPSocket_BindACK( 145 manager_->Send(new PpapiMsg_PPBUDPSocket_BindACK(
143 routing_id_, plugin_dispatcher_id_, socket_id_, true, addr)); 146 routing_id_, plugin_dispatcher_id_, socket_id_, true, addr));
144 } 147 }
145 } 148 }
146 149
147 void PepperUDPSocket::OnRecvFromCompleted(int result) { 150 void PepperUDPSocket::OnRecvFromCompleted(int result) {
148 DCHECK(recvfrom_buffer_.get()); 151 DCHECK(recvfrom_buffer_.get());
149 152
150 // Convert IPEndPoint we get back from RecvFrom to a PP_NetAddress_Private, 153 // Convert IPEndPoint we get back from RecvFrom to a PP_NetAddress_Private,
151 // to send back. 154 // to send back.
152 PP_NetAddress_Private addr = NetAddressPrivateImpl::kInvalidNetAddress; 155 PP_NetAddress_Private addr = NetAddressPrivateImpl::kInvalidNetAddress;
153 if (result < 0 || 156 if (result < 0 ||
154 !NetAddressPrivateImpl::IPEndPointToNetAddress(recvfrom_address_, 157 !NetAddressPrivateImpl::IPEndPointToNetAddress(
155 &addr)) { 158 recvfrom_address_.address(),
159 recvfrom_address_.port(),
160 &addr)) {
156 SendRecvFromACKError(); 161 SendRecvFromACKError();
157 } else { 162 } else {
158 manager_->Send(new PpapiMsg_PPBUDPSocket_RecvFromACK( 163 manager_->Send(new PpapiMsg_PPBUDPSocket_RecvFromACK(
159 routing_id_, plugin_dispatcher_id_, socket_id_, true, 164 routing_id_, plugin_dispatcher_id_, socket_id_, true,
160 std::string(recvfrom_buffer_->data(), result), addr)); 165 std::string(recvfrom_buffer_->data(), result), addr));
161 } 166 }
162 167
163 recvfrom_buffer_ = NULL; 168 recvfrom_buffer_ = NULL;
164 } 169 }
165 170
166 void PepperUDPSocket::OnSendToCompleted(int result) { 171 void PepperUDPSocket::OnSendToCompleted(int result) {
167 DCHECK(sendto_buffer_.get()); 172 DCHECK(sendto_buffer_.get());
168 173
169 if (result < 0) { 174 if (result < 0) {
170 SendSendToACKError(); 175 SendSendToACKError();
171 } else { 176 } else {
172 manager_->Send(new PpapiMsg_PPBUDPSocket_SendToACK( 177 manager_->Send(new PpapiMsg_PPBUDPSocket_SendToACK(
173 routing_id_, plugin_dispatcher_id_, socket_id_, true, result)); 178 routing_id_, plugin_dispatcher_id_, socket_id_, true, result));
174 } 179 }
175 180
176 sendto_buffer_ = NULL; 181 sendto_buffer_ = NULL;
177 } 182 }
OLDNEW
« no previous file with comments | « content/browser/renderer_host/pepper/pepper_tcp_socket.cc ('k') | content/renderer/pepper/pepper_plugin_delegate_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698