public static unsafe void Log(PacketPath path, byte *buff, int len, bool blocked) { if (!m_Logging) { return; } try { using (StreamWriter sw = new StreamWriter(PacketsLogFile, true)) { sw.AutoFlush = true; string pathStr; switch (path) { case PacketPath.ClientToServer: pathStr = "Client -> Server"; break; case PacketPath.RazorToServer: pathStr = "Razor -> Server"; break; case PacketPath.ServerToClient: pathStr = "Server -> Client"; break; case PacketPath.RazorToClient: pathStr = "Razor -> Client"; break; case PacketPath.PacketVideo: pathStr = "PacketVideo -> Client"; break; default: pathStr = "Unknown -> Unknown"; break; } sw.WriteLine("{0}: {1}{2}0x{3:X2} (Length: {4})", Engine.MistedDateTime.ToString("HH:mm:ss.ffff"), pathStr, blocked ? " [BLOCKED] " : " ", buff[0], len); //if ( buff[0] != 0x80 && buff[0] != 0x91 ) Utility.FormatBuffer(sw, buff, len); //else // sw.WriteLine( "[Censored for Security Reasons]" ); sw.WriteLine(); sw.WriteLine(); } } catch { } }
public static unsafe void Log(PacketPath path, byte *buff, int len, bool blocked = false) { if (!m_Logging) { return; } try { using (StreamWriter sw = new StreamWriter(PacketsLogFile, true)) { sw.AutoFlush = true; string pathStr; switch (path) { case PacketPath.ClientToServer: pathStr = "Client -> Server"; break; case PacketPath.RazorToServer: pathStr = "Razor -> Server"; break; case PacketPath.ServerToClient: pathStr = "Server -> Client"; break; case PacketPath.RazorToClient: pathStr = "Razor -> Client"; break; default: pathStr = "Unknown -> Unknown"; break; } sw.WriteLine("{0:HH:mm:ss.ffff}: {1}{2}0x{3:X2} (Length: {4})", Engine.MistedDateTime, pathStr, blocked ? " [BLOCKED] " : " ", buff[0], len); Utility.FormatBuffer(sw, buff, len); sw.WriteLine(); sw.WriteLine(); } } catch { // ignored } }