From 37227beed5239335db7e671dc951f38c563cfa72 Mon Sep 17 00:00:00 2001 From: "Piotr (Peter) Slatala" Date: Wed, 21 Nov 2018 07:42:22 -0800 Subject: [PATCH] Add check for media transport and bundle policy Bug: None Change-Id: I36931774438b80ce391e656b8db2f2bb6ed25d8b Reviewed-on: https://webrtc-review.googlesource.com/c/110961 Commit-Queue: Peter Slatala Reviewed-by: Steve Anton Reviewed-by: Anton Sukhanov Cr-Commit-Position: refs/heads/master@{#25733} --- pc/peerconnection.cc | 6 ++++++ pc/peerconnectioninterface_unittest.cc | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pc/peerconnection.cc b/pc/peerconnection.cc index 3b9b9c8290..e60474ca1d 100644 --- a/pc/peerconnection.cc +++ b/pc/peerconnection.cc @@ -2997,6 +2997,12 @@ bool PeerConnection::SetConfiguration(const RTCConfiguration& configuration, return SafeSetError(RTCErrorType::INVALID_MODIFICATION, error); } + if (configuration.use_media_transport_for_data_channels || + configuration.use_media_transport) { + RTC_CHECK(configuration.bundle_policy == kBundlePolicyMaxBundle) + << "Media transport requires MaxBundle policy."; + } + // The simplest (and most future-compatible) way to tell if the config was // modified in an invalid way is to copy each property we do support // modifying, then use operator==. There are far more properties we don't diff --git a/pc/peerconnectioninterface_unittest.cc b/pc/peerconnectioninterface_unittest.cc index 362c8517ad..fe8fd8ddea 100644 --- a/pc/peerconnectioninterface_unittest.cc +++ b/pc/peerconnectioninterface_unittest.cc @@ -1426,7 +1426,10 @@ TEST_P(PeerConnectionInterfaceTest, GetConfigurationAfterCreatePeerConnection) { // Check that GetConfiguration returns the last configuration passed into // SetConfiguration. TEST_P(PeerConnectionInterfaceTest, GetConfigurationAfterSetConfiguration) { - CreatePeerConnection(); + PeerConnectionInterface::RTCConfiguration starting_config; + starting_config.bundle_policy = + webrtc::PeerConnection::kBundlePolicyMaxBundle; + CreatePeerConnection(starting_config); PeerConnectionInterface::RTCConfiguration config = pc_->GetConfiguration(); config.type = PeerConnectionInterface::kRelay;