diff --git a/server/App.config b/server/App.config
index eb0f533..8a3524e 100644
--- a/server/App.config
+++ b/server/App.config
@@ -15,16 +15,24 @@
-
+
+
+
+
+
+
+
+
+
-
+
+
-
+
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/server/Configuration.cs b/server/Configuration.cs
index b3f5958..d6c269b 100644
--- a/server/Configuration.cs
+++ b/server/Configuration.cs
@@ -7,7 +7,7 @@ using Glove.INI;
namespace SockScape {
public static class Configuration {
- private static SettingsFile Settings;
+ private static readonly SettingsFile Settings;
static Configuration() {
Settings = new SettingsFile(
@@ -16,7 +16,7 @@ namespace SockScape {
new SectionRules {
Name = "General",
Required = true,
- RequiredFields = new string[] {
+ RequiredFields = new[] {
"Run Master",
"Master Port",
"Master Addr",
@@ -27,7 +27,7 @@ namespace SockScape {
new SectionRules {
Name = "Database",
Required = true,
- RequiredFields = new string[] {
+ RequiredFields = new[] {
"Server",
"Username",
"Password",
@@ -39,7 +39,7 @@ namespace SockScape {
Name = "Server",
AllowMultiple = true,
Required = true,
- RequiredFields = new string[] {
+ RequiredFields = new[] {
"Id",
"Port"
}
@@ -52,22 +52,13 @@ namespace SockScape {
return Settings[section];
}
- public static Instance General {
- get {
- return Settings["General"][0];
- }
- }
+ public static Instance General
+ => Settings["General"][0];
- public static Instance Database {
- get {
- return Settings["Database"][0];
- }
- }
+ public static Instance Database
+ => Settings["Database"][0];
- public static Section Servers {
- get {
- return Settings["Server"];
- }
- }
+ public static Section Servers
+ => Settings["Server"];
}
}
diff --git a/server/DAL/Origin.cs b/server/DAL/Origin.cs
index 1d639d1..6793982 100644
--- a/server/DAL/Origin.cs
+++ b/server/DAL/Origin.cs
@@ -15,13 +15,11 @@ namespace SockScape.DAL {
public virtual User User { get; set; }
protected string RawIp { get; set; }
+
+ [NotMapped]
public IPAddress Ip {
- get {
- return IPAddress.Parse(RawIp);
- }
- set {
- RawIp = value.ToString();
- }
+ get => IPAddress.Parse(RawIp);
+ set => RawIp = value.ToString();
}
}
}
diff --git a/server/DAL/ScapeDb.cs b/server/DAL/ScapeDb.cs
index 81005f0..2370672 100644
--- a/server/DAL/ScapeDb.cs
+++ b/server/DAL/ScapeDb.cs
@@ -13,6 +13,7 @@ namespace SockScape.DAL {
public ScapeDb()
: base("server="+ Config.Database["Server"]
+ +";port="+ (Config.Database["Port"] ?? "3306")
+";user id="+ Config.Database["Username"]
+";password="+ Config.Database["Password"]
+";persistsecurityinfo=True;"
@@ -25,9 +26,8 @@ namespace SockScape.DAL {
public DbSet Origins { get; set; }
public DbSet Sessions { get; set; }
-
- protected override void OnModelCreating(DbModelBuilder modelBuilder) {
- base.OnModelCreating(modelBuilder);
+ protected override void OnModelCreating(DbModelBuilder builder) {
+ base.OnModelCreating(builder);
}
}
}
diff --git a/server/DAL/Session.cs b/server/DAL/Session.cs
index 1cfca6c..09abde8 100644
--- a/server/DAL/Session.cs
+++ b/server/DAL/Session.cs
@@ -14,14 +14,14 @@ namespace SockScape.DAL {
public int UserId { get; set; }
public virtual User User { get; set; }
+
+
protected string RawIp { get; set; }
+
+ [NotMapped]
public IPAddress Ip {
- get {
- return IPAddress.Parse(RawIp);
- }
- set {
- RawIp = value.ToString();
- }
+ get => IPAddress.Parse(RawIp);
+ set => RawIp = value.ToString();
}
public int ServerId { get; set; }
diff --git a/server/DAL/User.cs b/server/DAL/User.cs
index 6ce1188..6b438cb 100644
--- a/server/DAL/User.cs
+++ b/server/DAL/User.cs
@@ -10,9 +10,11 @@ namespace SockScape.DAL {
public long Id { get; set; }
[Required]
+ [MaxLength(16)]
public string Username { get; set; }
[Required]
+ [MaxLength(256)]
public string Password { get; set; }
[Required]
diff --git a/server/Encryption/Cipher.cs b/server/Encryption/Cipher.cs
index 6fdd81a..d94d199 100644
--- a/server/Encryption/Cipher.cs
+++ b/server/Encryption/Cipher.cs
@@ -8,8 +8,8 @@ using Glove;
namespace SockScape.Encryption {
class Cipher {
- private byte[] Key = new byte[512 / 8];
- private byte[] State = new byte[256];
+ private readonly byte[] Key = new byte[512 / 8];
+ private readonly byte[] State = new byte[256];
public Cipher(BigInteger key) {
int i = 0, j = 0;
diff --git a/server/Encryption/KeyExchange.cs b/server/Encryption/KeyExchange.cs
index 605a3ce..cf69e8b 100644
--- a/server/Encryption/KeyExchange.cs
+++ b/server/Encryption/KeyExchange.cs
@@ -9,13 +9,12 @@ using System.Globalization;
namespace SockScape.Encryption {
class Key {
- private readonly static BigInteger Secret = RNG.NextPrime(512 / 8);
- public BigInteger Generator { get; private set; } = 2;
- public BigInteger Modulus { get; private set; }
+ private static readonly BigInteger Secret = RNG.NextPrime(512 / 8);
+ public BigInteger Generator { get; } = 2;
+ public BigInteger Modulus { get; }
public BigInteger PrivateKey { get; private set; } = BigInteger.Zero;
- public bool Succeeded {
- get => !PrivateKey.IsZero;
- }
+ public bool Succeeded
+ => !PrivateKey.IsZero;
public Key() {
Modulus = RNG.NextPrime(512 / 8);
@@ -34,7 +33,7 @@ namespace SockScape.Encryption {
if(packet.Id != 1 || packet.RegionCount != 3)
return null;
- bool check = BigInteger.TryParse(packet[0], NumberStyles.HexNumber,
+ var check = BigInteger.TryParse(packet[0], NumberStyles.HexNumber,
NumberFormatInfo.InvariantInfo, out BigInteger generator);
check &= BigInteger.TryParse(packet[1], NumberStyles.HexNumber,
NumberFormatInfo.InvariantInfo, out BigInteger modulus);
@@ -59,7 +58,7 @@ namespace SockScape.Encryption {
if(!BigInteger.TryParse(packet[0], NumberStyles.HexNumber, NumberFormatInfo.InvariantInfo, out BigInteger clientKey))
return -1;
- return (PrivateKey = BigInteger.ModPow(clientKey, Secret, Modulus));
+ return PrivateKey = BigInteger.ModPow(clientKey, Secret, Modulus);
}
}
}
diff --git a/server/Libraries/Glove/Glove.csproj b/server/Libraries/Glove/Glove.csproj
index 2cea401..7de4a48 100644
--- a/server/Libraries/Glove/Glove.csproj
+++ b/server/Libraries/Glove/Glove.csproj
@@ -7,8 +7,8 @@
{054F172E-9683-40BC-8BDD-7671340EC193}
Library
Properties
- Square
- Square
+ Glove
+ Glove
v4.5.2
512
diff --git a/server/Libraries/Glove/INI/Instance.cs b/server/Libraries/Glove/INI/Instance.cs
index 4d343c8..379c29c 100644
--- a/server/Libraries/Glove/INI/Instance.cs
+++ b/server/Libraries/Glove/INI/Instance.cs
@@ -7,14 +7,14 @@ using System.Threading.Tasks;
namespace Glove.INI {
public class Instance : IEnumerable> {
- private Dictionary Data
+ private readonly Dictionary Data
= new Dictionary(StringComparer.OrdinalIgnoreCase);
internal Instance() { }
internal void Push(string line) {
if(line.Contains('=')) {
- var parts = line.Split(new char[] { '=' }, 2);
+ var parts = line.Split(new[] { '=' }, 2);
Data.Add(parts[0].Trim(), new Value(parts[1].Trim()));
} else
throw new FormatException("Line is not a key-value pair delimited by an equals sign.");
diff --git a/server/Libraries/Glove/INI/Section.cs b/server/Libraries/Glove/INI/Section.cs
index c25ef9e..e24e864 100644
--- a/server/Libraries/Glove/INI/Section.cs
+++ b/server/Libraries/Glove/INI/Section.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace Glove.INI {
public class Section : IEnumerable {
- private List Instances = new List();
+ private readonly List Instances = new List();
internal Section() { }
@@ -16,23 +16,13 @@ namespace Glove.INI {
return Instances[Instances.Count - 1];
}
- public string this[string key] {
- get {
- return Instances[0][key];
- }
- }
+ public string this[string key]
+ => Instances[0][key];
- public Instance this[int i] {
- get {
- return Instances[i];
- }
- }
+ public Instance this[int i]
+ => Instances[i];
- public int Count {
- get {
- return Instances.Count;
- }
- }
+ public int Count => Instances.Count;
IEnumerator IEnumerable.GetEnumerator() {
return Instances.GetEnumerator();
diff --git a/server/Libraries/Glove/INI/SettingsFile.cs b/server/Libraries/Glove/INI/SettingsFile.cs
index 1134d05..2f8e990 100644
--- a/server/Libraries/Glove/INI/SettingsFile.cs
+++ b/server/Libraries/Glove/INI/SettingsFile.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace Glove.INI {
public class SettingsFile {
- private Dictionary Sections
+ private readonly Dictionary Sections
= new Dictionary(StringComparer.OrdinalIgnoreCase);
public SettingsFile(string path) {
diff --git a/server/Libraries/Glove/INI/Value.cs b/server/Libraries/Glove/INI/Value.cs
index 2ab74a7..d820785 100644
--- a/server/Libraries/Glove/INI/Value.cs
+++ b/server/Libraries/Glove/INI/Value.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace Glove.INI {
public class Value {
- private string Raw;
+ private readonly string Raw;
public Value(string raw) {
Raw = raw;
@@ -17,9 +17,7 @@ namespace Glove.INI {
}
public static implicit operator bool(Value value) {
- return Boolean.TryParse(value.Raw, out bool retval)
- ? retval
- : false;
+ return Boolean.TryParse(value.Raw, out bool retval) && retval;
}
public static implicit operator Int32(Value value) {
diff --git a/server/Libraries/Glove/RandomContext.cs b/server/Libraries/Glove/RandomContext.cs
index 07040d1..53a49b5 100644
--- a/server/Libraries/Glove/RandomContext.cs
+++ b/server/Libraries/Glove/RandomContext.cs
@@ -7,7 +7,8 @@ using System.Numerics;
namespace Glove {
public static class RNG {
- private static Random RandCtx = new Random();
+ // TODO add cryptographically secure rng
+ private static readonly Random RandCtx = new Random();
public static int Next() {
lock(RandCtx) {
diff --git a/server/Libraries/Kneesocks/Connection.cs b/server/Libraries/Kneesocks/Connection.cs
index 22cba31..c8ad887 100644
--- a/server/Libraries/Kneesocks/Connection.cs
+++ b/server/Libraries/Kneesocks/Connection.cs
@@ -17,17 +17,16 @@ namespace Kneesocks {
get {
if(_Id == null)
throw new ArgumentNullException();
- else
- return (UInt64)_Id;
+
+ return (UInt64)_Id;
}
set {
if(_Id == null)
_Id = value;
}
}
- internal bool IsIdNull {
- get => _Id == null;
- }
+ internal bool IsIdNull
+ => _Id == null;
private TcpClient Socket = null;
private NetworkStream Stream = null;
@@ -43,12 +42,11 @@ namespace Kneesocks {
protected const int PingInterval = 30;
protected const int TimeoutInterval = 120;
- private byte[] PingData = Encoding.ASCII.GetBytes("woomy!");
+ private readonly byte[] PingData = Encoding.ASCII.GetBytes("woomy!");
private DateTime LastPing;
private bool AwaitingPingResponse = false;
- private TimeSpan TimeSinceLastPing {
- get => DateTime.UtcNow - LastPing;
- }
+ private TimeSpan TimeSinceLastPing
+ => DateTime.UtcNow - LastPing;
internal bool OutsidePool = false;
public bool Disconnected { get; private set; } = false;
@@ -57,11 +55,8 @@ namespace Kneesocks {
public bool Handshaked { get; private set; } = false;
public Handshake ClientHandshake { get; private set; } = null;
- public IPAddress IP {
- get {
- return ((IPEndPoint)Socket.Client.RemoteEndPoint).Address;
- }
- }
+ public IPAddress IP
+ => ((IPEndPoint)Socket.Client.RemoteEndPoint).Address;
public void Initialize(TcpClient sock) {
if(Initialized)
@@ -117,7 +112,7 @@ namespace Kneesocks {
int frameCount = singleFrame ? 0 : (message.Length / MaximumSendFrameSize);
for(var i = 0; i <= frameCount; ++i) {
SendFrameBuffer.Add(new Frame {
- IsFinal = (i == frameCount && isFinal) ? true : false,
+ IsFinal = (i == frameCount && isFinal),
IsMasked = false,
Opcode = (i == 0 || (singleFrame && first)) ? Frame.kOpcode.BinaryFrame : Frame.kOpcode.Continuation,
Content = message.Subset(i * (MaximumSendFrameSize + 1), MaximumSendFrameSize)
@@ -143,10 +138,9 @@ namespace Kneesocks {
if(stream.Position == stream.Length) {
_Send(bytesRead == MaximumSendFrameSize ? byteBuffer : byteBuffer.Take(bytesRead).ToArray(), true, true, firstRead);
return;
- } else {
- _Send(bytesRead == MaximumSendFrameSize ? byteBuffer : byteBuffer.Take(bytesRead).ToArray(), false, true, firstRead);
}
+ _Send(bytesRead == MaximumSendFrameSize ? byteBuffer : byteBuffer.Take(bytesRead).ToArray(), false, true, firstRead);
firstRead = false;
}
}
diff --git a/server/Libraries/Kneesocks/Frame.cs b/server/Libraries/Kneesocks/Frame.cs
index 8992074..506e7a7 100644
--- a/server/Libraries/Kneesocks/Frame.cs
+++ b/server/Libraries/Kneesocks/Frame.cs
@@ -50,7 +50,7 @@ namespace Kneesocks {
private int _BodyLength = 0;
public int BodyLength {
- get => Content == null ? _BodyLength : Content.Length;
+ get => Content?.Length ?? _BodyLength;
}
public byte[] Content { get; set; } = null;
@@ -159,7 +159,7 @@ namespace Kneesocks {
throw new FormatException("Raw frame length ("+ (uint)raw.Length + ") is less than described size ("+ expectedFrameLength + ")");
returnFrame.Content = new byte[returnFrame.BodyLength];
- Array.Copy(raw, returnFrame.HeaderLength, returnFrame.Content, 0L, (long)returnFrame.BodyLength);
+ Array.Copy(raw, returnFrame.HeaderLength, returnFrame.Content, 0L, returnFrame.BodyLength);
if(returnFrame.IsMasked)
returnFrame.Content = returnFrame.MaskedContent;
diff --git a/server/Libraries/Kneesocks/Handshake.cs b/server/Libraries/Kneesocks/Handshake.cs
index e9827d9..410c11c 100644
--- a/server/Libraries/Kneesocks/Handshake.cs
+++ b/server/Libraries/Kneesocks/Handshake.cs
@@ -34,14 +34,14 @@ namespace Kneesocks {
get => Enum.GetName(typeof(kStatusCode), StatusCode).Replace('_', ' ');
}
- private Dictionary Headers =
- new Dictionary(StringComparer.OrdinalIgnoreCase);
+ private readonly Dictionary Headers =
+ new Dictionary(StringComparer.OrdinalIgnoreCase);
public string Content { get; set; } = null;
public Handshake(string rawData) {
IsRequest = true;
- var headerLength = rawData.IndexOf("\r\n\r\n");
+ var headerLength = rawData.IndexOf("\r\n\r\n", StringComparison.InvariantCulture);
if(headerLength == -1)
throw new FormatException("Header delimeter not found in raw data");
@@ -57,14 +57,14 @@ namespace Kneesocks {
if(parts.Length < 3)
throw new FormatException("Status line in header malformed");
} else {
- parts = line.Trim().Split(new char[] {':'}, 2);
+ parts = line.Trim().Split(new[] {':'}, 2);
if(parts.Length == 2)
Headers.Add(parts[0].Trim(), parts[1].Trim());
}
}
if(Headers.ContainsKey("Content-Length")) {
- rawData.Substring(headerLength + 4, int.Parse(Headers["Content-Length"]));
+ Content = rawData.Substring(headerLength + 4, int.Parse(Headers["Content-Length"]));
} else {
if(rawData.Length > headerLength + 4)
Content = rawData.Substring(headerLength + 4);
@@ -106,7 +106,7 @@ namespace Kneesocks {
var raw = "HTTP/"+ HttpVersion +" "+ (int)StatusCode + " "+ StatusCodeText +"\r\n";
foreach(var header in Headers)
raw += header.Key.Trim() + ": " + header.Value.Trim() + "\r\n";
- return raw += "\r\n";
+ return raw + "\r\n";
}
public bool HasHeader(string name) => Headers.ContainsKey(name);
diff --git a/server/Libraries/Kneesocks/Pool.cs b/server/Libraries/Kneesocks/Pool.cs
index 364e50d..6bcfc86 100644
--- a/server/Libraries/Kneesocks/Pool.cs
+++ b/server/Libraries/Kneesocks/Pool.cs
@@ -33,11 +33,11 @@ namespace Kneesocks {
private int _fullThreadCount;
private volatile bool updateFullThreadCount = true;
- private List Threads
+ private readonly List Threads
= new List();
private long InternalCounter = 0;
- private Dictionary Connections
+ private readonly Dictionary Connections
= new Dictionary();
public Pool() {
@@ -47,9 +47,11 @@ namespace Kneesocks {
public T this[UInt64 id] {
get {
- if(HasConnection(id))
- return Connections[id];
- else return null;
+ lock (Connections) {
+ if (HasConnection(id))
+ return Connections[id];
+ else return null;
+ }
}
}
@@ -108,7 +110,7 @@ namespace Kneesocks {
internal void InvalidateThread(Stack stackRef) {
lock(Threads) {
- var ctx = Threads.FirstOrDefault(x => Object.ReferenceEquals(x.Stack, stackRef));
+ var ctx = Threads.FirstOrDefault(x => ReferenceEquals(x.Stack, stackRef));
if(ctx != null) {
Threads.Remove(ctx);
updateFullThreadCount = true;
@@ -120,7 +122,7 @@ namespace Kneesocks {
var stack = new Stack(this, runWithNoClients, initialConnection);
var ctx = new ThreadContext {
Stack = stack,
- Thread = new Thread(new ThreadStart(stack.ManageStack))
+ Thread = new Thread(stack.ManageStack)
};
ctx.Thread.Start();
diff --git a/server/Libraries/Kneesocks/ReadBuffer.cs b/server/Libraries/Kneesocks/ReadBuffer.cs
index b9ef5a5..f968242 100644
--- a/server/Libraries/Kneesocks/ReadBuffer.cs
+++ b/server/Libraries/Kneesocks/ReadBuffer.cs
@@ -12,25 +12,24 @@ namespace Kneesocks {
private List Buffer;
private int ExpectedLength;
private string ExpectedString;
- private NetworkStream Source;
+ private readonly NetworkStream Source;
private DateTime StartTime;
- public bool IsReading { get; private set; } = false;
+ public bool IsReading { get; private set; }
public ReadBuffer(NetworkStream source) {
Source = source;
Buffer = new List();
}
- public TimeSpan ElapsedReadTime {
- get => DateTime.UtcNow - StartTime;
- }
+ public TimeSpan ElapsedReadTime
+ => DateTime.UtcNow - StartTime;
private byte[] CheckBuffer() {
byte[] returnValue = null;
if(ExpectedString != null) {
- var location = Encoding.ASCII.GetString(Buffer.ToArray()).IndexOf(ExpectedString);
+ var location = Encoding.ASCII.GetString(Buffer.ToArray()).IndexOf(ExpectedString, StringComparison.InvariantCulture);
if(location != -1) {
var fullJump = location + ExpectedString.Length;
returnValue = Buffer.Take(fullJump).ToArray();
diff --git a/server/Libraries/Kneesocks/Server.cs b/server/Libraries/Kneesocks/Server.cs
index e31c208..ac9b7cb 100644
--- a/server/Libraries/Kneesocks/Server.cs
+++ b/server/Libraries/Kneesocks/Server.cs
@@ -35,7 +35,7 @@ namespace Kneesocks {
public Server(UInt16 port, Pool pool, object config = null) {
Port = port;
Socket = new TcpListener(IPAddress.Any, port);
- Listener = new Thread(new ThreadStart(ListenThread));
+ Listener = new Thread(ListenThread);
ConnectionPool = pool;
Configuration = config;
}
diff --git a/server/Libraries/Kneesocks/Stack.cs b/server/Libraries/Kneesocks/Stack.cs
index 4630fd5..0f3fc0f 100644
--- a/server/Libraries/Kneesocks/Stack.cs
+++ b/server/Libraries/Kneesocks/Stack.cs
@@ -7,12 +7,12 @@ using System.Threading;
namespace Kneesocks {
internal class Stack where T : Connection {
- private Pool PoolRef = null;
- private List Clients = new List();
- private bool RunWithNoClients = false;
+ private readonly Pool PoolRef;
+ private readonly List Clients = new List();
+ private readonly bool RunWithNoClients;
private bool Running = true;
- public bool Finished { get; private set; } = false;
+ public bool Finished { get; private set; }
public Stack(Pool poolRef, T initialConnection = null) {
PoolRef = poolRef;
diff --git a/server/Migrations/Configuration.cs b/server/Migrations/Configuration.cs
index c3ac6e9..2e1523a 100644
--- a/server/Migrations/Configuration.cs
+++ b/server/Migrations/Configuration.cs
@@ -5,7 +5,7 @@ namespace SockScape.Migrations
using System.Data.Entity.Migrations;
using System.Linq;
- internal sealed class Configuration : DbMigrationsConfiguration
+ internal sealed class Configuration : DbMigrationsConfiguration
{
public Configuration()
{
@@ -13,7 +13,7 @@ namespace SockScape.Migrations
AutomaticMigrationsEnabled = false;
}
- protected override void Seed(SockScape.DAL.ScapeDb context)
+ protected override void Seed(DAL.ScapeDb context)
{
// This method will be called after migrating to the latest version.
diff --git a/server/SockScape.csproj b/server/SockScape.csproj
index 3a01b33..99e0a5b 100644
--- a/server/SockScape.csproj
+++ b/server/SockScape.csproj
@@ -46,28 +46,66 @@
packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll
-
- packages\EntityFramework.6.1.3\lib\net45\EntityFramework.SqlServer.dll
+
+ packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll
-
- packages\MySql.Data.6.9.9\lib\net45\MySql.Data.dll
- True
+
+ packages\MySql.Data.8.0.8-dmr\lib\net452\MySql.Data.dll
-
- packages\MySql.Data.Entity.6.9.9\lib\net45\MySql.Data.Entity.EF6.dll
- True
+
+ packages\MySql.Data.Entity.7.0.7-m61\lib\net451\MySql.Data.Entity.EF6.dll
+
+ packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll
+
+
+ packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+ True
+
+
+
+ packages\System.Console.4.3.0\lib\net46\System.Console.dll
+
+
+ packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll
+
+
+ packages\System.Interactive.Async.3.0.0\lib\net45\System.Interactive.Async.dll
+
+
+ packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll
+
+
+ packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll
+
+
+ packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll
+
+
+ packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll
+
+
+ packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net46\System.Security.Cryptography.Algorithms.dll
+
+
+ packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll
+
+
+ packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll
+
+
+ packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net46\System.Security.Cryptography.X509Certificates.dll
+
+
-
-
diff --git a/server/Socks/MasterConnection.cs b/server/Socks/MasterConnection.cs
index 5af8b9f..fc4533e 100644
--- a/server/Socks/MasterConnection.cs
+++ b/server/Socks/MasterConnection.cs
@@ -10,7 +10,7 @@ using SockScape.Encryption;
namespace SockScape {
class MasterConnection : Connection {
private Key Key;
- public Cipher Encryptor { get; private set; } = null;
+ public Cipher Encryptor { get; private set; }
protected override void OnOpen() {
Key = new Key();
diff --git a/server/Socks/MasterUdpServer.cs b/server/Socks/MasterUdpServer.cs
index 4a5fafd..cc152eb 100644
--- a/server/Socks/MasterUdpServer.cs
+++ b/server/Socks/MasterUdpServer.cs
@@ -10,8 +10,8 @@ using System.Threading.Tasks;
namespace SockScape.Socks {
static class MasterUdpServer {
private static UdpClient Sock;
- private static Thread ListeningThread = null;
- private static bool IsOpen = false;
+ private static Thread ListeningThread;
+ private static bool IsOpen;
public static void Initialize() {
if(!IsOpen && ListeningThread == null)
@@ -21,7 +21,7 @@ namespace SockScape.Socks {
Sock = new UdpClient(port);
IsOpen = true;
- ListeningThread = new Thread(new ThreadStart(Listener));
+ ListeningThread = new Thread(Listener);
ListeningThread.Start();
}
diff --git a/server/Socks/Protocols/Packet.cs b/server/Socks/Protocols/Packet.cs
index a98abf7..1c54f6c 100644
--- a/server/Socks/Protocols/Packet.cs
+++ b/server/Socks/Protocols/Packet.cs
@@ -57,11 +57,10 @@ namespace SockScape {
return packet;
}
- private List Regions = new List();
+ private readonly List Regions = new List();
public int Id { get; private set; }
- public int RegionCount {
- get => Regions.Count;
- }
+ public int RegionCount
+ => Regions.Count;
protected Packet() { }
@@ -72,9 +71,8 @@ namespace SockScape {
AddRegion(region);
}
- public Region this[int i] {
- get => new Region(Regions[i]);
- }
+ public Region this[int i]
+ => new Region(Regions[i]);
public Packet AddRegion(object region) {
if(region.GetType() == typeof(byte[]))
@@ -110,16 +108,15 @@ namespace SockScape {
}
public class Region {
- public byte[] Data { get; private set; }
+ public byte[] Data { get; }
public Region(byte[] data) {
Data = data;
}
public static implicit operator byte[] (Region region) => region.Data;
- public string Bytes {
- get => this;
- }
+ public string Bytes
+ => this;
public static implicit operator string(Region region) {
try {
@@ -128,9 +125,8 @@ namespace SockScape {
return Encoding.ASCII.GetString(region.Data);
}
}
- public string Str {
- get => this;
- }
+ public string Str
+ => this;
}
}
}
diff --git a/server/packages.config b/server/packages.config
index e535184..0c99cf2 100644
--- a/server/packages.config
+++ b/server/packages.config
@@ -3,6 +3,69 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file