Diff
Modified: trunk/Source/WebKit/ChangeLog (222893 => 222894)
--- trunk/Source/WebKit/ChangeLog 2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/ChangeLog 2017-10-05 03:54:39 UTC (rev 222894)
@@ -1,3 +1,33 @@
+2017-10-04 Youenn Fablet <[email protected]>
+
+ rtc::PacketOptions should have its own IPC encoding/decoding routines
+ https://bugs.webkit.org/show_bug.cgi?id=177812
+
+ Reviewed by Alex Christensen.
+
+ Replacing rtc::PacketOptions IPC encoding/decoding from passing the structure as individual parameters to the structure as a parameter.
+ Introducing WebKit::RTCPacketOptions as a wrapper around it for which encode/decode routines are added.
+ Updating code using rtc::PacketOptions accordingly.
+
+ * NetworkProcess/webrtc/NetworkRTCSocket.cpp:
+ (WebKit::NetworkRTCSocket::sendTo):
+ * NetworkProcess/webrtc/NetworkRTCSocket.h:
+ * NetworkProcess/webrtc/NetworkRTCSocket.messages.in:
+ * Platform/IPC/Decoder.cpp:
+ (IPC::Decoder::operator>>):
+ (IPC::Decoder::decode):
+ * Platform/IPC/Decoder.h:
+ * Platform/IPC/Encoder.cpp:
+ (IPC::Encoder::encode):
+ * Platform/IPC/Encoder.h:
+ * Shared/RTCPacketOptions.cpp: Added.
+ (WebKit::RTCPacketOptions::encode const):
+ (WebKit::RTCPacketOptions::decode):
+ * Shared/RTCPacketOptions.h: Added.
+ * WebKit.xcodeproj/project.pbxproj:
+ * WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
+ (WebKit::LibWebRTCSocket::SendTo):
+
2017-10-04 Don Olmstead <[email protected]>
Include Pasteboard.h for all in WebCoreArgumentCoders
Modified: trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.cpp (222893 => 222894)
--- trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.cpp 2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.cpp 2017-10-05 03:54:39 UTC (rev 222894)
@@ -31,6 +31,7 @@
#include "DataReference.h"
#include "LibWebRTCSocketClient.h"
#include "NetworkRTCProvider.h"
+#include "RTCPacketOptions.h"
#include <WebCore/SharedBuffer.h>
#include <wtf/Function.h>
@@ -42,23 +43,10 @@
{
}
-void NetworkRTCSocket::sendTo(const IPC::DataReference& data, const RTCNetwork::SocketAddress& socketAddress, int packetID, int rtpSendtimeExtensionID, String srtpAuth, int64_t srtpPacketIndex, int dscp)
+void NetworkRTCSocket::sendTo(const IPC::DataReference& data, RTCNetwork::SocketAddress&& socketAddress, RTCPacketOptions&& options)
{
auto buffer = WebCore::SharedBuffer::create(data.data(), data.size());
-
- rtc::PacketOptions options;
- options.packet_id = packetID;
- options.packet_time_params.rtp_sendtime_extension_id = rtpSendtimeExtensionID;
- options.packet_time_params.srtp_packet_index = srtpPacketIndex;
- options.dscp = static_cast<rtc::DiffServCodePoint>(dscp);
- auto srtpAuthUTF8 = srtpAuth.utf8();
- if (srtpAuthUTF8.length()) {
- options.packet_time_params.srtp_auth_key = std::vector<char>(srtpAuthUTF8.data(), srtpAuthUTF8.data() + srtpAuthUTF8.length());
- options.packet_time_params.srtp_auth_tag_len = srtpAuthUTF8.length();
- } else
- options.packet_time_params.srtp_auth_tag_len = -1;
-
- m_rtcProvider.callSocket(m_identifier, [buffer = WTFMove(buffer), socketAddress, options](LibWebRTCSocketClient& client) {
+ m_rtcProvider.callSocket(m_identifier, [buffer = WTFMove(buffer), socketAddress = WTFMove(socketAddress), options = WTFMove(options.options)](LibWebRTCSocketClient& client) {
client.sendTo(buffer.get(), socketAddress.value, options);
});
}
Modified: trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.h (222893 => 222894)
--- trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.h 2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.h 2017-10-05 03:54:39 UTC (rev 222894)
@@ -54,6 +54,7 @@
class NetworkConnectionToWebProcess;
class NetworkRTCProvider;
+struct RTCPacketOptions;
class NetworkRTCSocket {
public:
@@ -60,7 +61,7 @@
NetworkRTCSocket(uint64_t, NetworkRTCProvider&);
void didReceiveMessage(IPC::Connection&, IPC::Decoder&);
private:
- void sendTo(const IPC::DataReference&, const RTCNetwork::SocketAddress&, int packetID, int rtpSendtimeExtensionID, String srtpAuth, int64_t srtpPacketIndex, int dscp);
+ void sendTo(const IPC::DataReference&, RTCNetwork::SocketAddress&&, RTCPacketOptions&&);
void close();
void setOption(int option, int value);
Modified: trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.messages.in (222893 => 222894)
--- trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.messages.in 2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.messages.in 2017-10-05 03:54:39 UTC (rev 222894)
@@ -23,7 +23,7 @@
#if USE(LIBWEBRTC)
messages -> NetworkRTCSocket {
- void SendTo(IPC::DataReference data, WebKit::RTCNetwork::SocketAddress address, int packetID, int rtpSendtimeExtensionID, String srtpAuth, int64_t srtpPacketIndex, int dscp)
+ void SendTo(IPC::DataReference data, WebKit::RTCNetwork::SocketAddress address, struct WebKit::RTCPacketOptions options)
void Close()
void SetOption(int option, int value)
}
Modified: trunk/Source/WebKit/Platform/IPC/Decoder.cpp (222893 => 222894)
--- trunk/Source/WebKit/Platform/IPC/Decoder.cpp 2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/Platform/IPC/Decoder.cpp 2017-10-05 03:54:39 UTC (rev 222894)
@@ -225,6 +225,11 @@
return getOptional(optional);
}
+Decoder& Decoder::operator>>(std::optional<int16_t>& optional)
+{
+ return getOptional(optional);
+}
+
Decoder& Decoder::operator>>(std::optional<int32_t>& optional)
{
return getOptional(optional);
@@ -290,6 +295,15 @@
return true;
}
+bool Decoder::decode(int16_t& result)
+{
+ if (!alignBufferPosition(sizeof(result), sizeof(result)))
+ return false;
+
+ decodeValueFromBuffer(result, m_bufferPos);
+ return true;
+}
+
bool Decoder::decode(int32_t& result)
{
if (!alignBufferPosition(sizeof(result), sizeof(result)))
Modified: trunk/Source/WebKit/Platform/IPC/Decoder.h (222893 => 222894)
--- trunk/Source/WebKit/Platform/IPC/Decoder.h 2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/Platform/IPC/Decoder.h 2017-10-05 03:54:39 UTC (rev 222894)
@@ -87,6 +87,8 @@
Decoder& operator>>(std::optional<uint32_t>&);
bool decode(uint64_t&);
Decoder& operator>>(std::optional<uint64_t>&);
+ bool decode(int16_t&);
+ Decoder& operator>>(std::optional<int16_t>&);
bool decode(int32_t&);
Decoder& operator>>(std::optional<int32_t>&);
bool decode(int64_t&);
Modified: trunk/Source/WebKit/Platform/IPC/Encoder.cpp (222893 => 222894)
--- trunk/Source/WebKit/Platform/IPC/Encoder.cpp 2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/Platform/IPC/Encoder.cpp 2017-10-05 03:54:39 UTC (rev 222894)
@@ -224,6 +224,12 @@
copyValueToBuffer(n, buffer);
}
+void Encoder::encode(int16_t n)
+{
+ uint8_t* buffer = grow(sizeof(n), sizeof(n));
+ copyValueToBuffer(n, buffer);
+}
+
void Encoder::encode(int32_t n)
{
uint8_t* buffer = grow(sizeof(n), sizeof(n));
Modified: trunk/Source/WebKit/Platform/IPC/Encoder.h (222893 => 222894)
--- trunk/Source/WebKit/Platform/IPC/Encoder.h 2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/Platform/IPC/Encoder.h 2017-10-05 03:54:39 UTC (rev 222894)
@@ -102,6 +102,7 @@
void encode(uint16_t);
void encode(uint32_t);
void encode(uint64_t);
+ void encode(int16_t);
void encode(int32_t);
void encode(int64_t);
void encode(float);
Added: trunk/Source/WebKit/Shared/RTCPacketOptions.cpp (0 => 222894)
--- trunk/Source/WebKit/Shared/RTCPacketOptions.cpp (rev 0)
+++ trunk/Source/WebKit/Shared/RTCPacketOptions.cpp 2017-10-05 03:54:39 UTC (rev 222894)
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "RTCPacketOptions.h"
+
+#if USE(LIBWEBRTC)
+
+#include "DataReference.h"
+#include "WebCoreArgumentCoders.h"
+
+namespace WebKit {
+
+void RTCPacketOptions::encode(IPC::Encoder& encoder) const
+{
+ encoder.encodeEnum(options.dscp);
+ encoder << safeCast<int16_t>(options.packet_id);
+ encoder << options.packet_time_params.rtp_sendtime_extension_id;
+
+ encoder << static_cast<int64_t>(options.packet_time_params.srtp_auth_tag_len);
+ if (options.packet_time_params.srtp_auth_tag_len > 0)
+ encoder << IPC::DataReference(reinterpret_cast<const uint8_t*>(options.packet_time_params.srtp_auth_key.data()), options.packet_time_params.srtp_auth_key.size());
+
+ encoder << options.packet_time_params.srtp_packet_index;
+}
+
+std::optional<RTCPacketOptions> RTCPacketOptions::decode(IPC::Decoder& decoder)
+{
+ rtc::PacketTimeUpdateParams params;
+ rtc::PacketOptions options;
+
+ rtc::DiffServCodePoint dscp;
+ if (!decoder.decodeEnum(dscp))
+ return std::nullopt;
+ options.dscp = dscp;
+
+ std::optional<int16_t> packetId;
+ decoder >> packetId;
+ if (!packetId)
+ return std::nullopt;
+ options.packet_id = packetId.value();
+
+ std::optional<int> rtpSendtimeExtensionId;
+ decoder >> rtpSendtimeExtensionId;
+ if (!rtpSendtimeExtensionId)
+ return std::nullopt;
+ params.rtp_sendtime_extension_id = rtpSendtimeExtensionId.value();
+
+ std::optional<int64_t> srtpAuthTagLength;
+ decoder >> srtpAuthTagLength;
+ if (!srtpAuthTagLength)
+ return std::nullopt;
+ params.srtp_auth_tag_len = srtpAuthTagLength.value();
+
+ if (params.srtp_auth_tag_len > 0) {
+ IPC::DataReference srtpAuthKey;
+ if (!decoder.decode(srtpAuthKey))
+ return std::nullopt;
+
+ params.srtp_auth_key = std::vector<char>(static_cast<size_t>(srtpAuthKey.size()));
+ memcpy(params.srtp_auth_key.data(), reinterpret_cast<const char*>(srtpAuthKey.data()), srtpAuthKey.size() * sizeof(char));
+ }
+
+ std::optional<int64_t> srtpPacketIndex;
+ decoder >> srtpPacketIndex;
+ if (!srtpPacketIndex)
+ return std::nullopt;
+ params.srtp_packet_index = srtpPacketIndex.value();
+
+ options.packet_time_params = WTFMove(params);
+ return RTCPacketOptions { WTFMove(options) };
+}
+
+}
+
+#endif // USE(LIBWEBRTC)
Copied: trunk/Source/WebKit/Shared/RTCPacketOptions.h (from rev 222893, trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCSocket.h) (0 => 222894)
--- trunk/Source/WebKit/Shared/RTCPacketOptions.h (rev 0)
+++ trunk/Source/WebKit/Shared/RTCPacketOptions.h 2017-10-05 03:54:39 UTC (rev 222894)
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2017 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#pragma once
+
+#if USE(LIBWEBRTC)
+
+#include <WebCore/LibWebRTCMacros.h>
+#include <webrtc/base/asyncpacketsocket.h>
+#include <wtf/Optional.h>
+
+namespace IPC {
+class Decoder;
+class Encoder;
+}
+
+namespace WebKit {
+
+struct RTCPacketOptions {
+ void encode(IPC::Encoder&) const;
+ static std::optional<RTCPacketOptions> decode(IPC::Decoder&);
+
+ rtc::PacketOptions options;
+};
+
+}
+
+#endif // USE(LIBWEBRTC)
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (222893 => 222894)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2017-10-05 03:54:39 UTC (rev 222894)
@@ -898,6 +898,7 @@
41897ED81F415D8A0016FA42 /* CacheStorageEngine.h in Headers */ = {isa = PBXBuildFile; fileRef = 41897ED21F415D850016FA42 /* CacheStorageEngine.h */; };
41897ED91F415D8A0016FA42 /* CacheStorageEngineConnection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41897ED31F415D850016FA42 /* CacheStorageEngineConnection.cpp */; };
41897EDA1F415D8A0016FA42 /* CacheStorageEngineConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 41897ED41F415D850016FA42 /* CacheStorageEngineConnection.h */; };
+ 41B28B0A1F83AD4200FB52AC /* RTCPacketOptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41B28B091F83AD3E00FB52AC /* RTCPacketOptions.cpp */; };
41C8581A1F5136CA0065E085 /* CacheStorageEngineCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 41C858191F510DEE0065E085 /* CacheStorageEngineCache.cpp */; };
41D129DA1F3D101800D15E47 /* WebCacheStorageProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 41D129D91F3D101400D15E47 /* WebCacheStorageProvider.h */; };
41DC45961E3D6E2200B11F51 /* NetworkRTCProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 41DC45941E3D6E1E00B11F51 /* NetworkRTCProvider.h */; };
@@ -3187,6 +3188,8 @@
41897ED51F415D850016FA42 /* CacheStorageEngineConnection.messages.in */ = {isa = PBXFileReference; lastKnownFileType = text; path = CacheStorageEngineConnection.messages.in; sourceTree = "<group>"; };
41897ED61F415D860016FA42 /* CacheStorageEngine.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CacheStorageEngine.cpp; sourceTree = "<group>"; };
41AC86811E042E5300303074 /* WebRTCResolver.messages.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; lineEnding = 0; name = WebRTCResolver.messages.in; path = Network/webrtc/WebRTCResolver.messages.in; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = "<none>"; };
+ 41B28B081F83AD3E00FB52AC /* RTCPacketOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTCPacketOptions.h; sourceTree = "<group>"; };
+ 41B28B091F83AD3E00FB52AC /* RTCPacketOptions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RTCPacketOptions.cpp; sourceTree = "<group>"; };
41C858191F510DEE0065E085 /* CacheStorageEngineCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CacheStorageEngineCache.cpp; sourceTree = "<group>"; };
41D129D91F3D101400D15E47 /* WebCacheStorageProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebCacheStorageProvider.h; sourceTree = "<group>"; };
41DC45941E3D6E1E00B11F51 /* NetworkRTCProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetworkRTCProvider.h; path = NetworkProcess/webrtc/NetworkRTCProvider.h; sourceTree = "<group>"; };
@@ -5023,6 +5026,8 @@
F6A0C13F13281E6E0070430F /* ResourceCachesToClear.h */,
410482CB1DDD2FB500F006D0 /* RTCNetwork.cpp */,
410482CC1DDD2FB500F006D0 /* RTCNetwork.h */,
+ 41B28B091F83AD3E00FB52AC /* RTCPacketOptions.cpp */,
+ 41B28B081F83AD3E00FB52AC /* RTCPacketOptions.h */,
BC2D021612AC41CB00E732A3 /* SameDocumentNavigationType.h */,
1AAB4A8C1296F0A20023952F /* SandboxExtension.h */,
E1E552C316AE065E004ED653 /* SandboxInitializationParameters.h */,
@@ -10346,6 +10351,7 @@
51E6C1601F29356000FD3437 /* ResourceLoadStatisticsPersistentStorageIOS.mm in Sources */,
BC111B09112F5E3C00337BAB /* ResponsivenessTimer.cpp in Sources */,
410482CD1DDD324C00F006D0 /* RTCNetwork.cpp in Sources */,
+ 41B28B0A1F83AD4200FB52AC /* RTCPacketOptions.cpp in Sources */,
1AAB4AAA1296F1540023952F /* SandboxExtensionMac.mm in Sources */,
E1E552C416AE065F004ED653 /* SandboxInitialiationParametersMac.mm in Sources */,
E19BDA8B19368D4600B97F57 /* SandboxUtilities.mm in Sources */,
Modified: trunk/Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.cpp (222893 => 222894)
--- trunk/Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.cpp 2017-10-05 03:05:42 UTC (rev 222893)
+++ trunk/Source/WebKit/WebProcess/Network/webrtc/LibWebRTCSocket.cpp 2017-10-05 03:54:39 UTC (rev 222894)
@@ -32,6 +32,7 @@
#include "LibWebRTCSocketFactory.h"
#include "NetworkProcessConnection.h"
#include "NetworkRTCSocketMessages.h"
+#include "RTCPacketOptions.h"
#include "WebProcess.h"
#include <WebCore/SharedBuffer.h>
#include <wtf/Function.h>
@@ -113,13 +114,6 @@
SignalNewConnection(this, newConnectionSocket);
}
-static inline String authKey(const rtc::PacketOptions& options)
-{
- if (options.packet_time_params.srtp_auth_key.size() <= 0)
- return { };
- return String(options.packet_time_params.srtp_auth_key.data(), options.packet_time_params.srtp_auth_key.size());
-}
-
bool LibWebRTCSocket::willSend(size_t size)
{
if (size > m_availableSendingBytes) {
@@ -142,10 +136,7 @@
sendOnMainThread([identifier, buffer = WTFMove(buffer), address, options](IPC::Connection& connection) {
IPC::DataReference data(reinterpret_cast<const uint8_t*>(buffer->data()), buffer->size());
- String srtpAuthKey = authKey(options);
- RTCNetwork::SocketAddress socketAddress(address);
- Messages::NetworkRTCSocket::SendTo message(data, socketAddress, options.packet_id, options.packet_time_params.rtp_sendtime_extension_id, srtpAuthKey, options.packet_time_params.srtp_packet_index, options.dscp);
- connection.send(WTFMove(message), identifier);
+ connection.send(Messages::NetworkRTCSocket::SendTo { data, RTCNetwork::SocketAddress { address }, RTCPacketOptions { options } }, identifier);
});
return size;
}