304 Commits

Author SHA1 Message Date
guoweis
066ded99cb Relax the stun ping check on valid result.
1. allow situation where all ping is lost
2. use the raw count to calculate the interval.

Since we now send 1 request per IP, the chance of losing all of them is higher and we shouldn't just quit if we don't have any response.

BUG=

Review URL: https://codereview.webrtc.org/1406223011

Cr-Commit-Position: refs/heads/master@{#10613}
2015-11-11 23:04:10 +00:00
honghaiz
9b5ee9c0d9 Send back ping response if the ping comes from an unknown address.
BUG=webrtc:5171

Review URL: https://codereview.webrtc.org/1424703012

Cr-Commit-Position: refs/heads/master@{#10610}
2015-11-11 21:19:25 +00:00
deadbeef
653b8e02f2 Reland of Adding the ability to change ICE servers through SetConfiguration. (patchset #1 id:1 of https://codereview.webrtc.org/1424803004/ )
Reason for revert:
Relanding with compile warning fixed.

Original issue's description:
> Revert of Adding the ability to change ICE servers through SetConfiguration. (patchset #7 id:120001 of https://codereview.webrtc.org/1391013007/ )
>
> Reason for revert:
> Caused compiler warning, breaking Chrome FYI bots.
>
> Original issue's description:
> > Adding the ability to change ICE servers through SetConfiguration.
> >
> > Added a SetIceServers method to PortAllocator. Also added a new
> > PeerConnection Initialize method that takes a PortAllocator, in the
> > hope that we can get rid of PortAllocatorFactoryInterface, since the
> > only substantial thing a factory does is convert the webrtc:: ICE
> > servers to cricket:: versions.
> >
> > Committed: https://crrev.com/d3b26d94399ff539db375a9b84010ee75479d4cf
> > Cr-Commit-Position: refs/heads/master@{#10420}
>
> TBR=pthatcher@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/18a944bf0ac9eed872dc009bd58e6bc12c946303
> Cr-Commit-Position: refs/heads/master@{#10421}

TBR=pthatcher@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1414313003

Cr-Commit-Position: refs/heads/master@{#10609}
2015-11-11 20:55:18 +00:00
Guo-wei Shieh
e03cab94c1 When running this code in chromium on a machine with IPv6 disabled, the RTC_DCHECK fails and in release build, it could leak to further crash in chromium's rtc_peer_connection_hanlder.cc.
Here is the right fix.

BUG=webrtc:5061
R=pthatcher@google.com
TBR=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1437933002 .

Cr-Commit-Position: refs/heads/master@{#10607}
2015-11-11 19:11:28 +00:00
tfarina
5237aaf243 Convert usage of ARRAY_SIZE to arraysize.
ARRAY_SIZE is the old version of arraysize and does not cover
all the cases in C++, arraysize is a copy of Chromium's
version and thus have wider coverage.

BUG=None
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1405023016

Cr-Commit-Position: refs/heads/master@{#10594}
2015-11-11 07:44:39 +00:00
Tim Psiaki
ad13d2f817 Round Rate computations from RateTracker.
BUG=534221
R=asapersson@webrtc.org, pbos@webrtc.org, pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1410533004 .

Cr-Commit-Position: refs/heads/master@{#10592}
2015-11-11 00:34:58 +00:00
Guo-wei Shieh
9af97f8910 WebRTC should generate default private address even when adapter enumeration is disabled.
Introduce a DefaultAddressProvider such that rtc::Network can't access other part of NetworkManager.

This also removes the hack of generating the loopback address. The dependency has been removed by https://codereview.chromium.org/1417023003/

BUG=webrtc:5061
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1411253008 .

Cr-Commit-Position: refs/heads/master@{#10590}
2015-11-10 22:47:49 +00:00
honghaiz
9b66957b4f Stop a session when a new connection becomes writable.
We cannot do it at the end of sorting because it may stop a session too early.
Also remove was_writable_, which is not useful.
BUG=webrtc:5119

Review URL: https://codereview.webrtc.org/1406423008

Cr-Commit-Position: refs/heads/master@{#10511}
2015-11-04 20:07:49 +00:00
tfarina
20a3461908 Remove deprecated IsUnresolved() method from SocketAddress API.
This patch removes IsUnresolved() method and update the clients to use
IsUnresolvedIP() instead.

BUG=None
R=perkj@webrtc.org
TBR=glaznev@webrtc.org

Review URL: https://codereview.webrtc.org/1414793006

Cr-Commit-Position: refs/heads/master@{#10487}
2015-11-03 00:20:28 +00:00
Guo-wei Shieh
8a4f547dad Hang on android when DNS resolution is not done
BUG=webrtc:5139
R=juberti@google.com
TBR=juberti@webrtc.org

Review URL: https://codereview.webrtc.org/1429493009 .

Cr-Commit-Position: refs/heads/master@{#10463}
2015-10-30 16:12:45 +00:00
Henrik Kjellander
98f53510b2 system_wrappers: rename interface -> include
BUG=webrtc:5095
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1413333002 .

Cr-Commit-Position: refs/heads/master@{#10438}
2015-10-28 17:17:50 +00:00
honghaiz
77d0d6e858 When all connections timed out on writing, delete them all.
BUG=5111

Review URL: https://codereview.webrtc.org/1421123003

Cr-Commit-Position: refs/heads/master@{#10431}
2015-10-27 18:34:50 +00:00
deadbeef
18a944bf0a Revert of Adding the ability to change ICE servers through SetConfiguration. (patchset #7 id:120001 of https://codereview.webrtc.org/1391013007/ )
Reason for revert:
Caused compiler warning, breaking Chrome FYI bots.

Original issue's description:
> Adding the ability to change ICE servers through SetConfiguration.
>
> Added a SetIceServers method to PortAllocator. Also added a new
> PeerConnection Initialize method that takes a PortAllocator, in the
> hope that we can get rid of PortAllocatorFactoryInterface, since the
> only substantial thing a factory does is convert the webrtc:: ICE
> servers to cricket:: versions.
>
> Committed: https://crrev.com/d3b26d94399ff539db375a9b84010ee75479d4cf
> Cr-Commit-Position: refs/heads/master@{#10420}

TBR=pthatcher@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1424803004

Cr-Commit-Position: refs/heads/master@{#10421}
2015-10-27 02:21:45 +00:00
deadbeef
d3b26d9439 Adding the ability to change ICE servers through SetConfiguration.
Added a SetIceServers method to PortAllocator. Also added a new
PeerConnection Initialize method that takes a PortAllocator, in the
hope that we can get rid of PortAllocatorFactoryInterface, since the
only substantial thing a factory does is convert the webrtc:: ICE
servers to cricket:: versions.

Review URL: https://codereview.webrtc.org/1391013007

Cr-Commit-Position: refs/heads/master@{#10420}
2015-10-27 00:55:27 +00:00
deadbeef
2b5586774c Exposing DTLS transport state from TransportChannel.
This is necessary in order to support the RTCPeerConnectionState enum in
the future, as well as a correct RTCIceConnectionState (which isn't a
combination ICE and DTLS state).

Review URL: https://codereview.webrtc.org/1414363002

Cr-Commit-Position: refs/heads/master@{#10419}
2015-10-27 00:23:34 +00:00
guoweis
b0bb77fd61 Reland of Add experiment on weak ping delay during call set up time (patchset #1 id:1 of https://codereview.webrtc.org/1416773003/ )
Reason for revert:
https://codereview.chromium.org/1419253002 is landed to address this linker issue. Keep my fingers crossed.

Original issue's description:
> Revert of Add experiment on weak ping delay during call set up time (patchset #4 id:60001 of https://codereview.webrtc.org/1411883002/ )
>
> Reason for revert:
> This CL breaks Chromium, undefined reference link error to webrtc::field_trial::FindFullName. Adding the dependency system_wrappers to the rtc_p2p target is not enough to fix this.
>
> Looking at field_trial.h (in system_wrappers/interface/, not to be confused with the one in test/) the documentation says "WebRTC clients MUST provide an implementation of: ...FindFullName... Or link with a default one provided in: ...system_wrappers.gyp:field_trial_default).
>
> So maybe just depend on field_trial_default? Not sure what should be done in case there are implications to adding this dependency, I'm reverting this. Sorry :)
>
> Original issue's description:
> > Add experiment on weak ping delay during call set up time
> >
> > BUG=
> > R=pthatcher@webrtc.org
> >
> > Committed: https://crrev.com/3bf69b15f4c0c0ca4ab17c237084684a37bb8279
> > Cr-Commit-Position: refs/heads/master@{#10343}
>
> TBR=pthatcher@webrtc.org,juberti@webrtc.org,guoweis@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>

TBR=pthatcher@webrtc.org,juberti@webrtc.org,hbos@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1413603005

Cr-Commit-Position: refs/heads/master@{#10418}
2015-10-26 22:10:06 +00:00
noahric
5d9b92b53d Update Bind to match its comments and always capture by value. Also update the generated count to 9 args.
The existing comment is wrong, and the test even ensures it: Bind will capture reference values by reference. That makes it hard to use with AsyncInvoker, because you can't safely Bind to a function that takes (const) reference params.

The new version of this code strips references in the bound object, so it captures by value, but can bind against functions that take const references, they'll just be references to the copy.

As the class comment implies, actual by-reference args should be passed as pointers or things that safely share (e.g. scoped_refptr) and not references directly. A new test case ensures the pointer reference works. The new code will also give a compiler error if you try to bind
to a non-const reference.

BUG=

Review URL: https://codereview.webrtc.org/1291543006

Cr-Commit-Position: refs/heads/master@{#10397}
2015-10-24 18:14:52 +00:00
guoweis
00507f8eb6 Separate StunProber::Start into Prepare and Run so we could create multiple of them and send out STUN pings at regular interval.
Also update the wake up logic to handle the case if <5 ms interval is requested.

BUG=

Review URL: https://codereview.webrtc.org/1422593002

Cr-Commit-Position: refs/heads/master@{#10381}
2015-10-23 02:16:02 +00:00
guoweis
4f6a8b5f55 Revert of Add experiment on weak ping delay during call set up time (patchset #1 id:1 of https://codereview.webrtc.org/1406153005/ )
Reason for revert:
Still cause break on mac. reverting it again.

Original issue's description:
> Reland of Add experiment on weak ping delay during call set up time (patchset #1 id:1 of https://codereview.webrtc.org/1423443002/ )
>
> Reason for revert:
> This should be safe to land now.
>
> Original issue's description:
> > Revert of Add experiment on weak ping delay during call set up time (patchset #4 id:60001 of https://codereview.webrtc.org/1411883002/ )
> >
> > Reason for revert:
> > guoweis - Here's the target that's failing:
> > https://code.google.com/p/chromium/codesearch#chromium/src/third_party/libjingle/libjingle_nacl.gyp&l=17
> >
> > This has unfortunately been causing problems repeatedly for us since libjingle_nacl is maintained separately from libjingle (I don't know the history).
> >
> > The way this works for Chrome in general is that the FindFullName method is implemented in init_webrtc.cc in the overrides folder in Chrome and that hooks WebRTC up with Chrome's implementation.  I'm not sure if that's the right thing to do for nacl, how webrtc is initialized there etc.  I'll ping the nacl team for some help too offline and include you.  Reverting this change for now.
> >
> > Original issue's description:
> > > Add experiment on weak ping delay during call set up time
> > >
> > > BUG=
> > > R=pthatcher@webrtc.org
> > >
> > > Committed: https://crrev.com/3bf69b15f4c0c0ca4ab17c237084684a37bb8279
> > > Cr-Commit-Position: refs/heads/master@{#10343}
> >
> > TBR=pthatcher@webrtc.org,juberti@webrtc.org,guoweis@webrtc.org
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=
> >
> > Committed: https://crrev.com/a01d44022355796d4fd86d00aae6d3263573b6f1
> > Cr-Commit-Position: refs/heads/master@{#10350}
>
> TBR=pthatcher@webrtc.org,juberti@webrtc.org,tommi@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>
> Committed: https://crrev.com/e26ce1b7a4644942b239ed788a737200762db3b3
> Cr-Commit-Position: refs/heads/master@{#10379}

TBR=pthatcher@webrtc.org,juberti@webrtc.org,tommi@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1413843003

Cr-Commit-Position: refs/heads/master@{#10380}
2015-10-23 01:00:46 +00:00
guoweis
e26ce1b7a4 Reland of Add experiment on weak ping delay during call set up time (patchset #1 id:1 of https://codereview.webrtc.org/1423443002/ )
Reason for revert:
This should be safe to land now.

Original issue's description:
> Revert of Add experiment on weak ping delay during call set up time (patchset #4 id:60001 of https://codereview.webrtc.org/1411883002/ )
>
> Reason for revert:
> guoweis - Here's the target that's failing:
> https://code.google.com/p/chromium/codesearch#chromium/src/third_party/libjingle/libjingle_nacl.gyp&l=17
>
> This has unfortunately been causing problems repeatedly for us since libjingle_nacl is maintained separately from libjingle (I don't know the history).
>
> The way this works for Chrome in general is that the FindFullName method is implemented in init_webrtc.cc in the overrides folder in Chrome and that hooks WebRTC up with Chrome's implementation.  I'm not sure if that's the right thing to do for nacl, how webrtc is initialized there etc.  I'll ping the nacl team for some help too offline and include you.  Reverting this change for now.
>
> Original issue's description:
> > Add experiment on weak ping delay during call set up time
> >
> > BUG=
> > R=pthatcher@webrtc.org
> >
> > Committed: https://crrev.com/3bf69b15f4c0c0ca4ab17c237084684a37bb8279
> > Cr-Commit-Position: refs/heads/master@{#10343}
>
> TBR=pthatcher@webrtc.org,juberti@webrtc.org,guoweis@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=
>
> Committed: https://crrev.com/a01d44022355796d4fd86d00aae6d3263573b6f1
> Cr-Commit-Position: refs/heads/master@{#10350}

TBR=pthatcher@webrtc.org,juberti@webrtc.org,tommi@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1406153005

Cr-Commit-Position: refs/heads/master@{#10379}
2015-10-23 00:49:34 +00:00
deadbeef
c80741f895 Fixing some issues with the direction attribute of m-lines in offers.
By default, we'll now offer to receive if already receiving
(meaning that the last remote description contained a track).

Also, m-lines that are neither receiving nor sending are now correctly
marked "inactive".

Also moved some logic relating to default tracks out of webrtcsdp.cc,
such that now the direction seen by upper layers will always be
consistent with the consumed/produced SDP.

BUG=528089

Review URL: https://codereview.webrtc.org/1406803004

Cr-Commit-Position: refs/heads/master@{#10376}
2015-10-22 20:14:51 +00:00
tommi
a01d440223 Revert of Add experiment on weak ping delay during call set up time (patchset #4 id:60001 of https://codereview.webrtc.org/1411883002/ )
Reason for revert:
guoweis - Here's the target that's failing:
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/libjingle/libjingle_nacl.gyp&l=17

This has unfortunately been causing problems repeatedly for us since libjingle_nacl is maintained separately from libjingle (I don't know the history).

The way this works for Chrome in general is that the FindFullName method is implemented in init_webrtc.cc in the overrides folder in Chrome and that hooks WebRTC up with Chrome's implementation.  I'm not sure if that's the right thing to do for nacl, how webrtc is initialized there etc.  I'll ping the nacl team for some help too offline and include you.  Reverting this change for now.

Original issue's description:
> Add experiment on weak ping delay during call set up time
>
> BUG=
> R=pthatcher@webrtc.org
>
> Committed: https://crrev.com/3bf69b15f4c0c0ca4ab17c237084684a37bb8279
> Cr-Commit-Position: refs/heads/master@{#10343}

TBR=pthatcher@webrtc.org,juberti@webrtc.org,guoweis@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1423443002

Cr-Commit-Position: refs/heads/master@{#10350}
2015-10-21 08:07:32 +00:00
Guo-wei Shieh
3bf69b15f4 Add experiment on weak ping delay during call set up time
BUG=
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1411883002 .

Cr-Commit-Position: refs/heads/master@{#10343}
2015-10-20 19:09:45 +00:00
stefan
c1aeaf0dc3 Wire up packet_id / send time callbacks to webrtc via libjingle.
BUG=webrtc:4173

Review URL: https://codereview.webrtc.org/1363573002

Cr-Commit-Position: refs/heads/master@{#10289}
2015-10-15 14:26:17 +00:00
deadbeef
d59daf8023 Merging BaseSession code into WebRtcSession.
After the TransportController CL, BaseSession does little more than
hold a state and an error, and act as an intermediary for the
TransportController. So it doesn't make sense for it to be its own
class.

Review URL: https://codereview.webrtc.org/1397973002

Cr-Commit-Position: refs/heads/master@{#10281}
2015-10-14 22:02:50 +00:00
tfarina
8ac544e811 Get rid of deprecated SocketAddress::IsAny() method.
This patch converts the usage of IsAny() to IsAnyIP() and removes the
deprecated method.

BUG=None
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1392153002

Cr-Commit-Position: refs/heads/master@{#10220}
2015-10-08 14:15:49 +00:00
Peter Boström
0c4e06b4c6 Use suffixed {uint,int}{8,16,32,64}_t types.
Removes the use of uint8, etc. in favor of uint8_t.

BUG=webrtc:5024
R=henrik.lundin@webrtc.org, henrikg@webrtc.org, perkj@webrtc.org, solenberg@webrtc.org, stefan@webrtc.org, tina.legrand@webrtc.org

Review URL: https://codereview.webrtc.org/1362503003 .

Cr-Commit-Position: refs/heads/master@{#10196}
2015-10-07 10:23:32 +00:00
Guo-wei Shieh
6caafbe5b6 Convert uint16_t to int for WebRTC cipher/crypto suite.
This is a follow up CL on https://codereview.webrtc.org/1337673002

BUG=
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1377733004 .

Cr-Commit-Position: refs/heads/master@{#10175}
2015-10-05 19:43:33 +00:00
Guo-wei Shieh
456696a9c1 Reland Change WebRTC SslCipher to be exposed as number only
This is to revert the change of https://codereview.webrtc.org/1380603005/

TBR=pthatcher@webrtc.org
BUG=523033

Review URL: https://codereview.webrtc.org/1375543003 .

Cr-Commit-Position: refs/heads/master@{#10126}
2015-10-01 04:49:02 +00:00
guoweis
27dc29b0df Revert of Change WebRTC SslCipher to be exposed as number only. (patchset #20 id:750001 of https://codereview.webrtc.org/1337673002/ )
Reason for revert:
This broke chromium.fyi bot.

Original issue's description:
> Change WebRTC SslCipher to be exposed as number only.
>
> This makes the SSL exposed as uint16_t which is the IANA value. GetRfcSslCipherName is introduced to handle the conversion to names from ID. IANA value will be used for UMA reporting. Names will still be used for WebRTC stats reporting.
>
> For SRTP, currently it's still string internally but is reported as IANA number.
>
> This is used by the ongoing CL https://codereview.chromium.org/1335023002.
>
> BUG=523033
>
> Committed: https://crrev.com/4fe3c9a77386598db9abd1f0d6983aefee9cc943
> Cr-Commit-Position: refs/heads/master@{#10124}

TBR=juberti@webrtc.org,rsleevi@chromium.org,pthatcher@webrtc.org,davidben@chromium.org,juberti@google.com,davidben@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=523033

Review URL: https://codereview.webrtc.org/1380603005

Cr-Commit-Position: refs/heads/master@{#10125}
2015-10-01 02:23:15 +00:00
guoweis
4fe3c9a773 Change WebRTC SslCipher to be exposed as number only.
This makes the SSL exposed as uint16_t which is the IANA value. GetRfcSslCipherName is introduced to handle the conversion to names from ID. IANA value will be used for UMA reporting. Names will still be used for WebRTC stats reporting.

For SRTP, currently it's still string internally but is reported as IANA number.

This is used by the ongoing CL https://codereview.chromium.org/1335023002.

BUG=523033

Review URL: https://codereview.webrtc.org/1337673002

Cr-Commit-Position: refs/heads/master@{#10124}
2015-10-01 01:49:17 +00:00
honghaiz
d0b3143f0e Do not time out a port if its role switched from controlled to controlling. Also fix some comments.
BUG=webrtc:5026

Review URL: https://codereview.webrtc.org/1376983002

Cr-Commit-Position: refs/heads/master@{#10122}
2015-09-30 19:42:25 +00:00
Guo-wei Shieh
898d21c1d4 WebRTC might leak srflx ip address when multiple_routes disabled and IceTransportType is relay.
This change filters out local ports when CF_HOST is not originally specified to prevent these ports from sending out STUN which leaks IP address.

BUG=webrtc:4946
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1378753003 .

Cr-Commit-Position: refs/heads/master@{#10121}
2015-09-30 17:55:05 +00:00
Taylor Brandstetter
c4d3a5d44c Thinning out the Transport class.
Connecting TransportChannelImpls directly to the TransportController,
and removing redundant signal forwarding/state aggregating code from
Transport. This brings us closer to just getting rid of Transport
entirely.

R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1380563002 .

Cr-Commit-Position: refs/heads/master@{#10120}
2015-09-30 17:33:08 +00:00
Honghai Zhang
2b342bf99c Delete a connection only if it has timed out on writing and not receiving for 10 seconds.
BUG=webrtc:5034,webrtc:4937
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1371623003 .

Cr-Commit-Position: refs/heads/master@{#10119}
2015-09-30 16:52:48 +00:00
honghaiz
98db68fdaa If gather_continually is set to true, keep the last port allocator session running while stopping all existing process of getting ports (when p2ptransportchannel first becomes writable).
BUG=5034

Review URL: https://codereview.webrtc.org/1359363003

Cr-Commit-Position: refs/heads/master@{#10110}
2015-09-29 14:58:26 +00:00
honghaiz
8c404fab8d When doing DisableEquivalentPhases, exclude those AllocationSequences
whose network has ever been removed. It is unlikely the sockets/ports/candidates created from
those AllocationSequences will still be valid.

BUG=

Review URL: https://codereview.webrtc.org/1361183004

Cr-Commit-Position: refs/heads/master@{#10093}
2015-09-28 14:59:50 +00:00
honghaiz
1f429e3418 Passing the new policy from PeerConnection RTCConfiguration to
p2ptransportchannel.  This CL does not use the new policy yet.
BUG=

Review URL: https://codereview.webrtc.org/1369773003

Cr-Commit-Position: refs/heads/master@{#10092}
2015-09-28 14:57:39 +00:00
honghaiz
8937437872 Do not prune if the current best connection is weak.
Otherwise, we may delete a useful connection because the current best connection may be failing.

BUG=

Review URL: https://codereview.webrtc.org/1364683002

Cr-Commit-Position: refs/heads/master@{#10063}
2015-09-24 20:14:51 +00:00
honghaiz
a58ea7806a 1. Add receiving state as part of the connection sorting criteria. So if a connection's receiving state changes, it will re-select a better connection if there is any.
This will paves the way for continuous nomination lite and multi-networking.
2. Combined checking and pinging to remove some redundant checking and to make it switch to more frequent ping mode earlier.

Review URL: https://codereview.webrtc.org/1311433009

Cr-Commit-Position: refs/heads/master@{#10057}
2015-09-24 15:13:45 +00:00
Guo-wei Shieh
53eee43e78 Address the comment from 1367553002.
Remove duplication introduced by
https://codereview.webrtc.org/1367553002

BUG=webrtc:5030
TBR=juberti@webrtc.org

Review URL: https://codereview.webrtc.org/1360203003 .

Cr-Commit-Position: refs/heads/master@{#10039}
2015-09-23 21:09:18 +00:00
Guo-wei Shieh
2e4b620471 TcpPort doesn't connect when calling gmail with non-proxied UDP disabled.
The same check has been made into turnport.cc but missed this place.

BUG=webrtc:5030
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1367553002 .

Cr-Commit-Position: refs/heads/master@{#10038}
2015-09-23 20:57:17 +00:00
deadbeef
cbecd358e0 Reland of TransportController refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/1358413003/ )
Reason for revert:
This CL just landed: https://codereview.chromium.org/1323243006/

Which fixes the FYI bots for the original CL, and breaks them for this revert.

Original issue's description:
> Revert of TransportController refactoring. (patchset #6 id:100001 of https://codereview.webrtc.org/1350523003/ )
>
> Reason for revert:
> This CL causes problems with the WebRTC-in-Chromium FYI bots. Presumably it needs to be done in several steps, where removed files are emptied instead of removed in the first step.
>
> Original issue's description:
> > TransportController refactoring.
> >
> > Getting rid of TransportProxy, and in its place adding a
> > TransportController class which will facilitate access to and manage
> > the lifetimes of Transports. These Transports will now be accessed
> > solely from the worker thread, simplifying their implementation.
> >
> > This refactoring also pulls Transport-related code out of BaseSession.
> > Which means that BaseChannels will now rely on the TransportController
> > interface to create channels, rather than BaseSession.
> >
> > Committed: https://crrev.com/47ee2f3b9f33e8938948c482c921d4e13a3acd83
> > Cr-Commit-Position: refs/heads/master@{#10022}
>
> TBR=pthatcher@webrtc.org,deadbeef@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/a81a42f584baa0d93a4b93da9632415e8922450c
> Cr-Commit-Position: refs/heads/master@{#10024}

TBR=pthatcher@webrtc.org,torbjorng@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1361773005

Cr-Commit-Position: refs/heads/master@{#10036}
2015-09-23 18:50:31 +00:00
torbjorng
a81a42f584 Revert of TransportController refactoring. (patchset #6 id:100001 of https://codereview.webrtc.org/1350523003/ )
Reason for revert:
This CL causes problems with the WebRTC-in-Chromium FYI bots. Presumably it needs to be done in several steps, where removed files are emptied instead of removed in the first step.

Original issue's description:
> TransportController refactoring.
>
> Getting rid of TransportProxy, and in its place adding a
> TransportController class which will facilitate access to and manage
> the lifetimes of Transports. These Transports will now be accessed
> solely from the worker thread, simplifying their implementation.
>
> This refactoring also pulls Transport-related code out of BaseSession.
> Which means that BaseChannels will now rely on the TransportController
> interface to create channels, rather than BaseSession.
>
> Committed: https://crrev.com/47ee2f3b9f33e8938948c482c921d4e13a3acd83
> Cr-Commit-Position: refs/heads/master@{#10022}

TBR=pthatcher@webrtc.org,deadbeef@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.webrtc.org/1358413003

Cr-Commit-Position: refs/heads/master@{#10024}
2015-09-23 09:24:27 +00:00
deadbeef
47ee2f3b9f TransportController refactoring.
Getting rid of TransportProxy, and in its place adding a
TransportController class which will facilitate access to and manage
the lifetimes of Transports. These Transports will now be accessed
solely from the worker thread, simplifying their implementation.

This refactoring also pulls Transport-related code out of BaseSession.
Which means that BaseChannels will now rely on the TransportController
interface to create channels, rather than BaseSession.

Review URL: https://codereview.webrtc.org/1350523003

Cr-Commit-Position: refs/heads/master@{#10022}
2015-09-22 22:08:31 +00:00
Peter Thatcher
04ac81f2fd Replace readable with receiving where receiving means receiving anything (stun ping, response or data packet).
BUG=4937
R=pthatcher@webrtc.org

Review URL: https://codereview.webrtc.org/1345913004 .

Cr-Commit-Position: refs/heads/master@{#10004}
2015-09-21 18:48:37 +00:00
tommi
275a2f16fd Revert of Replace readable with receiving where receiving means receiving anything (stun ping, response or da… (patchset #7 id:340001 of https://codereview.webrtc.org/1351673003/ )
Reason for revert:
Broke the Windows build:

[226/365] LINK_EMBED cc_perftests.exe
FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\remoting\protocol\remoting_unittests.channel_socket_adapter_unittest.obj.rsp /c ..\..\remoting\protocol\channel_socket_adapter_unittest.cc /Foobj\remoting\protocol\remoting_unittests.channel_socket_adapter_unittest.obj /Fdobj\remoting\remoting_unittests.cc.pdb
e:\b\build\slave\win\build\src\remoting\protocol\channel_socket_adapter_unittest.cc(36) : error C3861: 'set_readable': identifier not found
ninja: build stopped: subcommand failed.

Original issue's description:
> Replace readable with receiving where receiving means receiving anything (stun ping, response or data packet).
> If a connection does not receive for 30 seconds, it will be deleted.
> BUG=
>
> Committed: https://crrev.com/ae16f8547d3b447f62f6660f13688585c6c3de15
> Cr-Commit-Position: refs/heads/master@{#10001}

TBR=pthatcher@webrtc.org,honghaiz@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.webrtc.org/1356103002

Cr-Commit-Position: refs/heads/master@{#10002}
2015-09-21 14:20:43 +00:00
honghaiz
ae16f8547d Replace readable with receiving where receiving means receiving anything (stun ping, response or data packet).
If a connection does not receive for 30 seconds, it will be deleted.
BUG=

Review URL: https://codereview.webrtc.org/1351673003

Cr-Commit-Position: refs/heads/master@{#10001}
2015-09-21 13:54:19 +00:00
Guo-wei Shieh
8902433a43 Revert "TransportController refactoring."
This reverts commit 9af63f473e1d0d6c47a741a046c41642dfc1c178.

Cr-Commit-Position: refs/heads/master@{#9994}
2015-09-18 20:50:31 +00:00
deadbeef
9af63f473e TransportController refactoring.
Getting rid of TransportProxy, and in its place adding a
TransportController class which will facilitate access to and manage
the lifetimes of Transports. These Transports will now be accessed
solely from the worker thread, simplifying their implementation.

This refactoring also pulls Transport-related code out of BaseSession.
Which means that BaseChannels will now rely on the TransportController
interface to create channels, rather than BaseSession.

This CL also adds some unit tests, and does some renaming.
For example, from "CandidateReady" to "CandidateGathered".

Review URL: https://codereview.webrtc.org/1246913005

Cr-Commit-Position: refs/heads/master@{#9993}
2015-09-18 19:56:02 +00:00