Skip to content

Commit b3c0e57

Browse files
committed
Drain messagewebsocket's stream before passing it via events
1 parent bfed777 commit b3c0e57

File tree

2 files changed

+6
-8
lines changed

2 files changed

+6
-8
lines changed

Signal-Windows.Lib/Signal-Windows.Lib.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@
166166
</ItemGroup>
167167
<ItemGroup>
168168
<PackageReference Include="libsignal-service-dotnet">
169-
<Version>2.7.5.15</Version>
169+
<Version>2.7.5.16</Version>
170170
</PackageReference>
171171
<PackageReference Include="Microsoft.EntityFrameworkCore">
172172
<Version>1.1.5</Version>

Signal-Windows.Lib/SignalWebSocket.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,23 +49,21 @@ private void WebSocket_Closed(IWebSocket sender, WebSocketClosedEventArgs args)
4949
Logger.LogWarning("WebSocket_Closed() {0} ({1})", args.Code, args.Reason);
5050
}
5151

52-
private async void WebSocket_MessageReceived(MessageWebSocket sender, MessageWebSocketMessageReceivedEventArgs args)
52+
private void WebSocket_MessageReceived(MessageWebSocket sender, MessageWebSocketMessageReceivedEventArgs args)
5353
{
5454
try
5555
{
5656
using (var data = args.GetDataStream())
57+
using (var buffer = new MemoryStream())
5758
{
58-
MessageReceived.Invoke(sender, new SignalWebSocketMessageReceivedEventArgs() { Message = data.AsStreamForRead() });
59+
data.AsStreamForRead().CopyTo(buffer);
60+
MessageReceived.Invoke(sender, new SignalWebSocketMessageReceivedEventArgs() { Message = buffer.ToArray() });
5961
}
6062
}
6163
catch(Exception e)
6264
{
6365
Logger.LogError("WebSocket_MessageReceived failed: {0}\n{1}", e.Message, e.StackTrace);
64-
try
65-
{
66-
await ConnectAsync();
67-
}
68-
catch (TaskCanceledException) { }
66+
Task.Run(ConnectAsync);
6967
}
7068
}
7169

0 commit comments

Comments
 (0)