diff --git a/TorWebClient/.vs/TorWebClient/v16/.suo b/TorWebClient/.vs/TorWebClient/v16/.suo index 41ba38d..35e7e0b 100644 Binary files a/TorWebClient/.vs/TorWebClient/v16/.suo and b/TorWebClient/.vs/TorWebClient/v16/.suo differ diff --git a/TorWebClient/.vs/TorWebClient/v16/TestStore/0/000.testlog b/TorWebClient/.vs/TorWebClient/v16/TestStore/0/000.testlog index dc32fc8..0b5ebe3 100644 Binary files a/TorWebClient/.vs/TorWebClient/v16/TestStore/0/000.testlog and b/TorWebClient/.vs/TorWebClient/v16/TestStore/0/000.testlog differ diff --git a/TorWebClient/Program.cs b/TorWebClient/Program.cs index a51cbb4..a366a5a 100644 --- a/TorWebClient/Program.cs +++ b/TorWebClient/Program.cs @@ -442,31 +442,40 @@ namespace TorWebClient } static void Main(string[] args) { - try{Program.SetConsoleCtrlHandler(new HandlerRoutine(Program.ConsoleCtrlCheck),true);} - catch(Exception exception){Console.WriteLine(exception.ToString());} - if(!Utility.IsAdministrator()) + try { - Console.WriteLine("TorProxy needs to be under administrator account. Press any key to exit."); - Console.ReadKey(); - return; - } - MDTrace.LogLevel=LogLevel.DEBUG; - String strLogFile="torwebclient.log"; - Utility.DeleteFile(strLogFile); - Trace.Listeners.Add(new TextWriterTraceListener(strLogFile)); + try{Program.SetConsoleCtrlHandler(new HandlerRoutine(Program.ConsoleCtrlCheck),true);} + catch(Exception exception){Console.WriteLine(exception.ToString());} + if(!Utility.IsAdministrator()) + { + Console.WriteLine("TorProxy needs to be under administrator account. Press any key to exit."); + Console.ReadKey(); + return; + } + MDTrace.LogLevel=LogLevel.DEBUG; + String strLogFile="torwebclient.log"; + Utility.CopyFile(strLogFile,Utility.DateTimeToStringYYYYMMDDMMSSTT(DateTime.Now)+strLogFile); + Utility.DeleteFile(strLogFile); + Trace.Listeners.Add(new TextWriterTraceListener(strLogFile)); - ManualResetEvent[] resetEvents=new ManualResetEvent[1]; - for(int index=0;index headers; private string host; @@ -26,6 +28,10 @@ namespace Tor.Proxy private byte[] post; private Socket socket; + + private Connection() + { + } /// /// Initializes a new instance of the class. /// @@ -47,6 +53,65 @@ namespace Tor.Proxy this.GetHeaderData(); } + #region System.IDisposable + + public bool IsSocketClosed() + { + if(null==socket)return true; + return socket.IsConnected()?false:true; + } + + /// + /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + /// + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// + /// Releases unmanaged and - optionally - managed resources. + /// + /// true to release both managed and unmanaged resources; false to release only unmanaged resources. + private void Dispose(bool disposing) + { + if (disposed) + return; + + if (disposing) + { + if (socket != null) + { + try + { + socket.Shutdown(SocketShutdown.Both); + } + catch { } + + socket.Dispose(); + socket = null; + } + + disposed = true; + + if (disposedCallback != null) + disposedCallback(this); + } + } + + public Profiler Profiler + { + get{return profiler;} + } + + public bool IsDisposed() + { + return disposed; + } + + #endregion + #region Properties /// @@ -107,48 +172,7 @@ namespace Tor.Proxy #endregion - #region System.IDisposable - /// - /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Releases unmanaged and - optionally - managed resources. - /// - /// true to release both managed and unmanaged resources; false to release only unmanaged resources. - private void Dispose(bool disposing) - { - if (disposed) - return; - - if (disposing) - { - if (socket != null) - { - try - { - socket.Shutdown(SocketShutdown.Both); - } - catch { } - - socket.Dispose(); - socket = null; - } - - disposed = true; - - if (disposedCallback != null) - disposedCallback(this); - } - } - - #endregion /// /// Gets the header block which was dispatched with the original socket request. @@ -180,9 +204,6 @@ namespace Tor.Proxy { try { - -// MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Reading headers from LocalEndPoint:{0}/RemoteEndPoint:{1}",Socket.LocalEndPoint,Socket.RemoteEndPoint)); - StringBuilder builder = new StringBuilder(); using (StreamReader reader = new StreamReader(new NetworkStream(socket, false))) diff --git a/TorWebClient/TorClient/Proxy/Processors/ConnectionProcessor.cs b/TorWebClient/TorClient/Proxy/Processors/ConnectionProcessor.cs index e735d5c..1f38c2c 100644 --- a/TorWebClient/TorClient/Proxy/Processors/ConnectionProcessor.cs +++ b/TorWebClient/TorClient/Proxy/Processors/ConnectionProcessor.cs @@ -44,6 +44,12 @@ namespace Tor.Proxy #region System.IDisposable + + public Connection Connection + { + get{return connection;} + } + /// /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// @@ -72,6 +78,11 @@ namespace Tor.Proxy } } + public bool IsDisposed() + { + return disposed; + } + #endregion #region System.Net.Sockets.Socket @@ -86,15 +97,14 @@ namespace Tor.Proxy { if (connection != null && connection.Socket != null) { + connection.Profiler.Reset(); int received = connection.Socket.EndReceive(ar); -// MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Received {0} bytes from {1}",received,connection.Socket.RemoteEndPoint)); if (received > 0) { if (destinationSocket != null) { destinationSocket.BeginSend(connectionBuffer, 0, received, SocketFlags.None, OnDestinationSocketSent, destinationSocket); } - return; } } @@ -197,9 +207,6 @@ namespace Tor.Proxy if (destinationSocket != null) { int dispatched = destinationSocket.EndSend(ar); - -// MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Dispatched {0} bytes to {1}",dispatched,destinationSocket.RemoteEndPoint)); - if (dispatched > 0) { if (connection != null && connection.Socket != null) diff --git a/TorWebClient/TorClient/Proxy/Proxy.cs b/TorWebClient/TorClient/Proxy/Proxy.cs index f348e79..bd086fa 100644 --- a/TorWebClient/TorClient/Proxy/Proxy.cs +++ b/TorWebClient/TorClient/Proxy/Proxy.cs @@ -19,6 +19,10 @@ namespace Tor.Proxy [DebuggerStepThrough] public sealed class Proxy : MarshalByRefObject, IDisposable { + private Thread monitorThread=null; + private volatile bool threadRun=true; + private int refreshAfter=120000; + private readonly Client client; private readonly object synchronize; private List connections; @@ -35,6 +39,8 @@ namespace Tor.Proxy /// The client for which this object instance belongs. internal Proxy(Client client) { + monitorThread=new Thread(new ThreadStart(ThreadProc)); + monitorThread.Start(); this.client = client; this.connections = new List(); this.webProxy = null; @@ -126,13 +132,24 @@ namespace Tor.Proxy /// true to release both managed and unmanaged resources; false to release only unmanaged resources. private void Dispose(bool disposing) { - if (disposed) - return; + if (disposed)return; if (disposing) { lock (synchronize) { + + if(threadRun) + { + threadRun=false; + if(null!=monitorThread) + { + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:Dispose]Thread state is '{0}'. Joining main thread...",Utility.ThreadStateToString(monitorThread))); + monitorThread.Join(5000); + monitorThread=null; + } + } + suppressDispose = true; foreach (ConnectionProcessor processor in processors) @@ -154,53 +171,6 @@ namespace Tor.Proxy #region Tor.Net.ForwardSocket - /// - /// Called when the internal listener socket accepts a TCP connection. - /// - /// The asynchronous result object for this callback. - //private void OnSocketAccept(IAsyncResult ar) - //{ - // try - // { - // if (client != null) - // { - // MDTrace.WriteLine(LogLevel.DEBUG,String.Format("INFO Accepting incoming...")); - // Socket accepted = socket.EndAccept(ar); - // MDTrace.WriteLine(LogLevel.DEBUG,String.Format("INFO Accepted connection:{0}->{1}",accepted.LocalEndPoint,accepted.RemoteEndPoint)); - // Connection connection = new Connection(client, accepted, OnConnectionDisposed); - - // lock (synchronize) - // { - // connections.Add(connection); - // MDTrace.WriteLine(LogLevel.DEBUG,String.Format("There are {0} connections.",connections.Count)); - // } - - // ConnectionProcessor processor = new ConnectionProcessor(client, connection, OnConnectionProcessorDisposed); - - // lock (synchronize) - // { - // processors.Add(processor); - // } - - // processor.Start(); - // } - // } - // catch(Exception exception) - // { - // MDTrace.WriteLine(LogLevel.DEBUG,exception.ToString()); - // } - - // try - // { - // if (socket != null) - // socket.BeginAccept(OnSocketAccept, socket); - // } - // catch - // { - // } - //} - - private void OnSocketAccept(IAsyncResult ar) { try @@ -210,10 +180,10 @@ namespace Tor.Proxy { Task workerTask= Task.Factory.StartNew( () => { - MDTrace.WriteLine(LogLevel.DEBUG,String.Format("INFO Accepting incoming...")); + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:OnSocketAccept] Accepting incoming...")); accepted = socket.EndAccept(ar); if (socket != null)socket.BeginAccept(OnSocketAccept, socket); - MDTrace.WriteLine(LogLevel.DEBUG,String.Format("INFO Accepted connection:{0}->{1}",accepted.LocalEndPoint,accepted.RemoteEndPoint)); + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:OnSocketAccept] Accepted connection:{0}->{1}",accepted.LocalEndPoint,accepted.RemoteEndPoint)); }); workerTask.ContinueWith((continuation) => { @@ -222,25 +192,16 @@ namespace Tor.Proxy lock (synchronize) { connections.Add(connection); - MDTrace.WriteLine(LogLevel.DEBUG,String.Format("There are {0} connections.",connections.Count)); } ConnectionProcessor processor = new ConnectionProcessor(client, connection, OnConnectionProcessorDisposed); lock (synchronize) { - processors.Add(processor); + processors.Add(processor); } processor.Start(); - //try - //{ - // if (socket != null) - // socket.BeginAccept(OnSocketAccept, socket); - //} - //catch - //{ - //} }); } } @@ -269,8 +230,8 @@ namespace Tor.Proxy lock (synchronize) { - MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Removing 1 connection {0}:{1}. There are {2} active connections.",connection.Host,connection.Port,connections.Count-1)); connections.Remove(connection); + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:OnConnectionDisposed] Removed Connection for {0}:{1}. There are {2} connections.",connection.Host,connection.Port,connections.Count)); } } @@ -289,8 +250,8 @@ namespace Tor.Proxy lock (synchronize) { - MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Disposing connection processor. There are {0} connection processors remaining.",processors.Count)); processors.Remove(processor); + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:OnConnectionProcessorDisposed] Removed Connection Processor. There are {0} connection processors remaining.",processors.Count)); } } @@ -320,7 +281,7 @@ namespace Tor.Proxy } catch(Exception exception) { - MDTrace.WriteLine(LogLevel.DEBUG,String.Format("Proxy: Exception:{0}",exception.ToString())); + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:Start] Exception:{0}",exception.ToString())); if (socket != null) { socket.Dispose(); @@ -352,5 +313,177 @@ namespace Tor.Proxy webProxy = null; } } + private void ThreadProc() + { + int quantums=0; + int quantumInterval=1000; + while(threadRun) + { + Thread.Sleep(quantumInterval); + if(!threadRun) break; + quantums+=quantumInterval; + if(quantums>refreshAfter) + { + quantums=0; + lock(synchronize) + { + MonitorDisposedConnections(); + MonitorDisposedConnectionProcessors(); + MonitorIdleConnections(); + } + } + } + MDTrace.WriteLine(LogLevel.DEBUG,"[Proxy:ThreadProc]Thread ended."); + } + + private void MonitorDisposedConnections() + { + List connectionsToRemove=new List(); + lock(synchronize) + { + try + { + foreach(Connection connection in connections) + { + if(connection.IsDisposed()) + { + connectionsToRemove.Add(connection); + } + } + if(0!=connectionsToRemove.Count)MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:MonitorDisposedConnections] Removing {0} disposed connections.",connectionsToRemove.Count)); + foreach(Connection connectionToRemove in connectionsToRemove) + { + connections.Remove(connectionToRemove); + } + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:MonitorDisposedConnections] There are {0} remaining connections.",connections.Count)); + } + catch(Exception exception) + { + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:MonitorDisposedConnections] Exception:{0}",exception.ToString())); + } + } + } + + private void MonitorDisposedConnectionProcessors() + { + List connectionsProcessorsToRemove=new List(); + lock(synchronize) + { + try + { + foreach(ConnectionProcessor connectionProcessor in processors) + { + if(connectionProcessor.IsDisposed()) + { + connectionsProcessorsToRemove.Add(connectionProcessor); + } + } + if(0!=connectionsProcessorsToRemove.Count)MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:MonitorDisposedConnectionProcessors] Removing {0} disposed connection processors.",connectionsProcessorsToRemove.Count)); + foreach(ConnectionProcessor connectionProcessorToRemove in connectionsProcessorsToRemove) + { + processors.Remove(connectionProcessorToRemove); + } + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:MonitorDisposedConnectionProcessors] There are {0} remaining connection processors.",processors.Count)); + } + catch(Exception exception) + { + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:MonitorDisposedConnectionProcessors] Exception:{0}",exception.ToString())); + } + } + } + +// Idle connections where no activity for 5 minutes +// 1000*60*5 + private void MonitorIdleConnections() + { + List connectionsToRemove=new List(); + lock(synchronize) + { + try + { + connectionsToRemove = connections.Where(x => x.Profiler.ElapsedTime()>300000 && x.IsSocketClosed()).ToList(); + if(null!=connectionsToRemove) + { + if(0!=connectionsToRemove.Count)MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:MonitorIdleConnections] Disposing {0} idle connections",connectionsToRemove.Count)); + foreach(Connection connection in connectionsToRemove) + { + RemoveConnection(connection); + } + if(0==processors.Count && 0!=connections.Count) + { + RemoveOrphanedConnections(connections); + } + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:MonitorIdleConnections] There are {0} remaining connections.",connections.Count)); + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:MonitorIdleConnections] There are {0} remaining connection processors.",processors.Count)); + } + } + catch(Exception exception) + { + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:MonitorIdleConnections] Exception:{0}",exception.ToString())); + } + } + } + +// Remove connections that are considered to be inactive and the socket is considered to be closed. + private void RemoveOrphanedConnections(List connections) + { + lock(synchronize) + { + try + { + List connectionsToRemove=new List(); + foreach(Connection connection in connections) + { + if(connection.IsSocketClosed()) + { + connectionsToRemove.Add(connection); + } + else + { + UInt64 lingerTimeMinutes = connection.Profiler.ElapsedTime()/1000/60; + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:RemoveOrphanedConnections] Orphaned Connection {0}:{1}. Socket reports active data but there has been no buffer exchange for {2} minutes.",connection.Host,connection.Port,lingerTimeMinutes)); + if(lingerTimeMinutes>5) + { + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:RemoveOrphanedConnections] Disposing Orphaned Connection {0}:{1}.",connection.Host,connection.Port)); + connectionsToRemove.Add(connection); + } + } + } + foreach(Connection connection in connectionsToRemove) + { + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:RemoveOrphanedConnections] Removing orphaned connection {0}:{1} .",connection.Host,connection.Port)); + connection.Dispose(); + connections.Remove(connection); + } + } + catch(Exception exception) + { + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:RemoveOrphanedConnections] Exception:{0}",exception.ToString())); + } + } + } + +// Remove the connection and associated connection processor + private void RemoveConnection(Connection connection) + { + lock(synchronize) + { + try + { + ConnectionProcessor connectionProcessor = processors.Where(x => x.Connection == connection).FirstOrDefault(); + if(null!=connectionProcessor) + { + connectionProcessor.Dispose(); + processors.Remove(connectionProcessor); + } + connection.Dispose(); + connections.Remove(connection); + } + catch(Exception exception) + { + MDTrace.WriteLine(LogLevel.DEBUG,String.Format("[Proxy:RemoveConnection] Exception:{0}",exception.ToString())); + } + } + } } } diff --git a/TorWebClient/TorClient/Tor.csproj b/TorWebClient/TorClient/Tor.csproj index ee4d555..d80fd07 100644 --- a/TorWebClient/TorClient/Tor.csproj +++ b/TorWebClient/TorClient/Tor.csproj @@ -104,6 +104,7 @@ + @@ -123,6 +124,7 @@ + diff --git a/TorWebClient/TorClient/Utility/Utility.cs b/TorWebClient/TorClient/Utility/Utility.cs index dea941b..732eb1d 100644 --- a/TorWebClient/TorClient/Utility/Utility.cs +++ b/TorWebClient/TorClient/Utility/Utility.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; namespace Tor @@ -24,5 +25,34 @@ namespace Tor else sb.Append(String.Format(formatString.ToString(), number)); return sb.ToString(); } + + public static String ThreadStateToString(Thread thread) + { + switch(thread.ThreadState) + { + case ThreadState.Running : + return "Running"; + case ThreadState.StopRequested : + return "StopRequested"; + case ThreadState.SuspendRequested : + return "SuspendRequested"; + case ThreadState.Background : + return "Background"; + case ThreadState.Unstarted : + return "Unstarted"; + case ThreadState.Stopped : + return "Stopped"; + case ThreadState.WaitSleepJoin : + return "WaitSleepJoin"; + case ThreadState.Suspended : + return "Suspended"; + case ThreadState.AbortRequested : + return "AbortRequested"; + case ThreadState.Aborted : + return "Aborted"; + default : + return "Unknown"; + } + } } } diff --git a/TorWebClient/TorClient/bin/Debug/Axiom.Core.dll b/TorWebClient/TorClient/bin/Debug/Axiom.Core.dll index b84705c..0f67dc8 100644 Binary files a/TorWebClient/TorClient/bin/Debug/Axiom.Core.dll and b/TorWebClient/TorClient/bin/Debug/Axiom.Core.dll differ diff --git a/TorWebClient/TorClient/bin/Debug/Axiom.Core.pdb b/TorWebClient/TorClient/bin/Debug/Axiom.Core.pdb index 314cde4..633bdec 100644 Binary files a/TorWebClient/TorClient/bin/Debug/Axiom.Core.pdb and b/TorWebClient/TorClient/bin/Debug/Axiom.Core.pdb differ diff --git a/TorWebClient/TorClient/bin/Debug/MarketDataLib.dll b/TorWebClient/TorClient/bin/Debug/MarketDataLib.dll index 3beaa02..484cfaa 100644 Binary files a/TorWebClient/TorClient/bin/Debug/MarketDataLib.dll and b/TorWebClient/TorClient/bin/Debug/MarketDataLib.dll differ diff --git a/TorWebClient/TorClient/bin/Debug/MarketDataLib.pdb b/TorWebClient/TorClient/bin/Debug/MarketDataLib.pdb index 2f0b6e7..c7ad4e6 100644 Binary files a/TorWebClient/TorClient/bin/Debug/MarketDataLib.pdb and b/TorWebClient/TorClient/bin/Debug/MarketDataLib.pdb differ diff --git a/TorWebClient/TorClient/bin/Debug/Tor.dll b/TorWebClient/TorClient/bin/Debug/Tor.dll index aa9f5f9..73fdeb9 100644 Binary files a/TorWebClient/TorClient/bin/Debug/Tor.dll and b/TorWebClient/TorClient/bin/Debug/Tor.dll differ diff --git a/TorWebClient/TorClient/bin/Debug/Tor.pdb b/TorWebClient/TorClient/bin/Debug/Tor.pdb index 34cabf0..b3e974e 100644 Binary files a/TorWebClient/TorClient/bin/Debug/Tor.pdb and b/TorWebClient/TorClient/bin/Debug/Tor.pdb differ diff --git a/TorWebClient/TorClient/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/TorWebClient/TorClient/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 16687b9..39befa0 100644 Binary files a/TorWebClient/TorClient/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/TorWebClient/TorClient/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/TorWebClient/TorClient/obj/Debug/Tor.csproj.FileListAbsolute.txt b/TorWebClient/TorClient/obj/Debug/Tor.csproj.FileListAbsolute.txt index 58a30f5..1081f8c 100644 --- a/TorWebClient/TorClient/obj/Debug/Tor.csproj.FileListAbsolute.txt +++ b/TorWebClient/TorClient/obj/Debug/Tor.csproj.FileListAbsolute.txt @@ -20,6 +20,7 @@ C:\boneyard\Tor.Mod\TorWebClient\TorClient\obj\Debug\Tor.pdb C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\Tor.dll C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\Tor.pdb C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\MarketDataLib.dll +C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\MySql.Data.dll C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\HtmlAgilityPack.dll C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\Newtonsoft.Json.dll C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\Axiom.Core.dll @@ -30,9 +31,12 @@ C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\MarketDataLib.pdb C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\Newtonsoft.Json.pdb C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\Newtonsoft.Json.xml C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\Axiom.Core.pdb +C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\Axiom.Core.dll.config C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\System.Threading.Tasks.Extensions.xml C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\log4net.xml C:\boneyard\Tor\TorWebClient\TorClient\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml -C:\boneyard\Tor\TorWebClient\TorClient\obj\Debug\Tor.csprojResolveAssemblyReference.cache +C:\boneyard\Tor\TorWebClient\TorClient\obj\Debug\Tor.csproj.AssemblyReference.cache +C:\boneyard\Tor\TorWebClient\TorClient\obj\Debug\Tor.csproj.CoreCompileInputs.cache +C:\boneyard\Tor\TorWebClient\TorClient\obj\Debug\Tor.csproj.CopyComplete C:\boneyard\Tor\TorWebClient\TorClient\obj\Debug\Tor.dll C:\boneyard\Tor\TorWebClient\TorClient\obj\Debug\Tor.pdb diff --git a/TorWebClient/TorClient/obj/Debug/Tor.csprojResolveAssemblyReference.cache b/TorWebClient/TorClient/obj/Debug/Tor.csprojResolveAssemblyReference.cache deleted file mode 100644 index c6fbc89..0000000 Binary files a/TorWebClient/TorClient/obj/Debug/Tor.csprojResolveAssemblyReference.cache and /dev/null differ diff --git a/TorWebClient/TorClient/obj/Debug/Tor.dll b/TorWebClient/TorClient/obj/Debug/Tor.dll index aa9f5f9..73fdeb9 100644 Binary files a/TorWebClient/TorClient/obj/Debug/Tor.dll and b/TorWebClient/TorClient/obj/Debug/Tor.dll differ diff --git a/TorWebClient/TorClient/obj/Debug/Tor.pdb b/TorWebClient/TorClient/obj/Debug/Tor.pdb index 34cabf0..b3e974e 100644 Binary files a/TorWebClient/TorClient/obj/Debug/Tor.pdb and b/TorWebClient/TorClient/obj/Debug/Tor.pdb differ diff --git a/TorWebClient/TorProxy.csproj b/TorWebClient/TorProxy.csproj index d32811c..639fa99 100644 --- a/TorWebClient/TorProxy.csproj +++ b/TorWebClient/TorProxy.csproj @@ -66,6 +66,7 @@ Designer + Always diff --git a/TorWebClient/TorWebClient.v12.suo b/TorWebClient/TorWebClient.v12.suo index 164f28f..36d62dd 100644 Binary files a/TorWebClient/TorWebClient.v12.suo and b/TorWebClient/TorWebClient.v12.suo differ diff --git a/TorWebClient/bin/Debug/Axiom.Core.dll b/TorWebClient/bin/Debug/Axiom.Core.dll index b84705c..0f67dc8 100644 Binary files a/TorWebClient/bin/Debug/Axiom.Core.dll and b/TorWebClient/bin/Debug/Axiom.Core.dll differ diff --git a/TorWebClient/bin/Debug/Axiom.Core.pdb b/TorWebClient/bin/Debug/Axiom.Core.pdb index 314cde4..633bdec 100644 Binary files a/TorWebClient/bin/Debug/Axiom.Core.pdb and b/TorWebClient/bin/Debug/Axiom.Core.pdb differ diff --git a/TorWebClient/bin/Debug/MarketDataLib.dll b/TorWebClient/bin/Debug/MarketDataLib.dll index 3beaa02..484cfaa 100644 Binary files a/TorWebClient/bin/Debug/MarketDataLib.dll and b/TorWebClient/bin/Debug/MarketDataLib.dll differ diff --git a/TorWebClient/bin/Debug/MarketDataLib.pdb b/TorWebClient/bin/Debug/MarketDataLib.pdb index 2f0b6e7..c7ad4e6 100644 Binary files a/TorWebClient/bin/Debug/MarketDataLib.pdb and b/TorWebClient/bin/Debug/MarketDataLib.pdb differ diff --git a/TorWebClient/bin/Debug/Tor.dll b/TorWebClient/bin/Debug/Tor.dll index aa9f5f9..73fdeb9 100644 Binary files a/TorWebClient/bin/Debug/Tor.dll and b/TorWebClient/bin/Debug/Tor.dll differ diff --git a/TorWebClient/bin/Debug/Tor.pdb b/TorWebClient/bin/Debug/Tor.pdb index 34cabf0..b3e974e 100644 Binary files a/TorWebClient/bin/Debug/Tor.pdb and b/TorWebClient/bin/Debug/Tor.pdb differ diff --git a/TorWebClient/bin/Debug/TorProxy.exe b/TorWebClient/bin/Debug/TorProxy.exe index 7b98d3e..74456c3 100644 Binary files a/TorWebClient/bin/Debug/TorProxy.exe and b/TorWebClient/bin/Debug/TorProxy.exe differ diff --git a/TorWebClient/bin/Debug/TorProxy.pdb b/TorWebClient/bin/Debug/TorProxy.pdb index 9c99dde..420afb8 100644 Binary files a/TorWebClient/bin/Debug/TorProxy.pdb and b/TorWebClient/bin/Debug/TorProxy.pdb differ diff --git a/TorWebClient/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/TorWebClient/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 19b99ba..07657ab 100644 Binary files a/TorWebClient/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/TorWebClient/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/TorWebClient/obj/Debug/TorProxy.csproj.FileListAbsolute.txt b/TorWebClient/obj/Debug/TorProxy.csproj.FileListAbsolute.txt index 641af76..8c561d8 100644 --- a/TorWebClient/obj/Debug/TorProxy.csproj.FileListAbsolute.txt +++ b/TorWebClient/obj/Debug/TorProxy.csproj.FileListAbsolute.txt @@ -36,6 +36,7 @@ C:\boneyard\Tor.Mod\TorWebClient\obj\Debug\TorProxy.pdb C:\boneyard\Tor.Backup\TorWebClient\bin\Debug\TorProxy.exe.config C:\boneyard\Tor.Backup\TorWebClient\obj\Debug\TorProxy.exe C:\boneyard\Tor.Backup\TorWebClient\obj\Debug\TorProxy.pdb +C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\geoip6 C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\libcrypto-1_1-x64.dll C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\libevent-2-1-7.dll C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\libevent_core-2-1-7.dll @@ -46,14 +47,15 @@ C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\libssp-0.dll C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\libwinpthread-1.dll C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\tor.exe C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\zlib1.dll +C:\boneyard\Tor\TorWebClient\bin\Debug\App.config C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\geoip -C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\geoip6 C:\boneyard\Tor\TorWebClient\bin\Debug\Tor\Tor\torrc-defaults C:\boneyard\Tor\TorWebClient\bin\Debug\TorProxy.exe.config C:\boneyard\Tor\TorWebClient\bin\Debug\TorProxy.exe C:\boneyard\Tor\TorWebClient\bin\Debug\TorProxy.pdb C:\boneyard\Tor\TorWebClient\bin\Debug\MarketDataLib.dll C:\boneyard\Tor\TorWebClient\bin\Debug\Tor.dll +C:\boneyard\Tor\TorWebClient\bin\Debug\MySql.Data.dll C:\boneyard\Tor\TorWebClient\bin\Debug\HtmlAgilityPack.dll C:\boneyard\Tor\TorWebClient\bin\Debug\Newtonsoft.Json.dll C:\boneyard\Tor\TorWebClient\bin\Debug\Axiom.Core.dll @@ -65,9 +67,12 @@ C:\boneyard\Tor\TorWebClient\bin\Debug\Tor.pdb C:\boneyard\Tor\TorWebClient\bin\Debug\Newtonsoft.Json.pdb C:\boneyard\Tor\TorWebClient\bin\Debug\Newtonsoft.Json.xml C:\boneyard\Tor\TorWebClient\bin\Debug\Axiom.Core.pdb +C:\boneyard\Tor\TorWebClient\bin\Debug\Axiom.Core.dll.config C:\boneyard\Tor\TorWebClient\bin\Debug\System.Threading.Tasks.Extensions.xml C:\boneyard\Tor\TorWebClient\bin\Debug\log4net.xml C:\boneyard\Tor\TorWebClient\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml -C:\boneyard\Tor\TorWebClient\obj\Debug\TorProxy.csprojResolveAssemblyReference.cache +C:\boneyard\Tor\TorWebClient\obj\Debug\TorProxy.csproj.AssemblyReference.cache +C:\boneyard\Tor\TorWebClient\obj\Debug\TorProxy.csproj.CoreCompileInputs.cache +C:\boneyard\Tor\TorWebClient\obj\Debug\TorProxy.csproj.CopyComplete C:\boneyard\Tor\TorWebClient\obj\Debug\TorProxy.exe C:\boneyard\Tor\TorWebClient\obj\Debug\TorProxy.pdb diff --git a/TorWebClient/obj/Debug/TorProxy.csprojResolveAssemblyReference.cache b/TorWebClient/obj/Debug/TorProxy.csprojResolveAssemblyReference.cache deleted file mode 100644 index b44518b..0000000 Binary files a/TorWebClient/obj/Debug/TorProxy.csprojResolveAssemblyReference.cache and /dev/null differ diff --git a/TorWebClient/obj/Debug/TorProxy.exe b/TorWebClient/obj/Debug/TorProxy.exe index 7b98d3e..74456c3 100644 Binary files a/TorWebClient/obj/Debug/TorProxy.exe and b/TorWebClient/obj/Debug/TorProxy.exe differ diff --git a/TorWebClient/obj/Debug/TorProxy.pdb b/TorWebClient/obj/Debug/TorProxy.pdb index 9c99dde..420afb8 100644 Binary files a/TorWebClient/obj/Debug/TorProxy.pdb and b/TorWebClient/obj/Debug/TorProxy.pdb differ