Przeglądaj źródła

v4.06-9430-beta

dnobori 11 lat temu
rodzic
commit
cf2a6a42bc
100 zmienionych plików z 972 dodań i 124 usunięć
  1. 3 0
      AUTHORS.TXT
  2. 3 2
      BUILD_WINDOWS.TXT
  3. 6 0
      README
  4. 6 0
      README.TXT
  5. 4 0
      THIRD_PARTY.TXT
  6. 1 1
      centos/SOURCES/init.d/vpnserver
  7. 3 2
      src/BUILD_WINDOWS.TXT
  8. 7 1
      src/BuildUtil/BuildUtilCommands.cs
  9. 7 1
      src/BuildUtil/BuildUtilMain.cs
  10. 7 1
      src/BuildUtil/CodeSign.cs
  11. 7 1
      src/BuildUtil/CoreUtil/Bmp.cs
  12. 7 1
      src/BuildUtil/CoreUtil/Buf.cs
  13. 7 1
      src/BuildUtil/CoreUtil/Cache.cs
  14. 7 1
      src/BuildUtil/CoreUtil/Compress.cs
  15. 7 1
      src/BuildUtil/CoreUtil/Console.cs
  16. 7 1
      src/BuildUtil/CoreUtil/Csv.cs
  17. 7 1
      src/BuildUtil/CoreUtil/Env.cs
  18. 7 1
      src/BuildUtil/CoreUtil/FileIO.cs
  19. 7 1
      src/BuildUtil/CoreUtil/GZip.cs
  20. 7 1
      src/BuildUtil/CoreUtil/Kernel.cs
  21. 7 1
      src/BuildUtil/CoreUtil/MultiLang.cs
  22. 7 1
      src/BuildUtil/CoreUtil/Packer.cs
  23. 7 1
      src/BuildUtil/CoreUtil/RC4.cs
  24. 7 1
      src/BuildUtil/CoreUtil/ReadIni.cs
  25. 7 1
      src/BuildUtil/CoreUtil/Reg.cs
  26. 7 1
      src/BuildUtil/CoreUtil/Secure.cs
  27. 7 1
      src/BuildUtil/CoreUtil/Stb.cs
  28. 7 1
      src/BuildUtil/CoreUtil/Str.cs
  29. 7 1
      src/BuildUtil/CoreUtil/Tar.cs
  30. 7 1
      src/BuildUtil/CoreUtil/Thread.cs
  31. 7 1
      src/BuildUtil/CoreUtil/Time.cs
  32. 7 1
      src/BuildUtil/CoreUtil/Util.cs
  33. 7 1
      src/BuildUtil/CoreUtil/Win32.cs
  34. 7 1
      src/BuildUtil/CoreUtil/Zip.cs
  35. 7 1
      src/BuildUtil/PEUtil.cs
  36. 7 1
      src/BuildUtil/Properties/Resources.Designer.cs
  37. 7 1
      src/BuildUtil/Properties/Settings.Designer.cs
  38. 7 1
      src/BuildUtil/Test.cs
  39. 17 1
      src/BuildUtil/UnixBuildSoftwares.cs
  40. 7 1
      src/BuildUtil/VpnBuilder.cs
  41. 7 1
      src/BuildUtil/VpnBuilderConfig.cs
  42. 7 1
      src/BuildUtil/VpnBuilderConfigTypes.cs
  43. 7 1
      src/BuildUtil/Web References/HvSignService/Reference.cs
  44. 7 1
      src/BuildUtil/Web References/SignService/Reference.cs
  45. 7 1
      src/BuildUtil/Win32BuildSoftware.cs
  46. 7 1
      src/BuildUtil/Win32BuildUtil.cs
  47. 7 1
      src/Cedar/Account.c
  48. 7 1
      src/Cedar/Account.h
  49. 51 6
      src/Cedar/Admin.c
  50. 7 1
      src/Cedar/Admin.h
  51. 7 1
      src/Cedar/AzureClient.c
  52. 7 1
      src/Cedar/AzureClient.h
  53. 7 1
      src/Cedar/AzureServer.c
  54. 7 1
      src/Cedar/AzureServer.h
  55. 7 1
      src/Cedar/Bridge.c
  56. 7 1
      src/Cedar/Bridge.h
  57. 7 1
      src/Cedar/BridgeUnix.c
  58. 7 1
      src/Cedar/BridgeUnix.h
  59. 7 1
      src/Cedar/BridgeWin32.c
  60. 7 1
      src/Cedar/BridgeWin32.h
  61. 69 1
      src/Cedar/CM.c
  62. 7 1
      src/Cedar/CM.h
  63. 7 1
      src/Cedar/CMInner.h
  64. 11 1
      src/Cedar/Cedar.c
  65. 16 8
      src/Cedar/Cedar.h
  66. 7 1
      src/Cedar/CedarPch.c
  67. 7 1
      src/Cedar/CedarPch.h
  68. 7 1
      src/Cedar/CedarType.h
  69. 7 1
      src/Cedar/Client.c
  70. 7 1
      src/Cedar/Client.h
  71. 27 1
      src/Cedar/Command.c
  72. 7 1
      src/Cedar/Command.h
  73. 7 1
      src/Cedar/Connection.c
  74. 7 1
      src/Cedar/Connection.h
  75. 7 1
      src/Cedar/Console.c
  76. 7 1
      src/Cedar/Console.h
  77. 15 1
      src/Cedar/DDNS.c
  78. 7 1
      src/Cedar/DDNS.h
  79. 7 1
      src/Cedar/Database.c
  80. 7 1
      src/Cedar/Database.h
  81. 7 1
      src/Cedar/EM.c
  82. 7 1
      src/Cedar/EM.h
  83. 7 1
      src/Cedar/EMInner.h
  84. 7 1
      src/Cedar/EtherLog.c
  85. 7 1
      src/Cedar/EtherLog.h
  86. 112 6
      src/Cedar/Hub.c
  87. 9 1
      src/Cedar/Hub.h
  88. 7 1
      src/Cedar/IPsec.c
  89. 7 1
      src/Cedar/IPsec.h
  90. 7 1
      src/Cedar/IPsec_EtherIP.c
  91. 7 1
      src/Cedar/IPsec_EtherIP.h
  92. 7 1
      src/Cedar/IPsec_IKE.c
  93. 7 1
      src/Cedar/IPsec_IKE.h
  94. 33 6
      src/Cedar/IPsec_IPC.c
  95. 9 2
      src/Cedar/IPsec_IPC.h
  96. 7 1
      src/Cedar/IPsec_IkePacket.c
  97. 7 1
      src/Cedar/IPsec_IkePacket.h
  98. 7 1
      src/Cedar/IPsec_L2TP.c
  99. 7 1
      src/Cedar/IPsec_L2TP.h
  100. 10 4
      src/Cedar/IPsec_PPP.c

+ 3 - 0
AUTHORS.TXT

@@ -58,6 +58,9 @@ CONTRIBUTORS on GitHub:
   - Dexter Ang
     https://github.com/thepoch
 
+  - YF
+    https://github.com/yfdyh000
+
 
 JOIN THE SOFTETHER VPN DEVELOPMENT
 ----------------------------------

+ 3 - 2
BUILD_WINDOWS.TXT

@@ -8,10 +8,11 @@ Requirements
 You need to install the following software to build SoftEther VPN for Windows.
 
 - Microsoft Windows XP, Vista, 7, 8 or later.
-- Microsoft Visual Studio 2008.
+- Microsoft Visual Studio 2008 with the latest SP (SP1 9.0.30729.4462 QFE).
 
 * Note:
-  Visual Studio 2008 is required to build SoftEther VPN on Windows.
+  Visual Studio 2008 SP1 is required to build SoftEther VPN on Windows.
+  Please make sure that VS2008 'SP1' is installed.
   Visual Studio 2010, 2012 or 2013 is currently not supported.
   Visual Studio 2008 Express Edition is not supported.
   Standard Edition, Professional Edition, Team System or Team Suite is

+ 6 - 0
README

@@ -50,6 +50,9 @@ SOFTETHER VPN ADVANTAGES
 - AES 256-bit and RSA 4096-bit encryptions.
 - Sufficient security features such as logging and firewall inner
   VPN tunnel.
+- User authentication with RADIUS and NT domain controllers.
+- User authentication with X.509 client certificate.
+- Packet logging.
 - 1Gbps-class high-speed throughput performance with low memory and
   CPU usage.
 - Windows, Linux, Mac, Android, iPhone, iPad and Windows Phone are
@@ -59,6 +62,9 @@ SOFTETHER VPN ADVANTAGES
 - The VPN server runs on Windows, Linux, FreeBSD, Solaris and Mac OS X.
 - Configure All settings on GUI.
 - Multi-languages (English, Japanese and Simplified-Chinese).
+- No memory leaks. High quality stable codes, intended for long-term runs.
+  We always verify that there are no memory or resource leaks before
+  releasing the build.
 - More details at http://www.softether.org/.
 
 

+ 6 - 0
README.TXT

@@ -50,6 +50,9 @@ SOFTETHER VPN ADVANTAGES
 - AES 256-bit and RSA 4096-bit encryptions.
 - Sufficient security features such as logging and firewall inner
   VPN tunnel.
+- User authentication with RADIUS and NT domain controllers.
+- User authentication with X.509 client certificate.
+- Packet logging.
 - 1Gbps-class high-speed throughput performance with low memory and
   CPU usage.
 - Windows, Linux, Mac, Android, iPhone, iPad and Windows Phone are
@@ -59,6 +62,9 @@ SOFTETHER VPN ADVANTAGES
 - The VPN server runs on Windows, Linux, FreeBSD, Solaris and Mac OS X.
 - Configure All settings on GUI.
 - Multi-languages (English, Japanese and Simplified-Chinese).
+- No memory leaks. High quality stable codes, intended for long-term runs.
+  We always verify that there are no memory or resource leaks before
+  releasing the build.
 - More details at http://www.softether.org/.
 
 

+ 4 - 0
THIRD_PARTY.TXT

@@ -775,6 +775,10 @@ The list of contributors for SoftEther VPN Project:
   - ELIN
     https://github.com/el1n
 
+  - YF
+    https://github.com/yfdyh000
+
+
 SoftEther Corporation, the distributor of PacketiX VPN, appreciates all
 contributors for SoftEther VPN Project very much.
 

+ 1 - 1
centos/SOURCES/init.d/vpnserver

@@ -40,7 +40,7 @@ start() {
 
 stop() {
 	echo -n $"Stopping $prog: "
-	/usr/bin/timeout 30 $exec stop || /usr/bin/killall -q -9 $prog
+	/usr/bin/timeout 60 $exec stop || /usr/bin/killall -q -9 $prog
 	retval=$?
 	echo
 	[ $retval -eq 0 ] && rm -f $lockfile

+ 3 - 2
src/BUILD_WINDOWS.TXT

@@ -8,10 +8,11 @@ Requirements
 You need to install the following software to build SoftEther VPN for Windows.
 
 - Microsoft Windows XP, Vista, 7, 8 or later.
-- Microsoft Visual Studio 2008.
+- Microsoft Visual Studio 2008 with the latest SP (SP1 9.0.30729.4462 QFE).
 
 * Note:
-  Visual Studio 2008 is required to build SoftEther VPN on Windows.
+  Visual Studio 2008 SP1 is required to build SoftEther VPN on Windows.
+  Please make sure that VS2008 'SP1' is installed.
   Visual Studio 2010, 2012 or 2013 is currently not supported.
   Visual Studio 2008 Express Edition is not supported.
   Standard Edition, Professional Edition, Team System or Team Suite is

+ 7 - 1
src/BuildUtil/BuildUtilCommands.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/BuildUtilMain.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CodeSign.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Bmp.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Buf.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Cache.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Compress.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Console.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Csv.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Env.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/FileIO.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/GZip.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Kernel.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/MultiLang.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Packer.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/RC4.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/ReadIni.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Reg.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Secure.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Stb.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Str.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Tar.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Thread.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Time.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Util.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Win32.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/CoreUtil/Zip.cs

@@ -4,7 +4,6 @@
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/PEUtil.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/Properties/Resources.Designer.cs

@@ -9,7 +9,6 @@
 //------------------------------------------------------------------------------
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -80,6 +79,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 namespace BuildUtil.Properties {

+ 7 - 1
src/BuildUtil/Properties/Settings.Designer.cs

@@ -9,7 +9,6 @@
 //------------------------------------------------------------------------------
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -80,6 +79,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 namespace BuildUtil.Properties {

+ 7 - 1
src/BuildUtil/Test.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 17 - 1
src/BuildUtil/UnixBuildSoftwares.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;
@@ -258,6 +264,16 @@ namespace BuildUtil
 				tar.AddFileSimple(targetName + @"\" + "ReadMeFirst_License.txt", destData, 0, destData.Length, DateTime.Now);
 			}
 
+			if (true)
+			{
+				string srcData = File.ReadAllText(Path.Combine(Paths.BinDirName, @"hamcore\authors.txt"),
+					enc);
+
+				byte[] destData = enc.GetBytes(srcData);
+
+				tar.AddFileSimple(targetName + @"\" + "Authors.txt", destData, 0, destData.Length, DateTime.Now);
+			}
+
 			if (true)
 			{
 				string srcData = File.ReadAllText(Path.Combine(Paths.BinDirName, @"hamcore\warning_ja.txt"),

+ 7 - 1
src/BuildUtil/VpnBuilder.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/VpnBuilderConfig.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/VpnBuilderConfigTypes.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/Web References/HvSignService/Reference.cs

@@ -9,7 +9,6 @@
 //------------------------------------------------------------------------------
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -80,6 +79,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // 

+ 7 - 1
src/BuildUtil/Web References/SignService/Reference.cs

@@ -9,7 +9,6 @@
 //------------------------------------------------------------------------------
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -80,6 +79,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // 

+ 7 - 1
src/BuildUtil/Win32BuildSoftware.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/BuildUtil/Win32BuildUtil.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 using System;

+ 7 - 1
src/Cedar/Account.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Account.c

+ 7 - 1
src/Cedar/Account.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Account.h

+ 51 - 6
src/Cedar/Admin.c

@@ -16,7 +16,6 @@
 // - ELIN (https://github.com/el1n)
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -87,6 +86,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Admin.c
@@ -1716,7 +1722,7 @@ UINT StGetAdminMsg(ADMIN *a, RPC_MSG *t)
 	if (
 		c->Bridge == false)
 	{
-		if (GetCurrentLangId() != SE_LANG_ENGLISH)
+		if (GetGlobalServerFlag(GSF_SHOW_OSS_MSG) != 0)
 		{
 			UniStrCat(tmp, tmpsize, _UU("OSS_MSG"));
 		}
@@ -2179,6 +2185,11 @@ UINT StSetAcList(ADMIN *a, RPC_AC_LIST *t)
 		return ERR_NOT_SUPPORTED;
 	}
 
+	if (GetGlobalServerFlag(GSF_DISABLE_AC) != 0 && LIST_NUM(t->o) >= 1)
+	{
+		return ERR_NOT_SUPPORTED_FUNCTION_ON_OPENSOURCE;
+	}
+
 	CHECK_RIGHT;
 	NO_SUPPORT_FOR_BRIDGE;
 	if (s->ServerType == SERVER_TYPE_FARM_MEMBER)
@@ -3620,6 +3631,11 @@ UINT StSetSysLog(ADMIN *a, SYSLOG_SETTING *t)
 
 	SERVER_ADMIN_ONLY;
 
+	if (GetGlobalServerFlag(GSF_DISABLE_SYSLOG) != 0 && t->SaveType != SYSLOG_NONE)
+	{
+		return ERR_NOT_SUPPORTED_FUNCTION_ON_OPENSOURCE;
+	}
+
 	if (GetServerCapsBool(s, "b_support_syslog") == false)
 	{
 		return ERR_NOT_SUPPORTED;
@@ -5017,9 +5033,12 @@ UINT StSetUser(ADMIN *a, RPC_SET_USER *t)
 
 	CHECK_RIGHT;
 
-	if (t->AuthType == AUTHTYPE_USERCERT || t->AuthType == AUTHTYPE_RADIUS || t->AuthType == AUTHTYPE_ROOTCERT || t->AuthType == AUTHTYPE_NT)
+	if (GetGlobalServerFlag(GSF_DISABLE_RADIUS_AUTH) != 0)
 	{
-		return ERR_NOT_SUPPORTED_AUTH_ON_OPENSOURCE;
+		if (t->AuthType == AUTHTYPE_USERCERT || t->AuthType == AUTHTYPE_RADIUS || t->AuthType == AUTHTYPE_ROOTCERT || t->AuthType == AUTHTYPE_NT)
+		{
+			return ERR_NOT_SUPPORTED_AUTH_ON_OPENSOURCE;
+		}
 	}
 
 	if (StrCmpi(t->Name, "*") == 0)
@@ -5147,9 +5166,12 @@ UINT StCreateUser(ADMIN *a, RPC_SET_USER *t)
 
 	CHECK_RIGHT;
 
-	if (t->AuthType == AUTHTYPE_USERCERT || t->AuthType == AUTHTYPE_RADIUS || t->AuthType == AUTHTYPE_ROOTCERT || t->AuthType == AUTHTYPE_NT)
+	if (GetGlobalServerFlag(GSF_DISABLE_RADIUS_AUTH) != 0)
 	{
-		return ERR_NOT_SUPPORTED_AUTH_ON_OPENSOURCE;
+		if (t->AuthType == AUTHTYPE_USERCERT || t->AuthType == AUTHTYPE_RADIUS || t->AuthType == AUTHTYPE_ROOTCERT || t->AuthType == AUTHTYPE_NT)
+		{
+			return ERR_NOT_SUPPORTED_AUTH_ON_OPENSOURCE;
+		}
 	}
 
 	if (t->AuthType == AUTHTYPE_USERCERT)
@@ -7254,6 +7276,7 @@ UINT StSetSecureNATOption(ADMIN *a, VH_OPTION *t)
 	SERVER *s = a->Server;
 	CEDAR *c = s->Cedar;
 	HUB *h;
+	char push_routes_str_old[MAX_DHCP_CLASSLESS_ROUTE_TABLE_STR_SIZE];
 
 
 	if (IsZero(t->MacAddress, sizeof(t->MacAddress)) ||
@@ -7266,6 +7289,17 @@ UINT StSetSecureNATOption(ADMIN *a, VH_OPTION *t)
 	{
 		return ERR_INVALID_PARAMETER;
 	}
+	if (GetServerCapsBool(s, "b_support_securenat") == false)
+	{
+		t->ApplyDhcpPushRoutes = false;
+	}
+	if (t->ApplyDhcpPushRoutes)
+	{
+		if (NormalizeClasslessRouteTableStr(t->DhcpPushRoutes, sizeof(t->DhcpPushRoutes), t->DhcpPushRoutes) == false)
+		{
+			return ERR_INVALID_PARAMETER;
+		}
+	}
 
 	CHECK_RIGHT;
 
@@ -7315,7 +7349,12 @@ UINT StSetSecureNATOption(ADMIN *a, VH_OPTION *t)
 		}
 	}
 
+	StrCpy(push_routes_str_old, sizeof(push_routes_str_old), h->SecureNATOption->DhcpPushRoutes);
 	Copy(h->SecureNATOption, t, sizeof(VH_OPTION));
+	if (t->ApplyDhcpPushRoutes == false)
+	{
+		StrCpy(h->SecureNATOption->DhcpPushRoutes, sizeof(h->SecureNATOption->DhcpPushRoutes), push_routes_str_old);
+	}
 
 	if (h->Type != HUB_TYPE_STANDALONE && h->Cedar != NULL && h->Cedar->Server != NULL &&
 		h->Cedar->Server->ServerType == SERVER_TYPE_FARM_CONTROLLER)
@@ -7381,6 +7420,7 @@ UINT StGetSecureNATOption(ADMIN *a, VH_OPTION *t)
 	Zero(t, sizeof(VH_OPTION));
 	StrCpy(t->HubName, sizeof(t->HubName), hubname);
 	Copy(t, h->SecureNATOption, sizeof(VH_OPTION));
+	t->ApplyDhcpPushRoutes = true;
 
 	ReleaseHub(h);
 
@@ -7617,6 +7657,11 @@ UINT StSetHubRadius(ADMIN *a, RPC_RADIUS *t)
 		return ERR_NOT_SUPPORTED;
 	}
 
+	if (GetGlobalServerFlag(GSF_DISABLE_RADIUS_AUTH) != 0 && IsEmptyStr(t->RadiusServerName) == false)
+	{
+		return ERR_NOT_SUPPORTED_FUNCTION_ON_OPENSOURCE;
+	}
+
 	CHECK_RIGHT;
 
 	LockHubList(c);

+ 7 - 1
src/Cedar/Admin.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Admin.h

+ 7 - 1
src/Cedar/AzureClient.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // AzureClient.c

+ 7 - 1
src/Cedar/AzureClient.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // AzureClient.h

+ 7 - 1
src/Cedar/AzureServer.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // AzureServer.c

+ 7 - 1
src/Cedar/AzureServer.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // AzureServer.h

+ 7 - 1
src/Cedar/Bridge.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Bridge.c

+ 7 - 1
src/Cedar/Bridge.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Bridge.h

+ 7 - 1
src/Cedar/BridgeUnix.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // BridgeUnix.c

+ 7 - 1
src/Cedar/BridgeUnix.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // BridgeUnix.h

+ 7 - 1
src/Cedar/BridgeWin32.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // BridgeWin32.c

+ 7 - 1
src/Cedar/BridgeWin32.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // BridgeWin32.h

+ 69 - 1
src/Cedar/CM.c

@@ -16,7 +16,6 @@
 // - ELIN (https://github.com/el1n)
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -87,6 +86,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // CM.c
@@ -6847,6 +6853,17 @@ void CmEditAccountDlgUpdate(HWND hWnd, CM_ACCOUNT *a)
 	GetTxtA(hWnd, E_HOSTNAME, a->ClientOption->Hostname, sizeof(a->ClientOption->Hostname));
 	Trim(a->ClientOption->Hostname);
 
+	if (InStr(a->ClientOption->Hostname, "/tcp"))
+	{
+		Check(hWnd, R_DISABLE_NATT, true);
+	}
+	else
+	{
+		Check(hWnd, R_DISABLE_NATT, false);
+	}
+
+	SetEnable(hWnd, R_DISABLE_NATT, !IsEmptyStr(a->ClientOption->Hostname));
+
 	// Port number
 	a->ClientOption->Port = GetInt(hWnd, C_PORT);
 
@@ -7278,6 +7295,15 @@ void CmEditAccountDlgInit(HWND hWnd, CM_ACCOUNT *a)
 	SetTextA(hWnd, E_HOSTNAME, a->ClientOption->Hostname);
 	StrCpy(a->old_server_name, sizeof(a->old_server_name), a->ClientOption->Hostname);
 
+	if (InStr(a->ClientOption->Hostname, "/tcp"))
+	{
+		Check(hWnd, R_DISABLE_NATT, true);
+	}
+	else
+	{
+		Check(hWnd, R_DISABLE_NATT, false);
+	}
+
 	// Port number
 	CbSetHeight(hWnd, C_PORT, 18);
 	CbAddStr(hWnd, C_PORT, _UU("CM_PORT_1"), 0);
@@ -7442,6 +7468,8 @@ UINT CmEditAccountDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, voi
 	NMHDR *n;
 	X *x;
 	K *k;
+	char tmp[MAX_PATH];
+	bool no_update_natt_check = false;
 	// Validate arguments
 	if (hWnd == NULL)
 	{
@@ -7483,6 +7511,39 @@ UINT CmEditAccountDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, voi
 		}
 		break;
 	case WM_COMMAND:
+		switch (wParam)
+		{
+		case R_DISABLE_NATT:
+			Zero(tmp, sizeof(tmp));
+			GetTxtA(hWnd, E_HOSTNAME, tmp, sizeof(tmp));
+
+			if (IsChecked(hWnd, R_DISABLE_NATT))
+			{
+				if (InStr(tmp, "/tcp") == false)
+				{
+					StrCat(tmp, sizeof(tmp), "/tcp");
+
+					SetTextA(hWnd, E_HOSTNAME, tmp);
+				}
+			}
+			else
+			{
+				if (InStr(tmp, "/tcp"))
+				{
+					UINT i = SearchStrEx(tmp, "/tcp", 0, false);
+
+					if (i != INFINITE)
+					{
+						tmp[i] = 0;
+
+						SetTextA(hWnd, E_HOSTNAME, tmp);
+					}
+				}
+			}
+
+			CmEditAccountDlgStartEnumHub(hWnd, a);
+			break;
+		}
 		switch (LOWORD(wParam))
 		{
 		case E_ACCOUNT_NAME:
@@ -7531,6 +7592,13 @@ UINT CmEditAccountDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, voi
 				break;
 			}
 			break;
+		case BN_PUSHED:
+			switch (LOWORD(wParam))
+			{
+			case R_DISABLE_NATT:
+				break;
+			}
+			break;
 		}
 		if (HIWORD(wParam) == 0)
 		{

+ 7 - 1
src/Cedar/CM.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // CM.h

+ 7 - 1
src/Cedar/CMInner.h

@@ -16,7 +16,6 @@
 // - ELIN (https://github.com/el1n)
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -87,6 +86,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // CMInner.h

+ 11 - 1
src/Cedar/Cedar.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Cedar.c
@@ -1246,6 +1252,8 @@ void CleanupCedar(CEDAR *c)
 
 	DeleteLock(c->OpenVPNPublicPortsLock);
 
+	DeleteLock(c->CurrentRegionLock);
+
 	Free(c);
 }
 
@@ -1505,6 +1513,8 @@ CEDAR *NewCedar(X *server_x, K *server_k)
 
 	c->CedarSuperLock = NewLock();
 
+	c->CurrentRegionLock = NewLock();
+
 #ifdef	BETA_NUMBER
 	c->Beta = BETA_NUMBER;
 #endif	// BETA_NUMBER

+ 16 - 8
src/Cedar/Cedar.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Cedar.h
@@ -114,10 +120,10 @@
 
 
 // Version number
-#define	CEDAR_VER					405
+#define	CEDAR_VER					406
 
 // Build Number
-#define	CEDAR_BUILD					9423
+#define	CEDAR_BUILD					9430
 
 // Beta number
 //#define	BETA_NUMBER					3
@@ -137,11 +143,11 @@
 
 // Specifies the build date
 #define	BUILD_DATE_Y		2014
-#define	BUILD_DATE_M		2
-#define	BUILD_DATE_D		18
-#define	BUILD_DATE_HO		19
-#define	BUILD_DATE_MI		9
-#define	BUILD_DATE_SE		44
+#define	BUILD_DATE_M		3
+#define	BUILD_DATE_D		20
+#define	BUILD_DATE_HO		4
+#define	BUILD_DATE_MI		8
+#define	BUILD_DATE_SE		6
 
 // Tolerable time difference
 #define	ALLOW_TIMESTAMP_DIFF		(UINT64)(3 * 24 * 60 * 60 * 1000)
@@ -1003,6 +1009,8 @@ typedef struct CEDAR
 	char CurrentDDnsFqdn[MAX_SIZE];	// FQDN of the current DDNS
 	char OpenVPNPublicPorts[MAX_SIZE];	// OpenVPN public UDP port list
 	LOCK *OpenVPNPublicPortsLock;	// Lock of OpenVPN public UDP port list
+	LOCK *CurrentRegionLock;		// Current region lock
+	char CurrentRegion[128];		// Current region
 } CEDAR;
 
 // Type of CEDAR

+ 7 - 1
src/Cedar/CedarPch.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // CedarPch.c

+ 7 - 1
src/Cedar/CedarPch.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // CedarPch.h

+ 7 - 1
src/Cedar/CedarType.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // CedarType.h

+ 7 - 1
src/Cedar/Client.c

@@ -16,7 +16,6 @@
 // - nattoheaven (https://github.com/nattoheaven)
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -87,6 +86,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Client.c

+ 7 - 1
src/Cedar/Client.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Client.h

+ 27 - 1
src/Cedar/Command.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Command.c
@@ -18846,6 +18852,13 @@ UINT PsDhcpGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
 		// To save the log
 		CtInsert(ct, _UU("CMD_SecureNatHostGet_Column_LOG"), t.SaveLog ? _UU("SEC_YES") : _UU("SEC_NO"));
 
+		// Push routing table
+		if (t.ApplyDhcpPushRoutes)
+		{
+			StrToUni(tmp, sizeof(tmp), t.DhcpPushRoutes);
+			CtInsert(ct, _UU("CMD_DhcpGet_Column_PUSHROUTE"), tmp);
+		}
+
 		CtFree(ct, c);
 	}
 
@@ -19013,6 +19026,7 @@ UINT PsDhcpSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
 		{"DNS2", CmdPrompt, _UU("CMD_DhcpSet_Prompt_DNS2"), CmdEvalIp, NULL},
 		{"DOMAIN", CmdPrompt, _UU("CMD_DhcpSet_Prompt_DOMAIN"), NULL, NULL},
 		{"LOG", CmdPrompt, _UU("CMD_NatSet_Prompt_LOG"), CmdEvalNotEmpty, NULL},
+		{"PUSHROUTE", NULL, _UU("CMD_DhcpSet_PUSHROUTE"), NULL, NULL},
 	};
 
 	// If virtual HUB is not selected, it's an error
@@ -19055,6 +19069,9 @@ UINT PsDhcpSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
 		StrCpy(t.DhcpDomainName, sizeof(t.DhcpDomainName), GetParamStr(o, "DOMAIN"));
 		t.SaveLog = GetParamYes(o, "LOG");
 
+		StrCpy(t.DhcpPushRoutes, sizeof(t.DhcpPushRoutes), GetParamStr(o, "PUSHROUTE"));
+		t.ApplyDhcpPushRoutes = true;
+
 		if (ok == false)
 		{
 			// Parameter is invalid
@@ -19075,6 +19092,15 @@ UINT PsDhcpSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
 				FreeParamValueList(o);
 				return ret;
 			}
+
+			if (IsEmptyStr(GetParamStr(o, "PUSHROUTE")) == false)
+			{
+				if (GetCapsBool(ps->CapsList, "b_suppport_push_route") == false &&
+					GetCapsBool(ps->CapsList, "b_suppport_push_route_config"))
+				{
+					CmdPrintError(c, ERR_NOT_SUPPORTED_FUNCTION_ON_OPENSOURCE);
+				}
+			}
 		}
 	}
 

+ 7 - 1
src/Cedar/Command.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Command.h

+ 7 - 1
src/Cedar/Connection.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Connection.c

+ 7 - 1
src/Cedar/Connection.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Connection.h

+ 7 - 1
src/Cedar/Console.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Console.c

+ 7 - 1
src/Cedar/Console.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Console.h

+ 15 - 1
src/Cedar/DDNS.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // DDNS.c
@@ -652,6 +658,7 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace
 		if (err == ERR_NO_ERROR)
 		{
 			char snat_t[MAX_SIZE];
+			char current_region[128];
 
 			// Current host name
 			PackGetStr(ret, "current_hostname", c->CurrentHostName, sizeof(c->CurrentHostName));
@@ -659,6 +666,7 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace
 			PackGetStr(ret, "current_ipv4", c->CurrentIPv4, sizeof(c->CurrentIPv4));
 			PackGetStr(ret, "current_ipv6", c->CurrentIPv6, sizeof(c->CurrentIPv6));
 			PackGetStr(ret, "dns_suffix", c->DnsSuffix, sizeof(c->DnsSuffix));
+			PackGetStr(ret, "current_region", current_region, sizeof(current_region));
 
 			// SecureNAT connectivity check parameters
 			Zero(snat_t, sizeof(snat_t));
@@ -688,6 +696,12 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace
 				c->CurrentHostName, c->CurrentFqdn,
 				c->CurrentIPv4, c->CurrentIPv6,
 				c->CurrentAzureIp, c->CurrentAzureTimestamp, c->CurrentAzureSignature, c->AzureCertHash);
+
+			if (IsEmptyStr(current_region) == false)
+			{
+				// Update the current region
+				SiUpdateCurrentRegion(c->Cedar, current_region, false);
+			}
 		}
 	}
 	Unlock(c->Lock);

+ 7 - 1
src/Cedar/DDNS.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // DDNS.h

+ 7 - 1
src/Cedar/Database.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Database.c

+ 7 - 1
src/Cedar/Database.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Database.h

+ 7 - 1
src/Cedar/EM.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // EM.c

+ 7 - 1
src/Cedar/EM.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // EM.h

+ 7 - 1
src/Cedar/EMInner.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // EMInner.h

+ 7 - 1
src/Cedar/EtherLog.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // EtherLog.c

+ 7 - 1
src/Cedar/EtherLog.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // EtherLog.h

+ 112 - 6
src/Cedar/Hub.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Hub.c
@@ -572,6 +578,8 @@ void DataToHubOptionStruct(HUB_OPTION *o, RPC_ADMIN_OPTION *ao)
 	GetHubAdminOptionDataAndSet(ao, "BroadcastLimiterStrictMode", &o->BroadcastLimiterStrictMode);
 	GetHubAdminOptionDataAndSet(ao, "MaxLoggedPacketsPerMinute", &o->MaxLoggedPacketsPerMinute);
 	GetHubAdminOptionDataAndSet(ao, "DoNotSaveHeavySecurityLogs", &o->DoNotSaveHeavySecurityLogs);
+	GetHubAdminOptionDataAndSet(ao, "DropBroadcastsInPrivacyFilterMode", &o->DropBroadcastsInPrivacyFilterMode);
+	GetHubAdminOptionDataAndSet(ao, "DropArpInPrivacyFilterMode", &o->DropArpInPrivacyFilterMode);
 }
 
 // Convert the contents of the HUB_OPTION to data
@@ -633,6 +641,8 @@ void HubOptionStructToData(RPC_ADMIN_OPTION *ao, HUB_OPTION *o, char *hub_name)
 	Add(aol, NewAdminOption("BroadcastLimiterStrictMode", o->BroadcastLimiterStrictMode));
 	Add(aol, NewAdminOption("MaxLoggedPacketsPerMinute", o->MaxLoggedPacketsPerMinute));
 	Add(aol, NewAdminOption("DoNotSaveHeavySecurityLogs", o->DoNotSaveHeavySecurityLogs));
+	Add(aol, NewAdminOption("DropBroadcastsInPrivacyFilterMode", o->DropBroadcastsInPrivacyFilterMode));
+	Add(aol, NewAdminOption("DropArpInPrivacyFilterMode", o->DropArpInPrivacyFilterMode));
 
 	Zero(ao, sizeof(RPC_ADMIN_OPTION));
 
@@ -775,13 +785,102 @@ char *GenerateAcStr(AC *ac)
 // Calculate whether the specified IP address is rejected by the access list
 bool IsIpDeniedByAcList(IP *ip, LIST *o)
 {
+	UINT i;
+	// Validate arguments
+	if (ip == NULL || o == NULL)
+	{
+		return false;
+	}
+
+	if (GetGlobalServerFlag(GSF_DISABLE_AC) != 0)
+	{
+		return false;
+	}
+
+	for (i = 0;i < LIST_NUM(o);i++)
+	{
+		AC *ac = LIST_DATA(o, i);
+
+		if (IsIpMaskedByAc(ip, ac))
+		{
+			if (ac->Deny == false)
+			{
+				return false;
+			}
+			else
+			{
+				return true;
+			}
+		}
+	}
+
 	return false;
 }
 
 // Calculate whether the specified IP address is masked by the AC
 bool IsIpMaskedByAc(IP *ip, AC *ac)
 {
-	return false;
+	UINT uip, net, mask;
+	// Validate arguments
+	if (ip == NULL || ac == NULL)
+	{
+		return false;
+	}
+
+	if (GetGlobalServerFlag(GSF_DISABLE_AC) != 0)
+	{
+		return false;
+	}
+
+	if (IsIP4(ip))
+	{
+		// IPv4
+		uip = IPToUINT(ip);
+		net = IPToUINT(&ac->IpAddress);
+		mask = IPToUINT(&ac->SubnetMask);
+
+		if (ac->Masked == false)
+		{
+			if (uip == net)
+			{
+				return true;
+			}
+		}
+		else
+		{
+			if ((uip & mask) == (net & mask))
+			{
+				return true;
+			}
+		}
+
+		return false;
+	}
+	else
+	{
+		// IPv6
+		if (ac->Masked == false)
+		{
+			if (CmpIpAddr(ip, &ac->IpAddress) == 0)
+			{
+				return true;
+			}
+		}
+		else
+		{
+			IP and1, and2;
+
+			IPAnd6(&and1, ip, &ac->SubnetMask);
+			IPAnd6(&and2, &ac->IpAddress, &ac->SubnetMask);
+
+			if (CmpIpAddr(&and1, &and2) == 0)
+			{
+				return true;
+			}
+		}
+
+		return false;
+	}
 }
 
 // Set the AC
@@ -3831,6 +3930,8 @@ void StorePacket(HUB *hub, SESSION *s, PKT *packet)
 	TRAFFIC traffic;
 	UINT64 now = Tick64();
 	bool no_heavy = false;
+	bool drop_broadcast_packet_privacy = false;
+	bool drop_arp_packet_privacy = false;
 	// Validate arguments
 	if (hub == NULL || packet == NULL)
 	{
@@ -3851,6 +3952,8 @@ void StorePacket(HUB *hub, SESSION *s, PKT *packet)
 	if (hub->Option != NULL)
 	{
 		no_heavy = hub->Option->DoNotSaveHeavySecurityLogs;
+		drop_broadcast_packet_privacy = hub->Option->DropBroadcastsInPrivacyFilterMode;
+		drop_arp_packet_privacy = hub->Option->DropArpInPrivacyFilterMode;
 	}
 
 	// Lock the entire MAC address table
@@ -4760,13 +4863,13 @@ UPDATE_FDB:
 						}
 
 						if (s != NULL &&
-							(packet->BroadcastPacket == false &&
+							((drop_broadcast_packet_privacy || packet->BroadcastPacket == false) &&
 							s->Policy->PrivacyFilter &&
 							dest_session->Policy->PrivacyFilter)
 							)
 						{
 							// Privacy filter
-							if (packet->TypeL3 != L3_ARPV4)
+							if (drop_arp_packet_privacy || packet->TypeL3 != L3_ARPV4)
 							{
 								goto DISCARD_UNICAST_PACKET;
 							}
@@ -4942,13 +5045,13 @@ DISCARD_UNICAST_PACKET:
 								}
 
 								if (s != NULL &&
-									(packet->BroadcastPacket == false &&
+									((drop_broadcast_packet_privacy || packet->BroadcastPacket == false) &&
 									s->Policy->PrivacyFilter &&
 									dest_session->Policy->PrivacyFilter)
 									)
 								{
 									// Privacy filter
-									if (packet->TypeL3 != L3_ARPV4)
+									if (drop_arp_packet_privacy || packet->TypeL3 != L3_ARPV4)
 									{
 										discard = true;
 									}
@@ -6858,6 +6961,9 @@ HUB *NewHub(CEDAR *cedar, char *HubName, HUB_OPTION *option)
 		h->Option->VlanTypeId = MAC_PROTO_TAGVLAN;
 	}
 
+	h->Option->DropBroadcastsInPrivacyFilterMode = true;
+	h->Option->DropArpInPrivacyFilterMode = true;
+
 	Rand(h->HubSignature, sizeof(h->HubSignature));
 
 	// SecureNAT related

+ 9 - 1
src/Cedar/Hub.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // Hub.h
@@ -245,6 +251,8 @@ struct HUB_OPTION
 	bool BroadcastLimiterStrictMode;	// Strictly broadcast packets limiting mode
 	UINT MaxLoggedPacketsPerMinute;		// Maximum number of logging target packets per minute
 	bool DoNotSaveHeavySecurityLogs;	// Do not take heavy security log
+	bool DropBroadcastsInPrivacyFilterMode;	// Drop broadcasting packets if the both source and destination session is PrivacyFilter mode
+	bool DropArpInPrivacyFilterMode;	// Drop ARP packets if the both source and destination session is PrivacyFilter mode
 };
 
 // MAC table entry

+ 7 - 1
src/Cedar/IPsec.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec.c

+ 7 - 1
src/Cedar/IPsec.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec.h

+ 7 - 1
src/Cedar/IPsec_EtherIP.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_EtherIP.c

+ 7 - 1
src/Cedar/IPsec_EtherIP.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_EtherIP.h

+ 7 - 1
src/Cedar/IPsec_IKE.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_IKE.c

+ 7 - 1
src/Cedar/IPsec_IKE.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_IKE.h

+ 33 - 6
src/Cedar/IPsec_IPC.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_IPC.c
@@ -225,7 +231,7 @@ void IPCAsyncThreadProc(THREAD *thread, void *param)
 				UINTToIP(&subnet, cao.SubnetMask);
 				UINTToIP(&gw, cao.Gateway);
 
-				IPCSetIPv4Parameters(a->Ipc, &ip, &subnet, &gw);
+				IPCSetIPv4Parameters(a->Ipc, &ip, &subnet, &gw, &cao.ClasslessRoute);
 
 				a->L3NextDhcpRenewTick = Tick64() + a->L3DhcpRenewInterval;
 			}
@@ -1574,7 +1580,7 @@ void IPCProcessL3EventsEx(IPC *ipc, UINT64 now)
 }
 
 // Configure IPv4 parameters
-bool IPCSetIPv4Parameters(IPC *ipc, IP *ip, IP *subnet, IP *gw)
+bool IPCSetIPv4Parameters(IPC *ipc, IP *ip, IP *subnet, IP *gw, DHCP_CLASSLESS_ROUTE_TABLE *rt)
 {
 	bool changed = false;
 	// Validate arguments
@@ -1616,6 +1622,16 @@ bool IPCSetIPv4Parameters(IPC *ipc, IP *ip, IP *subnet, IP *gw)
 
 	GetBroadcastAddress4(&ipc->BroadcastAddress, ip, subnet);
 
+	if (rt != NULL && rt->NumExistingRoutes >= 1)
+	{
+		if (Cmp(&ipc->ClasslessRoute, rt, sizeof(DHCP_CLASSLESS_ROUTE_TABLE)) != 0)
+		{
+			changed = true;
+
+			Copy(&ipc->ClasslessRoute, rt, sizeof(DHCP_CLASSLESS_ROUTE_TABLE));
+		}
+	}
+
 	return changed;
 }
 
@@ -1626,6 +1642,7 @@ void IPCSendIPv4(IPC *ipc, void *data, UINT size)
 	IP ip_dst_local;
 	bool is_broadcast = false;
 	UCHAR uc;
+	DHCP_CLASSLESS_ROUTE *r = NULL;
 	// Validate arguments
 	if (ipc == NULL || data == NULL || size < 20 || size > 1500)
 	{
@@ -1664,11 +1681,19 @@ void IPCSendIPv4(IPC *ipc, void *data, UINT size)
 
 	// Get the IP address of the relayed destination
 	Copy(&ip_dst_local, &ip_dst, sizeof(IP));
-	if (ip_dst.addr[0]==8)
-		DoNothing();
+
 	if (IsInSameNetwork4(&ip_dst, &ipc->ClientIPAddress, &ipc->SubnetMask) == false)
 	{
-		Copy(&ip_dst_local, &ipc->DefaultGateway, sizeof(IP));
+		r = GetBestClasslessRoute(&ipc->ClasslessRoute, &ip_dst);
+
+		if (r == NULL)
+		{
+			Copy(&ip_dst_local, &ipc->DefaultGateway, sizeof(IP));
+		}
+		else
+		{
+			Copy(&ip_dst_local, &r->Gateway, sizeof(IP));
+		}
 	}
 
 	if (CmpIpAddr(&ipc->BroadcastAddress, &ip_dst) == 0)
@@ -1709,9 +1734,11 @@ void IPCSendIPv4(IPC *ipc, void *data, UINT size)
 
 	if (IsZeroIP(&ip_dst_local))
 	{
+		// Unable to send
 		return;
 	}
 
+	// Send a unicast packet
 	IPCSendIPv4Unicast(ipc, data, size, &ip_dst_local);
 }
 

+ 9 - 2
src/Cedar/IPsec_IPC.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_IPC.h
@@ -187,6 +193,7 @@ struct IPC
 	QUEUE *IPv4RecviedQueue;			// IPv4 reception queue
 	TUBE_FLUSH_LIST *FlushList;			// Tube Flush List
 	UCHAR MsChapV2_ServerResponse[20];	// Server response
+	DHCP_CLASSLESS_ROUTE_TABLE ClasslessRoute;	// Classless routing table
 };
 
 // MS-CHAPv2 authentication information
@@ -214,7 +221,7 @@ BLOCK *IPCRecvIPv4(IPC *ipc);
 void IPCProcessInterrupts(IPC *ipc);
 void IPCProcessL3Events(IPC *ipc);
 void IPCProcessL3EventsEx(IPC *ipc, UINT64 now);
-bool IPCSetIPv4Parameters(IPC *ipc, IP *ip, IP *subnet, IP *gw);
+bool IPCSetIPv4Parameters(IPC *ipc, IP *ip, IP *subnet, IP *gw, DHCP_CLASSLESS_ROUTE_TABLE *rt);
 IPC_ARP *IPCNewARP(IP *ip, UCHAR *mac_address);
 void IPCFreeARP(IPC_ARP *a);
 int IPCCmpArpTable(void *p1, void *p2);

+ 7 - 1
src/Cedar/IPsec_IkePacket.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_IkePacket.c

+ 7 - 1
src/Cedar/IPsec_IkePacket.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_IkePacket.h

+ 7 - 1
src/Cedar/IPsec_L2TP.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_L2TP.c

+ 7 - 1
src/Cedar/IPsec_L2TP.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_L2TP.h

+ 10 - 4
src/Cedar/IPsec_PPP.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // Thank you for your cooperation.
+// 
+// 
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+// 
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
 
 
 // IPsec_PPP.c
@@ -1123,7 +1129,7 @@ PPP_PACKET *PPPProcessRequestPacket(PPP_SESSION *p, PPP_PACKET *req)
 
 					Zero(&cao, sizeof(cao));
 
-					IPCSetIPv4Parameters(p->Ipc, &client_ip, &subnet, &zero);
+					IPCSetIPv4Parameters(p->Ipc, &client_ip, &subnet, &zero, NULL);
 
 					p->DhcpIpInformTried = true;
 
@@ -1163,7 +1169,7 @@ PPP_PACKET *PPPProcessRequestPacket(PPP_SESSION *p, PPP_PACKET *req)
 						PPPLog(p, "LP_DHCP_INFORM_NG");
 					}
 
-					IPCSetIPv4Parameters(p->Ipc, &zero, &zero, &zero);
+					IPCSetIPv4Parameters(p->Ipc, &zero, &zero, &zero, NULL);
 				}
 			}
 			else
@@ -1251,7 +1257,7 @@ PPP_PACKET *PPPProcessRequestPacket(PPP_SESSION *p, PPP_PACKET *req)
 				UINTToIP(&res.WinsServer1, p->ClientAddressOption.WinsServer);
 				UINTToIP(&res.WinsServer2, p->ClientAddressOption.WinsServer2);
 
-				if (IPCSetIPv4Parameters(p->Ipc, &res.IpAddress, &subnet, &gw))
+				if (IPCSetIPv4Parameters(p->Ipc, &res.IpAddress, &subnet, &gw, &p->ClientAddressOption.ClasslessRoute))
 				{
 					char client_ip_str[64];
 					char subnet_str[64], defgw_str[64];

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików