| active_ice_controller_factory_interface.h |
|
1355 |
| active_ice_controller_interface.h |
|
3286 |
| async_stun_tcp_socket.cc |
len |
5371 |
| async_stun_tcp_socket.h |
|
1679 |
| async_stun_tcp_socket_unittest.cc |
socket |
12101 |
| basic_async_resolver_factory.cc |
|
1457 |
| basic_async_resolver_factory.h |
|
1322 |
| basic_ice_controller.cc |
|
33895 |
| basic_ice_controller.h |
|
7639 |
| basic_packet_socket_factory.cc |
|
6794 |
| basic_packet_socket_factory.h |
|
2053 |
| candidate_pair_interface.h |
|
1206 |
| connection.cc |
|
70494 |
| connection.h |
|
23386 |
| connection_info.cc |
|
1301 |
| connection_info.h |
|
4177 |
| default_ice_transport_factory.cc |
|
1811 |
| default_ice_transport_factory.h |
|
1958 |
| dtls_transport.h |
|
652 |
| dtls_transport_internal.h |
|
688 |
| fake_ice_transport.h |
|
598 |
| fake_port_allocator.h |
|
602 |
| ice_agent_interface.h |
|
3016 |
| ice_controller_factory_interface.h |
|
1551 |
| ice_controller_interface.cc |
|
780 |
| ice_controller_interface.h |
|
6189 |
| ice_credentials_iterator.cc |
|
1330 |
| ice_credentials_iterator.h |
|
1064 |
| ice_credentials_iterator_unittest.cc |
|
1730 |
| ice_switch_reason.cc |
|
1868 |
| ice_switch_reason.h |
|
1327 |
| ice_transport_internal.cc |
|
11397 |
| ice_transport_internal.h |
|
19830 |
| local_network_access_port_unittest.cc |
min_port= |
10798 |
| mock_ice_agent.h |
|
557 |
| mock_ice_controller.h |
|
577 |
| mock_ice_transport.h |
|
573 |
| p2p_constants.cc |
|
2356 |
| p2p_constants.h |
|
6015 |
| p2p_transport_channel.cc |
|
93463 |
| p2p_transport_channel.h |
|
22536 |
| p2p_transport_channel_ice_field_trials.h |
|
2918 |
| p2p_transport_channel_unittest.cc |
|
301291 |
| packet_transport_internal.cc |
opt |
4541 |
| packet_transport_internal.h |
|
6153 |
| packet_transport_internal_unittest.cc |
|
2087 |
| port.cc |
= false |
41070 |
| port.h |
|
23962 |
| port_allocator.cc |
|
12620 |
| port_allocator.h |
|
28091 |
| port_allocator_unittest.cc |
|
15339 |
| port_interface.cc |
|
580 |
| port_interface.h |
|
9516 |
| port_unittest.cc |
|
171722 |
| regathering_controller.cc |
|
3408 |
| regathering_controller.h |
|
4583 |
| regathering_controller_unittest.cc |
pool size |
7596 |
| stun_dictionary.cc |
|
11928 |
| stun_dictionary.h |
|
6933 |
| stun_dictionary_unittest.cc |
|
10610 |
| stun_port.cc |
delay= |
24206 |
| stun_port.h |
|
9534 |
| stun_port_unittest.cc |
|
41645 |
| stun_request.cc |
|
11341 |
| stun_request.h |
response |
5749 |
| stun_request_unittest.cc |
|
8980 |
| tcp_port.cc |
This is a diagram of how TCP reconnect works for the active side. The
passive side just waits for an incoming connection.
- Connected: Indicate whether the TCP socket is connected.
- Writable: Whether the stun binding is completed. Sending a data packet
before stun binding completed will trigger IPC socket layer to shutdown
the connection.
- PendingTCP: `connection_pending_` indicates whether there is an
outstanding TCP connection in progress.
- PretendWri: Tracked by `pretending_to_be_writable_`. Marking connection as
WRITE_TIMEOUT will cause the connection be deleted. Instead, we're
"pretending" we're still writable for a period of time such that reconnect
could work.
Data could only be sent in state 3. Sening data during state 2 & 6 will get
EWOULDBLOCK, 4 & 5 EPIPE.
OS Timeout 7 -------------+
+----------------------->|Connected: N |
| |Writable: N | Timeout
| Timeout |Connection is |<----------------+
| +------------------->|Dead | |
| | +--------------+ |
| | ^ |
| | OnClose | |
| | +-----------------------+ | |
| | | | |Timeout |
| | v | | |
| 4 +----------+ 5 -----+--+--+ 6 -----+-----+
| |Connected: N|Send() or |Connected: N| |Connected: Y|
| |Writable: Y|Ping() |Writable: Y|OnConnect |Writable: Y|
| |PendingTCP:N+--------> |PendingTCP:Y+---------> |PendingTCP:N|
| |PretendWri:Y| |PretendWri:Y| |PretendWri:Y|
| +-----+------+ +------------+ +---+--+-----+
| ^ ^ | |
| | | OnClose | |
| | +----------------------------------------------+ |
| | |
| | Stun Binding Completed |
| | |
| | OnClose |
| +------------------------------------------------+ |
| | v
1 -----------+ 2 -----------+Stun 3 -----------+
|Connected: N| |Connected: Y|Binding |Connected: Y|
|Writable: N|OnConnect |Writable: N|Completed |Writable: Y|
|PendingTCP:Y+---------> |PendingTCP:N+--------> |PendingTCP:N|
|PretendWri:N| |PretendWri:N| |PretendWri:N|
+------------+ +------------+ +------------+
|
25151 |
| tcp_port.h |
|
7049 |
| tcp_port_unittest.cc |
|
18577 |
| transport_description.cc |
ice_renomination= |
6287 |
| transport_description.h |
|
4801 |
| transport_description_factory.cc |
|
5971 |
| transport_description_factory.h |
|
3511 |
| transport_description_factory_unittest.cc |
|
16580 |
| transport_description_unittest.cc |
|
2033 |
| transport_info.h |
|
1155 |
| turn_port.cc |
|
70180 |
| turn_port.h |
|
14338 |
| turn_port_unittest.cc |
|
94797 |
| wrapping_active_ice_controller.cc |
|
8506 |
| wrapping_active_ice_controller.h |
|
4022 |
| wrapping_active_ice_controller_unittest.cc |
|
11817 |