Commit Graph

190 Commits

Author SHA1 Message Date
278aa42718 Revert "Some cleanup for the logging code:"
This reverts commit 9ecdcdf2b527bdb1d097782d92817c9866d6d18b.

Reason for revert: Breaks downstream project.

Original change's description:
> Some cleanup for the logging code:
> 
> * Only include 'tag' for Android. Before there was an
>   extra std::string variable per log statement for all
>   platforms.
> * Remove unused logging macro for Windows and 'module' ctor argument.
> * Move httpcommon code out of logging and to where it's used.
> 
> Change-Id: I347805d3df2cee2840c0d2eef5bfefaff1cdbf37
> Bug: webrtc:8928
> Reviewed-on: https://webrtc-review.googlesource.com/57183
> Reviewed-by: Jonas Olsson <jonasolsson@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22184}

TBR=kwiberg@webrtc.org,tommi@webrtc.org,jonasolsson@webrtc.org

Change-Id: I37a13d766fbdee2adb7f45231cf8be6b2b456bec
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8928
Reviewed-on: https://webrtc-review.googlesource.com/57720
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22187}
2018-02-26 14:54:52 +00:00
9ecdcdf2b5 Some cleanup for the logging code:
* Only include 'tag' for Android. Before there was an
  extra std::string variable per log statement for all
  platforms.
* Remove unused logging macro for Windows and 'module' ctor argument.
* Move httpcommon code out of logging and to where it's used.

Change-Id: I347805d3df2cee2840c0d2eef5bfefaff1cdbf37
Bug: webrtc:8928
Reviewed-on: https://webrtc-review.googlesource.com/57183
Reviewed-by: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22184}
2018-02-26 12:09:50 +00:00
c392866d86 Implement certificate chain stats.
There was an implementation, but it relied on SSLCertificate::GetChain,
which was never implemented. Except in the fake certificate classes
used by the stats collector tests, hence the tests were passing.

Instead of implementing GetChain, we decided (in
https://webrtc-review.googlesource.com/c/src/+/6500) to add
methods that return a SSLCertChain directly, since it results in a
somewhat cleaner object model.

So this CL switches everything to use the "chain" methods, and gets
rid of the obsolete methods and member variables.

Bug: webrtc:8920
Change-Id: Ie9d7d53654ba859535462521b54c788adec7badf
Reviewed-on: https://webrtc-review.googlesource.com/56961
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22177}
2018-02-24 00:44:06 +00:00
0404225d15 ClosePlatformFile() on non-Windows: Return true on success, false on failure
We already did this on Windows, but elsewhere we were returning false
on success and true on failure, because close() returns 0 on success
and -1 on failure, and we were letting that value implicitly convert
to bool.

Bug: webrtc:8719
Change-Id: I417ff207db8d1fa4cf73a49f1d53762a8066da6c
Reviewed-on: https://webrtc-review.googlesource.com/56660
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22150}
2018-02-22 14:18:49 +00:00
72a43a1d2c Collect packet loss and RTT stats of STUN binding requests.
STUN candidates use STUN binding requests to keep NAT bindings open.
Related stats including packet loss and RTT can be now collected via the
legacy GetStats in PeerConnection.

Bug: None
Change-Id: I7b0eee1ccb07eb670a32ee303c9590047b25f31c
Reviewed-on: https://webrtc-review.googlesource.com/54100
Commit-Queue: Qingsi Wang <qingsi@google.com>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22113}
2018-02-21 00:49:26 +00:00
6bd3cddcef Remove special MD5 / SHA-1 digest classes.
Previous users have switched to the generic MessageDigest class in
https://webrtc-review.googlesource.com/35040

Bug: webrtc:8677
Change-Id: Id58d5a02e04f53d256a41a98ead37e1844479a17
Reviewed-on: https://webrtc-review.googlesource.com/55061
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Joachim Bauch <jbauch@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22101}
2018-02-20 13:45:56 +00:00
820941a1fd Remove custom MD5 / SHA-1 implementations.
Use (optimized) versions from BoringSSL/OpenSSL instead.

Bug: webrtc:8677
Change-Id: I8610bb757c228ad99518ee583329eb7944c4bf08
Reviewed-on: https://webrtc-review.googlesource.com/35020
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Joachim Bauch <jbauch@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22084}
2018-02-19 15:03:35 +00:00
2b6f13508e Un-inline LogMessage::Loggable
Make min_sev_ and dbg_sev_ file-local, and don't inline Loggable().
This should shrink the size of each RTC_LOG statement by a few
instructions. In my local tests the android binary becomes ~12k smaller.

Bug: webrtc:8529
Change-Id: Ic90cf8a7b042d49370cc8d0b1b08058940b615f8
Reviewed-on: https://webrtc-review.googlesource.com/53680
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22081}
2018-02-19 13:38:13 +00:00
10b40ce771 Add support for RTC_GUARDED_BY to SequencedTaskChecker.
Bug: webrtc:8903
Change-Id: I5121ac8412fd60694ea9b4abf0984bc825c1aa18
Reviewed-on: https://webrtc-review.googlesource.com/54311
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22079}
2018-02-19 13:05:59 +00:00
da8781fc70 Move rtc_task_queue_for_test outside of the rtc_include_tests scope.
I hit a problem in a separate CL where targets depended on
rtc_task_queue_for_test were being built while rtc_include_tests
was set to false. So this addresses a future problem.

Bug: webrtc:8848
Change-Id: Id049049d60edd6abdb6d9c56162b7554dc48b057
Reviewed-on: https://webrtc-review.googlesource.com/54880
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22078}
2018-02-19 12:26:12 +00:00
707ca31ea4 Whac-a-mole one more time with Fuchsia. Fix CurrentThreadRef()
Bug: none
Change-Id: I1882e82e33a131cc0a9256f1862de4557341e565
Tbr: guidou@webrtc.org
Notry: true
Reviewed-on: https://webrtc-review.googlesource.com/54310
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22073}
2018-02-17 23:10:21 +00:00
7c72c101cf Playing whac-a-mole with the Fuchsia builders
Updating IsThreadRefEqual and CurrentThreadRef for Fuchsia.

Bug: webrtc:8893
Change-Id: I731ecc25c00cbba51e6c30c7c0bbb06a04add7bd
Tbr: guidou@webrtc.org
Notry: true
Reviewed-on: https://webrtc-review.googlesource.com/54308
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22070}
2018-02-17 18:12:57 +00:00
f017980ada Change typedef of PlatformThreadRef for Fuchsia from pthread_t to zx_handle_t
Bug: webrtc:8893
Change-Id: I748e800f4b100b3bc3646c359e5240507ca0e03d
Tbr: guidou@webrtc.org
Reviewed-on: https://webrtc-review.googlesource.com/54307
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22069}
2018-02-17 15:14:24 +00:00
1f3f3c2d19 Reland "Remove criticalsection.cc dependency on platform_thread.cc."
This is a reland of 5af97ee3ad36cb6d386cfefa8c89d7c178015a07.

What's changed from the original?
- Moved the #include for <process.h> for Fuchsia to the types header.

Original change's description:
> Remove criticalsection.cc dependency on platform_thread.cc.
>
> As part of this, I'm moving global thread related functions over to
> platform_thread_types.* and introducing platform_thread_types.cc
> for the implementation.
>
> Change-Id: I4624877fb379e77d215f4ecd60f20b06d8df3ce5
> Bug: webrtc:8893
> Reviewed-on: https://webrtc-review.googlesource.com/53940
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22037}

Bug: webrtc:8893
Change-Id: Idd0baa6756efd10ad11a5c6e4791eaa7a9dbc97f
Tbr: danilchap@webrtc.org
Reviewed-on: https://webrtc-review.googlesource.com/54800
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22068}
2018-02-17 12:00:12 +00:00
80dd7b5d68 Reland "Set session error if SetLocal/RemoteDescription ever fails"
Original change's description:
> Set session error if SetLocal/RemoteDescription ever fails
> 
> This changes SetLocalDescription/SetRemoteDescription to set a
> session error which will cause any future calls to fail early if
> there is an error when applying a session description.
> 
> This is needed since until better error recovery is implemented
> failing a call to SetLocalDescription or SetRemoteDescription
> could leave the PeerConnection in an inconsistent state.
> 
> Bug: chromium:800775
> Change-Id: If06fd73d6e902af15d072dc562bbe830d3b11ad5
> Reviewed-on: https://webrtc-review.googlesource.com/54061
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22061}

Bug: chromium:800775
Change-Id: I0016108264e013452e9d34239c012baf23240e99
Reviewed-on: https://webrtc-review.googlesource.com/54720
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22067}
2018-02-17 02:08:19 +00:00
b953245311 Revert "Set session error if SetLocal/RemoteDescription ever fails"
This reverts commit 71439a60e7915179be96dd42dc732dc51c279884.

Reason for revert: https://ci.chromium.org/buildbot/chromium.webrtc.fyi/Mac%20Tester/47796

Original change's description:
> Set session error if SetLocal/RemoteDescription ever fails
> 
> This changes SetLocalDescription/SetRemoteDescription to set a
> session error which will cause any future calls to fail early if
> there is an error when applying a session description.
> 
> This is needed since until better error recovery is implemented
> failing a call to SetLocalDescription or SetRemoteDescription
> could leave the PeerConnection in an inconsistent state.
> 
> Bug: chromium:800775
> Change-Id: If06fd73d6e902af15d072dc562bbe830d3b11ad5
> Reviewed-on: https://webrtc-review.googlesource.com/54061
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Commit-Queue: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22061}

TBR=steveanton@webrtc.org,deadbeef@webrtc.org

Change-Id: I8af271f2b6dd6a896e390a6fe736e809329b4f4a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:800775
Reviewed-on: https://webrtc-review.googlesource.com/54700
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22063}
2018-02-16 22:27:10 +00:00
71439a60e7 Set session error if SetLocal/RemoteDescription ever fails
This changes SetLocalDescription/SetRemoteDescription to set a
session error which will cause any future calls to fail early if
there is an error when applying a session description.

This is needed since until better error recovery is implemented
failing a call to SetLocalDescription or SetRemoteDescription
could leave the PeerConnection in an inconsistent state.

Bug: chromium:800775
Change-Id: If06fd73d6e902af15d072dc562bbe830d3b11ad5
Reviewed-on: https://webrtc-review.googlesource.com/54061
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22061}
2018-02-16 19:39:59 +00:00
08ff1733fb Revert "Remove criticalsection.cc dependency on platform_thread.cc."
This reverts commit 5af97ee3ad36cb6d386cfefa8c89d7c178015a07.

Reason for revert: Breaks chrome compilation on Fuchsia, preventing rolls.

Sample failed bot run: https://ci.chromium.org/buildbot/tryserver.chromium.linux/fuchsia_arm64/59693


Sample compiler error:
In file included from ../../third_party/webrtc/rtc_base/platform_thread_types.cc:11:
../../third_party/webrtc/rtc_base/platform_thread_types.h:30:9: error: unknown type name 'pthread_t'
typedef pthread_t PlatformThreadRef;
        ^
../../third_party/webrtc/rtc_base/platform_thread_types.cc:47:10: error: use of undeclared identifier 'pthread_self'; did you mean 'zx_thread_self'?
  return pthread_self();
         ^~~~~~~~~~~~
         zx_thread_self
../../third_party/fuchsia-sdk/sysroot/aarch64-fuchsia/include/zircon/process.h:21:13: note: 'zx_thread_self' declared here
zx_handle_t zx_thread_self(void);
            ^
../../third_party/webrtc/rtc_base/platform_thread_types.cc:55:10: error: use of undeclared identifier 'pthread_equal'
  return pthread_equal(a, b);
         ^


Original change's description:
> Remove criticalsection.cc dependency on platform_thread.cc.
> 
> As part of this, I'm moving global thread related functions over to
> platform_thread_types.* and introducing platform_thread_types.cc
> for the implementation.
> 
> Change-Id: I4624877fb379e77d215f4ecd60f20b06d8df3ce5
> Bug: webrtc:8893
> Reviewed-on: https://webrtc-review.googlesource.com/53940
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22037}

TBR=danilchap@webrtc.org,tommi@webrtc.org

Change-Id: I73cca942eedf804a0f3ed5a10f01135fbc6f275b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8893
Reviewed-on: https://webrtc-review.googlesource.com/54340
Reviewed-by: Guido Urdaneta <guidou@webrtc.org>
Commit-Queue: Guido Urdaneta <guidou@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22048}
2018-02-16 11:21:49 +00:00
e4be6dad65 Removing access to send side cc in rtp controller.
This CL removes direct access to SendSideCongestionController (SSCC) via
the RtpTransportControllerSend interface and replaces all usages with
calls on RtpTransportControllerSend which will in turn calls SSCC. This
prepares for later refactor of RtpTransportControllerSend.

Bug: webrtc:8415
Change-Id: I68363a3ab0203b95579f747402a1e7f58a5eeeb5
Reviewed-on: https://webrtc-review.googlesource.com/53860
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22044}
2018-02-16 10:40:48 +00:00
5af97ee3ad Remove criticalsection.cc dependency on platform_thread.cc.
As part of this, I'm moving global thread related functions over to
platform_thread_types.* and introducing platform_thread_types.cc
for the implementation.

Change-Id: I4624877fb379e77d215f4ecd60f20b06d8df3ce5
Bug: webrtc:8893
Reviewed-on: https://webrtc-review.googlesource.com/53940
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22037}
2018-02-15 16:46:35 +00:00
02fddf64a9 Fix includes in task_queue.h
Move headers used only in implementation of TaskQueue to .cc files

Bug: None
Change-Id: I6efc9279ae2fef4693b91e992c66236cb9d3d27c
Reviewed-on: https://webrtc-review.googlesource.com/51763
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22035}
2018-02-15 16:10:15 +00:00
685615678a Introduce TaskQueueForTest.
This class adds a convenience method that allows *sending* a task
to the queue (as opposed to posting). Sending is essentially
Post+Wait, a pattern that we don't want to encourage use of
in production code, but is convenient to have from a testing
perspective and there are already several places in the
source code where we use it.

Change-Id: I6efd1b2257e6c641294bb6e4eb53b0021d9553ca
Bug: webrtc:8848
Reviewed-on: https://webrtc-review.googlesource.com/50441
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22022}
2018-02-14 15:32:49 +00:00
45cc890560 Assorted logging pedantry
This cl fixes various minor issues found during a quick scan of the current log
usage.

Bug: webrtc:8529
Change-Id: I1e1eb02ef220177dbb327203509736ad7f70cc1c
Reviewed-on: https://webrtc-review.googlesource.com/52262
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Grunell <henrikg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21996}
2018-02-13 10:47:24 +00:00
Wez
0614ed9d35 Remove calls to some POSIX APIs which Fuchsia does not implement.
Fuchsia's POSIX-lite does not provide the pthread priority nor file
locking APIs.

Bug: chromium:809201
Change-Id: I1efc5fe46909771e4934d91d2ed5f3e97c33444c
Reviewed-on: https://webrtc-review.googlesource.com/48860
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Wez <wez@google.com>
Cr-Commit-Position: refs/heads/master@{#21990}
2018-02-12 22:06:44 +00:00
8e545eee1e Revert "Use SRTP_AES128_CM_SHA1_80 by default instead of SRTP_AES128_CM_SHA1_32."
This reverts commit 6780c51b23516803dc27173d10ba98d018780447.

Reason for revert:

More details in crbug.com/810292

Original change's description:
> Use SRTP_AES128_CM_SHA1_80 by default instead of SRTP_AES128_CM_SHA1_32.
> 
> A field has been added to "CryptoOptions" to enable SRTP_AES128_CM_SHA1_32
> from native apps if really necessary.
> 
> R=​deadbeef@webrtc.org
> 
> Bug: webrtc:7670
> Change-Id: I36b6ab3e302fbf3cda2611ff196757e43a56e704
> Reviewed-on: https://webrtc-review.googlesource.com/41420
> Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
> Commit-Queue: Joachim Bauch <jbauch@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#21952}

TBR=deadbeef@webrtc.org,magjed@webrtc.org,jbauch@webrtc.org

Change-Id: I643dbe023eca526f2cda4d97df045f2533741dd4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7670
Reviewed-on: https://webrtc-review.googlesource.com/49880
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21961}
2018-02-08 16:25:31 +00:00
6780c51b23 Use SRTP_AES128_CM_SHA1_80 by default instead of SRTP_AES128_CM_SHA1_32.
A field has been added to "CryptoOptions" to enable SRTP_AES128_CM_SHA1_32
from native apps if really necessary.

R=deadbeef@webrtc.org

Bug: webrtc:7670
Change-Id: I36b6ab3e302fbf3cda2611ff196757e43a56e704
Reviewed-on: https://webrtc-review.googlesource.com/41420
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Joachim Bauch <jbauch@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21952}
2018-02-07 21:56:01 +00:00
260c39871b Add support for hyphens to rtc_base/flags
Make it possible to specify flags both with hyphens (--flag-name)
and underscores (--flag_name).

Bug: None
Change-Id: Ic02cdc2d5b9f7c75d06cdb6287a86ed432fd9daa
Reviewed-on: https://webrtc-review.googlesource.com/49204
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21945}
2018-02-07 16:32:01 +00:00
1e06289cdb Delete macro RTC_ACCESS_ON, replaced by RTC_GUARDED_BY.
Both macros do the same thing, as wrappers for
__attribute__((guarded_by)), and more names for the same thing doesn't
add to clarity.

Bug: none
Change-Id: Iaaf7b21dbf3345ee90fee22c39b636823d195eb0
Reviewed-on: https://webrtc-review.googlesource.com/48361
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21929}
2018-02-07 10:07:28 +00:00
2870b0a57e Expose a link-local network interfaces enumeration option
The bug 8432 is caused by trying to connect through a
"link-local" interface (IP address 169.254.0.x/16),
which is listed among the iPhone network interfaces.
The bug is not happening if the link-local network interfaces
are skipped in the ICE candidate gethering process.

To control this behaviour an option - disable_link_local_networks -
is added inside the RTCConfiguration.
It is used to set the new BasicPortAllocatorSession flag -
PORTALLOCATOR_DISABLE_LINK_LOCAL_NETWORKS.
The port allocator flag is added if the configuration option is set.

IPIsLinkLocal IPAddress function and its friends (IPIsLoopback, IPIsPrivate)
are refactored to work on both IPv4 and IPv6.
Unit test IPIsLinkLocal.

Bonus: fix a bug in IPIsLinkLocalV6:
take into account just 10 network mask bits instead of 16.

Bug: webrtc:8432
Change-Id: Ibe8f677a36098057b7fcad5c798380727b23359b
Reviewed-on: https://webrtc-review.googlesource.com/36380
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21922}
2018-02-06 19:12:04 +00:00
c0216b8e68 Fix the iOS Framework dependency
`Foundation.framework` is not just for mac build, it is also needed on iOS build.

Bug: None
Change-Id: I94694102afbebbe60182521892e51c57760eb7c2
Reviewed-on: https://webrtc-review.googlesource.com/47656
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Jiawei Ou <ouj@fb.com>
Cr-Commit-Position: refs/heads/master@{#21919}
2018-02-06 17:56:54 +00:00
eb0df088ca Update SSL call sites to compile with both OpenSSL 1.1.0 and BoringSSL
OpenSSL is making a lot of data structure opaque, so we can no longer directly access internal data structure. Fortunately, API methods are provided for this purpose.

BoringSSL is sharing the same API.

Bug: webrtc:8817
Change-Id: Ia5090200f0e7c352f82e8191720ac4c14fbb5a85
Reviewed-on: https://webrtc-review.googlesource.com/47321
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Reviewed-by: Emad Omara <emadomara@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21895}
2018-02-05 16:47:35 +00:00
80ba333fc5 Move FALLTHROUGH macro to a separate header, and give it an RTC_ prefix
Bug: chromium:805946
Change-Id: Ibb5dce9af27d0e48c9aee6b0a860b6f62b3c76a0
Reviewed-on: https://webrtc-review.googlesource.com/46145
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21889}
2018-02-05 11:24:59 +00:00
79a5560e06 Add RTC_UNUSED for call to write() in TaskQueue libevent dtor.
TBR=terelius@webrtc.org

Change-Id: I9ef648299754f6cab30c278d6a803dbc782a2292
Bug: webrtc:8834
Reviewed-on: https://webrtc-review.googlesource.com/47601
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21885}
2018-02-03 13:10:18 +00:00
a9c94d5b12 Be explicit about OpenSSL version requriement.
https://chromium-review.googlesource.com/c/external/webrtc/+/575910 pretty much made it a mandate to have OpenSSL 1.1.0 to compile webrtc.

So, let's be explicit about it and cleanup old code for older version support.

Also, generate a compiler error for older OpenSSL versions.

Bug: webrtc:8817
Change-Id: I28590348137b6a04503eabdcc6328297ecf5213e
Reviewed-on: https://webrtc-review.googlesource.com/46502
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Commit-Queue: Jiawei Ou <ouj@fb.com>
Cr-Commit-Position: refs/heads/master@{#21861}
2018-02-01 22:21:12 +00:00
edab3011fa Remove webrtc::test::InitFieldTrialsFromString(const std::string&).
This is done to solve a problem where a string literal is implicitly cast
to a temporary std::string when calling webrtc::test::InitFieldTrialsFromString
which passes a pointer to the internal representation to
webrtc::field_trial::InitFieldTrialFromString(char*). This pointer is
stored for later use, but the temporary std::string is destroyed as soon
as the function returns.

Using webrtc::field_trial::InitFieldTrialFromString(char*) instead,
avoids the implicit casts (but the caller still needs to ensure that
the char* outlives the program). The validation previously done by
webrtc::test::InitFieldTrialsFromString can now be done by manually
calling webrtc::test::ValidateFieldTrialsStringOrDie(const std::string&).

Add system_wrappers:field_trial_default as a direct dependency to
various targets to allow including the field_trials_default.h header.

Bug: webrtc:8812
Change-Id: Ib5a641ea255b1c16a8f7f35e1fe67f6c38a61da6
Reviewed-on: https://webrtc-review.googlesource.com/46141
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21856}
2018-02-01 19:47:41 +00:00
3b1df674d0 Add the missing header for errno variable in checks.cc
Variable `LAST_SYSTEM_ERROR` was introduced in https://webrtc-review.googlesource.com/c/src/+/32780.
It seems to be the same codeblock in `physicalsocketserver.cc`, only difference is it did not
include the header <errno.h>.

Also, probably a good idea to make the include conditional.

Bug: None
Change-Id: I3241dd83be4a248c6c1db2fab8f924a185e354cb
Reviewed-on: https://webrtc-review.googlesource.com/45864
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21841}
2018-02-01 11:38:11 +00:00
e062385dc7 Avoid to unconditionally include rtc_base/win32.h.
This CL adds #error to spot where rtc_base/win32.h is unconditionally
included and fixes all the places where it happens.

Bug: webrtc:8814
Change-Id: I3c005acf2cdb58a51f1bcaa4acaeebd272c56660
Reviewed-on: https://webrtc-review.googlesource.com/46060
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21840}
2018-02-01 11:22:51 +00:00
addc380168 Change some SSL logging to use DLOG
Bug: webrtc:8529
Change-Id: I0242ff201c5c7ac00169444a346e462157703ac6
Reviewed-on: https://webrtc-review.googlesource.com/46260
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21836}
2018-02-01 09:53:51 +00:00
c38d320689 Add AsyncInvoker::Clear method to allow canceling pending invocations
Change-Id: I85707c0980cdfb64acbb61ff8b6245e8da509db8
Bug: webrtc:8823
Reviewed-on: https://webrtc-review.googlesource.com/46801
Commit-Queue: Chris Dziemborowicz <chrisdz@google.com>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21835}
2018-02-01 08:03:32 +00:00
7c4dedade1 Delete DumpBacktrace.
It was enabled only when building with libstdc++ (the C++ library
bundled with gcc), which we rarely do these days. And it's unclear if
it ever worked well.

Bug: none
Change-Id: I1c4b3e498fb240ba946542afd194b254fcd2da19
Reviewed-on: https://webrtc-review.googlesource.com/46102
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21828}
2018-01-31 14:02:29 +00:00
018dd6e9d1 Refer to the underlying object when reporting the state of SSL basic I/O
The reasons behind this change:

1. In OpenSSL 1.1.0. BIO will be an opaque object. We won't have direct access to the `num` field.
2. `num` is only used by OpenSSL provided BIOs and different types of BIOs use num differently.
WebRTC is providing its own customized BIO implementation, it probably shouldn't piggyback into
this internal field to store the stream/socket state.
4. We can access the stream/socket state directly using the underlying object anyway.


Bug: webrtc:8817
Change-Id: I41cdd2920fba378e312e8436a7b9733381555522
Reviewed-on: https://webrtc-review.googlesource.com/46360
Commit-Queue: Jiawei Ou <ouj@fb.com>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21814}
2018-01-30 21:07:18 +00:00
607f464b16 Remove ThreadUtils.waitUninterruptibly.
This method is an anti-pattern. Removes usage of the method from
CameraCapturer and deletes it.

Bug: webrtc:8456
Change-Id: I8a70ce968af412fa6e6b9308a9e05d6a8a1ba05d
Reviewed-on: https://webrtc-review.googlesource.com/46140
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21808}
2018-01-30 15:25:59 +00:00
1a2f207485 Add sakal as an owner of rtc_base/java/src/org/webrtc.
Part of Android SDK is in this directory.

Bug: None
Change-Id: If5d7e2625e7b1461229850d4b40b05a49066b5fc
Reviewed-on: https://webrtc-review.googlesource.com/46200
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21807}
2018-01-30 15:21:39 +00:00
79d331b091 Removing henrika from p2p/OWNERS and rtc_base/OWNERS
BUG=NONE

Notry: true
Change-Id: Ieca6cfab5fe549070edf0eab706575b60c25348f
Reviewed-on: https://webrtc-review.googlesource.com/43380
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21803}
2018-01-30 10:16:19 +00:00
a0e29fc2a9 Propagate jsoncpp include path to depenent targets.
This is required in order to land:
https://webrtc-review.googlesource.com/c/src/+/34500.

TBR=phoglund@webrtc.org

Bug: webrtc:8605
Change-Id: Ic5c59b43d7379f0a623b781e55881f8eb2b0075b
Reviewed-on: https://webrtc-review.googlesource.com/44381
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21787}
2018-01-29 09:50:18 +00:00
65ce31158f Removing useless dependencies on //testing/gmock.
If a WebRTC build target requires gmock it has to include
test/gmock.h and just depend on //test:test_support.

Unfortunately //testtest_support was a leaky abstraction because it
wasn't propagating the correct -I compiler flag. To make everything
work, all the targets that use gmock started also to depend on
//testing/gmock (even if they were not including any gmock header
directly).

This CL makes //testtest_support propagate the include path up in the
dependency chain so it is possible to remove unused dependencies.

Note: all_dependent_configs should probably be used in the original
gmock target. There is an ongoing discussion about it. This CL solves
the problem on WebRTC side and it is forward compatible.

TBR=phoglund@webrtc.org

Bug: webrtc:8603
Change-Id: If08daf2ce9a6431a6e881a236743b4ec33b59ea7
Reviewed-on: https://webrtc-review.googlesource.com/44340
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21776}
2018-01-26 13:34:12 +00:00
665d18ea29 Use sched_yield instead of nanosleep(0) for Android
Use sched_yield instead of nanosleep for Android inside
rtc::PlatformThread::Run to avoid slow nanosleep(0) issue
after app minimization on Android.

Bug: webrtc:8770
Change-Id: I51ae0ae370313beb38a5027b0633a4bd48381d5c
Reviewed-on: https://webrtc-review.googlesource.com/42200
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21772}
2018-01-26 11:07:16 +00:00
2752528e4f Stop undefining EACCES.
Other headers, such as the libc++ headers, may depend on the
definition.

Bug: chromium:801780
Change-Id: I81e00708e08ab21b9456a8ed46ca7a1c1d4f7e50
Reviewed-on: https://webrtc-review.googlesource.com/43501
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Peter Collingbourne <pcc@google.com>
Cr-Commit-Position: refs/heads/master@{#21768}
2018-01-25 19:12:14 +00:00
8bac1d994e Add more string matching rules for detecting VPN interfaces.
"tun", "utun" and "tap" interfaces will now be assumed to be VPNs, if
the type is otherwise unknown.

This CL also moves GetAdapterTypeFromName out of BasicNetworkManager,
so that other network manager classes (e.g., the one in Chromium) can
use it too.

Bug: chromium:805759
Change-Id: I9988619666e2a9449cf5c089d24cf7d3afde8239
Reviewed-on: https://webrtc-review.googlesource.com/43580
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21767}
2018-01-25 19:09:34 +00:00
24ea822dcb Remove logging in audio/* from release builds.
This makes the binary around 8000 bytes smaller.

Bug: webrtc:8529
Change-Id: Ic59b16e300dd4dd5471e1079103982300cb5d660
Reviewed-on: https://webrtc-review.googlesource.com/43300
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21762}
2018-01-25 13:46:54 +00:00