CultNetRudpSocketTransportServer.SendPacket let a SocketException escape, so the first failed SendTo ended PollResends and TryReceiveOnce for every peer. SendPacket now counts the failure in CultNetTransportStats.SendFailures and returns; only an encode failure throws. The refusal goodbye's own catch is redundant and goes. The tests inject the failure at SendPacket through an internal FailingSendPeers set, exposed to GameCult.Networking.Tests by InternalsVisibleTo. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
25 lines
1.1 KiB
XML
25 lines
1.1 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<Description>CultNet: Secure, high-performance messaging for games/servers</Description>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\GameCult.Logging\GameCult.Logging.csproj" />
|
|
<ProjectReference Include="..\GameCult.Caching\GameCult.Caching.csproj" />
|
|
<ProjectReference Include="..\GameCult.Caching.MessagePack\GameCult.Caching.MessagePack.csproj" />
|
|
<PackageReference Include="MessagePack" Version="3.1.7" />
|
|
<PackageReference Include="MessagePackAnalyzer" Version="3.1.7" PrivateAssets="all" />
|
|
<PackageReference Include="System.Text.Json" Version="9.0.10" />
|
|
<PackageReference Include="R3" Version="1.3.0" />
|
|
<PackageReference Include="LiteNetLib" Version="2.1.2" />
|
|
<PackageReference Include="Isopoh.Cryptography.Argon2" Version="2.0.0" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<InternalsVisibleTo Include="GameCult.Networking.Tests" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<EmbeddedResource Include="..\..\contracts\cultnet\*.schema.json" LogicalName="GameCult.Networking.Contracts.%(Filename)%(Extension)" />
|
|
</ItemGroup>
|
|
</Project>
|