diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 00000000..47f5c749
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,45 @@
+name: Build
+
+on:
+ push:
+ paths:
+ - '.github/workflows/build.yml'
+ - 'src/**'
+ workflow_dispatch:
+ inputs:
+ publish:
+ description: 'Publish package'
+ default: false
+ required: false
+ type: boolean
+
+jobs:
+ build:
+ env:
+ BUILD_CONFIG: release
+ name: Build
+ runs-on: ubuntu-latest
+ steps:
+
+ - name: Check out repository
+ uses: actions/checkout@v3
+
+ - name: Set up .NET
+ uses: actions/setup-dotnet@v2
+ with:
+ dotnet-version: 6.0.x
+
+ - name: Install dependencies
+ run: dotnet restore
+
+ - name: Build
+ run: dotnet build -c ${{ env.BUILD_CONFIG }} --no-restore -p:ContinuousIntegrationBuild=true
+
+ #- name: Test
+ # run: dotnet test -c ${{ env.BUILD_CONFIG }} --no-restore
+
+ - name: Publish
+ if: ${{ inputs.publish }}
+ run: |
+ dotnet pack -c ${{ env.BUILD_CONFIG }} --no-build
+ dotnet nuget push build_output/packages/*.nupkg -k ${{ secrets.NUGET_API_KEY }} -s https://api.nuget.org/v3/index.json
diff --git a/DotNetty.sln b/DotNetty.sln
index 5077ced5..c9dc8be9 100644
--- a/DotNetty.sln
+++ b/DotNetty.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2024
+# Visual Studio Version 17
+VisualStudioVersion = 17.3.32819.101
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{F5B1CA65-5852-41C6-9D6F-184A3889237B}"
ProjectSection(SolutionItems) = preProject
@@ -10,8 +10,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{F5B1CA65
build.sh = build.sh
EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{F716F1EF-81EF-4020-914A-5422A13A9E13}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "shared", "shared", "{036F5A7D-2B05-4DE5-9AD8-45162E2F0645}"
ProjectSection(SolutionItems) = preProject
shared\dotnetty.com.pfx = shared\dotnetty.com.pfx
@@ -63,283 +61,164 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetty.Transport.Tests",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetty.Transport.Tests.Performance", "test\DotNetty.Transport.Tests.Performance\DotNetty.Transport.Tests.Performance.csproj", "{3DA49C12-3614-40F5-B5CE-8B95F872EFC1}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discard.Client", "examples\Discard.Client\Discard.Client.csproj", "{9AE188E0-F328-4A88-AF5F-CE0C1D4D0036}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Examples.Common", "examples\Examples.Common\Examples.Common.csproj", "{66491D47-2BFB-45CF-A582-C11860219512}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discard.Server", "examples\Discard.Server\Discard.Server.csproj", "{664ECD06-26EB-4F8F-8D88-5444A5E766E0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Echo.Client", "examples\Echo.Client\Echo.Client.csproj", "{EAE5000B-9A97-4308-B791-0B71DE0A8219}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Echo.Server", "examples\Echo.Server\Echo.Server.csproj", "{E854F61B-548A-4100-A766-35B972B9EE11}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Factorial", "examples\Factorial\Factorial.csproj", "{22C53CFB-B54A-438E-820F-42C94D557345}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Factorial.Client", "examples\Factorial.Client\Factorial.Client.csproj", "{A4E85E94-383F-40EA-9478-0545070E52F5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Factorial.Server", "examples\Factorial.Server\Factorial.Server.csproj", "{928090A9-AAC7-496C-A8E3-D242D2D8BC74}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QuoteOfTheMoment.Client", "examples\QuoteOfTheMoment.Client\QuoteOfTheMoment.Client.csproj", "{D69B9924-5C2E-41BC-9354-A12DA7D03FDF}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QuoteOfTheMoment.Server", "examples\QuoteOfTheMoment.Server\QuoteOfTheMoment.Server.csproj", "{ED307D87-E1BF-49B6-9591-5250D431C758}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SecureChat.Client", "examples\SecureChat.Client\SecureChat.Client.csproj", "{0E4B622A-063B-4A39-87CF-F18AEACBDDC5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SecureChat.Server", "examples\SecureChat.Server\SecureChat.Server.csproj", "{E2BEAAAE-497B-49F4-AD27-03BE20924311}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Telnet.Client", "examples\Telnet.Client\Telnet.Client.csproj", "{F2490822-51F7-4B65-8B21-EE0082B76745}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Telnet.Server", "examples\Telnet.Server\Telnet.Server.csproj", "{07C97A77-61B6-4BB5-9436-3A7FC379B75E}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetty.Microbench", "test\DotNetty.Microbench\DotNetty.Microbench.csproj", "{7155D1E6-00CE-4081-B922-E6C5524EE600}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetty.Transport.Libuv", "src\DotNetty.Transport.Libuv\DotNetty.Transport.Libuv.csproj", "{9FE6A783-C20D-4097-9988-4178E2C4CE75}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetty.Transport.Libuv.Tests", "test\DotNetty.Transport.Libuv.Tests\DotNetty.Transport.Libuv.Tests.csproj", "{1012C962-7F6D-4EC5-A0EC-0741A95BAD6B}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HttpServer", "examples\HttpServer\HttpServer.csproj", "{A7CACAE7-66E7-43DA-948B-28EB0DDDB582}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetty.Codecs.Http", "src\DotNetty.Codecs.Http\DotNetty.Codecs.Http.csproj", "{5F68A5B1-7907-4B16-8AFE-326E9DD7D65B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetty.Codecs.Http.Tests", "test\DotNetty.Codecs.Http.Tests\DotNetty.Codecs.Http.Tests.csproj", "{16C89E7C-1575-4685-8DFA-8E7E2C6101BF}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebSockets.Server", "examples\WebSockets.Server\WebSockets.Server.csproj", "{EA387B4B-DAD0-4E34-B8A3-79EA4616726A}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebSockets.Client", "examples\WebSockets.Client\WebSockets.Client.csproj", "{3326DB6E-023E-483F-9A1C-5905D3091B57}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
Package|Any CPU = Package|Any CPU
+ Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DF4FF0D0-A5CE-471F-B946-538C28C21CBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF4FF0D0-A5CE-471F-B946-538C28C21CBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DF4FF0D0-A5CE-471F-B946-538C28C21CBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DF4FF0D0-A5CE-471F-B946-538C28C21CBB}.Release|Any CPU.Build.0 = Release|Any CPU
{DF4FF0D0-A5CE-471F-B946-538C28C21CBB}.Package|Any CPU.ActiveCfg = Package|Any CPU
{DF4FF0D0-A5CE-471F-B946-538C28C21CBB}.Package|Any CPU.Build.0 = Package|Any CPU
+ {DF4FF0D0-A5CE-471F-B946-538C28C21CBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DF4FF0D0-A5CE-471F-B946-538C28C21CBB}.Release|Any CPU.Build.0 = Release|Any CPU
{64508DA2-40F1-4CC3-93E8-EA3B18A64E7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{64508DA2-40F1-4CC3-93E8-EA3B18A64E7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {64508DA2-40F1-4CC3-93E8-EA3B18A64E7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {64508DA2-40F1-4CC3-93E8-EA3B18A64E7E}.Release|Any CPU.Build.0 = Release|Any CPU
{64508DA2-40F1-4CC3-93E8-EA3B18A64E7E}.Package|Any CPU.ActiveCfg = Package|Any CPU
{64508DA2-40F1-4CC3-93E8-EA3B18A64E7E}.Package|Any CPU.Build.0 = Package|Any CPU
+ {64508DA2-40F1-4CC3-93E8-EA3B18A64E7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {64508DA2-40F1-4CC3-93E8-EA3B18A64E7E}.Release|Any CPU.Build.0 = Release|Any CPU
{82796E9E-1331-4858-90C3-8E74BA4CC383}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{82796E9E-1331-4858-90C3-8E74BA4CC383}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {82796E9E-1331-4858-90C3-8E74BA4CC383}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {82796E9E-1331-4858-90C3-8E74BA4CC383}.Release|Any CPU.Build.0 = Release|Any CPU
{82796E9E-1331-4858-90C3-8E74BA4CC383}.Package|Any CPU.ActiveCfg = Package|Any CPU
{82796E9E-1331-4858-90C3-8E74BA4CC383}.Package|Any CPU.Build.0 = Package|Any CPU
+ {82796E9E-1331-4858-90C3-8E74BA4CC383}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {82796E9E-1331-4858-90C3-8E74BA4CC383}.Release|Any CPU.Build.0 = Release|Any CPU
{25F7AD69-7836-46E8-9B29-0FBB3C128FFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{25F7AD69-7836-46E8-9B29-0FBB3C128FFB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {25F7AD69-7836-46E8-9B29-0FBB3C128FFB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {25F7AD69-7836-46E8-9B29-0FBB3C128FFB}.Release|Any CPU.Build.0 = Release|Any CPU
{25F7AD69-7836-46E8-9B29-0FBB3C128FFB}.Package|Any CPU.ActiveCfg = Package|Any CPU
{25F7AD69-7836-46E8-9B29-0FBB3C128FFB}.Package|Any CPU.Build.0 = Package|Any CPU
+ {25F7AD69-7836-46E8-9B29-0FBB3C128FFB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {25F7AD69-7836-46E8-9B29-0FBB3C128FFB}.Release|Any CPU.Build.0 = Release|Any CPU
{12DCCEFD-623B-46CC-979C-407FA265E239}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12DCCEFD-623B-46CC-979C-407FA265E239}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {12DCCEFD-623B-46CC-979C-407FA265E239}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {12DCCEFD-623B-46CC-979C-407FA265E239}.Release|Any CPU.Build.0 = Release|Any CPU
{12DCCEFD-623B-46CC-979C-407FA265E239}.Package|Any CPU.ActiveCfg = Package|Any CPU
{12DCCEFD-623B-46CC-979C-407FA265E239}.Package|Any CPU.Build.0 = Package|Any CPU
+ {12DCCEFD-623B-46CC-979C-407FA265E239}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {12DCCEFD-623B-46CC-979C-407FA265E239}.Release|Any CPU.Build.0 = Release|Any CPU
{5ADB0FF5-8EFC-475A-BF08-6B35EF728329}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5ADB0FF5-8EFC-475A-BF08-6B35EF728329}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5ADB0FF5-8EFC-475A-BF08-6B35EF728329}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5ADB0FF5-8EFC-475A-BF08-6B35EF728329}.Release|Any CPU.Build.0 = Release|Any CPU
{5ADB0FF5-8EFC-475A-BF08-6B35EF728329}.Package|Any CPU.ActiveCfg = Package|Any CPU
{5ADB0FF5-8EFC-475A-BF08-6B35EF728329}.Package|Any CPU.Build.0 = Package|Any CPU
+ {5ADB0FF5-8EFC-475A-BF08-6B35EF728329}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5ADB0FF5-8EFC-475A-BF08-6B35EF728329}.Release|Any CPU.Build.0 = Release|Any CPU
{D284C2BF-E06E-481B-B301-503A9D477B0E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D284C2BF-E06E-481B-B301-503A9D477B0E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D284C2BF-E06E-481B-B301-503A9D477B0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D284C2BF-E06E-481B-B301-503A9D477B0E}.Release|Any CPU.Build.0 = Release|Any CPU
{D284C2BF-E06E-481B-B301-503A9D477B0E}.Package|Any CPU.ActiveCfg = Package|Any CPU
{D284C2BF-E06E-481B-B301-503A9D477B0E}.Package|Any CPU.Build.0 = Package|Any CPU
+ {D284C2BF-E06E-481B-B301-503A9D477B0E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D284C2BF-E06E-481B-B301-503A9D477B0E}.Release|Any CPU.Build.0 = Release|Any CPU
{75A1BCC1-A7F3-4893-99C5-3235F87DB00E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{75A1BCC1-A7F3-4893-99C5-3235F87DB00E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {75A1BCC1-A7F3-4893-99C5-3235F87DB00E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {75A1BCC1-A7F3-4893-99C5-3235F87DB00E}.Release|Any CPU.Build.0 = Release|Any CPU
{75A1BCC1-A7F3-4893-99C5-3235F87DB00E}.Package|Any CPU.ActiveCfg = Package|Any CPU
{75A1BCC1-A7F3-4893-99C5-3235F87DB00E}.Package|Any CPU.Build.0 = Package|Any CPU
+ {75A1BCC1-A7F3-4893-99C5-3235F87DB00E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {75A1BCC1-A7F3-4893-99C5-3235F87DB00E}.Release|Any CPU.Build.0 = Release|Any CPU
{1F442118-A665-4891-B056-FE9E54C5B049}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1F442118-A665-4891-B056-FE9E54C5B049}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1F442118-A665-4891-B056-FE9E54C5B049}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1F442118-A665-4891-B056-FE9E54C5B049}.Release|Any CPU.Build.0 = Release|Any CPU
{1F442118-A665-4891-B056-FE9E54C5B049}.Package|Any CPU.ActiveCfg = Package|Any CPU
{1F442118-A665-4891-B056-FE9E54C5B049}.Package|Any CPU.Build.0 = Package|Any CPU
+ {1F442118-A665-4891-B056-FE9E54C5B049}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1F442118-A665-4891-B056-FE9E54C5B049}.Release|Any CPU.Build.0 = Release|Any CPU
{572E1914-489F-402D-944F-71EE0632E5D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{572E1914-489F-402D-944F-71EE0632E5D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {572E1914-489F-402D-944F-71EE0632E5D8}.Package|Any CPU.ActiveCfg = Package|Any CPU
{572E1914-489F-402D-944F-71EE0632E5D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{572E1914-489F-402D-944F-71EE0632E5D8}.Release|Any CPU.Build.0 = Release|Any CPU
- {572E1914-489F-402D-944F-71EE0632E5D8}.Package|Any CPU.ActiveCfg = Package|Any CPU
{DA54DBAF-CCDA-4AD1-9FF9-EB6F890D1091}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DA54DBAF-CCDA-4AD1-9FF9-EB6F890D1091}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DA54DBAF-CCDA-4AD1-9FF9-EB6F890D1091}.Package|Any CPU.ActiveCfg = Package|Any CPU
{DA54DBAF-CCDA-4AD1-9FF9-EB6F890D1091}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DA54DBAF-CCDA-4AD1-9FF9-EB6F890D1091}.Release|Any CPU.Build.0 = Release|Any CPU
- {DA54DBAF-CCDA-4AD1-9FF9-EB6F890D1091}.Package|Any CPU.ActiveCfg = Package|Any CPU
{72C92F76-F804-4300-BFF1-459420D9EF0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72C92F76-F804-4300-BFF1-459420D9EF0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {72C92F76-F804-4300-BFF1-459420D9EF0B}.Package|Any CPU.ActiveCfg = Package|Any CPU
{72C92F76-F804-4300-BFF1-459420D9EF0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72C92F76-F804-4300-BFF1-459420D9EF0B}.Release|Any CPU.Build.0 = Release|Any CPU
- {72C92F76-F804-4300-BFF1-459420D9EF0B}.Package|Any CPU.ActiveCfg = Package|Any CPU
{E31A5D46-71B7-4B7E-A9F8-3F011822F28A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E31A5D46-71B7-4B7E-A9F8-3F011822F28A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E31A5D46-71B7-4B7E-A9F8-3F011822F28A}.Package|Any CPU.ActiveCfg = Package|Any CPU
{E31A5D46-71B7-4B7E-A9F8-3F011822F28A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E31A5D46-71B7-4B7E-A9F8-3F011822F28A}.Release|Any CPU.Build.0 = Release|Any CPU
- {E31A5D46-71B7-4B7E-A9F8-3F011822F28A}.Package|Any CPU.ActiveCfg = Package|Any CPU
{3AF8A62F-F5CE-4C2D-B356-8B9FDFA51668}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3AF8A62F-F5CE-4C2D-B356-8B9FDFA51668}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3AF8A62F-F5CE-4C2D-B356-8B9FDFA51668}.Package|Any CPU.ActiveCfg = Package|Any CPU
{3AF8A62F-F5CE-4C2D-B356-8B9FDFA51668}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3AF8A62F-F5CE-4C2D-B356-8B9FDFA51668}.Release|Any CPU.Build.0 = Release|Any CPU
- {3AF8A62F-F5CE-4C2D-B356-8B9FDFA51668}.Package|Any CPU.ActiveCfg = Package|Any CPU
{A7FC497E-790A-4980-B57C-32AF4AD4AB9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A7FC497E-790A-4980-B57C-32AF4AD4AB9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A7FC497E-790A-4980-B57C-32AF4AD4AB9D}.Package|Any CPU.ActiveCfg = Package|Any CPU
{A7FC497E-790A-4980-B57C-32AF4AD4AB9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A7FC497E-790A-4980-B57C-32AF4AD4AB9D}.Release|Any CPU.Build.0 = Release|Any CPU
- {A7FC497E-790A-4980-B57C-32AF4AD4AB9D}.Package|Any CPU.ActiveCfg = Package|Any CPU
{08C19033-23B2-47D7-8332-86273AE287BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{08C19033-23B2-47D7-8332-86273AE287BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {08C19033-23B2-47D7-8332-86273AE287BC}.Package|Any CPU.ActiveCfg = Package|Any CPU
{08C19033-23B2-47D7-8332-86273AE287BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{08C19033-23B2-47D7-8332-86273AE287BC}.Release|Any CPU.Build.0 = Release|Any CPU
- {08C19033-23B2-47D7-8332-86273AE287BC}.Package|Any CPU.ActiveCfg = Package|Any CPU
{CE97D2EC-3EA9-4FEC-B304-F57646DB54FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE97D2EC-3EA9-4FEC-B304-F57646DB54FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CE97D2EC-3EA9-4FEC-B304-F57646DB54FD}.Package|Any CPU.ActiveCfg = Package|Any CPU
{CE97D2EC-3EA9-4FEC-B304-F57646DB54FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE97D2EC-3EA9-4FEC-B304-F57646DB54FD}.Release|Any CPU.Build.0 = Release|Any CPU
- {CE97D2EC-3EA9-4FEC-B304-F57646DB54FD}.Package|Any CPU.ActiveCfg = Package|Any CPU
{D0DBB346-BDDA-4E28-A335-6D3E1F9902DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D0DBB346-BDDA-4E28-A335-6D3E1F9902DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D0DBB346-BDDA-4E28-A335-6D3E1F9902DF}.Package|Any CPU.ActiveCfg = Package|Any CPU
{D0DBB346-BDDA-4E28-A335-6D3E1F9902DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D0DBB346-BDDA-4E28-A335-6D3E1F9902DF}.Release|Any CPU.Build.0 = Release|Any CPU
- {D0DBB346-BDDA-4E28-A335-6D3E1F9902DF}.Package|Any CPU.ActiveCfg = Package|Any CPU
{5D5A3137-F118-4F6C-ABE7-2523184A3A2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5D5A3137-F118-4F6C-ABE7-2523184A3A2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5D5A3137-F118-4F6C-ABE7-2523184A3A2D}.Package|Any CPU.ActiveCfg = Package|Any CPU
{5D5A3137-F118-4F6C-ABE7-2523184A3A2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5D5A3137-F118-4F6C-ABE7-2523184A3A2D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D5A3137-F118-4F6C-ABE7-2523184A3A2D}.Package|Any CPU.ActiveCfg = Package|Any CPU
{BDA099C5-E435-49DF-9922-58D63E11B764}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BDA099C5-E435-49DF-9922-58D63E11B764}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BDA099C5-E435-49DF-9922-58D63E11B764}.Package|Any CPU.ActiveCfg = Package|Any CPU
{BDA099C5-E435-49DF-9922-58D63E11B764}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BDA099C5-E435-49DF-9922-58D63E11B764}.Release|Any CPU.Build.0 = Release|Any CPU
- {BDA099C5-E435-49DF-9922-58D63E11B764}.Package|Any CPU.ActiveCfg = Package|Any CPU
{3DA49C12-3614-40F5-B5CE-8B95F872EFC1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DA49C12-3614-40F5-B5CE-8B95F872EFC1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3DA49C12-3614-40F5-B5CE-8B95F872EFC1}.Package|Any CPU.ActiveCfg = Package|Any CPU
{3DA49C12-3614-40F5-B5CE-8B95F872EFC1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DA49C12-3614-40F5-B5CE-8B95F872EFC1}.Release|Any CPU.Build.0 = Release|Any CPU
- {3DA49C12-3614-40F5-B5CE-8B95F872EFC1}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {9AE188E0-F328-4A88-AF5F-CE0C1D4D0036}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9AE188E0-F328-4A88-AF5F-CE0C1D4D0036}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9AE188E0-F328-4A88-AF5F-CE0C1D4D0036}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9AE188E0-F328-4A88-AF5F-CE0C1D4D0036}.Release|Any CPU.Build.0 = Release|Any CPU
- {9AE188E0-F328-4A88-AF5F-CE0C1D4D0036}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {66491D47-2BFB-45CF-A582-C11860219512}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {66491D47-2BFB-45CF-A582-C11860219512}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {66491D47-2BFB-45CF-A582-C11860219512}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {66491D47-2BFB-45CF-A582-C11860219512}.Release|Any CPU.Build.0 = Release|Any CPU
- {66491D47-2BFB-45CF-A582-C11860219512}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {664ECD06-26EB-4F8F-8D88-5444A5E766E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {664ECD06-26EB-4F8F-8D88-5444A5E766E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {664ECD06-26EB-4F8F-8D88-5444A5E766E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {664ECD06-26EB-4F8F-8D88-5444A5E766E0}.Release|Any CPU.Build.0 = Release|Any CPU
- {664ECD06-26EB-4F8F-8D88-5444A5E766E0}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {EAE5000B-9A97-4308-B791-0B71DE0A8219}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EAE5000B-9A97-4308-B791-0B71DE0A8219}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EAE5000B-9A97-4308-B791-0B71DE0A8219}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EAE5000B-9A97-4308-B791-0B71DE0A8219}.Release|Any CPU.Build.0 = Release|Any CPU
- {EAE5000B-9A97-4308-B791-0B71DE0A8219}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {E854F61B-548A-4100-A766-35B972B9EE11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E854F61B-548A-4100-A766-35B972B9EE11}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E854F61B-548A-4100-A766-35B972B9EE11}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E854F61B-548A-4100-A766-35B972B9EE11}.Release|Any CPU.Build.0 = Release|Any CPU
- {E854F61B-548A-4100-A766-35B972B9EE11}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {22C53CFB-B54A-438E-820F-42C94D557345}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {22C53CFB-B54A-438E-820F-42C94D557345}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {22C53CFB-B54A-438E-820F-42C94D557345}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {22C53CFB-B54A-438E-820F-42C94D557345}.Release|Any CPU.Build.0 = Release|Any CPU
- {22C53CFB-B54A-438E-820F-42C94D557345}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {A4E85E94-383F-40EA-9478-0545070E52F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A4E85E94-383F-40EA-9478-0545070E52F5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A4E85E94-383F-40EA-9478-0545070E52F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A4E85E94-383F-40EA-9478-0545070E52F5}.Release|Any CPU.Build.0 = Release|Any CPU
- {A4E85E94-383F-40EA-9478-0545070E52F5}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {928090A9-AAC7-496C-A8E3-D242D2D8BC74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {928090A9-AAC7-496C-A8E3-D242D2D8BC74}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {928090A9-AAC7-496C-A8E3-D242D2D8BC74}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {928090A9-AAC7-496C-A8E3-D242D2D8BC74}.Release|Any CPU.Build.0 = Release|Any CPU
- {928090A9-AAC7-496C-A8E3-D242D2D8BC74}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {D69B9924-5C2E-41BC-9354-A12DA7D03FDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D69B9924-5C2E-41BC-9354-A12DA7D03FDF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D69B9924-5C2E-41BC-9354-A12DA7D03FDF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D69B9924-5C2E-41BC-9354-A12DA7D03FDF}.Release|Any CPU.Build.0 = Release|Any CPU
- {D69B9924-5C2E-41BC-9354-A12DA7D03FDF}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {ED307D87-E1BF-49B6-9591-5250D431C758}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ED307D87-E1BF-49B6-9591-5250D431C758}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ED307D87-E1BF-49B6-9591-5250D431C758}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ED307D87-E1BF-49B6-9591-5250D431C758}.Release|Any CPU.Build.0 = Release|Any CPU
- {ED307D87-E1BF-49B6-9591-5250D431C758}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {0E4B622A-063B-4A39-87CF-F18AEACBDDC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0E4B622A-063B-4A39-87CF-F18AEACBDDC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0E4B622A-063B-4A39-87CF-F18AEACBDDC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0E4B622A-063B-4A39-87CF-F18AEACBDDC5}.Release|Any CPU.Build.0 = Release|Any CPU
- {0E4B622A-063B-4A39-87CF-F18AEACBDDC5}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {E2BEAAAE-497B-49F4-AD27-03BE20924311}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E2BEAAAE-497B-49F4-AD27-03BE20924311}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E2BEAAAE-497B-49F4-AD27-03BE20924311}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E2BEAAAE-497B-49F4-AD27-03BE20924311}.Release|Any CPU.Build.0 = Release|Any CPU
- {E2BEAAAE-497B-49F4-AD27-03BE20924311}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {F2490822-51F7-4B65-8B21-EE0082B76745}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F2490822-51F7-4B65-8B21-EE0082B76745}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F2490822-51F7-4B65-8B21-EE0082B76745}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F2490822-51F7-4B65-8B21-EE0082B76745}.Release|Any CPU.Build.0 = Release|Any CPU
- {F2490822-51F7-4B65-8B21-EE0082B76745}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {07C97A77-61B6-4BB5-9436-3A7FC379B75E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {07C97A77-61B6-4BB5-9436-3A7FC379B75E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {07C97A77-61B6-4BB5-9436-3A7FC379B75E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {07C97A77-61B6-4BB5-9436-3A7FC379B75E}.Release|Any CPU.Build.0 = Release|Any CPU
- {07C97A77-61B6-4BB5-9436-3A7FC379B75E}.Package|Any CPU.ActiveCfg = Package|Any CPU
{7155D1E6-00CE-4081-B922-E6C5524EE600}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7155D1E6-00CE-4081-B922-E6C5524EE600}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7155D1E6-00CE-4081-B922-E6C5524EE600}.Package|Any CPU.ActiveCfg = Package|Any CPU
{7155D1E6-00CE-4081-B922-E6C5524EE600}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7155D1E6-00CE-4081-B922-E6C5524EE600}.Release|Any CPU.Build.0 = Release|Any CPU
- {7155D1E6-00CE-4081-B922-E6C5524EE600}.Package|Any CPU.ActiveCfg = Package|Any CPU
{9FE6A783-C20D-4097-9988-4178E2C4CE75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9FE6A783-C20D-4097-9988-4178E2C4CE75}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9FE6A783-C20D-4097-9988-4178E2C4CE75}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9FE6A783-C20D-4097-9988-4178E2C4CE75}.Release|Any CPU.Build.0 = Release|Any CPU
{9FE6A783-C20D-4097-9988-4178E2C4CE75}.Package|Any CPU.ActiveCfg = Package|Any CPU
{9FE6A783-C20D-4097-9988-4178E2C4CE75}.Package|Any CPU.Build.0 = Package|Any CPU
+ {9FE6A783-C20D-4097-9988-4178E2C4CE75}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9FE6A783-C20D-4097-9988-4178E2C4CE75}.Release|Any CPU.Build.0 = Release|Any CPU
{1012C962-7F6D-4EC5-A0EC-0741A95BAD6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1012C962-7F6D-4EC5-A0EC-0741A95BAD6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1012C962-7F6D-4EC5-A0EC-0741A95BAD6B}.Package|Any CPU.ActiveCfg = Package|Any CPU
{1012C962-7F6D-4EC5-A0EC-0741A95BAD6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1012C962-7F6D-4EC5-A0EC-0741A95BAD6B}.Release|Any CPU.Build.0 = Release|Any CPU
- {1012C962-7F6D-4EC5-A0EC-0741A95BAD6B}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {A7CACAE7-66E7-43DA-948B-28EB0DDDB582}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A7CACAE7-66E7-43DA-948B-28EB0DDDB582}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A7CACAE7-66E7-43DA-948B-28EB0DDDB582}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A7CACAE7-66E7-43DA-948B-28EB0DDDB582}.Release|Any CPU.Build.0 = Release|Any CPU
- {A7CACAE7-66E7-43DA-948B-28EB0DDDB582}.Package|Any CPU.ActiveCfg = Package|Any CPU
{5F68A5B1-7907-4B16-8AFE-326E9DD7D65B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5F68A5B1-7907-4B16-8AFE-326E9DD7D65B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5F68A5B1-7907-4B16-8AFE-326E9DD7D65B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5F68A5B1-7907-4B16-8AFE-326E9DD7D65B}.Release|Any CPU.Build.0 = Release|Any CPU
{5F68A5B1-7907-4B16-8AFE-326E9DD7D65B}.Package|Any CPU.ActiveCfg = Package|Any CPU
{5F68A5B1-7907-4B16-8AFE-326E9DD7D65B}.Package|Any CPU.Build.0 = Package|Any CPU
+ {5F68A5B1-7907-4B16-8AFE-326E9DD7D65B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5F68A5B1-7907-4B16-8AFE-326E9DD7D65B}.Release|Any CPU.Build.0 = Release|Any CPU
{16C89E7C-1575-4685-8DFA-8E7E2C6101BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{16C89E7C-1575-4685-8DFA-8E7E2C6101BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {16C89E7C-1575-4685-8DFA-8E7E2C6101BF}.Package|Any CPU.ActiveCfg = Package|Any CPU
{16C89E7C-1575-4685-8DFA-8E7E2C6101BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{16C89E7C-1575-4685-8DFA-8E7E2C6101BF}.Release|Any CPU.Build.0 = Release|Any CPU
- {16C89E7C-1575-4685-8DFA-8E7E2C6101BF}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {EA387B4B-DAD0-4E34-B8A3-79EA4616726A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EA387B4B-DAD0-4E34-B8A3-79EA4616726A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EA387B4B-DAD0-4E34-B8A3-79EA4616726A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EA387B4B-DAD0-4E34-B8A3-79EA4616726A}.Release|Any CPU.Build.0 = Release|Any CPU
- {EA387B4B-DAD0-4E34-B8A3-79EA4616726A}.Package|Any CPU.ActiveCfg = Package|Any CPU
- {3326DB6E-023E-483F-9A1C-5905D3091B57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3326DB6E-023E-483F-9A1C-5905D3091B57}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3326DB6E-023E-483F-9A1C-5905D3091B57}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3326DB6E-023E-483F-9A1C-5905D3091B57}.Release|Any CPU.Build.0 = Release|Any CPU
- {3326DB6E-023E-483F-9A1C-5905D3091B57}.Package|Any CPU.ActiveCfg = Package|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -366,31 +245,14 @@ Global
{5D5A3137-F118-4F6C-ABE7-2523184A3A2D} = {541093F6-616E-43D9-B671-FCD1F9C0A181}
{BDA099C5-E435-49DF-9922-58D63E11B764} = {541093F6-616E-43D9-B671-FCD1F9C0A181}
{3DA49C12-3614-40F5-B5CE-8B95F872EFC1} = {541093F6-616E-43D9-B671-FCD1F9C0A181}
- {9AE188E0-F328-4A88-AF5F-CE0C1D4D0036} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {66491D47-2BFB-45CF-A582-C11860219512} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {664ECD06-26EB-4F8F-8D88-5444A5E766E0} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {EAE5000B-9A97-4308-B791-0B71DE0A8219} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {E854F61B-548A-4100-A766-35B972B9EE11} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {22C53CFB-B54A-438E-820F-42C94D557345} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {A4E85E94-383F-40EA-9478-0545070E52F5} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {928090A9-AAC7-496C-A8E3-D242D2D8BC74} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {D69B9924-5C2E-41BC-9354-A12DA7D03FDF} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {ED307D87-E1BF-49B6-9591-5250D431C758} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {0E4B622A-063B-4A39-87CF-F18AEACBDDC5} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {E2BEAAAE-497B-49F4-AD27-03BE20924311} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {F2490822-51F7-4B65-8B21-EE0082B76745} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {07C97A77-61B6-4BB5-9436-3A7FC379B75E} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
{7155D1E6-00CE-4081-B922-E6C5524EE600} = {541093F6-616E-43D9-B671-FCD1F9C0A181}
{9FE6A783-C20D-4097-9988-4178E2C4CE75} = {126EA539-4B28-4B07-8B5D-D1D7F794D189}
{1012C962-7F6D-4EC5-A0EC-0741A95BAD6B} = {541093F6-616E-43D9-B671-FCD1F9C0A181}
- {A7CACAE7-66E7-43DA-948B-28EB0DDDB582} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
{5F68A5B1-7907-4B16-8AFE-326E9DD7D65B} = {126EA539-4B28-4B07-8B5D-D1D7F794D189}
{16C89E7C-1575-4685-8DFA-8E7E2C6101BF} = {541093F6-616E-43D9-B671-FCD1F9C0A181}
- {EA387B4B-DAD0-4E34-B8A3-79EA4616726A} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
- {3326DB6E-023E-483F-9A1C-5905D3091B57} = {F716F1EF-81EF-4020-914A-5422A13A9E13}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
- {9FE6A783-C20D-4097-9988-4178E2C4CE75} = {126EA539-4B28-4B07-8B5D-D1D7F794D189}
SolutionGuid = {1FBD8DF1-D90A-4F21-8EB6-DA17B9431FE3}
+ {9FE6A783-C20D-4097-9988-4178E2C4CE75} = {126EA539-4B28-4B07-8B5D-D1D7F794D189}
EndGlobalSection
EndGlobal
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index abe92417..b8534948 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -5,19 +5,31 @@
Debug;Release;Package
AnyCPU
true
- pdbonly
+
+
pdbonly
true
$(SolutionDir)build_output\packages
True
true
-
- 0.7.6
+
+ 1.0.2.076
$(PackageVersion)
-
+
+
+ Nethermind, Microsoft
+ Demerzel Solutions Limited, Microsoft Corporation
+ true
+ MIT
+ https://github.com/nethermindeth/dotnetty
+ git
+ https://github.com/nethermindeth/dotnetty
+ true
+ snupkg
+
+
diff --git a/src/DotNetty.Buffers/DotNetty.Buffers.csproj b/src/DotNetty.Buffers/DotNetty.Buffers.csproj
index 7aa36135..18259f53 100644
--- a/src/DotNetty.Buffers/DotNetty.Buffers.csproj
+++ b/src/DotNetty.Buffers/DotNetty.Buffers.csproj
@@ -2,12 +2,12 @@
netstandard2.0;net472;net5.0;net6.0
true
- Buffer management in DotNetty
- © Microsoft Corporation. All rights reserved.
+
DotNetty: buffer management
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
True
false
@@ -16,18 +16,29 @@
../../DotNetty.snk
true
true
- DotNetty.Buffers
+
2.0.3
+
+
+ Buffer management in DotNetty
+ Nethermind.DotNetty.Buffers
+ socket tcp protocol netty dotnetty network
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/DotNetty.Codecs.Http/DotNetty.Codecs.Http.csproj b/src/DotNetty.Codecs.Http/DotNetty.Codecs.Http.csproj
index d6c93143..e7a7d023 100644
--- a/src/DotNetty.Codecs.Http/DotNetty.Codecs.Http.csproj
+++ b/src/DotNetty.Codecs.Http/DotNetty.Codecs.Http.csproj
@@ -3,13 +3,13 @@
netstandard2.0;net472;net5.0;net6.0
true
- DotNetty.Codecs.Http
+
DotNetty: Http codec
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
true
false
@@ -18,18 +18,29 @@
../../DotNetty.snk
true
true
- socket;tcp;protocol;netty;dotnetty;network;http
+
2.0.3
+
+
+ Http codec for DotNetty
+ Nethermind.DotNetty.Codecs.Http
+ socket tcp protocol netty dotnetty network http
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/DotNetty.Codecs.Mqtt/DotNetty.Codecs.Mqtt.csproj b/src/DotNetty.Codecs.Mqtt/DotNetty.Codecs.Mqtt.csproj
index be4c6e2c..e4852ec6 100644
--- a/src/DotNetty.Codecs.Mqtt/DotNetty.Codecs.Mqtt.csproj
+++ b/src/DotNetty.Codecs.Mqtt/DotNetty.Codecs.Mqtt.csproj
@@ -1,14 +1,15 @@
-
+
+
netstandard2.0;net472;net5.0;net6.0
true
- DotNetty.Codecs.Mqtt
+
DotNetty: MQTT codec
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
false
true
@@ -16,17 +17,31 @@
../../DotNetty.snk
true
true
- socket;tcp;protocol;netty;dotnetty;network;mqtt
+
2.0.3
+
+
+ MQTT codec for DotNetty
+ Nethermind.DotNetty.Codecs.Mqtt
+ socket tcp protocol netty dotnetty network mqtt
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
diff --git a/src/DotNetty.Codecs.Protobuf/DotNetty.Codecs.Protobuf.csproj b/src/DotNetty.Codecs.Protobuf/DotNetty.Codecs.Protobuf.csproj
index 6d72011e..8431d712 100644
--- a/src/DotNetty.Codecs.Protobuf/DotNetty.Codecs.Protobuf.csproj
+++ b/src/DotNetty.Codecs.Protobuf/DotNetty.Codecs.Protobuf.csproj
@@ -1,14 +1,15 @@
-
+
+
netstandard2.0;net472;net5.0;net6.0
true
- DotNetty.Codecs.Protobuf
+
DotNetty: Protobuf Proto3 codec
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
false
true
@@ -16,14 +17,21 @@
../../DotNetty.snk
true
true
- socket;tcp;protocol;netty;dotnetty;network;Protobuf
+
2.0.3
+
+
+ Protobuf Proto3 codec for DotNetty
+ Nethermind.DotNetty.Codecs.Protobuf
+ socket tcp protocol netty dotnetty network protobuf
+
+
@@ -35,5 +43,9 @@
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
\ No newline at end of file
diff --git a/src/DotNetty.Codecs.ProtocolBuffers/DotNetty.Codecs.ProtocolBuffers.csproj b/src/DotNetty.Codecs.ProtocolBuffers/DotNetty.Codecs.ProtocolBuffers.csproj
index 0402068a..b206824d 100644
--- a/src/DotNetty.Codecs.ProtocolBuffers/DotNetty.Codecs.ProtocolBuffers.csproj
+++ b/src/DotNetty.Codecs.ProtocolBuffers/DotNetty.Codecs.ProtocolBuffers.csproj
@@ -3,13 +3,13 @@
netstandard2.0;net472;net5.0;net6.0
true
- DotNetty.Codecs.ProtocolBuffers
+
DotNetty: ProtocolBuffers Proto2 codec
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
false
true
@@ -17,14 +17,21 @@
../../DotNetty.snk
true
true
- socket;tcp;protocol;netty;dotnetty;network;ProtocolBuffers
+
2.0.3
+
+
+ ProtocolBuffers Proto2 codec for DotNetty
+ Nethermind.DotNetty.Codecs.ProtocolBuffers
+ socket tcp protocol netty dotnetty network protocolbuffers
+
+
@@ -36,5 +43,9 @@
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
\ No newline at end of file
diff --git a/src/DotNetty.Codecs.Redis/DotNetty.Codecs.Redis.csproj b/src/DotNetty.Codecs.Redis/DotNetty.Codecs.Redis.csproj
index dc1590a7..32e0e7ef 100644
--- a/src/DotNetty.Codecs.Redis/DotNetty.Codecs.Redis.csproj
+++ b/src/DotNetty.Codecs.Redis/DotNetty.Codecs.Redis.csproj
@@ -2,13 +2,13 @@
netstandard2.0;net472;net5.0;net6.0
true
- DotNetty.Codecs.Redis
+
DotNetty: Redis codec
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
false
true
@@ -16,17 +16,31 @@
../../DotNetty.snk
true
true
- socket;tcp;protocol;netty;dotnetty;network;redis
+
2.0.3
+
+
+ Redis codec for DotNetty
+ Nethermind.DotNetty.Codecs.Redis
+ socket tcp protocol netty dotnetty network redis
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
diff --git a/src/DotNetty.Codecs/DotNetty.Codecs.csproj b/src/DotNetty.Codecs/DotNetty.Codecs.csproj
index e978583f..cb5b4721 100644
--- a/src/DotNetty.Codecs/DotNetty.Codecs.csproj
+++ b/src/DotNetty.Codecs/DotNetty.Codecs.csproj
@@ -2,13 +2,13 @@
netstandard2.0;net472;net5.0;net6.0
true
- DotNetty.Codecs
+
DotNetty: codecs
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
true
false
@@ -17,19 +17,30 @@
../../DotNetty.snk
true
true
- DotNetty.Codecs
+
2.0.3
+
+
+ General purpose codecs for DotNetty
+ Nethermind.DotNetty.Codecs
+ socket tcp protocol netty dotnetty network codec
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/DotNetty.Common/DotNetty.Common.csproj b/src/DotNetty.Common/DotNetty.Common.csproj
index 8358ec1a..40d5a9f5 100644
--- a/src/DotNetty.Common/DotNetty.Common.csproj
+++ b/src/DotNetty.Common/DotNetty.Common.csproj
@@ -3,13 +3,13 @@
netstandard2.0;net472;net5.0;net6.0
true
- DotNetty.Common
+
DotNetty: common routines
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
True
false
@@ -18,19 +18,30 @@
../../DotNetty.snk
true
true
- socket;tcp;protocol;netty;dotnetty;network
+
2.0.3
+
+
+ DotNetty common routines
+ Nethermind.DotNetty.Common
+ socket tcp protocol netty dotnetty network
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
\ No newline at end of file
diff --git a/src/DotNetty.Common/ThreadDeathWatcher.cs b/src/DotNetty.Common/ThreadDeathWatcher.cs
index f043db77..516a457a 100644
--- a/src/DotNetty.Common/ThreadDeathWatcher.cs
+++ b/src/DotNetty.Common/ThreadDeathWatcher.cs
@@ -59,10 +59,18 @@ static void Schedule(Thread thread, Action task, bool isWatch)
if (Interlocked.CompareExchange(ref started, 1, 0) == 0)
{
- var watcherThread = new Thread(s => ((IRunnable)s).Run());
- watcherThread.IsBackground = true;
- watcherThread.Start(watcher);
- ThreadDeathWatcher.watcherThread = watcherThread;
+ try
+ {
+ var watcherThread = new Thread(s => ((IRunnable)s).Run());
+ watcherThread.IsBackground = true;
+ watcherThread.Start(watcher);
+ ThreadDeathWatcher.watcherThread = watcherThread;
+ }
+ catch (Exception e)
+ {
+ bool stopped = !watcherThread.IsAlive && Interlocked.CompareExchange(ref started, 0, 1) == 1;
+ Logger.Warn($"Thread death watcher stopped: {stopped} and raised an exception while trying to start the thread:", e);
+ }
}
}
@@ -95,48 +103,57 @@ sealed class Watcher : IRunnable
public void Run()
{
- for (;;)
+ try
{
- this.FetchWatchees();
- this.NotifyWatchees();
+ for (;;)
+ {
+ this.FetchWatchees();
+ this.NotifyWatchees();
- // Try once again just in case notifyWatchees() triggered watch() or unwatch().
- this.FetchWatchees();
- this.NotifyWatchees();
+ // Try once again just in case notifyWatchees() triggered watch() or unwatch().
+ this.FetchWatchees();
+ this.NotifyWatchees();
- Thread.Sleep(1000);
+ Thread.Sleep(1000);
- if (this.watchees.Count == 0 && PendingEntries.IsEmpty)
- {
- // Mark the current worker thread as stopped.
- // The following CAS must always success and must be uncontended,
- // because only one watcher thread should be running at the same time.
- bool stopped = Interlocked.CompareExchange(ref started, 0, 1) == 1;
- Contract.Assert(stopped);
-
- // Check if there are pending entries added by watch() while we do CAS above.
- if (PendingEntries.IsEmpty)
+ if (this.watchees.Count == 0 && PendingEntries.IsEmpty)
{
- // A) watch() was not invoked and thus there's nothing to handle
- // -> safe to terminate because there's nothing left to do
- // B) a new watcher thread started and handled them all
- // -> safe to terminate the new watcher thread will take care the rest
- break;
+ // Mark the current worker thread as stopped.
+ // The following CAS must always success and must be uncontended,
+ // because only one watcher thread should be running at the same time.
+ bool stopped = Interlocked.CompareExchange(ref started, 0, 1) == 1;
+ Contract.Assert(stopped);
+
+ // Check if there are pending entries added by watch() while we do CAS above.
+ if (PendingEntries.IsEmpty)
+ {
+ // A) watch() was not invoked and thus there's nothing to handle
+ // -> safe to terminate because there's nothing left to do
+ // B) a new watcher thread started and handled them all
+ // -> safe to terminate the new watcher thread will take care the rest
+ break;
+ }
+
+ // There are pending entries again, added by watch()
+ if (Interlocked.CompareExchange(ref started, 1, 0) != 0)
+ {
+ // watch() started a new watcher thread and set 'started' to true.
+ // -> terminate this thread so that the new watcher reads from pendingEntries exclusively.
+ break;
+ }
+
+ // watch() added an entry, but this worker was faster to set 'started' to true.
+ // i.e. a new watcher thread was not started
+ // -> keep this thread alive to handle the newly added entries.
}
-
- // There are pending entries again, added by watch()
- if (Interlocked.CompareExchange(ref started, 1, 0) != 0)
- {
- // watch() started a new watcher thread and set 'started' to true.
- // -> terminate this thread so that the new watcher reads from pendingEntries exclusively.
- break;
- }
-
- // watch() added an entry, but this worker was faster to set 'started' to true.
- // i.e. a new watcher thread was not started
- // -> keep this thread alive to handle the newly added entries.
}
}
+ catch (Exception e)
+ {
+ // unexpected event, try mark thread as stopped
+ bool stopped = Interlocked.CompareExchange(ref started, 0, 1) == 1;
+ Logger.Error($"Thread death watcher was stopped: {stopped} and raised an fatal exception while processing:", e);
+ }
}
void FetchWatchees()
diff --git a/src/DotNetty.Common/ThreadLocalPool.cs b/src/DotNetty.Common/ThreadLocalPool.cs
index 327cb15e..a643101c 100644
--- a/src/DotNetty.Common/ThreadLocalPool.cs
+++ b/src/DotNetty.Common/ThreadLocalPool.cs
@@ -56,6 +56,7 @@ public override void Release(T value)
{
throw new InvalidOperationException("recycled already");
}
+
stack.Push(this);
}
}
@@ -107,6 +108,7 @@ internal Head(StrongBox availableSharedCapacity, StrongBox weakTableCo
{
Interlocked.Decrement(ref this.weakTableCounter.Value);
}
+
if (this.availableSharedCapacity == null)
{
return;
@@ -138,13 +140,14 @@ internal bool ReserveSpace(int space)
internal static bool ReserveSpace(StrongBox availableSharedCapacity, int space)
{
Debug.Assert(space >= 0);
- for (; ; )
+ for (;;)
{
int available = Volatile.Read(ref availableSharedCapacity.Value);
if (available < space)
{
return false;
}
+
if (Interlocked.CompareExchange(ref availableSharedCapacity.Value, available - space, available) == available)
{
return true;
@@ -155,7 +158,9 @@ internal static bool ReserveSpace(StrongBox availableSharedCapacity, int sp
// chain of data items
readonly Head head;
+
Link tail;
+
// pointer to another queue of delayed items for the same stack
internal WeakOrderQueue next;
internal readonly WeakReference owner;
@@ -220,10 +225,12 @@ internal void Add(DefaultHandle handle)
// Drop it.
return;
}
+
// We allocate a Link so reserve the space
this.tail = tail = tail.next = new Link();
writeIndex = tail.WriteIndex;
}
+
tail.elements[writeIndex] = handle;
handle.Stack = null;
// we lazy set to ensure that setting stack to null appears before we unnull it in the owning thread;
@@ -236,7 +243,7 @@ internal void Add(DefaultHandle handle)
// transfer as many items as we can from this queue to the stack, returning true if any were transferred
internal bool Transfer(Stack dst)
{
- Link head = this.head.link;
+ Link head = this.head?.link;
if (head == null)
{
return false;
@@ -248,6 +255,7 @@ internal bool Transfer(Stack dst)
{
return false;
}
+
this.head.link = head = head.next;
}
@@ -259,6 +267,11 @@ internal bool Transfer(Stack dst)
return false;
}
+ if (dst?.elements == null)
+ {
+ return false;
+ }
+
int dstSize = dst.size;
int expectedCapacity = dstSize + srcSize;
@@ -273,9 +286,19 @@ internal bool Transfer(Stack dst)
DefaultHandle[] srcElems = head.elements;
DefaultHandle[] dstElems = dst.elements;
int newDstSize = dstSize;
+ if (head.elements == null)
+ {
+ return false;
+ }
+
for (int i = srcStart; i < srcEnd; i++)
{
DefaultHandle element = srcElems[i];
+ if (element == null)
+ {
+ return false;
+ }
+
if (element.recycleId == 0)
{
element.recycleId = element.lastRecycledId;
@@ -284,6 +307,7 @@ internal bool Transfer(Stack dst)
{
throw new InvalidOperationException("recycled already");
}
+
srcElems[i] = null;
if (dst.DropHandle(element))
@@ -291,6 +315,7 @@ internal bool Transfer(Stack dst)
// Drop the object.
continue;
}
+
element.Stack = dst;
dstElems[newDstSize++] = element;
}
@@ -307,6 +332,7 @@ internal bool Transfer(Stack dst)
{
return false;
}
+
dst.size = newDstSize;
return true;
}
@@ -344,8 +370,13 @@ protected sealed class Stack
WeakOrderQueue cursorQueue, prevQueue;
volatile WeakOrderQueue headQueue;
- internal Stack(ThreadLocalPool parent, Thread thread, int maxCapacity, int maxSharedCapacityFactor,
- int ratioMask, int maxDelayedQueues)
+ internal Stack(
+ ThreadLocalPool parent,
+ Thread thread,
+ int maxCapacity,
+ int maxSharedCapacityFactor,
+ int ratioMask,
+ int maxDelayedQueues)
{
this.parent = parent;
this.threadRef = new WeakReference(thread);
@@ -410,6 +441,7 @@ void PushNow(DefaultHandle item)
{
throw new InvalidOperationException("released already");
}
+
item.recycleId = item.lastRecycledId = ownThreadId;
int size = this.size;
@@ -418,6 +450,7 @@ void PushNow(DefaultHandle item)
// Hit the maximum capacity - drop the possibly youngest object.
return;
}
+
if (size == this.elements.Length)
{
Array.Resize(ref this.elements, Math.Min(size << 1, this.maxCapacity));
@@ -443,12 +476,14 @@ void PushLater(DefaultHandle item, Thread thread)
delayedRecycled.Add(this, WeakOrderQueue.Dummy);
return;
}
+
// Check if we already reached the maximum number of delayed queues and if we can allocate at all.
if ((queue = WeakOrderQueue.Allocate(this, thread, countedWeakTable)) == null)
{
// drop object
return;
}
+
delayedRecycled.Add(this, queue);
}
else if (queue == WeakOrderQueue.Dummy)
@@ -469,8 +504,10 @@ internal bool DropHandle(DefaultHandle handle)
// Drop the object.
return true;
}
+
handle.hasBeenRecycled = true;
}
+
return false;
}
@@ -486,8 +523,10 @@ internal bool TryPop(out DefaultHandle item)
item = null;
return false;
}
+
size = this.size;
}
+
size--;
DefaultHandle ret = this.elements[size];
elements[size] = null;
@@ -495,6 +534,7 @@ internal bool TryPop(out DefaultHandle item)
{
throw new InvalidOperationException("recycled multiple times");
}
+
ret.recycleId = 0;
ret.lastRecycledId = 0;
this.size = size;
@@ -564,6 +604,7 @@ bool ScavengeSome()
}
}
}
+
if (prev != null)
{
prev.Next = next;
@@ -604,6 +645,7 @@ public class CountedWeakTable
internal readonly StrongBox Counter = new StrongBox();
}
+
protected override CountedWeakTable GetInitialValue() => new CountedWeakTable();
}
@@ -612,8 +654,9 @@ static ThreadLocalPool()
// In the future, we might have different maxCapacity for different object types.
// e.g. io.netty.recycler.maxCapacity.writeTask
// io.netty.recycler.maxCapacity.outboundBuffer
- int maxCapacityPerThread = SystemPropertyUtil.GetInt("io.netty.recycler.maxCapacityPerThread",
- SystemPropertyUtil.GetInt("io.netty.recycler.maxCapacity", DefaultInitialMaxCapacityPerThread));
+ int maxCapacityPerThread = SystemPropertyUtil.GetInt(
+ "io.netty.recycler.maxCapacityPerThread",
+ SystemPropertyUtil.GetInt("io.netty.recycler.maxCapacity", DefaultInitialMaxCapacityPerThread));
if (maxCapacityPerThread < 0)
{
maxCapacityPerThread = DefaultInitialMaxCapacityPerThread;
@@ -621,17 +664,21 @@ static ThreadLocalPool()
DefaultMaxCapacityPerThread = maxCapacityPerThread;
- DefaultMaxSharedCapacityFactor = Math.Max(2,
- SystemPropertyUtil.GetInt("io.netty.recycler.maxSharedCapacityFactor",
- 2));
+ DefaultMaxSharedCapacityFactor = Math.Max(
+ 2,
+ SystemPropertyUtil.GetInt(
+ "io.netty.recycler.maxSharedCapacityFactor",
+ 2));
- DefaultMaxDelayedQueuesPerThread = Math.Max(0,
- SystemPropertyUtil.GetInt("io.netty.recycler.maxDelayedQueuesPerThread",
- // We use the same value as default EventLoop number
- Environment.ProcessorCount * 2));
+ DefaultMaxDelayedQueuesPerThread = Math.Max(
+ 0,
+ SystemPropertyUtil.GetInt(
+ "io.netty.recycler.maxDelayedQueuesPerThread",
+ // We use the same value as default EventLoop number
+ Environment.ProcessorCount * 2));
LinkCapacity = MathUtil.SafeFindNextPositivePowerOfTwo(
- Math.Max(SystemPropertyUtil.GetInt("io.netty.recycler.linkCapacity", 16), 16));
+ Math.Max(SystemPropertyUtil.GetInt("io.netty.recycler.linkCapacity", 16), 16));
// By default we allow one push to a Recycler for each 8th try on handles that were never recycled before.
// This should help to slowly increase the capacity of the recycler while not be too sensitive to allocation
@@ -663,12 +710,15 @@ static ThreadLocalPool()
}
public ThreadLocalPool(int maxCapacityPerThread)
- : this (maxCapacityPerThread, DefaultMaxSharedCapacityFactor, DefaultRatio, DefaultMaxDelayedQueuesPerThread)
+ : this(maxCapacityPerThread, DefaultMaxSharedCapacityFactor, DefaultRatio, DefaultMaxDelayedQueuesPerThread)
{
}
- public ThreadLocalPool(int maxCapacityPerThread, int maxSharedCapacityFactor,
- int ratio, int maxDelayedQueuesPerThread)
+ public ThreadLocalPool(
+ int maxCapacityPerThread,
+ int maxSharedCapacityFactor,
+ int ratio,
+ int maxDelayedQueuesPerThread)
{
this.ratioMask = MathUtil.SafeFindNextPositivePowerOfTwo(ratio) - 1;
if (maxCapacityPerThread <= 0)
@@ -718,8 +768,13 @@ public ThreadLocalPool(Func valueFactory, int maxCapacityPerThread, i
{
}
- public ThreadLocalPool(Func valueFactory, int maxCapacityPerThread, int maxSharedCapacityFactor,
- int ratio, int maxDelayedQueuesPerThread, bool preCreate = false)
+ public ThreadLocalPool(
+ Func valueFactory,
+ int maxCapacityPerThread,
+ int maxSharedCapacityFactor,
+ int ratio,
+ int maxDelayedQueuesPerThread,
+ bool preCreate = false)
: base(maxCapacityPerThread, maxSharedCapacityFactor, ratio, maxDelayedQueuesPerThread)
{
Contract.Requires(valueFactory != null);
@@ -743,6 +798,7 @@ public T Take()
{
handle = CreateValue(stack);
}
+
return (T)handle.Value;
}
@@ -768,8 +824,13 @@ public ThreadLocalStack(ThreadLocalPool owner)
protected override Stack GetInitialValue()
{
- var stack = new Stack(this.owner, Thread.CurrentThread, this.owner.maxCapacityPerThread,
- this.owner.maxSharedCapacityFactor, this.owner.ratioMask, this.owner.maxDelayedQueuesPerThread);
+ var stack = new Stack(
+ this.owner,
+ Thread.CurrentThread,
+ this.owner.maxCapacityPerThread,
+ this.owner.maxSharedCapacityFactor,
+ this.owner.ratioMask,
+ this.owner.maxDelayedQueuesPerThread);
if (this.owner.preCreate)
{
for (int i = 0; i < this.owner.maxCapacityPerThread; i++)
@@ -777,6 +838,7 @@ protected override Stack GetInitialValue()
stack.Push(this.owner.CreateValue(stack));
}
}
+
return stack;
}
diff --git a/src/DotNetty.Handlers/DotNetty.Handlers.csproj b/src/DotNetty.Handlers/DotNetty.Handlers.csproj
index 1009c181..072dd2b6 100644
--- a/src/DotNetty.Handlers/DotNetty.Handlers.csproj
+++ b/src/DotNetty.Handlers/DotNetty.Handlers.csproj
@@ -3,13 +3,13 @@
netstandard2.0;net472;net5.0;net6.0
true
- DotNetty.Handlers
+
DotNetty: handlers
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
false
true
@@ -17,17 +17,31 @@
../../DotNetty.snk
true
true
- socket;tcp;protocol;netty;dotnetty;network;tls;ssl
+
2.0.3
+
+
+ Application handlers for DotNetty
+ Nethermind.DotNetty.Handlers
+ socket tcp protocol netty dotnetty network tls ssl
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
diff --git a/src/DotNetty.Transport.Libuv/DotNetty.Transport.Libuv.csproj b/src/DotNetty.Transport.Libuv/DotNetty.Transport.Libuv.csproj
index a03e4703..51c848c5 100644
--- a/src/DotNetty.Transport.Libuv/DotNetty.Transport.Libuv.csproj
+++ b/src/DotNetty.Transport.Libuv/DotNetty.Transport.Libuv.csproj
@@ -1,15 +1,16 @@
-
+
+
netstandard2.0;net472;net5.0;net6.0
true
- DotNetty.Transport.Libuv
+
DotNetty: libuv transport model Experimental
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
True
false
@@ -18,21 +19,31 @@
../../DotNetty.snk
true
true
- socket;tcp;udp;protocol;netty;dotnetty;network
+
2.0.3
+
+ Libuv transport model in DotNetty
+ Nethermind.DotNetty.Transport.Libuv
+ socket tcp udp protocol netty dotnetty network
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/DotNetty.Transport/DotNetty.Transport.csproj b/src/DotNetty.Transport/DotNetty.Transport.csproj
index 738edc94..4ba309ae 100644
--- a/src/DotNetty.Transport/DotNetty.Transport.csproj
+++ b/src/DotNetty.Transport/DotNetty.Transport.csproj
@@ -3,13 +3,13 @@
netstandard2.0;net472;net5.0;net6.0
true
- DotNetty.Transport
+
DotNetty: transport model
en-US
- 0.7.6
- Microsoft
+
$(NoWarn);CS1591
false
true
@@ -17,17 +17,31 @@
../../DotNetty.snk
true
true
- socket;tcp;udp;protocol;netty;dotnetty;network
+
2.0.3
+
+
+ Transport model in DotNetty
+ Nethermind.DotNetty.Transport
+ socket tcp udp protocol netty dotnetty network
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
diff --git a/src/shared/SharedAssemblyInfo.cs b/src/shared/SharedAssemblyInfo.cs
index dd834578..6dae2611 100644
--- a/src/shared/SharedAssemblyInfo.cs
+++ b/src/shared/SharedAssemblyInfo.cs
@@ -5,9 +5,9 @@
//------------------------------------------------------------------------------
using System.Reflection;
-[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyCompany("Nethermind, Microsoft")]
[assembly: AssemblyProduct("DotNetty")]
[assembly: AssemblyVersion("0.7.6")]
[assembly: AssemblyFileVersion("0.7.6")]
-[assembly: AssemblyCopyright("(c) Microsoft 2015 - 2021")]
+[assembly: AssemblyCopyright("Demerzel Solutions Limited, Microsoft Corporation")]