diff --git a/CHANGES b/CHANGES index de4f3199..a9554b6a 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +2.1.6 2015-01-02 +- Fix OPTIONS requests +- Improve logs + 2.1.5 2014-12-25 - Fix QR Code compatibility with iOS - Only left button will trigger double click on tray icon diff --git a/LICENSE.txt b/LICENSE.txt index 7801cdf2..c09e49f7 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,7 +1,7 @@ shadowsocks-csharp ================== -Copyright (C) 2014 clowwindy +Copyright (C) 2015 clowwindy This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -81,20 +81,38 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -qrcodejs --------- +ZXing +----- + +Copyright 2007 ZXing authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 -QRCode for C#4.0 Silverlight is translation of QRCode for JavaScript -https://github.com/jeromeetienne/jquery-qrcode/ +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. -Copyright (c) 2009 Kazuhiko Arase -URL: http://www.d-project.com/ +libsodium +--------- -Licensed under the MIT license: - http://www.opensource.org/licenses/mit-license.php +Copyright (c) 2013-2015 +Frank Denis -The word "QR Code" is registered trademark of -DENSO WAVE INCORPORATED - http://www.denso-wave.com/qrcode/faqpatent-e.html +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/shadowsocks-csharp/Controller/AutoStartup.cs b/shadowsocks-csharp/Controller/AutoStartup.cs index cc7e0b2b..36ad775f 100644 --- a/shadowsocks-csharp/Controller/AutoStartup.cs +++ b/shadowsocks-csharp/Controller/AutoStartup.cs @@ -1,39 +1,55 @@ using System; using System.Windows.Forms; -using Microsoft.Win32; - -namespace Shadowsocks.Controller { - class AutoStartup { - public static bool Set(bool enabled) { - try { - string path = Application.ExecutablePath; - RegistryKey runKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true); - if (enabled) { - runKey.SetValue("Shadowsocks", path); - } else { - runKey.DeleteValue("Shadowsocks"); - } - runKey.Close(); - return true; - } catch (Exception) { - return false; - } - } - - public static bool Check() { - try { - string path = Application.ExecutablePath; - RegistryKey runKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run"); - string[] runList = runKey.GetValueNames(); - runKey.Close(); - foreach (string item in runList) { - if (item.Equals("Shadowsocks")) - return true; - } - return false; - } catch (Exception) { - return false; - } - } - } +using Microsoft.Win32; + +namespace Shadowsocks.Controller +{ + class AutoStartup + { + public static bool Set(bool enabled) + { + try + { + string path = Application.ExecutablePath; + RegistryKey runKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true); + if (enabled) + { + runKey.SetValue("Shadowsocks", path); + } + else + { + runKey.DeleteValue("Shadowsocks"); + } + runKey.Close(); + return true; + } + catch (Exception e) + { + Logging.LogUsefulException(e); + return false; + } + } + + public static bool Check() + { + try + { + string path = Application.ExecutablePath; + RegistryKey runKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run"); + string[] runList = runKey.GetValueNames(); + runKey.Close(); + foreach (string item in runList) + { + if (item.Equals("Shadowsocks")) + return true; + } + return false; + } + catch (Exception e) + { + Logging.LogUsefulException(e); + return false; + } + } + } } diff --git a/shadowsocks-csharp/Controller/Local.cs b/shadowsocks-csharp/Controller/Local.cs index 1a749b1f..cd6d2f96 100755 --- a/shadowsocks-csharp/Controller/Local.cs +++ b/shadowsocks-csharp/Controller/Local.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Text; using System.Net.Sockets; using System.Net; -using Shadowsocks.Encrypt; +using Shadowsocks.Encryption; using Shadowsocks.Model; namespace Shadowsocks.Controller diff --git a/shadowsocks-csharp/Controller/UpdateChecker.cs b/shadowsocks-csharp/Controller/UpdateChecker.cs index a7683318..e71d95c9 100755 --- a/shadowsocks-csharp/Controller/UpdateChecker.cs +++ b/shadowsocks-csharp/Controller/UpdateChecker.cs @@ -17,7 +17,7 @@ namespace Shadowsocks.Controller public string LatestVersionURL; public event EventHandler NewVersionFound; - public const string Version = "2.1.5"; + public const string Version = "2.1.6"; public void CheckUpdate() { diff --git a/shadowsocks-csharp/Data/polipo.exe.gz b/shadowsocks-csharp/Data/polipo.exe.gz index 83613511..c7038e12 100755 Binary files a/shadowsocks-csharp/Data/polipo.exe.gz and b/shadowsocks-csharp/Data/polipo.exe.gz differ diff --git a/shadowsocks-csharp/Encrypt/EncryptorBase.cs b/shadowsocks-csharp/Encryption/EncryptorBase.cs similarity index 92% rename from shadowsocks-csharp/Encrypt/EncryptorBase.cs rename to shadowsocks-csharp/Encryption/EncryptorBase.cs index 06779103..8b5cd61a 100644 --- a/shadowsocks-csharp/Encrypt/EncryptorBase.cs +++ b/shadowsocks-csharp/Encryption/EncryptorBase.cs @@ -1,7 +1,7 @@ using System.Security.Cryptography; using System.Text; -namespace Shadowsocks.Encrypt +namespace Shadowsocks.Encryption { public abstract class EncryptorBase : IEncryptor diff --git a/shadowsocks-csharp/Encrypt/EncryptorFactory.cs b/shadowsocks-csharp/Encryption/EncryptorFactory.cs similarity index 95% rename from shadowsocks-csharp/Encrypt/EncryptorFactory.cs rename to shadowsocks-csharp/Encryption/EncryptorFactory.cs index 9599adbb..d5ff15e3 100644 --- a/shadowsocks-csharp/Encrypt/EncryptorFactory.cs +++ b/shadowsocks-csharp/Encryption/EncryptorFactory.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Reflection; -namespace Shadowsocks.Encrypt +namespace Shadowsocks.Encryption { public static class EncryptorFactory { diff --git a/shadowsocks-csharp/Encrypt/IEncryptor.cs b/shadowsocks-csharp/Encryption/IEncryptor.cs similarity index 86% rename from shadowsocks-csharp/Encrypt/IEncryptor.cs rename to shadowsocks-csharp/Encryption/IEncryptor.cs index 3ca197d1..b45c62c7 100644 --- a/shadowsocks-csharp/Encrypt/IEncryptor.cs +++ b/shadowsocks-csharp/Encryption/IEncryptor.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Text; -namespace Shadowsocks.Encrypt +namespace Shadowsocks.Encryption { public interface IEncryptor : IDisposable { diff --git a/shadowsocks-csharp/Encrypt/IVEncryptor.cs b/shadowsocks-csharp/Encryption/IVEncryptor.cs similarity index 96% rename from shadowsocks-csharp/Encrypt/IVEncryptor.cs rename to shadowsocks-csharp/Encryption/IVEncryptor.cs index bdeae866..0a59a0df 100755 --- a/shadowsocks-csharp/Encrypt/IVEncryptor.cs +++ b/shadowsocks-csharp/Encryption/IVEncryptor.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using System.Security.Cryptography; using System.Text; -namespace Shadowsocks.Encrypt +namespace Shadowsocks.Encryption { public abstract class IVEncryptor : EncryptorBase diff --git a/shadowsocks-csharp/Encrypt/PolarSSL.cs b/shadowsocks-csharp/Encryption/PolarSSL.cs similarity index 95% rename from shadowsocks-csharp/Encrypt/PolarSSL.cs rename to shadowsocks-csharp/Encryption/PolarSSL.cs index 79941d57..93b662a8 100755 --- a/shadowsocks-csharp/Encrypt/PolarSSL.cs +++ b/shadowsocks-csharp/Encryption/PolarSSL.cs @@ -6,7 +6,7 @@ using System.IO; using System.Runtime.InteropServices; using System.Text; -namespace Shadowsocks.Encrypt +namespace Shadowsocks.Encryption { public class PolarSSL { diff --git a/shadowsocks-csharp/Encrypt/PolarSSLEncryptor.cs b/shadowsocks-csharp/Encryption/PolarSSLEncryptor.cs similarity index 96% rename from shadowsocks-csharp/Encrypt/PolarSSLEncryptor.cs rename to shadowsocks-csharp/Encryption/PolarSSLEncryptor.cs index 83f64f09..6216c24d 100755 --- a/shadowsocks-csharp/Encrypt/PolarSSLEncryptor.cs +++ b/shadowsocks-csharp/Encryption/PolarSSLEncryptor.cs @@ -5,7 +5,7 @@ using System.Security.Cryptography; using System.Text; using System.Threading; -namespace Shadowsocks.Encrypt +namespace Shadowsocks.Encryption { public class PolarSSLEncryptor : IVEncryptor, IDisposable diff --git a/shadowsocks-csharp/Encrypt/Sodium.cs b/shadowsocks-csharp/Encryption/Sodium.cs similarity index 94% rename from shadowsocks-csharp/Encrypt/Sodium.cs rename to shadowsocks-csharp/Encryption/Sodium.cs index faced736..9bc72d32 100755 --- a/shadowsocks-csharp/Encrypt/Sodium.cs +++ b/shadowsocks-csharp/Encryption/Sodium.cs @@ -6,7 +6,7 @@ using System.IO; using System.Runtime.InteropServices; using System.Text; -namespace Shadowsocks.Encrypt +namespace Shadowsocks.Encryption { public class Sodium { diff --git a/shadowsocks-csharp/Encrypt/SodiumEncryptor.cs b/shadowsocks-csharp/Encryption/SodiumEncryptor.cs similarity index 95% rename from shadowsocks-csharp/Encrypt/SodiumEncryptor.cs rename to shadowsocks-csharp/Encryption/SodiumEncryptor.cs index 8b7ac5b2..5d6165eb 100755 --- a/shadowsocks-csharp/Encrypt/SodiumEncryptor.cs +++ b/shadowsocks-csharp/Encryption/SodiumEncryptor.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Text; -namespace Shadowsocks.Encrypt +namespace Shadowsocks.Encryption { public class SodiumEncryptor : IVEncryptor, IDisposable diff --git a/shadowsocks-csharp/Encrypt/TableEncryptor.cs b/shadowsocks-csharp/Encryption/TableEncryptor.cs similarity index 95% rename from shadowsocks-csharp/Encrypt/TableEncryptor.cs rename to shadowsocks-csharp/Encryption/TableEncryptor.cs index 1382d7ca..3dd526d4 100644 --- a/shadowsocks-csharp/Encrypt/TableEncryptor.cs +++ b/shadowsocks-csharp/Encryption/TableEncryptor.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace Shadowsocks.Encrypt +namespace Shadowsocks.Encryption { public class TableEncryptor : EncryptorBase diff --git a/shadowsocks-csharp/Properties/AssemblyInfo.cs b/shadowsocks-csharp/Properties/AssemblyInfo.cs index edc36101..2a6fc3db 100755 --- a/shadowsocks-csharp/Properties/AssemblyInfo.cs +++ b/shadowsocks-csharp/Properties/AssemblyInfo.cs @@ -11,7 +11,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Shadowsocks")] -[assembly: AssemblyCopyright("Copyright © clowwindy 2014")] +[assembly: AssemblyCopyright("Copyright © clowwindy 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/shadowsocks-csharp/Properties/Settings.Designer.cs b/shadowsocks-csharp/Properties/Settings.Designer.cs deleted file mode 100755 index 685146c2..00000000 --- a/shadowsocks-csharp/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18444 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Shadowsocks.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/shadowsocks-csharp/Properties/Settings.settings b/shadowsocks-csharp/Properties/Settings.settings deleted file mode 100755 index abf36c5d..00000000 --- a/shadowsocks-csharp/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/shadowsocks-csharp/View/MenuViewController.cs b/shadowsocks-csharp/View/MenuViewController.cs index 2ff0e763..797e52f7 100755 --- a/shadowsocks-csharp/View/MenuViewController.cs +++ b/shadowsocks-csharp/View/MenuViewController.cs @@ -28,16 +28,7 @@ namespace Shadowsocks.View private MenuItem ShareOverLANItem; private MenuItem SeperatorItem; private MenuItem ConfigItem; - private MenuItem menuItem4; - private MenuItem editPACFileItem; - private MenuItem QRCodeItem; - private MenuItem ShowLogItem; - private MenuItem aboutItem; private MenuItem ServersItem; - private MenuItem menuItem3; - private MenuItem quitItem; - private MenuItem menuItem1; - private MenuItem modeItem; private MenuItem globalModeItem; private MenuItem PACModeItem; private ConfigForm configForm; @@ -121,146 +112,39 @@ namespace Shadowsocks.View _notifyIcon.Text = text.Substring(0, Math.Min(63, text.Length)); } + private MenuItem CreateMenuItem(string text, EventHandler click) + { + return new MenuItem(I18N.GetString(text), click); + } + + private MenuItem CreateMenuGroup(string text, MenuItem[] items) + { + return new MenuItem(I18N.GetString(text), items); + } + private void LoadMenu() { - this.contextMenu1 = new System.Windows.Forms.ContextMenu(); - this.enableItem = new System.Windows.Forms.MenuItem(); - this.modeItem = new System.Windows.Forms.MenuItem(); - this.PACModeItem = new System.Windows.Forms.MenuItem(); - this.globalModeItem = new System.Windows.Forms.MenuItem(); - this.AutoStartupItem = new System.Windows.Forms.MenuItem(); - this.ShareOverLANItem = new System.Windows.Forms.MenuItem(); - this.ServersItem = new System.Windows.Forms.MenuItem(); - this.SeperatorItem = new System.Windows.Forms.MenuItem(); - this.ConfigItem = new System.Windows.Forms.MenuItem(); - this.menuItem4 = new System.Windows.Forms.MenuItem(); - this.editPACFileItem = new System.Windows.Forms.MenuItem(); - this.QRCodeItem = new System.Windows.Forms.MenuItem(); - this.ShowLogItem = new System.Windows.Forms.MenuItem(); - this.aboutItem = new System.Windows.Forms.MenuItem(); - this.menuItem3 = new System.Windows.Forms.MenuItem(); - this.quitItem = new System.Windows.Forms.MenuItem(); - this.menuItem1 = new System.Windows.Forms.MenuItem(); - - // - // contextMenu1 - // - this.contextMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.enableItem, - this.modeItem, - this.ServersItem, - this.menuItem1, - this.AutoStartupItem, - this.ShareOverLANItem, - this.editPACFileItem, - this.menuItem4, - this.QRCodeItem, - this.ShowLogItem, - this.aboutItem, - this.menuItem3, - this.quitItem}); - // - // enableItem - // - this.enableItem.Index = 0; - this.enableItem.Text = I18N.GetString("Enable"); - this.enableItem.Click += new System.EventHandler(this.EnableItem_Click); - // - // modeMenu - // - this.modeItem.Index = 1; - this.modeItem.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.PACModeItem, - this.globalModeItem}); - this.modeItem.Text = I18N.GetString("Mode"); - // - // PACModeItem - // - this.PACModeItem.Index = 0; - this.PACModeItem.Text = I18N.GetString("PAC"); - this.PACModeItem.Click += new System.EventHandler(this.PACModeItem_Click); - // - // globalModeItem - // - this.globalModeItem.Index = 1; - this.globalModeItem.Text = I18N.GetString("Global"); - this.globalModeItem.Click += new System.EventHandler(this.GlobalModeItem_Click); - // - // ServersItem - // - this.ServersItem.Index = 2; - this.ServersItem.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.SeperatorItem, - this.ConfigItem}); - this.ServersItem.Text = I18N.GetString("Servers"); - // - // SeperatorItem - // - this.SeperatorItem.Index = 0; - this.SeperatorItem.Text = "-"; - // - // ConfigItem - // - this.ConfigItem.Index = 1; - this.ConfigItem.Text = I18N.GetString("Edit Servers..."); - this.ConfigItem.Click += new System.EventHandler(this.Config_Click); - // - // menuItem1 - // - this.menuItem1.Index = 3; - this.menuItem1.Text = "-"; - // - // AutoStartupItem - // - this.AutoStartupItem.Index = 4; - this.AutoStartupItem.Text = I18N.GetString("Start on Boot"); - this.AutoStartupItem.Click += new System.EventHandler(this.AutoStartupItem_Click); - // - // ShareOverLANItem - // - this.ShareOverLANItem.Index = 5; - this.ShareOverLANItem.Text = I18N.GetString("Share over LAN"); - this.ShareOverLANItem.Click += new System.EventHandler(this.ShareOverLANItem_Click); - // - // editPACFileItem - // - this.editPACFileItem.Index = 6; - this.editPACFileItem.Text = I18N.GetString("Edit PAC File..."); - this.editPACFileItem.Click += new System.EventHandler(this.EditPACFileItem_Click); - // - // menuItem4 - // - this.menuItem4.Index = 7; - this.menuItem4.Text = "-"; - // - // QRCodeItem - // - this.QRCodeItem.Index = 8; - this.QRCodeItem.Text = I18N.GetString("Show QRCode..."); - this.QRCodeItem.Click += new System.EventHandler(this.QRCodeItem_Click); - // - // ShowLogItem - // - this.ShowLogItem.Index = 9; - this.ShowLogItem.Text = I18N.GetString("Show Logs..."); - this.ShowLogItem.Click += new System.EventHandler(this.ShowLogItem_Click); - // - // aboutItem - // - this.aboutItem.Index = 10; - this.aboutItem.Text = I18N.GetString("About..."); - this.aboutItem.Click += new System.EventHandler(this.AboutItem_Click); - // - // menuItem3 - // - this.menuItem3.Index = 11; - this.menuItem3.Text = "-"; - // - // quitItem - // - this.quitItem.Index = 12; - this.quitItem.Text = I18N.GetString("Quit"); - this.quitItem.Click += new System.EventHandler(this.Quit_Click); + this.contextMenu1 = new ContextMenu(new MenuItem[] { + this.enableItem = CreateMenuItem("Enable", new EventHandler(this.EnableItem_Click)), + CreateMenuGroup("Mode", new MenuItem[] { + this.PACModeItem = CreateMenuItem("PAC", new EventHandler(this.PACModeItem_Click)), + this.globalModeItem = CreateMenuItem("Global", new EventHandler(this.GlobalModeItem_Click)) + }), + this.ServersItem = CreateMenuGroup("Servers", new MenuItem[] { + this.SeperatorItem = new MenuItem("-"), + this.ConfigItem = CreateMenuItem("Edit Servers...", new EventHandler(this.Config_Click)) + }), + new MenuItem("-"), + this.AutoStartupItem = CreateMenuItem("Start on Boot", new EventHandler(this.AutoStartupItem_Click)), + this.ShareOverLANItem = CreateMenuItem("Share over LAN", new EventHandler(this.ShareOverLANItem_Click)), + CreateMenuItem("Edit PAC File...", new EventHandler(this.EditPACFileItem_Click)), + new MenuItem("-"), + CreateMenuItem("Show QRCode...", new EventHandler(this.QRCodeItem_Click)), + CreateMenuItem("Show Logs...", new EventHandler(this.ShowLogItem_Click)), + CreateMenuItem("About...", new EventHandler(this.AboutItem_Click)), + new MenuItem("-"), + CreateMenuItem("Quit", new EventHandler(this.Quit_Click)) + }); } private void controller_ConfigChanged(object sender, EventArgs e) @@ -390,7 +274,7 @@ namespace Shadowsocks.View private void AboutItem_Click(object sender, EventArgs e) { - Process.Start("https://github.com/clowwindy/shadowsocks-csharp"); + Process.Start("https://github.com/shadowsocks/shadowsocks-csharp"); } private void notifyIcon1_DoubleClick(object sender, MouseEventArgs e) diff --git a/shadowsocks-csharp/shadowsocks-csharp.csproj b/shadowsocks-csharp/shadowsocks-csharp.csproj index 1c0647b8..67382138 100755 --- a/shadowsocks-csharp/shadowsocks-csharp.csproj +++ b/shadowsocks-csharp/shadowsocks-csharp.csproj @@ -89,15 +89,15 @@ - - - - - - - - - + + + + + + + + + @@ -153,15 +153,6 @@ - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - diff --git a/test/Properties/AssemblyInfo.cs b/test/Properties/AssemblyInfo.cs index 2918bf7a..26e77a34 100755 --- a/test/Properties/AssemblyInfo.cs +++ b/test/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("test")] -[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyCopyright("Copyright © 2015")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/test/UnitTest.cs b/test/UnitTest.cs index 94fa9053..8fdf3f28 100755 --- a/test/UnitTest.cs +++ b/test/UnitTest.cs @@ -1,7 +1,7 @@ using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Shadowsocks.Controller; -using Shadowsocks.Encrypt; +using Shadowsocks.Encryption; using System.Threading; using System.Collections.Generic;