Commit Graph

471 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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