From 1a49d68dc4a2bc48d94837a9dbd5a40022899bf3 Mon Sep 17 00:00:00 2001 From: high Date: Sun, 24 Jul 2011 01:14:50 -0400 Subject: [PATCH] Now logs null sockets on unhandled exception in serverloop/listenforclients. Hopefully to track down the null error in terraria. --- TShockAPI/Properties/AssemblyInfo.cs | 4 ++-- TShockAPI/TShock.cs | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/TShockAPI/Properties/AssemblyInfo.cs b/TShockAPI/Properties/AssemblyInfo.cs index 2471e719..43f2e26a 100644 --- a/TShockAPI/Properties/AssemblyInfo.cs +++ b/TShockAPI/Properties/AssemblyInfo.cs @@ -36,5 +36,5 @@ using System.Runtime.InteropServices; // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("3.1.3.0723")] -[assembly: AssemblyFileVersion("3.1.3.0723")] +[assembly: AssemblyVersion("3.1.4.0724")] +[assembly: AssemblyFileVersion("3.1.4.0724")] diff --git a/TShockAPI/TShock.cs b/TShockAPI/TShock.cs index 1d06be19..6c7b555a 100755 --- a/TShockAPI/TShock.cs +++ b/TShockAPI/TShock.cs @@ -222,6 +222,25 @@ namespace TShockAPI private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { Log.Error(e.ExceptionObject.ToString()); + + if (e.ExceptionObject.ToString().Contains("Terraria.Netplay.ListenForClients") || + e.ExceptionObject.ToString().Contains("Terraria.Netplay.ServerLoop")) + { + var sb = new List(); + for (int i = 0; i < Netplay.serverSock.Length; i++) + { + if (Netplay.serverSock[i] == null) + { + sb.Add("Sock[" + i + "]"); + } + else if (Netplay.serverSock[i].tcpClient == null) + { + sb.Add("Tcp[" + i + "]"); + } + } + Log.Error(string.Join(", ", sb)); + } + if (e.IsTerminating) { if (Main.worldPathName != null)