| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 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 |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 309 const rtc::SocketAddress& base_address, | 309 const rtc::SocketAddress& base_address, |
| 310 const rtc::SocketAddress& related_address, | 310 const rtc::SocketAddress& related_address, |
| 311 const std::string& protocol, | 311 const std::string& protocol, |
| 312 const std::string& relay_protocol, | 312 const std::string& relay_protocol, |
| 313 const std::string& tcptype, | 313 const std::string& tcptype, |
| 314 const std::string& type, | 314 const std::string& type, |
| 315 uint32_t type_preference, | 315 uint32_t type_preference, |
| 316 uint32_t relay_preference, | 316 uint32_t relay_preference, |
| 317 bool final); | 317 bool final); |
| 318 | 318 |
| 319 // Adds the given connection to the list. (Deleting removes them.) | 319 // Adds the given connection to the map keyed by the remote candidate address. |
| 320 void AddConnection(Connection* conn); | 320 // If an existing connection has the same address, the existing one will be |
| 321 // replaced and destroyed. |
| 322 void AddOrReplaceConnection(Connection* conn); |
| 321 | 323 |
| 322 // Called when a packet is received from an unknown address that is not | 324 // Called when a packet is received from an unknown address that is not |
| 323 // currently a connection. If this is an authenticated STUN binding request, | 325 // currently a connection. If this is an authenticated STUN binding request, |
| 324 // then we will signal the client. | 326 // then we will signal the client. |
| 325 void OnReadPacket(const char* data, size_t size, | 327 void OnReadPacket(const char* data, size_t size, |
| 326 const rtc::SocketAddress& addr, | 328 const rtc::SocketAddress& addr, |
| 327 ProtocolType proto); | 329 ProtocolType proto); |
| 328 | 330 |
| 329 // If the given data comprises a complete and correct STUN message then the | 331 // If the given data comprises a complete and correct STUN message then the |
| 330 // return value is true, otherwise false. If the message username corresponds | 332 // return value is true, otherwise false. If the message username corresponds |
| 331 // with this port's username fragment, msg will contain the parsed STUN | 333 // with this port's username fragment, msg will contain the parsed STUN |
| 332 // message. Otherwise, the function may send a STUN response internally. | 334 // message. Otherwise, the function may send a STUN response internally. |
| 333 // remote_username contains the remote fragment of the STUN username. | 335 // remote_username contains the remote fragment of the STUN username. |
| 334 bool GetStunMessage(const char* data, | 336 bool GetStunMessage(const char* data, |
| 335 size_t size, | 337 size_t size, |
| 336 const rtc::SocketAddress& addr, | 338 const rtc::SocketAddress& addr, |
| 337 std::unique_ptr<IceMessage>* out_msg, | 339 std::unique_ptr<IceMessage>* out_msg, |
| 338 std::string* out_username); | 340 std::string* out_username); |
| 339 | 341 |
| 340 // Checks if the address in addr is compatible with the port's ip. | 342 // Checks if the address in addr is compatible with the port's ip. |
| 341 bool IsCompatibleAddress(const rtc::SocketAddress& addr); | 343 bool IsCompatibleAddress(const rtc::SocketAddress& addr); |
| 342 | 344 |
| 343 // Returns default DSCP value. | 345 // Returns default DSCP value. |
| 344 rtc::DiffServCodePoint DefaultDscpValue() const { | 346 rtc::DiffServCodePoint DefaultDscpValue() const { |
| 345 // No change from what MediaChannel set. | 347 // No change from what MediaChannel set. |
| 346 return rtc::DSCP_NO_CHANGE; | 348 return rtc::DSCP_NO_CHANGE; |
| 347 } | 349 } |
| 348 | 350 |
| 351 // Extra work to be done in subclasses when a connection is destroyed. |
| 352 virtual void HandleConnectionDestroyed(Connection* conn) {} |
| 353 |
| 349 private: | 354 private: |
| 350 void Construct(); | 355 void Construct(); |
| 351 // Called when one of our connections deletes itself. | 356 // Called when one of our connections deletes itself. |
| 352 void OnConnectionDestroyed(Connection* conn); | 357 void OnConnectionDestroyed(Connection* conn); |
| 353 | 358 |
| 354 // Whether this port is dead, and hence, should be destroyed on the controlled | 359 // Whether this port is dead, and hence, should be destroyed on the controlled |
| 355 // side. | 360 // side. |
| 356 bool dead() const { | 361 bool dead() const { |
| 357 return ice_role_ == ICEROLE_CONTROLLED && connections_.empty(); | 362 return ice_role_ == ICEROLE_CONTROLLED && connections_.empty(); |
| 358 } | 363 } |
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 666 const rtc::PacketOptions& options) override; | 671 const rtc::PacketOptions& options) override; |
| 667 int GetError() override { return error_; } | 672 int GetError() override { return error_; } |
| 668 | 673 |
| 669 private: | 674 private: |
| 670 int error_ = 0; | 675 int error_ = 0; |
| 671 }; | 676 }; |
| 672 | 677 |
| 673 } // namespace cricket | 678 } // namespace cricket |
| 674 | 679 |
| 675 #endif // WEBRTC_P2P_BASE_PORT_H_ | 680 #endif // WEBRTC_P2P_BASE_PORT_H_ |
| OLD | NEW |