mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00

This reverts commit a743303211
.
Reason for revert: Breaks downstream tests that attempt to call FindHeaderExtensionByUri with 2 arguments. Could you keep the old 2-argument method declaration and just forward the call to the new 3-argument method with a suitable no-op filter?
Original change's description:
> Fix RTP header extension encryption
>
> Previously, RTP header extensions with encryption had been filtered
> if the encryption had been activated (not the other way around) which
> was likely an unintended logic inversion.
>
> In addition, it ensures that encrypted RTP header extensions are only
> negotiated if RTP header extension encryption is turned on. Formerly,
> which extensions had been negotiated depended on the order in which
> they were inserted, regardless of whether or not header encryption was
> actually enabled, leading to no extensions being sent on the wire.
>
> Further changes:
>
> - If RTP header encryption enabled, prefer encrypted extensions over
> non-encrypted extensions
> - Add most extensions to list of extensions supported for encryption
> - Discard encrypted extensions in a session description in case encryption
> is not supported for that extension
>
> Note that this depends on https://github.com/cisco/libsrtp/pull/491 to get
> into libwebrtc (cherry-pick or bump libsrtp version). Otherwise, two-byte
> header extensions will prevent any RTP packets being sent/received.
>
> Bug: webrtc:11713
> Change-Id: Ia0779453d342fa11e06996d9bc2d3c826f3466d3
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177980
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Taylor <deadbeef@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#33723}
TBR=deadbeef@webrtc.org,terelius@webrtc.org,hta@webrtc.org,lennart.grahl@gmail.com
Change-Id: I7df6b0fa611c6496dccdfb09a65ff33ae4a52b26
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11713
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/215222
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33727}
50 lines
1.7 KiB
C++
50 lines
1.7 KiB
C++
/*
|
|
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#include "api/rtp_parameters.h"
|
|
|
|
#include "test/gtest.h"
|
|
|
|
namespace webrtc {
|
|
|
|
using webrtc::RtpExtension;
|
|
|
|
static const char kExtensionUri1[] = "extension-uri1";
|
|
static const char kExtensionUri2[] = "extension-uri2";
|
|
|
|
static const RtpExtension kExtension1(kExtensionUri1, 1);
|
|
static const RtpExtension kExtension1Encrypted(kExtensionUri1, 10, true);
|
|
static const RtpExtension kExtension2(kExtensionUri2, 2);
|
|
|
|
TEST(RtpExtensionTest, FilterDuplicateNonEncrypted) {
|
|
std::vector<RtpExtension> extensions;
|
|
std::vector<RtpExtension> filtered;
|
|
|
|
extensions.push_back(kExtension1);
|
|
extensions.push_back(kExtension1Encrypted);
|
|
filtered = RtpExtension::FilterDuplicateNonEncrypted(extensions);
|
|
EXPECT_EQ(1u, filtered.size());
|
|
EXPECT_EQ(std::vector<RtpExtension>{kExtension1Encrypted}, filtered);
|
|
|
|
extensions.clear();
|
|
extensions.push_back(kExtension1Encrypted);
|
|
extensions.push_back(kExtension1);
|
|
filtered = RtpExtension::FilterDuplicateNonEncrypted(extensions);
|
|
EXPECT_EQ(1u, filtered.size());
|
|
EXPECT_EQ(std::vector<RtpExtension>{kExtension1Encrypted}, filtered);
|
|
|
|
extensions.clear();
|
|
extensions.push_back(kExtension1);
|
|
extensions.push_back(kExtension2);
|
|
filtered = RtpExtension::FilterDuplicateNonEncrypted(extensions);
|
|
EXPECT_EQ(2u, filtered.size());
|
|
EXPECT_EQ(extensions, filtered);
|
|
}
|
|
} // namespace webrtc
|