MCPcopy Create free account
hub / github.com/YtFlow/Maple / Decapsulate

Method Decapsulate

Maple.Task/VpnPlugin.cpp:219–235  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

217 }
218 }
219 void VpnPlugin::Decapsulate(VpnChannel const& channel, [[maybe_unused]] VpnPacketBuffer const& encapBuffer, VpnPacketBufferList const& decapsulatedPackets, VpnPacketBufferList const&)
220 {
221 std::lock_guard _guard{ VpnPluginInstance->m_decapQueueLock };
222 auto& q = VpnPluginInstance->m_decapQueue;
223 while (!q.empty()) {
224 auto&& incomingBuffer = q.front();
225 const auto outBuffer = channel.GetVpnReceivePacketBuffer();
226 decapsulatedPackets.Append(outBuffer);
227 const auto outBuf = outBuffer.Buffer();
228 const auto size = incomingBuffer.size();
229 if (memcpy_s(outBuf.data(), outBuf.Capacity(), incomingBuffer.data(), size)) {
230 return;
231 }
232 outBuf.Length(static_cast<uint32_t>(size));
233 q.pop();
234 }
235 }
236}

Callers

nothing calls this directly

Calls 4

BufferMethod · 0.80
dataMethod · 0.80
CapacityMethod · 0.80
LengthMethod · 0.80

Tested by

no test coverage detected