471 Commits

Author SHA1 Message Date
honghaiz
f421bdc68d Fix an NPE when creating TurnPort with a NULL socket.
BUG=4827

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

Cr-Commit-Position: refs/heads/master@{#9601}
2015-07-17 23:22:02 +00:00
deadbeef
c5d0d95fd8 Ensuring that UDP TURN servers are always used as STUN servers.
This was already working in most cases, but not for some corner cases:
* If the PORTALLOCATOR_ENABLE_SHARED_SOCKET flag is not set
* If both a STUN server and TURN server are configured

I added unit tests for these cases, and centralized the code that gets
STUN server addresses in order to fix these and any related issues.

BUG=webrtc:4215

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

Cr-Commit-Position: refs/heads/master@{#9596}
2015-07-16 17:22:28 +00:00
honghaiz
a03cd3fdef 1. Override and virtual has to be consistent.
2. provide an implementation for SetIceConnectionReceivingTimeout so that Chrome does not complain.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#9574}
2015-07-14 00:08:11 +00:00
honghaiz
900996290c Add methods to set the ICE connection receiving_timeout values.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#9572}
2015-07-13 19:19:42 +00:00
Peter Thatcher
a6d2444c84 Remove BaseSession::SignalNewDescription. It was only used by GTP and now just clutters the code.
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9564}
2015-07-10 04:26:45 +00:00
Peter Thatcher
54360510ff Add flakyness check based on the recently received packets.
BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9553}
2015-07-08 18:08:39 +00:00
Peter Thatcher
b8b0143a11 Tighten link-local routing exclusion check
Also add a unit test for this behavior.

BUG=https://code.google.com/p/webrtc/issues/detail?id=4823
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9550}
2015-07-07 23:46:01 +00:00
eblima
894ad94302 Fix occurrences of const typed declaration without initialization
This fixes compilation errors as the following:

error: constructor must explicitly initialize the const member

BUG=506663
R=aluebs@webrtc.org, tommi@webrtc.org

Signed-off-by: Eduardo Lima (Etrunko) <eduardo.lima@intel.com>

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

Cr-Commit-Position: refs/heads/master@{#9538}
2015-07-03 15:34:40 +00:00
Guo-wei Shieh
97c9f8d198 Remove iostream which causes a new static initializer
TBR=pthatcher@webrtc.org
BUG=webrtc:4576

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

Cr-Commit-Position: refs/heads/master@{#9488}
2015-06-23 04:54:22 +00:00
Guo-wei Shieh
7f04b08d3b Issue 4780: disabling multiple_routes breaks Turn/Tcp.
BUG=webrtc:4780
R=pthatcher@chromium.org
TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9473}
2015-06-19 18:27:16 +00:00
Guo-wei Shieh
dc13abc331 Initially when the design was to do this experiment in browser, which doesn't have webrtc code, it requires some glue code to bridge the difference between what's available in webrtc::base and browser process. Now since we're moving to renderer process, we could reuse a lot of existing interfaces instead of rolling our own.
BUG=webrtc:4576
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9466}
2015-06-18 21:44:46 +00:00
Guo-wei Shieh
372f2fcc59 Connection resurrected with incorrect candidate type.
Connection can be resurrected with current code when there is no any existing connection for the same address. However, it's always resurrected with prflx candidate priority hence the new connection could bump down other better connection.

Migrated from https://webrtc-codereview.appspot.com/51959004/

This is based on test cases added for triggered checks.

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

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

Cr-Commit-Position: refs/heads/master@{#9429}
2015-06-12 17:12:54 +00:00
Peter Thatcher
1fe120a6b9 Add triggered checks.
BUG=4590
R=guoweis@webrtc.org, juberti@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/51979004.

Cr-Commit-Position: refs/heads/master@{#9409}
2015-06-10 18:33:24 +00:00
Guo-wei Shieh
72e9f04447 Better determination of Symmetric NAT.
If we're using shared socket mode, Symmetric NAT can be correctly determined by having more than 1 srflx per Requester (i.e. socket).

Design Doc updated at https://docs.google.com/document/d/11zruojoNqZgZYDrSVk0O3JHqFz2cFldWYQbroZdZRBg/edit#heading=h.t7npdccia97t

BUG=4576
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9396}
2015-06-09 04:03:59 +00:00
Erik Språng
efdce6927e Disable some PortAllocatorTest on asan due to flakiness
TBR=kjellander@webrtc.org
BUG=4743

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

Cr-Commit-Position: refs/heads/master@{#9377}
2015-06-05 07:41:36 +00:00
Erik Språng
85cf3c0794 Revert "Disable some PortAllocatorTest on tsan due to flakiness"
This reverts commit 491bd534ef726456883ec372562d1c8fef82e7ca.

TBR=kjellander@webrtc.org
BUG=4743

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

Cr-Commit-Position: refs/heads/master@{#9375}
2015-06-05 07:31:13 +00:00
Guo-wei Shieh
fc622ccf95 Move Requester to cc file.
BUG=4576
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9373}
2015-06-04 23:06:04 +00:00
Guo-wei Shieh
2a6b8b7461 Fix windows build break
TBR=pthacther@webrtc.org
BUG=4576

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

Cr-Commit-Position: refs/heads/master@{#9372}
2015-06-04 22:40:00 +00:00
Guo-wei Shieh
d04d3d73eb Add SocketFactoryInterface::Prepare and fix how symmetric NAT is determined.
Also remove Bind from ServerSocket interface as it's not needed anymore.

BUG=4576
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#9371}
2015-06-04 22:20:08 +00:00
Erik Språng
491bd534ef Disable some PortAllocatorTest on tsan due to flakiness
TBR=kjellander@webrtc.org
BUG=4743

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

Cr-Commit-Position: refs/heads/master@{#9369}
2015-06-04 12:57:59 +00:00
Joachim Bauch
04e5b49827 Make maximum SSL version configurable through PeerConnectionFactory::Options
This can be used to activate DTLS 1.2 through a command-line flag from Chromium
later.

BUG=chromium:428343
R=jiayl@webrtc.org, juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/54509004

Cr-Commit-Position: refs/heads/master@{#9328}
2015-05-29 07:40:51 +00:00
Donald Curtis
d4f769d8fc Stop video candidates getting down to audio.
Second attempt at adding a check to make sure that the video
transportproxy doesn't send down candidates to the audio transport
channel when things are bundled.

BUG=4665
R=juberti@google.com, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50059004

Cr-Commit-Position: refs/heads/master@{#9316}
2015-05-28 16:48:30 +00:00
Alejandro Luebs
4bf12eafba Revert "Fix sending wrong candidates down to transportchannel."
This reverts commit f65de8483e90d1d52d5d8f40f646e77bf45b10ea.

It was breaking the build bots: http://build.chromium.org/p/client.webrtc/builders/Win%20DrMemory%20Light/builds/3062

TBR=decurtis

BUG=

Review URL: https://webrtc-codereview.appspot.com/54539004

Cr-Commit-Position: refs/heads/master@{#9267}
2015-05-22 22:32:51 +00:00
Donald Curtis
f65de8483e Fix sending wrong candidates down to transportchannel.
BUG=4665
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/54489004

Cr-Commit-Position: refs/heads/master@{#9266}
2015-05-22 21:55:26 +00:00
Joachim Bauch
6f2ef74b42 Keep track of DTLS packet sizes to prevent partial reads.
The current use of rtc::FifoBuffer can lead to reading across DTLS packet
boundaries which could cause packets to not being processed correctly.

This CL introduces the new class rtc::BufferQueue and changes the
StreamInterfaceChannel to use it instead of the rtc::FifoBuffer.

BUG=chromium:447431
R=juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/52509004

Cr-Commit-Position: refs/heads/master@{#9254}
2015-05-21 15:51:41 +00:00
Joachim Bauch
831c5585c7 Allow setting maximum protocol version for SSL stream adapters.
This CL adds an API to SSL stream adapters to set the maximum allowed
protocol version and with that implements support for DTLS 1.2.
With DTLS 1.2 the default cipher changes in the unittests as follows.

BoringSSL
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA -> TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

NSS
TLS_RSA_WITH_AES_128_CBC_SHA -> TLS_RSA_WITH_AES_128_GCM_SHA256

BUG=chromium:428343
R=juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/50989004

Cr-Commit-Position: refs/heads/master@{#9232}
2015-05-20 10:48:24 +00:00
Guo-wei Shieh
1ab67aef80 Address the corner cases
1. when an IP is reported by DNS but it doesn't serve any traffic, we shouldn't count failure from that.
2. shared socket mode should should only be true for the case where multiple IPs are resolved and successfully pinged.
3. allow multiple STUN servers now.

Fix a bug in symnat detection. SymNAT will provide the same IP but different port.

If we have more than 1 srflx IP, we'll fail the experiment.

BUG=4576
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/51849004

Cr-Commit-Position: refs/heads/master@{#9215}
2015-05-19 04:36:06 +00:00
Peter Thatcher
3e95d3ef39 Don't log warning for unexpected STUN binding responses.
It was too spammy in the log because we have many code paths that check for responses when it's not a problem that it's not an expected response.

R=glaznev@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/47199004

Cr-Commit-Position: refs/heads/master@{#9212}
2015-05-18 22:55:06 +00:00
Peter Thatcher
42af6caf5c Add logging of "use candidate" and when we switch ICE "best" connections.
R=guoweis@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46309004

Cr-Commit-Position: refs/heads/master@{#9197}
2015-05-15 19:23:16 +00:00
Peter Thatcher
b2d2623902 Don't use rtc::LogCheckLevel, because it breaks Chrome.
R=guoweis@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/55429004

Cr-Commit-Position: refs/heads/master@{#9196}
2015-05-15 18:24:59 +00:00
Peter Thatcher
1cf6f8101a Add logging for sending and receiving STUN binding requests and TURN requests and responses.
BUG=
R=guoweis@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46189004

Cr-Commit-Position: refs/heads/master@{#9195}
2015-05-15 17:40:34 +00:00
Guo-wei Shieh
37931c4b85 Stunprober interface, its implementation and a command line driver.
Chrome will only see stunprober.h and stunprobercontext.h and link with libstunprober.a.

It has support for shared and non-shared mode. In shared mode, a socket will be used to ping all resolved IPs once. In non-shared mode, each ping will get a new socket.

The thread scheduling will try to run MaybeScheduleStunRequest every 1 ms. When the time is up for next ping, it'll send it out.

BUG=4576
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/51729004

Cr-Commit-Position: refs/heads/master@{#9194}
2015-05-15 17:26:40 +00:00
Joachim Bauch
1b794d56b7 Switch to use SHA-256 for certificates / fingerprints.
This CL changes identity generation to use SHA-256 for the self-signed
certificates and the fingerprints sent in the SDP.

BUG=4602
R=juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/47149004

Cr-Commit-Position: refs/heads/master@{#9173}
2015-05-12 01:32:22 +00:00
Peter Thatcher
4eddf18b1c Don't crash if SetRemoteDescription is called first with BundlePolicy=max-bundle.
BUG=
R=decurtis@webrtc.org, juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/46149004

Cr-Commit-Position: refs/heads/master@{#9124}
2015-04-30 17:56:21 +00:00
Peter Thatcher
019087f5bb Add safeguards against signalling peer-reflexive candidates.
BUG=4208
R=juberti@google.com

Review URL: https://webrtc-codereview.appspot.com/50799004

Cr-Commit-Position: refs/heads/master@{#9104}
2015-04-28 16:06:34 +00:00
Jiayang Liu
d7e5c44e94 STUN allocation should not be disabled when using shared port and TURN servers are provided.
BUG=
R=juberti@google.com, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48229004

Cr-Commit-Position: refs/heads/master@{#9091}
2015-04-27 18:46:58 +00:00
Karl Wiberg
9478437fde rtc::Buffer improvements
1. Constructors, SetData(), and AppendData() now accept uint8_t*,
     int8_t*, and char*. Previously, they accepted void*, meaning that
     any kind of pointer was accepted. I think requiring an explicit
     cast in cases where the input array isn't already of a byte-sized
     type is a better compromise between convenience and safety.

  2. data() can now return a uint8_t* instead of a char*, which seems
     more appropriate for a byte array, and is harder to mix up with
     zero-terminated C strings. data<int8_t>() is also available so
     that callers that want that type instead won't have to cast, as
     is data<char>() (which remains the default until all existing
     callers have been fixed).

  3. Constructors, SetData(), and AppendData() now accept arrays
     natively, not just decayed to pointers. The advantage of this is
     that callers don't have to pass the size separately.

  4. There are new constructors that allow setting size and capacity
     without initializing the array. Previously, this had to be done
     separately after construction.

  5. Instead of TransferTo(), Buffer now supports swap(), and move
     construction and assignment, and has a Pass() method that works
     just like std::move(). (The Pass method is modeled after
     scoped_ptr::Pass().)

R=jmarusic@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/42989004

Cr-Commit-Position: refs/heads/master@{#9033}
2015-04-20 12:03:00 +00:00
Peter Thatcher
73ba7a690f Remove PORTALLOCATOR_ENABLE_BUNDLE, PortAllocatorSessionProxy, PortAllocatorSessionMuxer, and PortProxy.
R=decurtis@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46809004

Cr-Commit-Position: refs/heads/master@{#8999}
2015-04-14 16:25:58 +00:00
Peter Thatcher
b32a5c48d3 Add more logging around TURN refreshes.
R=jiayl@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50669004

Cr-Commit-Position: refs/heads/master@{#8979}
2015-04-10 21:04:45 +00:00
Peter Thatcher
0666a9b28b Remove Transport::Reset, which is never used, and only makes reading the code harder.
R=guoweis@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/43049004

Cr-Commit-Position: refs/heads/master@{#8965}
2015-04-10 00:45:10 +00:00
Guo-wei Shieh
be508a1d36 Implement Tcp Reconnect for TCPPort.
UDP case should not be changed.

Active TCPConnection will initiate Reconnect after OnClose and when Send or Ping fails.
Passive TCPConnection will prune itself as usual as the active side will create a new connection.

The Reconnect could make P2PCT choose a different best_connection in the case where connectivities exist b/w more than 1 Network.

Also, to avoid upper layer triggers ice restart, the WRITE_TIMEOUT caused by the socket disconnection is delayed  to give the reconnect mechanism chance to kick in. The timeout event is only fired if the reconnect can't work in 5 sec. If the reconnect, there should be no ICE disconnected state trigger either in active or passive side.

BUG=1926
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/31359004

Cr-Commit-Position: refs/heads/master@{#8929}
2015-04-06 19:48:53 +00:00
Thiago Farina
ae0f0ee79e Cleanup: Remove DISALLOW_EVIL_CONSTRUCTORS macro.
Just use the less-evil version, DISALLOW_COPY_AND_ASSIGN macro.

This should help with my TODO in
https://chromium.googlesource.com/chromium/src/+/master/base/macros.h#33

Tested on Linux with the following command lines:

$ rm -rf out/
$ gn gen //out/Debug --args='is_debug=true target_cpu="x64" build_with_chromium=false'
$ ninja -C out/Debug

BUG=None
TEST=see above
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50599004

Patch from Thiago Farina <tfarina@chromium.org>.

Cr-Commit-Position: refs/heads/master@{#8927}
2015-04-04 23:56:56 +00:00
Peter Thatcher
7351f4689c Don't send STUN pings if we don't have a remote ufrag and pwd.
BUG=4495
R=juberti@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/44029004

Cr-Commit-Position: refs/heads/master@{#8926}
2015-04-02 23:39:19 +00:00
Henrik Kjellander
722ef1fb59 Remove henrike@ from OWNERS
Since he has left the team.

R=henrike@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48789004

Cr-Commit-Position: refs/heads/master@{#8913}
2015-04-01 15:08:49 +00:00
Tommi
245989b22a Address comments from cr 43769004.
- Remove unnecessary hop to worker from OnChannelRequestSignaling_s.
- Remove now-not-needed component param.
- Update documentation.

R=juberti@webrtc.org
BUG=4444

Review URL: https://webrtc-codereview.appspot.com/42839004

Cr-Commit-Position: refs/heads/master@{#8852}
2015-03-24 16:56:34 +00:00
Donald Curtis
0e209b03bf Update bundle behavior to match BundlePolicy spec in http://rtcweb-wg.github.io/jsep/.
BUG=1574
R=juberti@webrtc.org, pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36659004

Cr-Commit-Position: refs/heads/master@{#8851}
2015-03-24 16:30:02 +00:00
kwiberg@webrtc.org
eebcab5ce9 rtc::Buffer: Rename length to size, for conformance with the STL
And add a constructor for creating an uninitialized Buffer of a
specified size.

(I intend to follow up with more Buffer changes, but since it's rather
widely used, the rename is quite noisy and works better as a separate
CL.)

R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48579004

Cr-Commit-Position: refs/heads/master@{#8841}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8841 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-24 09:20:19 +00:00
pthatcher@webrtc.org
63a10978e1 Remove troublesome Windows line ending.
R=decurtis@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/48549004

Cr-Commit-Position: refs/heads/master@{#8766}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8766 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 21:50:29 +00:00
tommi@webrtc.org
462dbcfc2a Fix bug in Transport where channel_.clear() was being called without a lock.
Looks like this snuck in between misaligned braces.

Also switching to C++11 for loops, reducing lock scopes in a few places and removing locks in others.

BUG=4444
R=pthatcher@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/43769004

Cr-Commit-Position: refs/heads/master@{#8765}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8765 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 21:40:26 +00:00
pthatcher@webrtc.org
592470b4ff Remove a dependency of BaseChannel on WebRtcSession by having WebRtcSession push down new media descriptions to BaseChannel rather than having BaseChannel listen to the description changes from WebRtcSession.
This is a part of the big BUNDLE implementation at https://webrtc-codereview.appspot.com/45519004/

R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/47599004

Cr-Commit-Position: refs/heads/master@{#8743}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8743 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 21:16:23 +00:00