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

Side by Side Diff: webrtc/p2p/base/turnport.h

Issue 1449863002: Revert of Do not delete the turn port entry right away when the respective connection is deleted. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Created 5 years, 1 month 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
« no previous file with comments | « no previous file | webrtc/p2p/base/turnport.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2012 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_P2P_BASE_TURNPORT_H_ 11 #ifndef WEBRTC_P2P_BASE_TURNPORT_H_
12 #define WEBRTC_P2P_BASE_TURNPORT_H_ 12 #define WEBRTC_P2P_BASE_TURNPORT_H_
13 13
14 #include <stdio.h> 14 #include <stdio.h>
15 #include <list> 15 #include <list>
16 #include <set> 16 #include <set>
17 #include <string> 17 #include <string>
18 18
19 #include "webrtc/base/asyncinvoker.h"
20 #include "webrtc/base/asyncpacketsocket.h"
21 #include "webrtc/p2p/base/port.h" 19 #include "webrtc/p2p/base/port.h"
22 #include "webrtc/p2p/client/basicportallocator.h" 20 #include "webrtc/p2p/client/basicportallocator.h"
21 #include "webrtc/base/asyncpacketsocket.h"
23 22
24 namespace rtc { 23 namespace rtc {
25 class AsyncResolver; 24 class AsyncResolver;
26 class SignalThread; 25 class SignalThread;
27 } 26 }
28 27
29 namespace cricket { 28 namespace cricket {
30 29
31 extern const char TURN_PORT_TYPE[]; 30 extern const char TURN_PORT_TYPE[];
32 class TurnAllocateRequest; 31 class TurnAllocateRequest;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 const std::string& nonce() const { return nonce_; } 115 const std::string& nonce() const { return nonce_; }
117 116
118 int error() const { return error_; } 117 int error() const { return error_; }
119 118
120 void OnAllocateMismatch(); 119 void OnAllocateMismatch();
121 120
122 rtc::AsyncPacketSocket* socket() const { 121 rtc::AsyncPacketSocket* socket() const {
123 return socket_; 122 return socket_;
124 } 123 }
125 124
126 // For testing only.
127 rtc::AsyncInvoker* invoker() { return &invoker_; }
128
129 // Signal with resolved server address. 125 // Signal with resolved server address.
130 // Parameters are port, server address and resolved server address. 126 // Parameters are port, server address and resolved server address.
131 // This signal will be sent only if server address is resolved successfully. 127 // This signal will be sent only if server address is resolved successfully.
132 sigslot::signal3<TurnPort*, 128 sigslot::signal3<TurnPort*,
133 const rtc::SocketAddress&, 129 const rtc::SocketAddress&,
134 const rtc::SocketAddress&> SignalResolvedServerAddress; 130 const rtc::SocketAddress&> SignalResolvedServerAddress;
135 131
136 // This signal is only for testing purpose. 132 // This signal is only for testing purpose.
137 sigslot::signal3<TurnPort*, const rtc::SocketAddress&, int> 133 sigslot::signal3<TurnPort*, const rtc::SocketAddress&, int>
138 SignalCreatePermissionResult; 134 SignalCreatePermissionResult;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 bool ScheduleRefresh(int lifetime); 208 bool ScheduleRefresh(int lifetime);
213 void SendRequest(StunRequest* request, int delay); 209 void SendRequest(StunRequest* request, int delay);
214 int Send(const void* data, size_t size, 210 int Send(const void* data, size_t size,
215 const rtc::PacketOptions& options); 211 const rtc::PacketOptions& options);
216 void UpdateHash(); 212 void UpdateHash();
217 bool UpdateNonce(StunMessage* response); 213 bool UpdateNonce(StunMessage* response);
218 214
219 bool HasPermission(const rtc::IPAddress& ipaddr) const; 215 bool HasPermission(const rtc::IPAddress& ipaddr) const;
220 TurnEntry* FindEntry(const rtc::SocketAddress& address) const; 216 TurnEntry* FindEntry(const rtc::SocketAddress& address) const;
221 TurnEntry* FindEntry(int channel_id) const; 217 TurnEntry* FindEntry(int channel_id) const;
222 void CreateOrRefreshEntry(const rtc::SocketAddress& address); 218 TurnEntry* CreateEntry(const rtc::SocketAddress& address);
223 void DestroyEntry(TurnEntry* entry); 219 void DestroyEntry(const rtc::SocketAddress& address);
224 // Destroys the entry only if |timestamp| matches the destruction timestamp
225 // in |entry|.
226 void DestroyEntryIfNotCancelled(TurnEntry* entry, uint32_t timestamp);
227 void ScheduleEntryDestruction(TurnEntry* entry);
228 void CancelEntryDestruction(TurnEntry* entry);
229 void OnConnectionDestroyed(Connection* conn); 220 void OnConnectionDestroyed(Connection* conn);
230 221
231 ProtocolAddress server_address_; 222 ProtocolAddress server_address_;
232 RelayCredentials credentials_; 223 RelayCredentials credentials_;
233 AttemptedServerSet attempted_server_addresses_; 224 AttemptedServerSet attempted_server_addresses_;
234 225
235 rtc::AsyncPacketSocket* socket_; 226 rtc::AsyncPacketSocket* socket_;
236 SocketOptionsMap socket_options_; 227 SocketOptionsMap socket_options_;
237 rtc::AsyncResolverInterface* resolver_; 228 rtc::AsyncResolverInterface* resolver_;
238 int error_; 229 int error_;
239 230
240 StunRequestManager request_manager_; 231 StunRequestManager request_manager_;
241 std::string realm_; // From 401/438 response message. 232 std::string realm_; // From 401/438 response message.
242 std::string nonce_; // From 401/438 response message. 233 std::string nonce_; // From 401/438 response message.
243 std::string hash_; // Digest of username:realm:password 234 std::string hash_; // Digest of username:realm:password
244 235
245 int next_channel_number_; 236 int next_channel_number_;
246 EntryList entries_; 237 EntryList entries_;
247 238
248 PortState state_; 239 PortState state_;
249 // By default the value will be set to 0. This value will be used in 240 // By default the value will be set to 0. This value will be used in
250 // calculating the candidate priority. 241 // calculating the candidate priority.
251 int server_priority_; 242 int server_priority_;
252 243
253 // The number of retries made due to allocate mismatch error. 244 // The number of retries made due to allocate mismatch error.
254 size_t allocate_mismatch_retries_; 245 size_t allocate_mismatch_retries_;
255 246
256 rtc::AsyncInvoker invoker_;
257
258 friend class TurnEntry; 247 friend class TurnEntry;
259 friend class TurnAllocateRequest; 248 friend class TurnAllocateRequest;
260 friend class TurnRefreshRequest; 249 friend class TurnRefreshRequest;
261 friend class TurnCreatePermissionRequest; 250 friend class TurnCreatePermissionRequest;
262 friend class TurnChannelBindRequest; 251 friend class TurnChannelBindRequest;
263 }; 252 };
264 253
265 } // namespace cricket 254 } // namespace cricket
266 255
267 #endif // WEBRTC_P2P_BASE_TURNPORT_H_ 256 #endif // WEBRTC_P2P_BASE_TURNPORT_H_
OLDNEW
« no previous file with comments | « no previous file | webrtc/p2p/base/turnport.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698