Browse Source

v4.06-9430-beta

dnobori 11 years ago
parent
commit
cf2a6a42bc
100 changed files with 972 additions and 124 deletions
  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
   - Dexter Ang
     https://github.com/thepoch
     https://github.com/thepoch
 
 
+  - YF
+    https://github.com/yfdyh000
+
 
 
 JOIN THE SOFTETHER VPN DEVELOPMENT
 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.
 You need to install the following software to build SoftEther VPN for Windows.
 
 
 - Microsoft Windows XP, Vista, 7, 8 or later.
 - 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:
 * 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 2010, 2012 or 2013 is currently not supported.
   Visual Studio 2008 Express Edition is not supported.
   Visual Studio 2008 Express Edition is not supported.
   Standard Edition, Professional Edition, Team System or Team Suite is
   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.
 - AES 256-bit and RSA 4096-bit encryptions.
 - Sufficient security features such as logging and firewall inner
 - Sufficient security features such as logging and firewall inner
   VPN tunnel.
   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
 - 1Gbps-class high-speed throughput performance with low memory and
   CPU usage.
   CPU usage.
 - Windows, Linux, Mac, Android, iPhone, iPad and Windows Phone are
 - 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.
 - The VPN server runs on Windows, Linux, FreeBSD, Solaris and Mac OS X.
 - Configure All settings on GUI.
 - Configure All settings on GUI.
 - Multi-languages (English, Japanese and Simplified-Chinese).
 - 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/.
 - 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.
 - AES 256-bit and RSA 4096-bit encryptions.
 - Sufficient security features such as logging and firewall inner
 - Sufficient security features such as logging and firewall inner
   VPN tunnel.
   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
 - 1Gbps-class high-speed throughput performance with low memory and
   CPU usage.
   CPU usage.
 - Windows, Linux, Mac, Android, iPhone, iPad and Windows Phone are
 - 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.
 - The VPN server runs on Windows, Linux, FreeBSD, Solaris and Mac OS X.
 - Configure All settings on GUI.
 - Configure All settings on GUI.
 - Multi-languages (English, Japanese and Simplified-Chinese).
 - 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/.
 - 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
   - ELIN
     https://github.com/el1n
     https://github.com/el1n
 
 
+  - YF
+    https://github.com/yfdyh000
+
+
 SoftEther Corporation, the distributor of PacketiX VPN, appreciates all
 SoftEther Corporation, the distributor of PacketiX VPN, appreciates all
 contributors for SoftEther VPN Project very much.
 contributors for SoftEther VPN Project very much.
 
 

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

@@ -40,7 +40,7 @@ start() {
 
 
 stop() {
 stop() {
 	echo -n $"Stopping $prog: "
 	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=$?
 	retval=$?
 	echo
 	echo
 	[ $retval -eq 0 ] && rm -f $lockfile
 	[ $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.
 You need to install the following software to build SoftEther VPN for Windows.
 
 
 - Microsoft Windows XP, Vista, 7, 8 or later.
 - 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:
 * 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 2010, 2012 or 2013 is currently not supported.
   Visual Studio 2008 Express Edition is not supported.
   Visual Studio 2008 Express Edition is not supported.
   Standard Edition, Professional Edition, Team System or Team Suite is
   Standard Edition, Professional Edition, Team System or Team Suite is

+ 7 - 1
src/BuildUtil/BuildUtilCommands.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;

+ 7 - 1
src/BuildUtil/BuildUtilMain.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;

+ 7 - 1
src/BuildUtil/CodeSign.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 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.
 // Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;

+ 7 - 1
src/BuildUtil/PEUtil.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;

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

@@ -9,7 +9,6 @@
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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 {
 namespace BuildUtil.Properties {

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

@@ -9,7 +9,6 @@
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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 {
 namespace BuildUtil.Properties {

+ 7 - 1
src/BuildUtil/Test.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;

+ 17 - 1
src/BuildUtil/UnixBuildSoftwares.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;
@@ -258,6 +264,16 @@ namespace BuildUtil
 				tar.AddFileSimple(targetName + @"\" + "ReadMeFirst_License.txt", destData, 0, destData.Length, DateTime.Now);
 				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)
 			if (true)
 			{
 			{
 				string srcData = File.ReadAllText(Path.Combine(Paths.BinDirName, @"hamcore\warning_ja.txt"),
 				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
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;

+ 7 - 1
src/BuildUtil/VpnBuilderConfig.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;

+ 7 - 1
src/BuildUtil/VpnBuilderConfigTypes.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;

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

@@ -9,7 +9,6 @@
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;

+ 7 - 1
src/BuildUtil/Win32BuildUtil.cs

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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;
 using System;

+ 7 - 1
src/Cedar/Account.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Account.c

+ 7 - 1
src/Cedar/Account.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Account.h

+ 51 - 6
src/Cedar/Admin.c

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

+ 7 - 1
src/Cedar/Admin.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Admin.h

+ 7 - 1
src/Cedar/AzureClient.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // AzureClient.c

+ 7 - 1
src/Cedar/AzureClient.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // AzureClient.h

+ 7 - 1
src/Cedar/AzureServer.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // AzureServer.c

+ 7 - 1
src/Cedar/AzureServer.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // AzureServer.h

+ 7 - 1
src/Cedar/Bridge.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Bridge.c

+ 7 - 1
src/Cedar/Bridge.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Bridge.h

+ 7 - 1
src/Cedar/BridgeUnix.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // BridgeUnix.c

+ 7 - 1
src/Cedar/BridgeUnix.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // BridgeUnix.h

+ 7 - 1
src/Cedar/BridgeWin32.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // BridgeWin32.c

+ 7 - 1
src/Cedar/BridgeWin32.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // BridgeWin32.h

+ 69 - 1
src/Cedar/CM.c

@@ -16,7 +16,6 @@
 // - ELIN (https://github.com/el1n)
 // - ELIN (https://github.com/el1n)
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // CM.c
@@ -6847,6 +6853,17 @@ void CmEditAccountDlgUpdate(HWND hWnd, CM_ACCOUNT *a)
 	GetTxtA(hWnd, E_HOSTNAME, a->ClientOption->Hostname, sizeof(a->ClientOption->Hostname));
 	GetTxtA(hWnd, E_HOSTNAME, a->ClientOption->Hostname, sizeof(a->ClientOption->Hostname));
 	Trim(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
 	// Port number
 	a->ClientOption->Port = GetInt(hWnd, C_PORT);
 	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);
 	SetTextA(hWnd, E_HOSTNAME, a->ClientOption->Hostname);
 	StrCpy(a->old_server_name, sizeof(a->old_server_name), 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
 	// Port number
 	CbSetHeight(hWnd, C_PORT, 18);
 	CbSetHeight(hWnd, C_PORT, 18);
 	CbAddStr(hWnd, C_PORT, _UU("CM_PORT_1"), 0);
 	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;
 	NMHDR *n;
 	X *x;
 	X *x;
 	K *k;
 	K *k;
+	char tmp[MAX_PATH];
+	bool no_update_natt_check = false;
 	// Validate arguments
 	// Validate arguments
 	if (hWnd == NULL)
 	if (hWnd == NULL)
 	{
 	{
@@ -7483,6 +7511,39 @@ UINT CmEditAccountDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, voi
 		}
 		}
 		break;
 		break;
 	case WM_COMMAND:
 	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))
 		switch (LOWORD(wParam))
 		{
 		{
 		case E_ACCOUNT_NAME:
 		case E_ACCOUNT_NAME:
@@ -7531,6 +7592,13 @@ UINT CmEditAccountDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, voi
 				break;
 				break;
 			}
 			}
 			break;
 			break;
+		case BN_PUSHED:
+			switch (LOWORD(wParam))
+			{
+			case R_DISABLE_NATT:
+				break;
+			}
+			break;
 		}
 		}
 		if (HIWORD(wParam) == 0)
 		if (HIWORD(wParam) == 0)
 		{
 		{

+ 7 - 1
src/Cedar/CM.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // CM.h

+ 7 - 1
src/Cedar/CMInner.h

@@ -16,7 +16,6 @@
 // - ELIN (https://github.com/el1n)
 // - ELIN (https://github.com/el1n)
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // CMInner.h

+ 11 - 1
src/Cedar/Cedar.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Cedar.c
@@ -1246,6 +1252,8 @@ void CleanupCedar(CEDAR *c)
 
 
 	DeleteLock(c->OpenVPNPublicPortsLock);
 	DeleteLock(c->OpenVPNPublicPortsLock);
 
 
+	DeleteLock(c->CurrentRegionLock);
+
 	Free(c);
 	Free(c);
 }
 }
 
 
@@ -1505,6 +1513,8 @@ CEDAR *NewCedar(X *server_x, K *server_k)
 
 
 	c->CedarSuperLock = NewLock();
 	c->CedarSuperLock = NewLock();
 
 
+	c->CurrentRegionLock = NewLock();
+
 #ifdef	BETA_NUMBER
 #ifdef	BETA_NUMBER
 	c->Beta = BETA_NUMBER;
 	c->Beta = BETA_NUMBER;
 #endif	// BETA_NUMBER
 #endif	// BETA_NUMBER

+ 16 - 8
src/Cedar/Cedar.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Cedar.h
@@ -114,10 +120,10 @@
 
 
 
 
 // Version number
 // Version number
-#define	CEDAR_VER					405
+#define	CEDAR_VER					406
 
 
 // Build Number
 // Build Number
-#define	CEDAR_BUILD					9423
+#define	CEDAR_BUILD					9430
 
 
 // Beta number
 // Beta number
 //#define	BETA_NUMBER					3
 //#define	BETA_NUMBER					3
@@ -137,11 +143,11 @@
 
 
 // Specifies the build date
 // Specifies the build date
 #define	BUILD_DATE_Y		2014
 #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
 // Tolerable time difference
 #define	ALLOW_TIMESTAMP_DIFF		(UINT64)(3 * 24 * 60 * 60 * 1000)
 #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 CurrentDDnsFqdn[MAX_SIZE];	// FQDN of the current DDNS
 	char OpenVPNPublicPorts[MAX_SIZE];	// OpenVPN public UDP port list
 	char OpenVPNPublicPorts[MAX_SIZE];	// OpenVPN public UDP port list
 	LOCK *OpenVPNPublicPortsLock;	// Lock of 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;
 } CEDAR;
 
 
 // Type of CEDAR
 // Type of CEDAR

+ 7 - 1
src/Cedar/CedarPch.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // CedarPch.c

+ 7 - 1
src/Cedar/CedarPch.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // CedarPch.h

+ 7 - 1
src/Cedar/CedarType.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // CedarType.h

+ 7 - 1
src/Cedar/Client.c

@@ -16,7 +16,6 @@
 // - nattoheaven (https://github.com/nattoheaven)
 // - nattoheaven (https://github.com/nattoheaven)
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Client.c

+ 7 - 1
src/Cedar/Client.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Client.h

+ 27 - 1
src/Cedar/Command.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Command.c
@@ -18846,6 +18852,13 @@ UINT PsDhcpGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
 		// To save the log
 		// To save the log
 		CtInsert(ct, _UU("CMD_SecureNatHostGet_Column_LOG"), t.SaveLog ? _UU("SEC_YES") : _UU("SEC_NO"));
 		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);
 		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},
 		{"DNS2", CmdPrompt, _UU("CMD_DhcpSet_Prompt_DNS2"), CmdEvalIp, NULL},
 		{"DOMAIN", CmdPrompt, _UU("CMD_DhcpSet_Prompt_DOMAIN"), NULL, NULL},
 		{"DOMAIN", CmdPrompt, _UU("CMD_DhcpSet_Prompt_DOMAIN"), NULL, NULL},
 		{"LOG", CmdPrompt, _UU("CMD_NatSet_Prompt_LOG"), CmdEvalNotEmpty, 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
 	// 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"));
 		StrCpy(t.DhcpDomainName, sizeof(t.DhcpDomainName), GetParamStr(o, "DOMAIN"));
 		t.SaveLog = GetParamYes(o, "LOG");
 		t.SaveLog = GetParamYes(o, "LOG");
 
 
+		StrCpy(t.DhcpPushRoutes, sizeof(t.DhcpPushRoutes), GetParamStr(o, "PUSHROUTE"));
+		t.ApplyDhcpPushRoutes = true;
+
 		if (ok == false)
 		if (ok == false)
 		{
 		{
 			// Parameter is invalid
 			// Parameter is invalid
@@ -19075,6 +19092,15 @@ UINT PsDhcpSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
 				FreeParamValueList(o);
 				FreeParamValueList(o);
 				return ret;
 				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
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Command.h

+ 7 - 1
src/Cedar/Connection.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Connection.c

+ 7 - 1
src/Cedar/Connection.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Connection.h

+ 7 - 1
src/Cedar/Console.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Console.c

+ 7 - 1
src/Cedar/Console.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Console.h

+ 15 - 1
src/Cedar/DDNS.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // DDNS.c
@@ -652,6 +658,7 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace
 		if (err == ERR_NO_ERROR)
 		if (err == ERR_NO_ERROR)
 		{
 		{
 			char snat_t[MAX_SIZE];
 			char snat_t[MAX_SIZE];
+			char current_region[128];
 
 
 			// Current host name
 			// Current host name
 			PackGetStr(ret, "current_hostname", c->CurrentHostName, sizeof(c->CurrentHostName));
 			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_ipv4", c->CurrentIPv4, sizeof(c->CurrentIPv4));
 			PackGetStr(ret, "current_ipv6", c->CurrentIPv6, sizeof(c->CurrentIPv6));
 			PackGetStr(ret, "current_ipv6", c->CurrentIPv6, sizeof(c->CurrentIPv6));
 			PackGetStr(ret, "dns_suffix", c->DnsSuffix, sizeof(c->DnsSuffix));
 			PackGetStr(ret, "dns_suffix", c->DnsSuffix, sizeof(c->DnsSuffix));
+			PackGetStr(ret, "current_region", current_region, sizeof(current_region));
 
 
 			// SecureNAT connectivity check parameters
 			// SecureNAT connectivity check parameters
 			Zero(snat_t, sizeof(snat_t));
 			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->CurrentHostName, c->CurrentFqdn,
 				c->CurrentIPv4, c->CurrentIPv6,
 				c->CurrentIPv4, c->CurrentIPv6,
 				c->CurrentAzureIp, c->CurrentAzureTimestamp, c->CurrentAzureSignature, c->AzureCertHash);
 				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);
 	Unlock(c->Lock);

+ 7 - 1
src/Cedar/DDNS.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // DDNS.h

+ 7 - 1
src/Cedar/Database.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Database.c

+ 7 - 1
src/Cedar/Database.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Database.h

+ 7 - 1
src/Cedar/EM.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // EM.c

+ 7 - 1
src/Cedar/EM.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // EM.h

+ 7 - 1
src/Cedar/EMInner.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // EMInner.h

+ 7 - 1
src/Cedar/EtherLog.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // EtherLog.c

+ 7 - 1
src/Cedar/EtherLog.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // EtherLog.h

+ 112 - 6
src/Cedar/Hub.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Hub.c
@@ -572,6 +578,8 @@ void DataToHubOptionStruct(HUB_OPTION *o, RPC_ADMIN_OPTION *ao)
 	GetHubAdminOptionDataAndSet(ao, "BroadcastLimiterStrictMode", &o->BroadcastLimiterStrictMode);
 	GetHubAdminOptionDataAndSet(ao, "BroadcastLimiterStrictMode", &o->BroadcastLimiterStrictMode);
 	GetHubAdminOptionDataAndSet(ao, "MaxLoggedPacketsPerMinute", &o->MaxLoggedPacketsPerMinute);
 	GetHubAdminOptionDataAndSet(ao, "MaxLoggedPacketsPerMinute", &o->MaxLoggedPacketsPerMinute);
 	GetHubAdminOptionDataAndSet(ao, "DoNotSaveHeavySecurityLogs", &o->DoNotSaveHeavySecurityLogs);
 	GetHubAdminOptionDataAndSet(ao, "DoNotSaveHeavySecurityLogs", &o->DoNotSaveHeavySecurityLogs);
+	GetHubAdminOptionDataAndSet(ao, "DropBroadcastsInPrivacyFilterMode", &o->DropBroadcastsInPrivacyFilterMode);
+	GetHubAdminOptionDataAndSet(ao, "DropArpInPrivacyFilterMode", &o->DropArpInPrivacyFilterMode);
 }
 }
 
 
 // Convert the contents of the HUB_OPTION to data
 // 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("BroadcastLimiterStrictMode", o->BroadcastLimiterStrictMode));
 	Add(aol, NewAdminOption("MaxLoggedPacketsPerMinute", o->MaxLoggedPacketsPerMinute));
 	Add(aol, NewAdminOption("MaxLoggedPacketsPerMinute", o->MaxLoggedPacketsPerMinute));
 	Add(aol, NewAdminOption("DoNotSaveHeavySecurityLogs", o->DoNotSaveHeavySecurityLogs));
 	Add(aol, NewAdminOption("DoNotSaveHeavySecurityLogs", o->DoNotSaveHeavySecurityLogs));
+	Add(aol, NewAdminOption("DropBroadcastsInPrivacyFilterMode", o->DropBroadcastsInPrivacyFilterMode));
+	Add(aol, NewAdminOption("DropArpInPrivacyFilterMode", o->DropArpInPrivacyFilterMode));
 
 
 	Zero(ao, sizeof(RPC_ADMIN_OPTION));
 	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
 // Calculate whether the specified IP address is rejected by the access list
 bool IsIpDeniedByAcList(IP *ip, LIST *o)
 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;
 	return false;
 }
 }
 
 
 // Calculate whether the specified IP address is masked by the AC
 // Calculate whether the specified IP address is masked by the AC
 bool IsIpMaskedByAc(IP *ip, AC *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
 // Set the AC
@@ -3831,6 +3930,8 @@ void StorePacket(HUB *hub, SESSION *s, PKT *packet)
 	TRAFFIC traffic;
 	TRAFFIC traffic;
 	UINT64 now = Tick64();
 	UINT64 now = Tick64();
 	bool no_heavy = false;
 	bool no_heavy = false;
+	bool drop_broadcast_packet_privacy = false;
+	bool drop_arp_packet_privacy = false;
 	// Validate arguments
 	// Validate arguments
 	if (hub == NULL || packet == NULL)
 	if (hub == NULL || packet == NULL)
 	{
 	{
@@ -3851,6 +3952,8 @@ void StorePacket(HUB *hub, SESSION *s, PKT *packet)
 	if (hub->Option != NULL)
 	if (hub->Option != NULL)
 	{
 	{
 		no_heavy = hub->Option->DoNotSaveHeavySecurityLogs;
 		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
 	// Lock the entire MAC address table
@@ -4760,13 +4863,13 @@ UPDATE_FDB:
 						}
 						}
 
 
 						if (s != NULL &&
 						if (s != NULL &&
-							(packet->BroadcastPacket == false &&
+							((drop_broadcast_packet_privacy || packet->BroadcastPacket == false) &&
 							s->Policy->PrivacyFilter &&
 							s->Policy->PrivacyFilter &&
 							dest_session->Policy->PrivacyFilter)
 							dest_session->Policy->PrivacyFilter)
 							)
 							)
 						{
 						{
 							// Privacy filter
 							// Privacy filter
-							if (packet->TypeL3 != L3_ARPV4)
+							if (drop_arp_packet_privacy || packet->TypeL3 != L3_ARPV4)
 							{
 							{
 								goto DISCARD_UNICAST_PACKET;
 								goto DISCARD_UNICAST_PACKET;
 							}
 							}
@@ -4942,13 +5045,13 @@ DISCARD_UNICAST_PACKET:
 								}
 								}
 
 
 								if (s != NULL &&
 								if (s != NULL &&
-									(packet->BroadcastPacket == false &&
+									((drop_broadcast_packet_privacy || packet->BroadcastPacket == false) &&
 									s->Policy->PrivacyFilter &&
 									s->Policy->PrivacyFilter &&
 									dest_session->Policy->PrivacyFilter)
 									dest_session->Policy->PrivacyFilter)
 									)
 									)
 								{
 								{
 									// Privacy filter
 									// Privacy filter
-									if (packet->TypeL3 != L3_ARPV4)
+									if (drop_arp_packet_privacy || packet->TypeL3 != L3_ARPV4)
 									{
 									{
 										discard = true;
 										discard = true;
 									}
 									}
@@ -6858,6 +6961,9 @@ HUB *NewHub(CEDAR *cedar, char *HubName, HUB_OPTION *option)
 		h->Option->VlanTypeId = MAC_PROTO_TAGVLAN;
 		h->Option->VlanTypeId = MAC_PROTO_TAGVLAN;
 	}
 	}
 
 
+	h->Option->DropBroadcastsInPrivacyFilterMode = true;
+	h->Option->DropArpInPrivacyFilterMode = true;
+
 	Rand(h->HubSignature, sizeof(h->HubSignature));
 	Rand(h->HubSignature, sizeof(h->HubSignature));
 
 
 	// SecureNAT related
 	// SecureNAT related

+ 9 - 1
src/Cedar/Hub.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // Hub.h
@@ -245,6 +251,8 @@ struct HUB_OPTION
 	bool BroadcastLimiterStrictMode;	// Strictly broadcast packets limiting mode
 	bool BroadcastLimiterStrictMode;	// Strictly broadcast packets limiting mode
 	UINT MaxLoggedPacketsPerMinute;		// Maximum number of logging target packets per minute
 	UINT MaxLoggedPacketsPerMinute;		// Maximum number of logging target packets per minute
 	bool DoNotSaveHeavySecurityLogs;	// Do not take heavy security log
 	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
 // MAC table entry

+ 7 - 1
src/Cedar/IPsec.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec.c

+ 7 - 1
src/Cedar/IPsec.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec.h

+ 7 - 1
src/Cedar/IPsec_EtherIP.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec_EtherIP.c

+ 7 - 1
src/Cedar/IPsec_EtherIP.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec_EtherIP.h

+ 7 - 1
src/Cedar/IPsec_IKE.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec_IKE.c

+ 7 - 1
src/Cedar/IPsec_IKE.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec_IKE.h

+ 33 - 6
src/Cedar/IPsec_IPC.c

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

+ 9 - 2
src/Cedar/IPsec_IPC.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec_IPC.h
@@ -187,6 +193,7 @@ struct IPC
 	QUEUE *IPv4RecviedQueue;			// IPv4 reception queue
 	QUEUE *IPv4RecviedQueue;			// IPv4 reception queue
 	TUBE_FLUSH_LIST *FlushList;			// Tube Flush List
 	TUBE_FLUSH_LIST *FlushList;			// Tube Flush List
 	UCHAR MsChapV2_ServerResponse[20];	// Server response
 	UCHAR MsChapV2_ServerResponse[20];	// Server response
+	DHCP_CLASSLESS_ROUTE_TABLE ClasslessRoute;	// Classless routing table
 };
 };
 
 
 // MS-CHAPv2 authentication information
 // MS-CHAPv2 authentication information
@@ -214,7 +221,7 @@ BLOCK *IPCRecvIPv4(IPC *ipc);
 void IPCProcessInterrupts(IPC *ipc);
 void IPCProcessInterrupts(IPC *ipc);
 void IPCProcessL3Events(IPC *ipc);
 void IPCProcessL3Events(IPC *ipc);
 void IPCProcessL3EventsEx(IPC *ipc, UINT64 now);
 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);
 IPC_ARP *IPCNewARP(IP *ip, UCHAR *mac_address);
 void IPCFreeARP(IPC_ARP *a);
 void IPCFreeARP(IPC_ARP *a);
 int IPCCmpArpTable(void *p1, void *p2);
 int IPCCmpArpTable(void *p1, void *p2);

+ 7 - 1
src/Cedar/IPsec_IkePacket.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec_IkePacket.c

+ 7 - 1
src/Cedar/IPsec_IkePacket.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec_IkePacket.h

+ 7 - 1
src/Cedar/IPsec_L2TP.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec_L2TP.c

+ 7 - 1
src/Cedar/IPsec_L2TP.h

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec_L2TP.h

+ 10 - 4
src/Cedar/IPsec_PPP.c

@@ -14,7 +14,6 @@
 // Author: Daiyuu Nobori
 // Author: Daiyuu Nobori
 // Comments: Tetsuo Sugiyama, Ph.D.
 // Comments: Tetsuo Sugiyama, Ph.D.
 // 
 // 
-// 
 // This program is free software; you can redistribute it and/or
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // modify it under the terms of the GNU General Public License
 // version 2 as published by the Free Software Foundation.
 // 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.
 // http://www.softether.org/ and ask your question on the users forum.
 // 
 // 
 // Thank you for your cooperation.
 // 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
 // IPsec_PPP.c
@@ -1123,7 +1129,7 @@ PPP_PACKET *PPPProcessRequestPacket(PPP_SESSION *p, PPP_PACKET *req)
 
 
 					Zero(&cao, sizeof(cao));
 					Zero(&cao, sizeof(cao));
 
 
-					IPCSetIPv4Parameters(p->Ipc, &client_ip, &subnet, &zero);
+					IPCSetIPv4Parameters(p->Ipc, &client_ip, &subnet, &zero, NULL);
 
 
 					p->DhcpIpInformTried = true;
 					p->DhcpIpInformTried = true;
 
 
@@ -1163,7 +1169,7 @@ PPP_PACKET *PPPProcessRequestPacket(PPP_SESSION *p, PPP_PACKET *req)
 						PPPLog(p, "LP_DHCP_INFORM_NG");
 						PPPLog(p, "LP_DHCP_INFORM_NG");
 					}
 					}
 
 
-					IPCSetIPv4Parameters(p->Ipc, &zero, &zero, &zero);
+					IPCSetIPv4Parameters(p->Ipc, &zero, &zero, &zero, NULL);
 				}
 				}
 			}
 			}
 			else
 			else
@@ -1251,7 +1257,7 @@ PPP_PACKET *PPPProcessRequestPacket(PPP_SESSION *p, PPP_PACKET *req)
 				UINTToIP(&res.WinsServer1, p->ClientAddressOption.WinsServer);
 				UINTToIP(&res.WinsServer1, p->ClientAddressOption.WinsServer);
 				UINTToIP(&res.WinsServer2, p->ClientAddressOption.WinsServer2);
 				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 client_ip_str[64];
 					char subnet_str[64], defgw_str[64];
 					char subnet_str[64], defgw_str[64];

Some files were not shown because too many files changed in this diff