From bcf3f8e32d1a339443e54d70dd48a8cf5bcc332c Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Mon, 24 Feb 2025 16:06:52 -0800 Subject: [PATCH] basic result checking. dont parse further than non-ok --- SteamTransport/Client.cs | 7 ++++++- SteamTransport/Server.cs | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/SteamTransport/Client.cs b/SteamTransport/Client.cs index ede8e194..507fc650 100644 --- a/SteamTransport/Client.cs +++ b/SteamTransport/Client.cs @@ -75,7 +75,10 @@ public class Client fixed (byte* pData = segment.Array) { var result = SteamNetworkingSockets.SendMessageToConnection(_conn, (IntPtr)(pData + segment.Offset), (uint)segment.Count, Util.MirrorChannel2SendFlag(channelId), out _); - _transport.OnClientDataSent?.Invoke(segment, channelId); + if (result == EResult.k_EResultOK) + _transport.OnClientDataSent?.Invoke(segment, channelId); + else + _transport.OnClientError?.Invoke(TransportError.InvalidSend, $"send returned {result}"); } } } @@ -100,6 +103,8 @@ public class Client public void Flush() { var result = SteamNetworkingSockets.FlushMessagesOnConnection(_conn); + if (result != EResult.k_EResultOK) + _transport.OnClientError?.Invoke(TransportError.Unexpected, $"flush returned {result}"); } public void Close() diff --git a/SteamTransport/Server.cs b/SteamTransport/Server.cs index 3c756f10..1508d08e 100644 --- a/SteamTransport/Server.cs +++ b/SteamTransport/Server.cs @@ -69,7 +69,10 @@ public class Server fixed (byte* pData = segment.Array) { var result = SteamNetworkingSockets.SendMessageToConnection(conn, (IntPtr)(pData + segment.Offset), (uint)segment.Count, Util.MirrorChannel2SendFlag(channelId), out _); - _transport.OnServerDataSent?.Invoke(connectionId, segment, channelId); + if (result == EResult.k_EResultOK) + _transport.OnServerDataSent?.Invoke(connectionId, segment, channelId); + else + _transport.OnServerError?.Invoke(connectionId, TransportError.InvalidSend, $"send returned {result}"); } } } @@ -100,6 +103,8 @@ public class Server foreach (var conn in _conns) { var result = SteamNetworkingSockets.FlushMessagesOnConnection(conn); + if (result != EResult.k_EResultOK) + _transport.OnServerError?.Invoke((int)conn.m_HSteamNetConnection, TransportError.Unexpected, $"flush returned {result}"); } }