Now we actually use the ListViewItem object we create on every iteration
instead of creating one and only passing the string property value. ~38%
speed increase each iteration on DEBUG and RELEASE configurations.
<h1>Reproduction of the issue</h1>
- Open up a keylogger form and make sure no entries are selected.
- Invoke the "ItemActivate" method by pressing enter.
- Since no items are selected, it cannot index the 0th item of lstLogs' SelectedItems, causing an exception that is uncaught and crashes the server.
Ignore renaming types that implement interfaces.
I hope this is the correct way to do this, I couldn't find a way to find
a specific interface to exclude from obfuscation
Changing the way was used to calculate send/received data by reverse
proxy
-This change will view the value with decimal point (2 num) to make the
values more accurate
-Changing the func name used from "GetFileSize" to "GetDataSize" ( Found
in xServer.Core.Helper )
Dispose of unmanaged resources used by the server's UnsafeStreamCodec
and JpgCompression (because it is pretty related to the
UnsafeStreamCodec). Made sure that the UnsafeStreamCodec was being
disposed of before being re-assigned.
Note: I did not reflect these changes to the client's UnsafeStreamCodec
because the implementation of the client's codec is a bit different in
the CommandHandler. This different implementation caused instability in
the client. In the server, I noticed decreased memory consumption and
decreased fluctuation in the memory used.
Setting objects to null would be optimized out. Clearing lists probably
would not be optimized out. There is no need to explicitly clear a list
of items or setting objects to null in C#. We must let the Garbage
Collector have its way.
Made the lock for the codec readonly. This makes it impossible for a
spot (excluding constructors) from touching the lock. Tampering with the
lock means that, if something acquires the lock and enters critical
code, the lock can be changed and the critical code's thread safety can
be violated.
Added a Load Balancer, this will try balancing all the proxy connections
over multiple clients (keep refreshing ipchicken.com to see the cool
effect)
Resolve the DNS Hostname of the Target server at the Remote Client to
reduce DNS Leaks