diff --git a/PluralKit.Bot/PluralKit.Bot.csproj b/PluralKit.Bot/PluralKit.Bot.csproj
index 753d1f30..152d736a 100644
--- a/PluralKit.Bot/PluralKit.Bot.csproj
+++ b/PluralKit.Bot/PluralKit.Bot.csproj
@@ -24,6 +24,6 @@
-
+
diff --git a/PluralKit.Bot/Services/HttpListenerService.cs b/PluralKit.Bot/Services/HttpListenerService.cs
index bafeae41..d2bfc4ce 100644
--- a/PluralKit.Bot/Services/HttpListenerService.cs
+++ b/PluralKit.Bot/Services/HttpListenerService.cs
@@ -1,4 +1,3 @@
-using System.Text;
using System.Text.Json;
using Serilog;
@@ -58,7 +57,7 @@ public class HttpListenerService
private async Task RuntimeConfigSet(HttpContextBase ctx)
{
var key = ctx.Request.Url.Parameters["key"];
- var value = ReadStream(ctx.Request.Data, ctx.Request.ContentLength);
+ var value = ctx.Request.DataAsString;
await _runtimeConfig.Set(key, value);
await RuntimeConfigGet(ctx);
}
@@ -77,7 +76,7 @@ public class HttpListenerService
var shardIdString = ctx.Request.Url.Parameters["shard_id"];
if (!int.TryParse(shardIdString, out var shardId)) return;
- var packet = JsonSerializer.Deserialize(ReadStream(ctx.Request.Data, ctx.Request.ContentLength), _jsonSerializerOptions);
+ var packet = JsonSerializer.Deserialize(ctx.Request.DataAsString, _jsonSerializerOptions);
var evt = DeserializeEvent(shardId, packet.EventType!, (JsonElement)packet.Payload!);
if (evt != null)
{
@@ -108,39 +107,4 @@ public class HttpListenerService
return null;
}
}
-
- //temporary re-implementation of the ReadStream function found in WatsonWebserver.Lite, but with handling for closed connections
- //https://github.com/dotnet/WatsonWebserver/issues/171
- private static string ReadStream(Stream input, long contentLength)
- {
- if (input == null) throw new ArgumentNullException(nameof(input));
- if (!input.CanRead) throw new InvalidOperationException("Input stream is not readable");
- if (contentLength < 1) return "";
-
- byte[] buffer = new byte[65536];
- long bytesRemaining = contentLength;
-
- using (MemoryStream ms = new MemoryStream())
- {
- int read;
-
- while (bytesRemaining > 0)
- {
- read = input.Read(buffer, 0, buffer.Length);
- if (read > 0)
- {
- ms.Write(buffer, 0, read);
- bytesRemaining -= read;
- }
- else
- {
- throw new IOException("Connection closed before reading end of stream.");
- }
- }
-
- if (ms.Length < 1) return null;
- var str = Encoding.Default.GetString(ms.ToArray());
- return str;
- }
- }
}
\ No newline at end of file
diff --git a/PluralKit.Bot/packages.lock.json b/PluralKit.Bot/packages.lock.json
index 449923d9..25e461cf 100644
--- a/PluralKit.Bot/packages.lock.json
+++ b/PluralKit.Bot/packages.lock.json
@@ -16,12 +16,12 @@
},
"Watson.Lite": {
"type": "Direct",
- "requested": "[6.3.5, )",
- "resolved": "6.3.5",
- "contentHash": "YF8+se3IVenn8YlyNeb4wSJK6QMnVD0QHIOEiZ22wS4K2wkwoSDzWS+ZAjk1MaPeB+XO5gRoENUN//pOc+wI2g==",
+ "requested": "[6.3.12, )",
+ "resolved": "6.3.12",
+ "contentHash": "L/TfJadyOwK9bhhvOnEKXLeyDaTAn8v6hnYPVPIwQ7JlnUXDbDqsUa3qHFdFIHiuK8vMZOnDL7+k/mY10yxdYw==",
"dependencies": {
- "CavemanTcp": "2.0.5",
- "Watson.Core": "6.3.5"
+ "CavemanTcp": "2.0.9",
+ "Watson.Core": "6.3.12"
}
},
"App.Metrics": {
@@ -119,8 +119,8 @@
},
"CavemanTcp": {
"type": "Transitive",
- "resolved": "2.0.5",
- "contentHash": "90wywmGpjrj26HMAkufYZwuZI8sVYB1mRwEdqugSR3kgDnPX+3l0jO86gwtFKsPvsEpsS4Dn/1EbhguzUxMU8Q=="
+ "resolved": "2.0.9",
+ "contentHash": "KgIwYhPhGkBTm+wwVAmWonkKPw4xYVnutzzlIeqOLcX1fti+8d+MEGTvbern1smf3S/UpjFjihkf6XRziTddzQ=="
},
"Dapper": {
"type": "Transitive",
@@ -746,8 +746,8 @@
},
"Watson.Core": {
"type": "Transitive",
- "resolved": "6.3.5",
- "contentHash": "Y5YxKOCSLe2KDmfwvI/J0qApgmmZR77LwyoufRVfKH7GLdHiE7fY0IfoNxWTG7nNv8knBfgwyOxdehRm+4HaCg==",
+ "resolved": "6.3.12",
+ "contentHash": "lCWv+7rz++z/1ceu+aBdJYw+nO7u/dgXxVYrmdUO/3ylFeEbbPQP19MYjOJbhSQY4+bmQRex79YJ1IneLZhprA==",
"dependencies": {
"IpMatcher": "1.0.5",
"RegexMatcher": "1.0.9",
diff --git a/PluralKit.Tests/packages.lock.json b/PluralKit.Tests/packages.lock.json
index ce0dbc15..bffeb33d 100644
--- a/PluralKit.Tests/packages.lock.json
+++ b/PluralKit.Tests/packages.lock.json
@@ -130,8 +130,8 @@
},
"CavemanTcp": {
"type": "Transitive",
- "resolved": "2.0.5",
- "contentHash": "90wywmGpjrj26HMAkufYZwuZI8sVYB1mRwEdqugSR3kgDnPX+3l0jO86gwtFKsPvsEpsS4Dn/1EbhguzUxMU8Q=="
+ "resolved": "2.0.9",
+ "contentHash": "KgIwYhPhGkBTm+wwVAmWonkKPw4xYVnutzzlIeqOLcX1fti+8d+MEGTvbern1smf3S/UpjFjihkf6XRziTddzQ=="
},
"Dapper": {
"type": "Transitive",
@@ -912,8 +912,8 @@
},
"Watson.Core": {
"type": "Transitive",
- "resolved": "6.3.5",
- "contentHash": "Y5YxKOCSLe2KDmfwvI/J0qApgmmZR77LwyoufRVfKH7GLdHiE7fY0IfoNxWTG7nNv8knBfgwyOxdehRm+4HaCg==",
+ "resolved": "6.3.12",
+ "contentHash": "lCWv+7rz++z/1ceu+aBdJYw+nO7u/dgXxVYrmdUO/3ylFeEbbPQP19MYjOJbhSQY4+bmQRex79YJ1IneLZhprA==",
"dependencies": {
"IpMatcher": "1.0.5",
"RegexMatcher": "1.0.9",
@@ -924,11 +924,11 @@
},
"Watson.Lite": {
"type": "Transitive",
- "resolved": "6.3.5",
- "contentHash": "YF8+se3IVenn8YlyNeb4wSJK6QMnVD0QHIOEiZ22wS4K2wkwoSDzWS+ZAjk1MaPeB+XO5gRoENUN//pOc+wI2g==",
+ "resolved": "6.3.12",
+ "contentHash": "L/TfJadyOwK9bhhvOnEKXLeyDaTAn8v6hnYPVPIwQ7JlnUXDbDqsUa3qHFdFIHiuK8vMZOnDL7+k/mY10yxdYw==",
"dependencies": {
- "CavemanTcp": "2.0.5",
- "Watson.Core": "6.3.5"
+ "CavemanTcp": "2.0.9",
+ "Watson.Core": "6.3.12"
}
},
"xunit.abstractions": {
@@ -1001,7 +1001,7 @@
"Myriad": "[1.0.0, )",
"PluralKit.Core": "[1.0.0, )",
"Sentry": "[4.13.0, )",
- "Watson.Lite": "[6.3.5, )"
+ "Watson.Lite": "[6.3.12, )"
}
},
"pluralkit.core": {