Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/SoftEtherVPN/SoftEtherVPN_Stable.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS.TXT3
-rw-r--r--BUILD_WINDOWS.TXT5
-rw-r--r--README6
-rw-r--r--README.TXT6
-rw-r--r--THIRD_PARTY.TXT4
-rwxr-xr-xcentos/SOURCES/init.d/vpnserver2
-rw-r--r--src/BUILD_WINDOWS.TXT5
-rw-r--r--src/BuildUtil/BuildUtilCommands.cs8
-rw-r--r--src/BuildUtil/BuildUtilMain.cs8
-rw-r--r--src/BuildUtil/CodeSign.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Bmp.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Buf.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Cache.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Compress.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Console.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Csv.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Env.cs8
-rw-r--r--src/BuildUtil/CoreUtil/FileIO.cs8
-rw-r--r--src/BuildUtil/CoreUtil/GZip.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Kernel.cs8
-rw-r--r--src/BuildUtil/CoreUtil/MultiLang.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Packer.cs8
-rw-r--r--src/BuildUtil/CoreUtil/RC4.cs8
-rw-r--r--src/BuildUtil/CoreUtil/ReadIni.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Reg.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Secure.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Stb.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Str.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Tar.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Thread.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Time.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Util.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Win32.cs8
-rw-r--r--src/BuildUtil/CoreUtil/Zip.cs8
-rw-r--r--src/BuildUtil/PEUtil.cs8
-rw-r--r--src/BuildUtil/Properties/Resources.Designer.cs8
-rw-r--r--src/BuildUtil/Properties/Settings.Designer.cs8
-rw-r--r--src/BuildUtil/Test.cs8
-rw-r--r--src/BuildUtil/UnixBuildSoftwares.cs18
-rw-r--r--src/BuildUtil/VpnBuilder.cs8
-rw-r--r--src/BuildUtil/VpnBuilderConfig.cs8
-rw-r--r--src/BuildUtil/VpnBuilderConfigTypes.cs8
-rw-r--r--src/BuildUtil/Web References/HvSignService/Reference.cs8
-rw-r--r--src/BuildUtil/Web References/SignService/Reference.cs8
-rw-r--r--src/BuildUtil/Win32BuildSoftware.cs8
-rw-r--r--src/BuildUtil/Win32BuildUtil.cs8
-rw-r--r--src/Cedar/Account.c8
-rw-r--r--src/Cedar/Account.h8
-rw-r--r--src/Cedar/Admin.c57
-rw-r--r--src/Cedar/Admin.h8
-rw-r--r--src/Cedar/AzureClient.c8
-rw-r--r--src/Cedar/AzureClient.h8
-rw-r--r--src/Cedar/AzureServer.c8
-rw-r--r--src/Cedar/AzureServer.h8
-rw-r--r--src/Cedar/Bridge.c8
-rw-r--r--src/Cedar/Bridge.h8
-rw-r--r--src/Cedar/BridgeUnix.c8
-rw-r--r--src/Cedar/BridgeUnix.h8
-rw-r--r--src/Cedar/BridgeWin32.c8
-rw-r--r--src/Cedar/BridgeWin32.h8
-rw-r--r--src/Cedar/CM.c70
-rw-r--r--src/Cedar/CM.h8
-rw-r--r--src/Cedar/CMInner.h8
-rw-r--r--src/Cedar/Cedar.c12
-rw-r--r--src/Cedar/Cedar.h24
-rw-r--r--src/Cedar/CedarPch.c8
-rw-r--r--src/Cedar/CedarPch.h8
-rw-r--r--src/Cedar/CedarType.h8
-rw-r--r--src/Cedar/Client.c8
-rw-r--r--src/Cedar/Client.h8
-rw-r--r--src/Cedar/Command.c28
-rw-r--r--src/Cedar/Command.h8
-rw-r--r--src/Cedar/Connection.c8
-rw-r--r--src/Cedar/Connection.h8
-rw-r--r--src/Cedar/Console.c8
-rw-r--r--src/Cedar/Console.h8
-rw-r--r--src/Cedar/DDNS.c16
-rw-r--r--src/Cedar/DDNS.h8
-rw-r--r--src/Cedar/Database.c8
-rw-r--r--src/Cedar/Database.h8
-rw-r--r--src/Cedar/EM.c8
-rw-r--r--src/Cedar/EM.h8
-rw-r--r--src/Cedar/EMInner.h8
-rw-r--r--src/Cedar/EtherLog.c8
-rw-r--r--src/Cedar/EtherLog.h8
-rw-r--r--src/Cedar/Hub.c118
-rw-r--r--src/Cedar/Hub.h10
-rw-r--r--src/Cedar/IPsec.c8
-rw-r--r--src/Cedar/IPsec.h8
-rw-r--r--src/Cedar/IPsec_EtherIP.c8
-rw-r--r--src/Cedar/IPsec_EtherIP.h8
-rw-r--r--src/Cedar/IPsec_IKE.c8
-rw-r--r--src/Cedar/IPsec_IKE.h8
-rw-r--r--src/Cedar/IPsec_IPC.c39
-rw-r--r--src/Cedar/IPsec_IPC.h11
-rw-r--r--src/Cedar/IPsec_IkePacket.c8
-rw-r--r--src/Cedar/IPsec_IkePacket.h8
-rw-r--r--src/Cedar/IPsec_L2TP.c8
-rw-r--r--src/Cedar/IPsec_L2TP.h8
-rw-r--r--src/Cedar/IPsec_PPP.c14
-rw-r--r--src/Cedar/IPsec_PPP.h8
-rw-r--r--src/Cedar/IPsec_Win7.c8
-rw-r--r--src/Cedar/IPsec_Win7.h8
-rw-r--r--src/Cedar/IPsec_Win7Inner.h8
-rw-r--r--src/Cedar/Interop_OpenVPN.c50
-rw-r--r--src/Cedar/Interop_OpenVPN.h8
-rw-r--r--src/Cedar/Interop_SSTP.c8
-rw-r--r--src/Cedar/Interop_SSTP.h8
-rw-r--r--src/Cedar/Layer3.c8
-rw-r--r--src/Cedar/Layer3.h8
-rw-r--r--src/Cedar/Link.c8
-rw-r--r--src/Cedar/Link.h8
-rw-r--r--src/Cedar/Listener.c8
-rw-r--r--src/Cedar/Listener.h8
-rw-r--r--src/Cedar/Logging.c799
-rw-r--r--src/Cedar/Logging.h8
-rw-r--r--src/Cedar/NM.c108
-rw-r--r--src/Cedar/NM.h8
-rw-r--r--src/Cedar/NMInner.h12
-rw-r--r--src/Cedar/Nat.c22
-rw-r--r--src/Cedar/Nat.h8
-rw-r--r--src/Cedar/NativeStack.c8
-rw-r--r--src/Cedar/NativeStack.h8
-rw-r--r--src/Cedar/NullLan.c8
-rw-r--r--src/Cedar/NullLan.h8
-rw-r--r--src/Cedar/Protocol.c169
-rw-r--r--src/Cedar/Protocol.h8
-rw-r--r--src/Cedar/Radius.c557
-rw-r--r--src/Cedar/Radius.h15
-rw-r--r--src/Cedar/Remote.c8
-rw-r--r--src/Cedar/Remote.h8
-rw-r--r--src/Cedar/SM.c68
-rw-r--r--src/Cedar/SM.h8
-rw-r--r--src/Cedar/SMInner.h9
-rw-r--r--src/Cedar/SW.c8
-rw-r--r--src/Cedar/SW.h8
-rw-r--r--src/Cedar/SWInner.h8
-rw-r--r--src/Cedar/Sam.c262
-rw-r--r--src/Cedar/Sam.h8
-rw-r--r--src/Cedar/SeLowUser.c8
-rw-r--r--src/Cedar/SeLowUser.h8
-rw-r--r--src/Cedar/SecureInfo.c8
-rw-r--r--src/Cedar/SecureInfo.h8
-rw-r--r--src/Cedar/SecureNAT.c8
-rw-r--r--src/Cedar/SecureNAT.h8
-rw-r--r--src/Cedar/Server.c273
-rw-r--r--src/Cedar/Server.h28
-rw-r--r--src/Cedar/Session.c8
-rw-r--r--src/Cedar/Session.h8
-rw-r--r--src/Cedar/UT.c8
-rw-r--r--src/Cedar/UT.h8
-rw-r--r--src/Cedar/UdpAccel.c8
-rw-r--r--src/Cedar/UdpAccel.h8
-rw-r--r--src/Cedar/VG.c8
-rw-r--r--src/Cedar/VG.h8
-rw-r--r--src/Cedar/VLan.c8
-rw-r--r--src/Cedar/VLan.h8
-rw-r--r--src/Cedar/VLanUnix.c8
-rw-r--r--src/Cedar/VLanUnix.h8
-rw-r--r--src/Cedar/VLanWin32.c8
-rw-r--r--src/Cedar/VLanWin32.h8
-rw-r--r--src/Cedar/Virtual.c32
-rw-r--r--src/Cedar/Virtual.h11
-rw-r--r--src/Cedar/WaterMark.c8
-rw-r--r--src/Cedar/WaterMark.h8
-rw-r--r--src/Cedar/WebUI.c8
-rw-r--r--src/Cedar/WebUI.h8
-rw-r--r--src/Cedar/Win32Com.cpp8
-rw-r--r--src/Cedar/Win32Com.h8
-rw-r--r--src/Cedar/WinJumpList.cpp8
-rw-r--r--src/Cedar/WinUi.c13
-rw-r--r--src/Cedar/WinUi.h8
-rw-r--r--src/Cedar/Wpc.c8
-rw-r--r--src/Cedar/Wpc.h8
-rw-r--r--src/CurrentBuild.txt6
-rw-r--r--src/GlobalConst.h8
-rw-r--r--src/Mayaqua/Cfg.c8
-rw-r--r--src/Mayaqua/Cfg.h8
-rw-r--r--src/Mayaqua/Encrypt.c21
-rw-r--r--src/Mayaqua/Encrypt.h8
-rw-r--r--src/Mayaqua/FileIO.c8
-rw-r--r--src/Mayaqua/FileIO.h8
-rw-r--r--src/Mayaqua/Internat.c8
-rw-r--r--src/Mayaqua/Internat.h8
-rw-r--r--src/Mayaqua/Kernel.c10
-rw-r--r--src/Mayaqua/Kernel.h8
-rw-r--r--src/Mayaqua/MayaType.h10
-rw-r--r--src/Mayaqua/Mayaqua.c8
-rw-r--r--src/Mayaqua/Mayaqua.h8
-rw-r--r--src/Mayaqua/Memory.c8
-rw-r--r--src/Mayaqua/Memory.h8
-rw-r--r--src/Mayaqua/Microsoft.c8
-rw-r--r--src/Mayaqua/Microsoft.h8
-rw-r--r--src/Mayaqua/Network.c22
-rw-r--r--src/Mayaqua/Network.h8
-rw-r--r--src/Mayaqua/OS.c8
-rw-r--r--src/Mayaqua/OS.h8
-rw-r--r--src/Mayaqua/Object.c8
-rw-r--r--src/Mayaqua/Object.h8
-rw-r--r--src/Mayaqua/Pack.c8
-rw-r--r--src/Mayaqua/Pack.h8
-rw-r--r--src/Mayaqua/Secure.c8
-rw-r--r--src/Mayaqua/Secure.h8
-rw-r--r--src/Mayaqua/Str.c8
-rw-r--r--src/Mayaqua/Str.h8
-rw-r--r--src/Mayaqua/Table.c8
-rw-r--r--src/Mayaqua/Table.h8
-rw-r--r--src/Mayaqua/TcpIp.c408
-rw-r--r--src/Mayaqua/TcpIp.h42
-rw-r--r--src/Mayaqua/Tick64.c8
-rw-r--r--src/Mayaqua/Tick64.h8
-rw-r--r--src/Mayaqua/Tracking.c8
-rw-r--r--src/Mayaqua/Tracking.h8
-rw-r--r--src/Mayaqua/TunTap.h8
-rw-r--r--src/Mayaqua/Unix.c14
-rw-r--r--src/Mayaqua/Unix.h12
-rw-r--r--src/Mayaqua/Win32.c8
-rw-r--r--src/Mayaqua/Win32.h8
-rw-r--r--src/Neo/NDIS5.c8
-rw-r--r--src/Neo/NDIS5.h8
-rw-r--r--src/Neo/Neo.c8
-rw-r--r--src/Neo/Neo.h8
-rw-r--r--src/Neo/resource.h8
-rw-r--r--src/Neo6/NDIS6.c8
-rw-r--r--src/Neo6/NDIS6.h8
-rw-r--r--src/Neo6/Neo6.c8
-rw-r--r--src/Neo6/Neo6.h8
-rw-r--r--src/Neo6/resource.h8
-rw-r--r--src/PenCore/PenCore.rc87
-rw-r--r--src/PenCore/resource.h11
-rw-r--r--src/README.TXT6
-rw-r--r--src/SeLow/SeLow.c8
-rw-r--r--src/SeLow/SeLow.h8
-rw-r--r--src/SeLow/SeLowCommon.h8
-rw-r--r--src/SeLow/resource.h8
-rw-r--r--src/See/resource.h8
-rw-r--r--src/See/resource1.h8
-rw-r--r--src/SeeDll/resource.h8
-rw-r--r--src/THIRD_PARTY.TXT4
-rw-r--r--src/VGate/VGate.c8
-rw-r--r--src/VGate/VGate.h8
-rw-r--r--src/VGate/resource.h8
-rw-r--r--src/Wfp/Wfp.c8
-rw-r--r--src/Wfp/Wfp.h8
-rw-r--r--src/Wfp/WfpInner.h8
-rw-r--r--src/Wfp/resource1.h8
-rw-r--r--src/bin/hamcore/SeLow_x64.sysbin38112 -> 38112 bytes
-rw-r--r--src/bin/hamcore/SeLow_x86.sysbin30816 -> 30816 bytes
-rw-r--r--src/bin/hamcore/authors.txt77
-rw-r--r--src/bin/hamcore/inf/selow_x64/SeLow_x64.inf4
-rw-r--r--src/bin/hamcore/inf/selow_x64/inf.catbin6275 -> 6275 bytes
-rw-r--r--src/bin/hamcore/inf/selow_x86/SeLow_x86.inf4
-rw-r--r--src/bin/hamcore/inf/selow_x86/inf.catbin6275 -> 6275 bytes
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN10.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN100.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN101.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN102.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN103.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN104.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN105.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN106.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN107.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN108.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN109.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN11.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN110.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN111.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN112.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN113.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN114.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN115.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN116.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN117.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN118.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN119.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN12.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN120.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN121.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN122.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN123.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN124.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN125.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN126.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN127.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN13.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN14.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN15.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN16.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN17.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN18.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN19.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN2.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN20.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN21.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN22.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN23.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN24.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN25.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN26.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN27.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN28.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN29.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN3.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN30.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN31.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN32.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN33.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN34.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN35.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN36.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN37.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN38.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN39.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN4.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN40.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN41.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN42.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN43.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN44.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN45.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN46.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN47.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN48.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN49.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN5.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN50.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN51.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN52.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN53.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN54.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN55.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN56.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN57.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN58.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN59.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN6.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN60.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN61.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN62.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN63.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN64.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN65.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN66.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN67.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN68.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN69.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN7.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN70.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN71.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN72.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN73.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN74.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN75.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN76.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN77.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN78.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN79.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN8.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN80.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN81.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN82.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN83.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN84.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN85.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN86.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN87.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN88.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN89.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN9.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN90.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN91.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN92.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN93.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN94.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN95.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN96.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN97.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN98.inf2
-rw-r--r--src/bin/hamcore/inf/x64/INF_VPN99.inf2
-rw-r--r--src/bin/hamcore/inf/x64/inf.catbin43113 -> 43113 bytes
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN10.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN100.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN101.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN102.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN103.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN104.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN105.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN106.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN107.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN108.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN109.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN11.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN110.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN111.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN112.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN113.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN114.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN115.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN116.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN117.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN118.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN119.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN12.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN120.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN121.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN122.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN123.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN124.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN125.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN126.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN127.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN13.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN14.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN15.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN16.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN17.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN18.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN19.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN2.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN20.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN21.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN22.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN23.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN24.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN25.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN26.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN27.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN28.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN29.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN3.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN30.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN31.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN32.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN33.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN34.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN35.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN36.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN37.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN38.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN39.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN4.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN40.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN41.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN42.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN43.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN44.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN45.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN46.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN47.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN48.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN49.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN5.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN50.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN51.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN52.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN53.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN54.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN55.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN56.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN57.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN58.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN59.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN6.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN60.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN61.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN62.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN63.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN64.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN65.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN66.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN67.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN68.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN69.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN7.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN70.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN71.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN72.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN73.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN74.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN75.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN76.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN77.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN78.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN79.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN8.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN80.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN81.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN82.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN83.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN84.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN85.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN86.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN87.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN88.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN89.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN9.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN90.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN91.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN92.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN93.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN94.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN95.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN96.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN97.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN98.inf2
-rw-r--r--src/bin/hamcore/inf/x86/INF_VPN99.inf2
-rw-r--r--src/bin/hamcore/inf/x86/inf.catbin43113 -> 43113 bytes
-rw-r--r--src/bin/hamcore/legal.txt4
-rw-r--r--src/bin/hamcore/pxwfp_x64.sysbin22240 -> 22240 bytes
-rw-r--r--src/bin/hamcore/pxwfp_x86.sysbin18016 -> 18016 bytes
-rw-r--r--src/bin/hamcore/see.sysbin43104 -> 43104 bytes
-rw-r--r--src/bin/hamcore/see_x64.sysbin38240 -> 38240 bytes
-rw-r--r--src/bin/hamcore/strtable_cn.stb66
-rw-r--r--src/bin/hamcore/strtable_en.stb46
-rw-r--r--src/bin/hamcore/strtable_ja.stb39
-rw-r--r--src/bin/hamcore/vpn_driver.sysbin25824 -> 25824 bytes
-rw-r--r--src/bin/hamcore/vpn_driver6.sysbin26208 -> 26208 bytes
-rw-r--r--src/bin/hamcore/vpn_driver6_x64.sysbin28768 -> 28768 bytes
-rw-r--r--src/bin/hamcore/vpn_driver_x64.sysbin29536 -> 29536 bytes
-rw-r--r--src/bin/vpnweb.cabbin195780 -> 195788 bytes
-rw-r--r--src/bin/vpnweb.ocxbin333880 -> 333880 bytes
-rw-r--r--src/hamcorebuilder/hamcorebuilder.c8
-rw-r--r--src/makefiles/freebsd_32bit.mak2
-rw-r--r--src/makefiles/freebsd_64bit.mak2
-rw-r--r--src/makefiles/linux_32bit.mak2
-rw-r--r--src/makefiles/linux_64bit.mak2
-rw-r--r--src/makefiles/macos_32bit.mak2
-rw-r--r--src/makefiles/macos_64bit.mak2
-rw-r--r--src/makefiles/openbsd_32bit.mak2
-rw-r--r--src/makefiles/openbsd_64bit.mak2
-rw-r--r--src/makefiles/solaris_32bit.mak2
-rw-r--r--src/makefiles/solaris_64bit.mak2
-rw-r--r--src/vpn16/vpn16.c8
-rw-r--r--src/vpn16/vpn16.h8
-rw-r--r--src/vpnbrand/vpnbrand.h8
-rw-r--r--src/vpnbridge/vpnbridge.c8
-rw-r--r--src/vpnclient/vpncsvc.c8
-rw-r--r--src/vpnclient/vpncsvc.h8
-rw-r--r--src/vpncmd/vpncmd.c8
-rw-r--r--src/vpncmdsys/vpncmdsys.c8
-rw-r--r--src/vpncmdsys/vpncmdsys.h8
-rw-r--r--src/vpncmgr/vpncmgr.c8
-rw-r--r--src/vpndrvinst/vpndrvinst.c8
-rw-r--r--src/vpndrvinst/vpndrvinst.h8
-rw-r--r--src/vpninstall/vpninstall.c8
-rw-r--r--src/vpninstall/vpninstall.h8
-rw-r--r--src/vpnserver/vpnserver.c8
-rw-r--r--src/vpnsetup/vpnsetup.c8
-rw-r--r--src/vpnsmgr/vpnsmgr.c8
-rw-r--r--src/vpnweb/vpnweb.h2
-rw-r--r--src/vpnweb/vpnweb_i.c2
-rw-r--r--src/vpnweb/vpnweb_p.c2
-rw-r--r--src/vpnweb/vpnwebdlg.c8
-rw-r--r--src/vpnweb/vpnwebdlg.h8
-rw-r--r--src/vpnweb/vpnwebdlg_inner.h8
557 files changed, 5420 insertions, 635 deletions
diff --git a/AUTHORS.TXT b/AUTHORS.TXT
index 8b16f749..3978bd21 100644
--- a/AUTHORS.TXT
+++ b/AUTHORS.TXT
@@ -58,6 +58,9 @@ CONTRIBUTORS on GitHub:
- Dexter Ang
https://github.com/thepoch
+ - YF
+ https://github.com/yfdyh000
+
JOIN THE SOFTETHER VPN DEVELOPMENT
----------------------------------
diff --git a/BUILD_WINDOWS.TXT b/BUILD_WINDOWS.TXT
index 06e64f72..32545985 100644
--- a/BUILD_WINDOWS.TXT
+++ b/BUILD_WINDOWS.TXT
@@ -8,10 +8,11 @@ Requirements
You need to install the following software to build SoftEther VPN for Windows.
- Microsoft Windows XP, Vista, 7, 8 or later.
-- Microsoft Visual Studio 2008.
+- Microsoft Visual Studio 2008 with the latest SP (SP1 9.0.30729.4462 QFE).
* Note:
- Visual Studio 2008 is required to build SoftEther VPN on Windows.
+ Visual Studio 2008 SP1 is required to build SoftEther VPN on Windows.
+ Please make sure that VS2008 'SP1' is installed.
Visual Studio 2010, 2012 or 2013 is currently not supported.
Visual Studio 2008 Express Edition is not supported.
Standard Edition, Professional Edition, Team System or Team Suite is
diff --git a/README b/README
index 56dd08b0..214b1345 100644
--- a/README
+++ b/README
@@ -50,6 +50,9 @@ SOFTETHER VPN ADVANTAGES
- AES 256-bit and RSA 4096-bit encryptions.
- Sufficient security features such as logging and firewall inner
VPN tunnel.
+- User authentication with RADIUS and NT domain controllers.
+- User authentication with X.509 client certificate.
+- Packet logging.
- 1Gbps-class high-speed throughput performance with low memory and
CPU usage.
- Windows, Linux, Mac, Android, iPhone, iPad and Windows Phone are
@@ -59,6 +62,9 @@ SOFTETHER VPN ADVANTAGES
- The VPN server runs on Windows, Linux, FreeBSD, Solaris and Mac OS X.
- Configure All settings on GUI.
- Multi-languages (English, Japanese and Simplified-Chinese).
+- No memory leaks. High quality stable codes, intended for long-term runs.
+ We always verify that there are no memory or resource leaks before
+ releasing the build.
- More details at http://www.softether.org/.
diff --git a/README.TXT b/README.TXT
index 56dd08b0..214b1345 100644
--- a/README.TXT
+++ b/README.TXT
@@ -50,6 +50,9 @@ SOFTETHER VPN ADVANTAGES
- AES 256-bit and RSA 4096-bit encryptions.
- Sufficient security features such as logging and firewall inner
VPN tunnel.
+- User authentication with RADIUS and NT domain controllers.
+- User authentication with X.509 client certificate.
+- Packet logging.
- 1Gbps-class high-speed throughput performance with low memory and
CPU usage.
- Windows, Linux, Mac, Android, iPhone, iPad and Windows Phone are
@@ -59,6 +62,9 @@ SOFTETHER VPN ADVANTAGES
- The VPN server runs on Windows, Linux, FreeBSD, Solaris and Mac OS X.
- Configure All settings on GUI.
- Multi-languages (English, Japanese and Simplified-Chinese).
+- No memory leaks. High quality stable codes, intended for long-term runs.
+ We always verify that there are no memory or resource leaks before
+ releasing the build.
- More details at http://www.softether.org/.
diff --git a/THIRD_PARTY.TXT b/THIRD_PARTY.TXT
index 5f24a507..50e42ade 100644
--- a/THIRD_PARTY.TXT
+++ b/THIRD_PARTY.TXT
@@ -775,6 +775,10 @@ The list of contributors for SoftEther VPN Project:
- ELIN
https://github.com/el1n
+ - YF
+ https://github.com/yfdyh000
+
+
SoftEther Corporation, the distributor of PacketiX VPN, appreciates all
contributors for SoftEther VPN Project very much.
diff --git a/centos/SOURCES/init.d/vpnserver b/centos/SOURCES/init.d/vpnserver
index 950be63e..1933b6a3 100755
--- a/centos/SOURCES/init.d/vpnserver
+++ b/centos/SOURCES/init.d/vpnserver
@@ -40,7 +40,7 @@ start() {
stop() {
echo -n $"Stopping $prog: "
- /usr/bin/timeout 30 $exec stop || /usr/bin/killall -q -9 $prog
+ /usr/bin/timeout 60 $exec stop || /usr/bin/killall -q -9 $prog
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
diff --git a/src/BUILD_WINDOWS.TXT b/src/BUILD_WINDOWS.TXT
index 06e64f72..32545985 100644
--- a/src/BUILD_WINDOWS.TXT
+++ b/src/BUILD_WINDOWS.TXT
@@ -8,10 +8,11 @@ Requirements
You need to install the following software to build SoftEther VPN for Windows.
- Microsoft Windows XP, Vista, 7, 8 or later.
-- Microsoft Visual Studio 2008.
+- Microsoft Visual Studio 2008 with the latest SP (SP1 9.0.30729.4462 QFE).
* Note:
- Visual Studio 2008 is required to build SoftEther VPN on Windows.
+ Visual Studio 2008 SP1 is required to build SoftEther VPN on Windows.
+ Please make sure that VS2008 'SP1' is installed.
Visual Studio 2010, 2012 or 2013 is currently not supported.
Visual Studio 2008 Express Edition is not supported.
Standard Edition, Professional Edition, Team System or Team Suite is
diff --git a/src/BuildUtil/BuildUtilCommands.cs b/src/BuildUtil/BuildUtilCommands.cs
index f244444c..bfd67e7c 100644
--- a/src/BuildUtil/BuildUtilCommands.cs
+++ b/src/BuildUtil/BuildUtilCommands.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/BuildUtilMain.cs b/src/BuildUtil/BuildUtilMain.cs
index c4f4a0b6..6178026a 100644
--- a/src/BuildUtil/BuildUtilMain.cs
+++ b/src/BuildUtil/BuildUtilMain.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CodeSign.cs b/src/BuildUtil/CodeSign.cs
index d3fe8183..2d5b8a2e 100644
--- a/src/BuildUtil/CodeSign.cs
+++ b/src/BuildUtil/CodeSign.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Bmp.cs b/src/BuildUtil/CoreUtil/Bmp.cs
index de49ff98..81b02b19 100644
--- a/src/BuildUtil/CoreUtil/Bmp.cs
+++ b/src/BuildUtil/CoreUtil/Bmp.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Buf.cs b/src/BuildUtil/CoreUtil/Buf.cs
index 1395441a..650d3104 100644
--- a/src/BuildUtil/CoreUtil/Buf.cs
+++ b/src/BuildUtil/CoreUtil/Buf.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Cache.cs b/src/BuildUtil/CoreUtil/Cache.cs
index d58c4e54..05645141 100644
--- a/src/BuildUtil/CoreUtil/Cache.cs
+++ b/src/BuildUtil/CoreUtil/Cache.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Compress.cs b/src/BuildUtil/CoreUtil/Compress.cs
index 9bac9606..ce8c7cd2 100644
--- a/src/BuildUtil/CoreUtil/Compress.cs
+++ b/src/BuildUtil/CoreUtil/Compress.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Console.cs b/src/BuildUtil/CoreUtil/Console.cs
index 151f9703..63eb7f06 100644
--- a/src/BuildUtil/CoreUtil/Console.cs
+++ b/src/BuildUtil/CoreUtil/Console.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Csv.cs b/src/BuildUtil/CoreUtil/Csv.cs
index 454eb1c1..48670f0f 100644
--- a/src/BuildUtil/CoreUtil/Csv.cs
+++ b/src/BuildUtil/CoreUtil/Csv.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Env.cs b/src/BuildUtil/CoreUtil/Env.cs
index dfd72d93..2cdecc17 100644
--- a/src/BuildUtil/CoreUtil/Env.cs
+++ b/src/BuildUtil/CoreUtil/Env.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/FileIO.cs b/src/BuildUtil/CoreUtil/FileIO.cs
index c0457709..b12f4ac7 100644
--- a/src/BuildUtil/CoreUtil/FileIO.cs
+++ b/src/BuildUtil/CoreUtil/FileIO.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/GZip.cs b/src/BuildUtil/CoreUtil/GZip.cs
index e7446d3a..73bc0a3e 100644
--- a/src/BuildUtil/CoreUtil/GZip.cs
+++ b/src/BuildUtil/CoreUtil/GZip.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Kernel.cs b/src/BuildUtil/CoreUtil/Kernel.cs
index 155f876e..a9d4b340 100644
--- a/src/BuildUtil/CoreUtil/Kernel.cs
+++ b/src/BuildUtil/CoreUtil/Kernel.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/MultiLang.cs b/src/BuildUtil/CoreUtil/MultiLang.cs
index 40c575ff..283e07a4 100644
--- a/src/BuildUtil/CoreUtil/MultiLang.cs
+++ b/src/BuildUtil/CoreUtil/MultiLang.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Packer.cs b/src/BuildUtil/CoreUtil/Packer.cs
index f3a910cf..54c027a5 100644
--- a/src/BuildUtil/CoreUtil/Packer.cs
+++ b/src/BuildUtil/CoreUtil/Packer.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/RC4.cs b/src/BuildUtil/CoreUtil/RC4.cs
index 5b9c3c7a..9882c3b4 100644
--- a/src/BuildUtil/CoreUtil/RC4.cs
+++ b/src/BuildUtil/CoreUtil/RC4.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/ReadIni.cs b/src/BuildUtil/CoreUtil/ReadIni.cs
index ea4c8488..44c1594c 100644
--- a/src/BuildUtil/CoreUtil/ReadIni.cs
+++ b/src/BuildUtil/CoreUtil/ReadIni.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Reg.cs b/src/BuildUtil/CoreUtil/Reg.cs
index 09612f6c..40434b0d 100644
--- a/src/BuildUtil/CoreUtil/Reg.cs
+++ b/src/BuildUtil/CoreUtil/Reg.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Secure.cs b/src/BuildUtil/CoreUtil/Secure.cs
index 04e257cc..0d845e32 100644
--- a/src/BuildUtil/CoreUtil/Secure.cs
+++ b/src/BuildUtil/CoreUtil/Secure.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Stb.cs b/src/BuildUtil/CoreUtil/Stb.cs
index ade01256..f071218d 100644
--- a/src/BuildUtil/CoreUtil/Stb.cs
+++ b/src/BuildUtil/CoreUtil/Stb.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Str.cs b/src/BuildUtil/CoreUtil/Str.cs
index 5d31bc87..e7e09ce5 100644
--- a/src/BuildUtil/CoreUtil/Str.cs
+++ b/src/BuildUtil/CoreUtil/Str.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Tar.cs b/src/BuildUtil/CoreUtil/Tar.cs
index ee85d783..d9efbd17 100644
--- a/src/BuildUtil/CoreUtil/Tar.cs
+++ b/src/BuildUtil/CoreUtil/Tar.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Thread.cs b/src/BuildUtil/CoreUtil/Thread.cs
index 4897a031..6b4335ff 100644
--- a/src/BuildUtil/CoreUtil/Thread.cs
+++ b/src/BuildUtil/CoreUtil/Thread.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Time.cs b/src/BuildUtil/CoreUtil/Time.cs
index c83041a8..2711582f 100644
--- a/src/BuildUtil/CoreUtil/Time.cs
+++ b/src/BuildUtil/CoreUtil/Time.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Util.cs b/src/BuildUtil/CoreUtil/Util.cs
index ae355ca6..a00db300 100644
--- a/src/BuildUtil/CoreUtil/Util.cs
+++ b/src/BuildUtil/CoreUtil/Util.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Win32.cs b/src/BuildUtil/CoreUtil/Win32.cs
index f387204b..f77fbac7 100644
--- a/src/BuildUtil/CoreUtil/Win32.cs
+++ b/src/BuildUtil/CoreUtil/Win32.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/CoreUtil/Zip.cs b/src/BuildUtil/CoreUtil/Zip.cs
index 3f63286e..54875681 100644
--- a/src/BuildUtil/CoreUtil/Zip.cs
+++ b/src/BuildUtil/CoreUtil/Zip.cs
@@ -4,7 +4,6 @@
// Copyright (C) 2012-2014 SoftEther VPN Project at University of Tsukuba. All Rights Reserved.
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/PEUtil.cs b/src/BuildUtil/PEUtil.cs
index 962e0c23..009bc6fe 100644
--- a/src/BuildUtil/PEUtil.cs
+++ b/src/BuildUtil/PEUtil.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/Properties/Resources.Designer.cs b/src/BuildUtil/Properties/Resources.Designer.cs
index 1a025dd5..14f45a88 100644
--- a/src/BuildUtil/Properties/Resources.Designer.cs
+++ b/src/BuildUtil/Properties/Resources.Designer.cs
@@ -9,7 +9,6 @@
//------------------------------------------------------------------------------
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -80,6 +79,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
namespace BuildUtil.Properties {
diff --git a/src/BuildUtil/Properties/Settings.Designer.cs b/src/BuildUtil/Properties/Settings.Designer.cs
index 8c882136..6b886d21 100644
--- a/src/BuildUtil/Properties/Settings.Designer.cs
+++ b/src/BuildUtil/Properties/Settings.Designer.cs
@@ -9,7 +9,6 @@
//------------------------------------------------------------------------------
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -80,6 +79,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
namespace BuildUtil.Properties {
diff --git a/src/BuildUtil/Test.cs b/src/BuildUtil/Test.cs
index 8d3160f3..5be0ac72 100644
--- a/src/BuildUtil/Test.cs
+++ b/src/BuildUtil/Test.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/UnixBuildSoftwares.cs b/src/BuildUtil/UnixBuildSoftwares.cs
index 56d20588..1be25071 100644
--- a/src/BuildUtil/UnixBuildSoftwares.cs
+++ b/src/BuildUtil/UnixBuildSoftwares.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
@@ -260,6 +266,16 @@ namespace BuildUtil
if (true)
{
+ string srcData = File.ReadAllText(Path.Combine(Paths.BinDirName, @"hamcore\authors.txt"),
+ enc);
+
+ byte[] destData = enc.GetBytes(srcData);
+
+ tar.AddFileSimple(targetName + @"\" + "Authors.txt", destData, 0, destData.Length, DateTime.Now);
+ }
+
+ if (true)
+ {
string srcData = File.ReadAllText(Path.Combine(Paths.BinDirName, @"hamcore\warning_ja.txt"),
enc);
diff --git a/src/BuildUtil/VpnBuilder.cs b/src/BuildUtil/VpnBuilder.cs
index 7251a421..325cd900 100644
--- a/src/BuildUtil/VpnBuilder.cs
+++ b/src/BuildUtil/VpnBuilder.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/VpnBuilderConfig.cs b/src/BuildUtil/VpnBuilderConfig.cs
index 91109249..29774c51 100644
--- a/src/BuildUtil/VpnBuilderConfig.cs
+++ b/src/BuildUtil/VpnBuilderConfig.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/VpnBuilderConfigTypes.cs b/src/BuildUtil/VpnBuilderConfigTypes.cs
index c5e0cc1a..83dc149f 100644
--- a/src/BuildUtil/VpnBuilderConfigTypes.cs
+++ b/src/BuildUtil/VpnBuilderConfigTypes.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/Web References/HvSignService/Reference.cs b/src/BuildUtil/Web References/HvSignService/Reference.cs
index 75a21dc0..c559b2c2 100644
--- a/src/BuildUtil/Web References/HvSignService/Reference.cs
+++ b/src/BuildUtil/Web References/HvSignService/Reference.cs
@@ -9,7 +9,6 @@
//------------------------------------------------------------------------------
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -80,6 +79,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
//
diff --git a/src/BuildUtil/Web References/SignService/Reference.cs b/src/BuildUtil/Web References/SignService/Reference.cs
index 2d9814a6..36fae0c8 100644
--- a/src/BuildUtil/Web References/SignService/Reference.cs
+++ b/src/BuildUtil/Web References/SignService/Reference.cs
@@ -9,7 +9,6 @@
//------------------------------------------------------------------------------
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -80,6 +79,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
//
diff --git a/src/BuildUtil/Win32BuildSoftware.cs b/src/BuildUtil/Win32BuildSoftware.cs
index 0d01f904..08c1e49c 100644
--- a/src/BuildUtil/Win32BuildSoftware.cs
+++ b/src/BuildUtil/Win32BuildSoftware.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/BuildUtil/Win32BuildUtil.cs b/src/BuildUtil/Win32BuildUtil.cs
index 2cb88c83..4814ec25 100644
--- a/src/BuildUtil/Win32BuildUtil.cs
+++ b/src/BuildUtil/Win32BuildUtil.cs
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
using System;
diff --git a/src/Cedar/Account.c b/src/Cedar/Account.c
index f4004d5e..29887dc4 100644
--- a/src/Cedar/Account.c
+++ b/src/Cedar/Account.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Account.c
diff --git a/src/Cedar/Account.h b/src/Cedar/Account.h
index 71e0ed97..5b841bbc 100644
--- a/src/Cedar/Account.h
+++ b/src/Cedar/Account.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Account.h
diff --git a/src/Cedar/Admin.c b/src/Cedar/Admin.c
index bb17b713..f9af5c0c 100644
--- a/src/Cedar/Admin.c
+++ b/src/Cedar/Admin.c
@@ -16,7 +16,6 @@
// - ELIN (https://github.com/el1n)
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -87,6 +86,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Admin.c
@@ -1716,7 +1722,7 @@ UINT StGetAdminMsg(ADMIN *a, RPC_MSG *t)
if (
c->Bridge == false)
{
- if (GetCurrentLangId() != SE_LANG_ENGLISH)
+ if (GetGlobalServerFlag(GSF_SHOW_OSS_MSG) != 0)
{
UniStrCat(tmp, tmpsize, _UU("OSS_MSG"));
}
@@ -2179,6 +2185,11 @@ UINT StSetAcList(ADMIN *a, RPC_AC_LIST *t)
return ERR_NOT_SUPPORTED;
}
+ if (GetGlobalServerFlag(GSF_DISABLE_AC) != 0 && LIST_NUM(t->o) >= 1)
+ {
+ return ERR_NOT_SUPPORTED_FUNCTION_ON_OPENSOURCE;
+ }
+
CHECK_RIGHT;
NO_SUPPORT_FOR_BRIDGE;
if (s->ServerType == SERVER_TYPE_FARM_MEMBER)
@@ -3620,6 +3631,11 @@ UINT StSetSysLog(ADMIN *a, SYSLOG_SETTING *t)
SERVER_ADMIN_ONLY;
+ if (GetGlobalServerFlag(GSF_DISABLE_SYSLOG) != 0 && t->SaveType != SYSLOG_NONE)
+ {
+ return ERR_NOT_SUPPORTED_FUNCTION_ON_OPENSOURCE;
+ }
+
if (GetServerCapsBool(s, "b_support_syslog") == false)
{
return ERR_NOT_SUPPORTED;
@@ -5017,9 +5033,12 @@ UINT StSetUser(ADMIN *a, RPC_SET_USER *t)
CHECK_RIGHT;
- if (t->AuthType == AUTHTYPE_USERCERT || t->AuthType == AUTHTYPE_RADIUS || t->AuthType == AUTHTYPE_ROOTCERT || t->AuthType == AUTHTYPE_NT)
+ if (GetGlobalServerFlag(GSF_DISABLE_RADIUS_AUTH) != 0)
{
- return ERR_NOT_SUPPORTED_AUTH_ON_OPENSOURCE;
+ if (t->AuthType == AUTHTYPE_USERCERT || t->AuthType == AUTHTYPE_RADIUS || t->AuthType == AUTHTYPE_ROOTCERT || t->AuthType == AUTHTYPE_NT)
+ {
+ return ERR_NOT_SUPPORTED_AUTH_ON_OPENSOURCE;
+ }
}
if (StrCmpi(t->Name, "*") == 0)
@@ -5147,9 +5166,12 @@ UINT StCreateUser(ADMIN *a, RPC_SET_USER *t)
CHECK_RIGHT;
- if (t->AuthType == AUTHTYPE_USERCERT || t->AuthType == AUTHTYPE_RADIUS || t->AuthType == AUTHTYPE_ROOTCERT || t->AuthType == AUTHTYPE_NT)
+ if (GetGlobalServerFlag(GSF_DISABLE_RADIUS_AUTH) != 0)
{
- return ERR_NOT_SUPPORTED_AUTH_ON_OPENSOURCE;
+ if (t->AuthType == AUTHTYPE_USERCERT || t->AuthType == AUTHTYPE_RADIUS || t->AuthType == AUTHTYPE_ROOTCERT || t->AuthType == AUTHTYPE_NT)
+ {
+ return ERR_NOT_SUPPORTED_AUTH_ON_OPENSOURCE;
+ }
}
if (t->AuthType == AUTHTYPE_USERCERT)
@@ -7254,6 +7276,7 @@ UINT StSetSecureNATOption(ADMIN *a, VH_OPTION *t)
SERVER *s = a->Server;
CEDAR *c = s->Cedar;
HUB *h;
+ char push_routes_str_old[MAX_DHCP_CLASSLESS_ROUTE_TABLE_STR_SIZE];
if (IsZero(t->MacAddress, sizeof(t->MacAddress)) ||
@@ -7266,6 +7289,17 @@ UINT StSetSecureNATOption(ADMIN *a, VH_OPTION *t)
{
return ERR_INVALID_PARAMETER;
}
+ if (GetServerCapsBool(s, "b_support_securenat") == false)
+ {
+ t->ApplyDhcpPushRoutes = false;
+ }
+ if (t->ApplyDhcpPushRoutes)
+ {
+ if (NormalizeClasslessRouteTableStr(t->DhcpPushRoutes, sizeof(t->DhcpPushRoutes), t->DhcpPushRoutes) == false)
+ {
+ return ERR_INVALID_PARAMETER;
+ }
+ }
CHECK_RIGHT;
@@ -7315,7 +7349,12 @@ UINT StSetSecureNATOption(ADMIN *a, VH_OPTION *t)
}
}
+ StrCpy(push_routes_str_old, sizeof(push_routes_str_old), h->SecureNATOption->DhcpPushRoutes);
Copy(h->SecureNATOption, t, sizeof(VH_OPTION));
+ if (t->ApplyDhcpPushRoutes == false)
+ {
+ StrCpy(h->SecureNATOption->DhcpPushRoutes, sizeof(h->SecureNATOption->DhcpPushRoutes), push_routes_str_old);
+ }
if (h->Type != HUB_TYPE_STANDALONE && h->Cedar != NULL && h->Cedar->Server != NULL &&
h->Cedar->Server->ServerType == SERVER_TYPE_FARM_CONTROLLER)
@@ -7381,6 +7420,7 @@ UINT StGetSecureNATOption(ADMIN *a, VH_OPTION *t)
Zero(t, sizeof(VH_OPTION));
StrCpy(t->HubName, sizeof(t->HubName), hubname);
Copy(t, h->SecureNATOption, sizeof(VH_OPTION));
+ t->ApplyDhcpPushRoutes = true;
ReleaseHub(h);
@@ -7617,6 +7657,11 @@ UINT StSetHubRadius(ADMIN *a, RPC_RADIUS *t)
return ERR_NOT_SUPPORTED;
}
+ if (GetGlobalServerFlag(GSF_DISABLE_RADIUS_AUTH) != 0 && IsEmptyStr(t->RadiusServerName) == false)
+ {
+ return ERR_NOT_SUPPORTED_FUNCTION_ON_OPENSOURCE;
+ }
+
CHECK_RIGHT;
LockHubList(c);
diff --git a/src/Cedar/Admin.h b/src/Cedar/Admin.h
index 15ee26be..7715ba0e 100644
--- a/src/Cedar/Admin.h
+++ b/src/Cedar/Admin.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Admin.h
diff --git a/src/Cedar/AzureClient.c b/src/Cedar/AzureClient.c
index 00614d09..0ba2840f 100644
--- a/src/Cedar/AzureClient.c
+++ b/src/Cedar/AzureClient.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// AzureClient.c
diff --git a/src/Cedar/AzureClient.h b/src/Cedar/AzureClient.h
index 906c677a..d5267fbe 100644
--- a/src/Cedar/AzureClient.h
+++ b/src/Cedar/AzureClient.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// AzureClient.h
diff --git a/src/Cedar/AzureServer.c b/src/Cedar/AzureServer.c
index 1ffd2935..b185a5d3 100644
--- a/src/Cedar/AzureServer.c
+++ b/src/Cedar/AzureServer.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// AzureServer.c
diff --git a/src/Cedar/AzureServer.h b/src/Cedar/AzureServer.h
index c43d9dae..1d237107 100644
--- a/src/Cedar/AzureServer.h
+++ b/src/Cedar/AzureServer.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// AzureServer.h
diff --git a/src/Cedar/Bridge.c b/src/Cedar/Bridge.c
index 978d273e..363651f3 100644
--- a/src/Cedar/Bridge.c
+++ b/src/Cedar/Bridge.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Bridge.c
diff --git a/src/Cedar/Bridge.h b/src/Cedar/Bridge.h
index 31a996ac..011876c7 100644
--- a/src/Cedar/Bridge.h
+++ b/src/Cedar/Bridge.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Bridge.h
diff --git a/src/Cedar/BridgeUnix.c b/src/Cedar/BridgeUnix.c
index 82d23642..326c1f35 100644
--- a/src/Cedar/BridgeUnix.c
+++ b/src/Cedar/BridgeUnix.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// BridgeUnix.c
diff --git a/src/Cedar/BridgeUnix.h b/src/Cedar/BridgeUnix.h
index b7c1403d..9e7bd655 100644
--- a/src/Cedar/BridgeUnix.h
+++ b/src/Cedar/BridgeUnix.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// BridgeUnix.h
diff --git a/src/Cedar/BridgeWin32.c b/src/Cedar/BridgeWin32.c
index 0a6db392..9f07f40a 100644
--- a/src/Cedar/BridgeWin32.c
+++ b/src/Cedar/BridgeWin32.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// BridgeWin32.c
diff --git a/src/Cedar/BridgeWin32.h b/src/Cedar/BridgeWin32.h
index 99adbd38..5991bfb9 100644
--- a/src/Cedar/BridgeWin32.h
+++ b/src/Cedar/BridgeWin32.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// BridgeWin32.h
diff --git a/src/Cedar/CM.c b/src/Cedar/CM.c
index 3181f7cb..bdbbcae6 100644
--- a/src/Cedar/CM.c
+++ b/src/Cedar/CM.c
@@ -16,7 +16,6 @@
// - ELIN (https://github.com/el1n)
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -87,6 +86,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// CM.c
@@ -6847,6 +6853,17 @@ void CmEditAccountDlgUpdate(HWND hWnd, CM_ACCOUNT *a)
GetTxtA(hWnd, E_HOSTNAME, a->ClientOption->Hostname, sizeof(a->ClientOption->Hostname));
Trim(a->ClientOption->Hostname);
+ if (InStr(a->ClientOption->Hostname, "/tcp"))
+ {
+ Check(hWnd, R_DISABLE_NATT, true);
+ }
+ else
+ {
+ Check(hWnd, R_DISABLE_NATT, false);
+ }
+
+ SetEnable(hWnd, R_DISABLE_NATT, !IsEmptyStr(a->ClientOption->Hostname));
+
// Port number
a->ClientOption->Port = GetInt(hWnd, C_PORT);
@@ -7278,6 +7295,15 @@ void CmEditAccountDlgInit(HWND hWnd, CM_ACCOUNT *a)
SetTextA(hWnd, E_HOSTNAME, a->ClientOption->Hostname);
StrCpy(a->old_server_name, sizeof(a->old_server_name), a->ClientOption->Hostname);
+ if (InStr(a->ClientOption->Hostname, "/tcp"))
+ {
+ Check(hWnd, R_DISABLE_NATT, true);
+ }
+ else
+ {
+ Check(hWnd, R_DISABLE_NATT, false);
+ }
+
// Port number
CbSetHeight(hWnd, C_PORT, 18);
CbAddStr(hWnd, C_PORT, _UU("CM_PORT_1"), 0);
@@ -7442,6 +7468,8 @@ UINT CmEditAccountDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, voi
NMHDR *n;
X *x;
K *k;
+ char tmp[MAX_PATH];
+ bool no_update_natt_check = false;
// Validate arguments
if (hWnd == NULL)
{
@@ -7483,6 +7511,39 @@ UINT CmEditAccountDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, voi
}
break;
case WM_COMMAND:
+ switch (wParam)
+ {
+ case R_DISABLE_NATT:
+ Zero(tmp, sizeof(tmp));
+ GetTxtA(hWnd, E_HOSTNAME, tmp, sizeof(tmp));
+
+ if (IsChecked(hWnd, R_DISABLE_NATT))
+ {
+ if (InStr(tmp, "/tcp") == false)
+ {
+ StrCat(tmp, sizeof(tmp), "/tcp");
+
+ SetTextA(hWnd, E_HOSTNAME, tmp);
+ }
+ }
+ else
+ {
+ if (InStr(tmp, "/tcp"))
+ {
+ UINT i = SearchStrEx(tmp, "/tcp", 0, false);
+
+ if (i != INFINITE)
+ {
+ tmp[i] = 0;
+
+ SetTextA(hWnd, E_HOSTNAME, tmp);
+ }
+ }
+ }
+
+ CmEditAccountDlgStartEnumHub(hWnd, a);
+ break;
+ }
switch (LOWORD(wParam))
{
case E_ACCOUNT_NAME:
@@ -7531,6 +7592,13 @@ UINT CmEditAccountDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, voi
break;
}
break;
+ case BN_PUSHED:
+ switch (LOWORD(wParam))
+ {
+ case R_DISABLE_NATT:
+ break;
+ }
+ break;
}
if (HIWORD(wParam) == 0)
{
diff --git a/src/Cedar/CM.h b/src/Cedar/CM.h
index 1d497442..728f8a01 100644
--- a/src/Cedar/CM.h
+++ b/src/Cedar/CM.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// CM.h
diff --git a/src/Cedar/CMInner.h b/src/Cedar/CMInner.h
index 06e95196..b7388792 100644
--- a/src/Cedar/CMInner.h
+++ b/src/Cedar/CMInner.h
@@ -16,7 +16,6 @@
// - ELIN (https://github.com/el1n)
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -87,6 +86,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// CMInner.h
diff --git a/src/Cedar/Cedar.c b/src/Cedar/Cedar.c
index 04d3697a..b2600e52 100644
--- a/src/Cedar/Cedar.c
+++ b/src/Cedar/Cedar.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Cedar.c
@@ -1246,6 +1252,8 @@ void CleanupCedar(CEDAR *c)
DeleteLock(c->OpenVPNPublicPortsLock);
+ DeleteLock(c->CurrentRegionLock);
+
Free(c);
}
@@ -1505,6 +1513,8 @@ CEDAR *NewCedar(X *server_x, K *server_k)
c->CedarSuperLock = NewLock();
+ c->CurrentRegionLock = NewLock();
+
#ifdef BETA_NUMBER
c->Beta = BETA_NUMBER;
#endif // BETA_NUMBER
diff --git a/src/Cedar/Cedar.h b/src/Cedar/Cedar.h
index c0f972da..b003af64 100644
--- a/src/Cedar/Cedar.h
+++ b/src/Cedar/Cedar.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Cedar.h
@@ -114,10 +120,10 @@
// Version number
-#define CEDAR_VER 405
+#define CEDAR_VER 406
// Build Number
-#define CEDAR_BUILD 9423
+#define CEDAR_BUILD 9430
// Beta number
//#define BETA_NUMBER 3
@@ -137,11 +143,11 @@
// Specifies the build date
#define BUILD_DATE_Y 2014
-#define BUILD_DATE_M 2
-#define BUILD_DATE_D 18
-#define BUILD_DATE_HO 19
-#define BUILD_DATE_MI 9
-#define BUILD_DATE_SE 44
+#define BUILD_DATE_M 3
+#define BUILD_DATE_D 20
+#define BUILD_DATE_HO 4
+#define BUILD_DATE_MI 8
+#define BUILD_DATE_SE 6
// Tolerable time difference
#define ALLOW_TIMESTAMP_DIFF (UINT64)(3 * 24 * 60 * 60 * 1000)
@@ -1003,6 +1009,8 @@ typedef struct CEDAR
char CurrentDDnsFqdn[MAX_SIZE]; // FQDN of the current DDNS
char OpenVPNPublicPorts[MAX_SIZE]; // OpenVPN public UDP port list
LOCK *OpenVPNPublicPortsLock; // Lock of OpenVPN public UDP port list
+ LOCK *CurrentRegionLock; // Current region lock
+ char CurrentRegion[128]; // Current region
} CEDAR;
// Type of CEDAR
diff --git a/src/Cedar/CedarPch.c b/src/Cedar/CedarPch.c
index 57a239de..f6752dc9 100644
--- a/src/Cedar/CedarPch.c
+++ b/src/Cedar/CedarPch.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// CedarPch.c
diff --git a/src/Cedar/CedarPch.h b/src/Cedar/CedarPch.h
index ab4803fe..ceefea80 100644
--- a/src/Cedar/CedarPch.h
+++ b/src/Cedar/CedarPch.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// CedarPch.h
diff --git a/src/Cedar/CedarType.h b/src/Cedar/CedarType.h
index 8c850e1d..d02e6c14 100644
--- a/src/Cedar/CedarType.h
+++ b/src/Cedar/CedarType.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// CedarType.h
diff --git a/src/Cedar/Client.c b/src/Cedar/Client.c
index 9f57f057..17c5d9a2 100644
--- a/src/Cedar/Client.c
+++ b/src/Cedar/Client.c
@@ -16,7 +16,6 @@
// - nattoheaven (https://github.com/nattoheaven)
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -87,6 +86,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Client.c
diff --git a/src/Cedar/Client.h b/src/Cedar/Client.h
index abfd4e56..bad47c99 100644
--- a/src/Cedar/Client.h
+++ b/src/Cedar/Client.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Client.h
diff --git a/src/Cedar/Command.c b/src/Cedar/Command.c
index 972f3135..9ae8bdc3 100644
--- a/src/Cedar/Command.c
+++ b/src/Cedar/Command.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Command.c
@@ -18846,6 +18852,13 @@ UINT PsDhcpGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
// To save the log
CtInsert(ct, _UU("CMD_SecureNatHostGet_Column_LOG"), t.SaveLog ? _UU("SEC_YES") : _UU("SEC_NO"));
+ // Push routing table
+ if (t.ApplyDhcpPushRoutes)
+ {
+ StrToUni(tmp, sizeof(tmp), t.DhcpPushRoutes);
+ CtInsert(ct, _UU("CMD_DhcpGet_Column_PUSHROUTE"), tmp);
+ }
+
CtFree(ct, c);
}
@@ -19013,6 +19026,7 @@ UINT PsDhcpSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
{"DNS2", CmdPrompt, _UU("CMD_DhcpSet_Prompt_DNS2"), CmdEvalIp, NULL},
{"DOMAIN", CmdPrompt, _UU("CMD_DhcpSet_Prompt_DOMAIN"), NULL, NULL},
{"LOG", CmdPrompt, _UU("CMD_NatSet_Prompt_LOG"), CmdEvalNotEmpty, NULL},
+ {"PUSHROUTE", NULL, _UU("CMD_DhcpSet_PUSHROUTE"), NULL, NULL},
};
// If virtual HUB is not selected, it's an error
@@ -19055,6 +19069,9 @@ UINT PsDhcpSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
StrCpy(t.DhcpDomainName, sizeof(t.DhcpDomainName), GetParamStr(o, "DOMAIN"));
t.SaveLog = GetParamYes(o, "LOG");
+ StrCpy(t.DhcpPushRoutes, sizeof(t.DhcpPushRoutes), GetParamStr(o, "PUSHROUTE"));
+ t.ApplyDhcpPushRoutes = true;
+
if (ok == false)
{
// Parameter is invalid
@@ -19075,6 +19092,15 @@ UINT PsDhcpSet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param)
FreeParamValueList(o);
return ret;
}
+
+ if (IsEmptyStr(GetParamStr(o, "PUSHROUTE")) == false)
+ {
+ if (GetCapsBool(ps->CapsList, "b_suppport_push_route") == false &&
+ GetCapsBool(ps->CapsList, "b_suppport_push_route_config"))
+ {
+ CmdPrintError(c, ERR_NOT_SUPPORTED_FUNCTION_ON_OPENSOURCE);
+ }
+ }
}
}
diff --git a/src/Cedar/Command.h b/src/Cedar/Command.h
index 68a5c27b..9b091bea 100644
--- a/src/Cedar/Command.h
+++ b/src/Cedar/Command.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Command.h
diff --git a/src/Cedar/Connection.c b/src/Cedar/Connection.c
index 29999a85..96d76568 100644
--- a/src/Cedar/Connection.c
+++ b/src/Cedar/Connection.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Connection.c
diff --git a/src/Cedar/Connection.h b/src/Cedar/Connection.h
index fdbae898..4af0843d 100644
--- a/src/Cedar/Connection.h
+++ b/src/Cedar/Connection.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Connection.h
diff --git a/src/Cedar/Console.c b/src/Cedar/Console.c
index 62104c28..fede3e4d 100644
--- a/src/Cedar/Console.c
+++ b/src/Cedar/Console.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Console.c
diff --git a/src/Cedar/Console.h b/src/Cedar/Console.h
index 7e39a81f..2ab7ef75 100644
--- a/src/Cedar/Console.h
+++ b/src/Cedar/Console.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Console.h
diff --git a/src/Cedar/DDNS.c b/src/Cedar/DDNS.c
index 13ff8ec5..7f198081 100644
--- a/src/Cedar/DDNS.c
+++ b/src/Cedar/DDNS.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// DDNS.c
@@ -652,6 +658,7 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace
if (err == ERR_NO_ERROR)
{
char snat_t[MAX_SIZE];
+ char current_region[128];
// Current host name
PackGetStr(ret, "current_hostname", c->CurrentHostName, sizeof(c->CurrentHostName));
@@ -659,6 +666,7 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace
PackGetStr(ret, "current_ipv4", c->CurrentIPv4, sizeof(c->CurrentIPv4));
PackGetStr(ret, "current_ipv6", c->CurrentIPv6, sizeof(c->CurrentIPv6));
PackGetStr(ret, "dns_suffix", c->DnsSuffix, sizeof(c->DnsSuffix));
+ PackGetStr(ret, "current_region", current_region, sizeof(current_region));
// SecureNAT connectivity check parameters
Zero(snat_t, sizeof(snat_t));
@@ -688,6 +696,12 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace
c->CurrentHostName, c->CurrentFqdn,
c->CurrentIPv4, c->CurrentIPv6,
c->CurrentAzureIp, c->CurrentAzureTimestamp, c->CurrentAzureSignature, c->AzureCertHash);
+
+ if (IsEmptyStr(current_region) == false)
+ {
+ // Update the current region
+ SiUpdateCurrentRegion(c->Cedar, current_region, false);
+ }
}
}
Unlock(c->Lock);
diff --git a/src/Cedar/DDNS.h b/src/Cedar/DDNS.h
index e24f4f16..f1bc1579 100644
--- a/src/Cedar/DDNS.h
+++ b/src/Cedar/DDNS.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// DDNS.h
diff --git a/src/Cedar/Database.c b/src/Cedar/Database.c
index 82a6f0ef..715c0e64 100644
--- a/src/Cedar/Database.c
+++ b/src/Cedar/Database.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Database.c
diff --git a/src/Cedar/Database.h b/src/Cedar/Database.h
index 9e978940..25ae7f11 100644
--- a/src/Cedar/Database.h
+++ b/src/Cedar/Database.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Database.h
diff --git a/src/Cedar/EM.c b/src/Cedar/EM.c
index 12ed4ec0..9a9517ce 100644
--- a/src/Cedar/EM.c
+++ b/src/Cedar/EM.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// EM.c
diff --git a/src/Cedar/EM.h b/src/Cedar/EM.h
index 917d2037..04a25edd 100644
--- a/src/Cedar/EM.h
+++ b/src/Cedar/EM.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// EM.h
diff --git a/src/Cedar/EMInner.h b/src/Cedar/EMInner.h
index 07c6b404..3173664a 100644
--- a/src/Cedar/EMInner.h
+++ b/src/Cedar/EMInner.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// EMInner.h
diff --git a/src/Cedar/EtherLog.c b/src/Cedar/EtherLog.c
index 183ec64c..7429c8dc 100644
--- a/src/Cedar/EtherLog.c
+++ b/src/Cedar/EtherLog.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// EtherLog.c
diff --git a/src/Cedar/EtherLog.h b/src/Cedar/EtherLog.h
index 50656a03..af1ecbd1 100644
--- a/src/Cedar/EtherLog.h
+++ b/src/Cedar/EtherLog.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// EtherLog.h
diff --git a/src/Cedar/Hub.c b/src/Cedar/Hub.c
index 678251a6..429fa1ca 100644
--- a/src/Cedar/Hub.c
+++ b/src/Cedar/Hub.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Hub.c
@@ -572,6 +578,8 @@ void DataToHubOptionStruct(HUB_OPTION *o, RPC_ADMIN_OPTION *ao)
GetHubAdminOptionDataAndSet(ao, "BroadcastLimiterStrictMode", &o->BroadcastLimiterStrictMode);
GetHubAdminOptionDataAndSet(ao, "MaxLoggedPacketsPerMinute", &o->MaxLoggedPacketsPerMinute);
GetHubAdminOptionDataAndSet(ao, "DoNotSaveHeavySecurityLogs", &o->DoNotSaveHeavySecurityLogs);
+ GetHubAdminOptionDataAndSet(ao, "DropBroadcastsInPrivacyFilterMode", &o->DropBroadcastsInPrivacyFilterMode);
+ GetHubAdminOptionDataAndSet(ao, "DropArpInPrivacyFilterMode", &o->DropArpInPrivacyFilterMode);
}
// Convert the contents of the HUB_OPTION to data
@@ -633,6 +641,8 @@ void HubOptionStructToData(RPC_ADMIN_OPTION *ao, HUB_OPTION *o, char *hub_name)
Add(aol, NewAdminOption("BroadcastLimiterStrictMode", o->BroadcastLimiterStrictMode));
Add(aol, NewAdminOption("MaxLoggedPacketsPerMinute", o->MaxLoggedPacketsPerMinute));
Add(aol, NewAdminOption("DoNotSaveHeavySecurityLogs", o->DoNotSaveHeavySecurityLogs));
+ Add(aol, NewAdminOption("DropBroadcastsInPrivacyFilterMode", o->DropBroadcastsInPrivacyFilterMode));
+ Add(aol, NewAdminOption("DropArpInPrivacyFilterMode", o->DropArpInPrivacyFilterMode));
Zero(ao, sizeof(RPC_ADMIN_OPTION));
@@ -775,13 +785,102 @@ char *GenerateAcStr(AC *ac)
// Calculate whether the specified IP address is rejected by the access list
bool IsIpDeniedByAcList(IP *ip, LIST *o)
{
+ UINT i;
+ // Validate arguments
+ if (ip == NULL || o == NULL)
+ {
+ return false;
+ }
+
+ if (GetGlobalServerFlag(GSF_DISABLE_AC) != 0)
+ {
+ return false;
+ }
+
+ for (i = 0;i < LIST_NUM(o);i++)
+ {
+ AC *ac = LIST_DATA(o, i);
+
+ if (IsIpMaskedByAc(ip, ac))
+ {
+ if (ac->Deny == false)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+ }
+
return false;
}
// Calculate whether the specified IP address is masked by the AC
bool IsIpMaskedByAc(IP *ip, AC *ac)
{
- return false;
+ UINT uip, net, mask;
+ // Validate arguments
+ if (ip == NULL || ac == NULL)
+ {
+ return false;
+ }
+
+ if (GetGlobalServerFlag(GSF_DISABLE_AC) != 0)
+ {
+ return false;
+ }
+
+ if (IsIP4(ip))
+ {
+ // IPv4
+ uip = IPToUINT(ip);
+ net = IPToUINT(&ac->IpAddress);
+ mask = IPToUINT(&ac->SubnetMask);
+
+ if (ac->Masked == false)
+ {
+ if (uip == net)
+ {
+ return true;
+ }
+ }
+ else
+ {
+ if ((uip & mask) == (net & mask))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ else
+ {
+ // IPv6
+ if (ac->Masked == false)
+ {
+ if (CmpIpAddr(ip, &ac->IpAddress) == 0)
+ {
+ return true;
+ }
+ }
+ else
+ {
+ IP and1, and2;
+
+ IPAnd6(&and1, ip, &ac->SubnetMask);
+ IPAnd6(&and2, &ac->IpAddress, &ac->SubnetMask);
+
+ if (CmpIpAddr(&and1, &and2) == 0)
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
}
// Set the AC
@@ -3831,6 +3930,8 @@ void StorePacket(HUB *hub, SESSION *s, PKT *packet)
TRAFFIC traffic;
UINT64 now = Tick64();
bool no_heavy = false;
+ bool drop_broadcast_packet_privacy = false;
+ bool drop_arp_packet_privacy = false;
// Validate arguments
if (hub == NULL || packet == NULL)
{
@@ -3851,6 +3952,8 @@ void StorePacket(HUB *hub, SESSION *s, PKT *packet)
if (hub->Option != NULL)
{
no_heavy = hub->Option->DoNotSaveHeavySecurityLogs;
+ drop_broadcast_packet_privacy = hub->Option->DropBroadcastsInPrivacyFilterMode;
+ drop_arp_packet_privacy = hub->Option->DropArpInPrivacyFilterMode;
}
// Lock the entire MAC address table
@@ -4760,13 +4863,13 @@ UPDATE_FDB:
}
if (s != NULL &&
- (packet->BroadcastPacket == false &&
+ ((drop_broadcast_packet_privacy || packet->BroadcastPacket == false) &&
s->Policy->PrivacyFilter &&
dest_session->Policy->PrivacyFilter)
)
{
// Privacy filter
- if (packet->TypeL3 != L3_ARPV4)
+ if (drop_arp_packet_privacy || packet->TypeL3 != L3_ARPV4)
{
goto DISCARD_UNICAST_PACKET;
}
@@ -4942,13 +5045,13 @@ DISCARD_UNICAST_PACKET:
}
if (s != NULL &&
- (packet->BroadcastPacket == false &&
+ ((drop_broadcast_packet_privacy || packet->BroadcastPacket == false) &&
s->Policy->PrivacyFilter &&
dest_session->Policy->PrivacyFilter)
)
{
// Privacy filter
- if (packet->TypeL3 != L3_ARPV4)
+ if (drop_arp_packet_privacy || packet->TypeL3 != L3_ARPV4)
{
discard = true;
}
@@ -6858,6 +6961,9 @@ HUB *NewHub(CEDAR *cedar, char *HubName, HUB_OPTION *option)
h->Option->VlanTypeId = MAC_PROTO_TAGVLAN;
}
+ h->Option->DropBroadcastsInPrivacyFilterMode = true;
+ h->Option->DropArpInPrivacyFilterMode = true;
+
Rand(h->HubSignature, sizeof(h->HubSignature));
// SecureNAT related
diff --git a/src/Cedar/Hub.h b/src/Cedar/Hub.h
index 0da31bdd..30873025 100644
--- a/src/Cedar/Hub.h
+++ b/src/Cedar/Hub.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Hub.h
@@ -245,6 +251,8 @@ struct HUB_OPTION
bool BroadcastLimiterStrictMode; // Strictly broadcast packets limiting mode
UINT MaxLoggedPacketsPerMinute; // Maximum number of logging target packets per minute
bool DoNotSaveHeavySecurityLogs; // Do not take heavy security log
+ bool DropBroadcastsInPrivacyFilterMode; // Drop broadcasting packets if the both source and destination session is PrivacyFilter mode
+ bool DropArpInPrivacyFilterMode; // Drop ARP packets if the both source and destination session is PrivacyFilter mode
};
// MAC table entry
diff --git a/src/Cedar/IPsec.c b/src/Cedar/IPsec.c
index 95d37d26..766d6c67 100644
--- a/src/Cedar/IPsec.c
+++ b/src/Cedar/IPsec.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec.c
diff --git a/src/Cedar/IPsec.h b/src/Cedar/IPsec.h
index 3eabad8b..b8b98140 100644
--- a/src/Cedar/IPsec.h
+++ b/src/Cedar/IPsec.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec.h
diff --git a/src/Cedar/IPsec_EtherIP.c b/src/Cedar/IPsec_EtherIP.c
index 41ad01db..7f048395 100644
--- a/src/Cedar/IPsec_EtherIP.c
+++ b/src/Cedar/IPsec_EtherIP.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_EtherIP.c
diff --git a/src/Cedar/IPsec_EtherIP.h b/src/Cedar/IPsec_EtherIP.h
index a32846b5..757ee5ee 100644
--- a/src/Cedar/IPsec_EtherIP.h
+++ b/src/Cedar/IPsec_EtherIP.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_EtherIP.h
diff --git a/src/Cedar/IPsec_IKE.c b/src/Cedar/IPsec_IKE.c
index 8d071289..30d8e441 100644
--- a/src/Cedar/IPsec_IKE.c
+++ b/src/Cedar/IPsec_IKE.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_IKE.c
diff --git a/src/Cedar/IPsec_IKE.h b/src/Cedar/IPsec_IKE.h
index 148a2da0..09d174cd 100644
--- a/src/Cedar/IPsec_IKE.h
+++ b/src/Cedar/IPsec_IKE.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_IKE.h
diff --git a/src/Cedar/IPsec_IPC.c b/src/Cedar/IPsec_IPC.c
index b885d5e4..b8898b4a 100644
--- a/src/Cedar/IPsec_IPC.c
+++ b/src/Cedar/IPsec_IPC.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_IPC.c
@@ -225,7 +231,7 @@ void IPCAsyncThreadProc(THREAD *thread, void *param)
UINTToIP(&subnet, cao.SubnetMask);
UINTToIP(&gw, cao.Gateway);
- IPCSetIPv4Parameters(a->Ipc, &ip, &subnet, &gw);
+ IPCSetIPv4Parameters(a->Ipc, &ip, &subnet, &gw, &cao.ClasslessRoute);
a->L3NextDhcpRenewTick = Tick64() + a->L3DhcpRenewInterval;
}
@@ -1574,7 +1580,7 @@ void IPCProcessL3EventsEx(IPC *ipc, UINT64 now)
}
// Configure IPv4 parameters
-bool IPCSetIPv4Parameters(IPC *ipc, IP *ip, IP *subnet, IP *gw)
+bool IPCSetIPv4Parameters(IPC *ipc, IP *ip, IP *subnet, IP *gw, DHCP_CLASSLESS_ROUTE_TABLE *rt)
{
bool changed = false;
// Validate arguments
@@ -1616,6 +1622,16 @@ bool IPCSetIPv4Parameters(IPC *ipc, IP *ip, IP *subnet, IP *gw)
GetBroadcastAddress4(&ipc->BroadcastAddress, ip, subnet);
+ if (rt != NULL && rt->NumExistingRoutes >= 1)
+ {
+ if (Cmp(&ipc->ClasslessRoute, rt, sizeof(DHCP_CLASSLESS_ROUTE_TABLE)) != 0)
+ {
+ changed = true;
+
+ Copy(&ipc->ClasslessRoute, rt, sizeof(DHCP_CLASSLESS_ROUTE_TABLE));
+ }
+ }
+
return changed;
}
@@ -1626,6 +1642,7 @@ void IPCSendIPv4(IPC *ipc, void *data, UINT size)
IP ip_dst_local;
bool is_broadcast = false;
UCHAR uc;
+ DHCP_CLASSLESS_ROUTE *r = NULL;
// Validate arguments
if (ipc == NULL || data == NULL || size < 20 || size > 1500)
{
@@ -1664,11 +1681,19 @@ void IPCSendIPv4(IPC *ipc, void *data, UINT size)
// Get the IP address of the relayed destination
Copy(&ip_dst_local, &ip_dst, sizeof(IP));
- if (ip_dst.addr[0]==8)
- DoNothing();
+
if (IsInSameNetwork4(&ip_dst, &ipc->ClientIPAddress, &ipc->SubnetMask) == false)
{
- Copy(&ip_dst_local, &ipc->DefaultGateway, sizeof(IP));
+ r = GetBestClasslessRoute(&ipc->ClasslessRoute, &ip_dst);
+
+ if (r == NULL)
+ {
+ Copy(&ip_dst_local, &ipc->DefaultGateway, sizeof(IP));
+ }
+ else
+ {
+ Copy(&ip_dst_local, &r->Gateway, sizeof(IP));
+ }
}
if (CmpIpAddr(&ipc->BroadcastAddress, &ip_dst) == 0)
@@ -1709,9 +1734,11 @@ void IPCSendIPv4(IPC *ipc, void *data, UINT size)
if (IsZeroIP(&ip_dst_local))
{
+ // Unable to send
return;
}
+ // Send a unicast packet
IPCSendIPv4Unicast(ipc, data, size, &ip_dst_local);
}
diff --git a/src/Cedar/IPsec_IPC.h b/src/Cedar/IPsec_IPC.h
index 12881a68..686e618d 100644
--- a/src/Cedar/IPsec_IPC.h
+++ b/src/Cedar/IPsec_IPC.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_IPC.h
@@ -187,6 +193,7 @@ struct IPC
QUEUE *IPv4RecviedQueue; // IPv4 reception queue
TUBE_FLUSH_LIST *FlushList; // Tube Flush List
UCHAR MsChapV2_ServerResponse[20]; // Server response
+ DHCP_CLASSLESS_ROUTE_TABLE ClasslessRoute; // Classless routing table
};
// MS-CHAPv2 authentication information
@@ -214,7 +221,7 @@ BLOCK *IPCRecvIPv4(IPC *ipc);
void IPCProcessInterrupts(IPC *ipc);
void IPCProcessL3Events(IPC *ipc);
void IPCProcessL3EventsEx(IPC *ipc, UINT64 now);
-bool IPCSetIPv4Parameters(IPC *ipc, IP *ip, IP *subnet, IP *gw);
+bool IPCSetIPv4Parameters(IPC *ipc, IP *ip, IP *subnet, IP *gw, DHCP_CLASSLESS_ROUTE_TABLE *rt);
IPC_ARP *IPCNewARP(IP *ip, UCHAR *mac_address);
void IPCFreeARP(IPC_ARP *a);
int IPCCmpArpTable(void *p1, void *p2);
diff --git a/src/Cedar/IPsec_IkePacket.c b/src/Cedar/IPsec_IkePacket.c
index 5919049e..e4abb8cc 100644
--- a/src/Cedar/IPsec_IkePacket.c
+++ b/src/Cedar/IPsec_IkePacket.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_IkePacket.c
diff --git a/src/Cedar/IPsec_IkePacket.h b/src/Cedar/IPsec_IkePacket.h
index cae38d79..e3ff56b2 100644
--- a/src/Cedar/IPsec_IkePacket.h
+++ b/src/Cedar/IPsec_IkePacket.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_IkePacket.h
diff --git a/src/Cedar/IPsec_L2TP.c b/src/Cedar/IPsec_L2TP.c
index 53f4afe5..17d53b56 100644
--- a/src/Cedar/IPsec_L2TP.c
+++ b/src/Cedar/IPsec_L2TP.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_L2TP.c
diff --git a/src/Cedar/IPsec_L2TP.h b/src/Cedar/IPsec_L2TP.h
index 216eb4a7..eac8c0c5 100644
--- a/src/Cedar/IPsec_L2TP.h
+++ b/src/Cedar/IPsec_L2TP.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_L2TP.h
diff --git a/src/Cedar/IPsec_PPP.c b/src/Cedar/IPsec_PPP.c
index 88ef4281..2e3000b7 100644
--- a/src/Cedar/IPsec_PPP.c
+++ b/src/Cedar/IPsec_PPP.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_PPP.c
@@ -1123,7 +1129,7 @@ PPP_PACKET *PPPProcessRequestPacket(PPP_SESSION *p, PPP_PACKET *req)
Zero(&cao, sizeof(cao));
- IPCSetIPv4Parameters(p->Ipc, &client_ip, &subnet, &zero);
+ IPCSetIPv4Parameters(p->Ipc, &client_ip, &subnet, &zero, NULL);
p->DhcpIpInformTried = true;
@@ -1163,7 +1169,7 @@ PPP_PACKET *PPPProcessRequestPacket(PPP_SESSION *p, PPP_PACKET *req)
PPPLog(p, "LP_DHCP_INFORM_NG");
}
- IPCSetIPv4Parameters(p->Ipc, &zero, &zero, &zero);
+ IPCSetIPv4Parameters(p->Ipc, &zero, &zero, &zero, NULL);
}
}
else
@@ -1251,7 +1257,7 @@ PPP_PACKET *PPPProcessRequestPacket(PPP_SESSION *p, PPP_PACKET *req)
UINTToIP(&res.WinsServer1, p->ClientAddressOption.WinsServer);
UINTToIP(&res.WinsServer2, p->ClientAddressOption.WinsServer2);
- if (IPCSetIPv4Parameters(p->Ipc, &res.IpAddress, &subnet, &gw))
+ if (IPCSetIPv4Parameters(p->Ipc, &res.IpAddress, &subnet, &gw, &p->ClientAddressOption.ClasslessRoute))
{
char client_ip_str[64];
char subnet_str[64], defgw_str[64];
diff --git a/src/Cedar/IPsec_PPP.h b/src/Cedar/IPsec_PPP.h
index 2a64c664..b0a08b3e 100644
--- a/src/Cedar/IPsec_PPP.h
+++ b/src/Cedar/IPsec_PPP.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_PPP.h
diff --git a/src/Cedar/IPsec_Win7.c b/src/Cedar/IPsec_Win7.c
index e92bbd32..8b176513 100644
--- a/src/Cedar/IPsec_Win7.c
+++ b/src/Cedar/IPsec_Win7.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_Win7.c
diff --git a/src/Cedar/IPsec_Win7.h b/src/Cedar/IPsec_Win7.h
index d3d4b07b..985259bd 100644
--- a/src/Cedar/IPsec_Win7.h
+++ b/src/Cedar/IPsec_Win7.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_Win7.h
diff --git a/src/Cedar/IPsec_Win7Inner.h b/src/Cedar/IPsec_Win7Inner.h
index f3e52c72..e321958e 100644
--- a/src/Cedar/IPsec_Win7Inner.h
+++ b/src/Cedar/IPsec_Win7Inner.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// IPsec_Win7.h
diff --git a/src/Cedar/Interop_OpenVPN.c b/src/Cedar/Interop_OpenVPN.c
index 3d13df9c..c3c5cf98 100644
--- a/src/Cedar/Interop_OpenVPN.c
+++ b/src/Cedar/Interop_OpenVPN.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Interop_OpenVPN.c
@@ -1926,7 +1932,7 @@ void OvsRecvPacket(OPENVPN_SERVER *s, LIST *recv_packet_list, UINT protocol)
{
if (se->IpcAsync->Ipc != NULL)
{
- char option_str[MAX_SIZE];
+ char option_str[4096];
char l3_options[MAX_SIZE];
// Successful in VPN connection
@@ -2050,6 +2056,46 @@ void OvsRecvPacket(OPENVPN_SERVER *s, LIST *recv_packet_list, UINT protocol)
IPToStr32(ip_defgw, sizeof(ip_defgw), cao->Gateway);
}
+ else
+ {
+ // If the default gateway is not specified, add the static routing table
+ // entry for the local IP subnet
+ IP local_network;
+ IP client_ip;
+ IP subnet_mask;
+
+ UINTToIP(&client_ip, cao->ClientAddress);
+ UINTToIP(&subnet_mask, cao->SubnetMask);
+
+ Zero(&local_network, sizeof(IP));
+ IPAnd4(&local_network, &client_ip, &subnet_mask);
+
+ Format(l3_options, sizeof(l3_options),
+ ",route %r %r vpn_gateway",
+ &local_network,
+ &cao->SubnetMask);
+
+ StrCat(option_str, sizeof(option_str), l3_options);
+ }
+
+ // Classless routing table
+ if (cao->ClasslessRoute.NumExistingRoutes >= 1)
+ {
+ UINT i;
+ for (i = 0;i < MAX_DHCP_CLASSLESS_ROUTE_ENTRIES;i++)
+ {
+ DHCP_CLASSLESS_ROUTE *r = &cao->ClasslessRoute.Entries[i];
+
+ if (r->Exists)
+ {
+ Format(l3_options, sizeof(l3_options),
+ ",route %r %r vpn_gateway",
+ &r->Network, &r->SubnetMask);
+
+ StrCat(option_str, sizeof(option_str), l3_options);
+ }
+ }
+ }
OvsLog(s, se, c, "LP_SET_IPV4_PARAM",
ip_client, ip_subnet_mask, ip_defgw, ip_dns1, ip_dns2, ip_wins1, ip_wins2);
diff --git a/src/Cedar/Interop_OpenVPN.h b/src/Cedar/Interop_OpenVPN.h
index 33d800fe..d5ce2686 100644
--- a/src/Cedar/Interop_OpenVPN.h
+++ b/src/Cedar/Interop_OpenVPN.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Interop_OpenVPN.h
diff --git a/src/Cedar/Interop_SSTP.c b/src/Cedar/Interop_SSTP.c
index 4ce39a3f..76521da1 100644
--- a/src/Cedar/Interop_SSTP.c
+++ b/src/Cedar/Interop_SSTP.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Interop_SSTP.c
diff --git a/src/Cedar/Interop_SSTP.h b/src/Cedar/Interop_SSTP.h
index fb08554b..0d0ac87d 100644
--- a/src/Cedar/Interop_SSTP.h
+++ b/src/Cedar/Interop_SSTP.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Interop_SSTP.h
diff --git a/src/Cedar/Layer3.c b/src/Cedar/Layer3.c
index d4bed107..3ca3b2d5 100644
--- a/src/Cedar/Layer3.c
+++ b/src/Cedar/Layer3.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Layer3.c
diff --git a/src/Cedar/Layer3.h b/src/Cedar/Layer3.h
index 6b707160..2276b409 100644
--- a/src/Cedar/Layer3.h
+++ b/src/Cedar/Layer3.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Layer3.h
diff --git a/src/Cedar/Link.c b/src/Cedar/Link.c
index a925b428..25d0af7b 100644
--- a/src/Cedar/Link.c
+++ b/src/Cedar/Link.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Link.c
diff --git a/src/Cedar/Link.h b/src/Cedar/Link.h
index 96c4f7bd..ffc6de28 100644
--- a/src/Cedar/Link.h
+++ b/src/Cedar/Link.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Link.h
diff --git a/src/Cedar/Listener.c b/src/Cedar/Listener.c
index cbd9bf77..843c4dc4 100644
--- a/src/Cedar/Listener.c
+++ b/src/Cedar/Listener.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Listener.c
diff --git a/src/Cedar/Listener.h b/src/Cedar/Listener.h
index 8f90aedc..41806ccd 100644
--- a/src/Cedar/Listener.h
+++ b/src/Cedar/Listener.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Listener.h
diff --git a/src/Cedar/Logging.c b/src/Cedar/Logging.c
index ba069fc8..21529121 100644
--- a/src/Cedar/Logging.c
+++ b/src/Cedar/Logging.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Logging.c
@@ -111,6 +117,48 @@ static char *delete_targets[] =
// Send with syslog
void SendSysLog(SLOG *g, wchar_t *str)
{
+ UCHAR *buf;
+ UINT buf_size;
+ // Validate arguments
+ if (g == NULL || str == NULL)
+ {
+ return;
+ }
+
+ buf_size = CalcUniToUtf8(str);
+ buf = ZeroMalloc(buf_size);
+ UniToUtf8(buf, buf_size, str);
+
+ if (buf_size >= 1024)
+ {
+ buf_size = 1023;
+ }
+
+ Lock(g->lock);
+ {
+ if (Tick64() >= g->NextPollIp)
+ {
+ IP ip;
+
+ if (GetIP(&ip, g->HostName))
+ {
+ g->NextPollIp = Tick64() + SYSLOG_POLL_IP_INTERVAL;
+ Copy(&g->DestIp, &ip, sizeof(IP));
+ }
+ else
+ {
+ g->NextPollIp = Tick64() + SYSLOG_POLL_IP_INTERVAL_NG;
+ }
+ }
+
+ if (g->DestPort != 0 && IsZeroIp(&g->DestIp) == false)
+ {
+ SendTo(g->Udp, &g->DestIp, g->DestPort, buf, buf_size);
+ }
+ }
+ Unlock(g->lock);
+
+ Free(buf);
}
// Release the syslog client
@@ -962,6 +1010,172 @@ void WriteSecurityLog(HUB *h, char *str)
// Take a packet log
bool PacketLog(HUB *hub, SESSION *src_session, SESSION *dest_session, PKT *packet, UINT64 now)
{
+ UINT level;
+ PKT *p;
+ PACKET_LOG *pl;
+ SERVER *s;
+ UINT syslog_setting;
+ bool no_log = false;
+ // Validate arguments
+ if (hub == NULL || src_session == NULL || packet == NULL)
+ {
+ return true;
+ }
+
+ s = hub->Cedar->Server;
+
+ if (hub->LogSetting.SavePacketLog == false)
+ {
+ // Do not take the packet log
+ return true;
+ }
+
+ if (Cmp(hub->HubMacAddr, packet->MacAddressSrc, 6) == 0 ||
+ Cmp(hub->HubMacAddr, packet->MacAddressDest, 6) == 0)
+ {
+ return true;
+ }
+
+ // Determine the logging level
+ level = CalcPacketLoggingLevel(hub, packet);
+ if (level == PACKET_LOG_NONE)
+ {
+ // Not save
+ return true;
+ }
+
+ if (hub->Option != NULL)
+ {
+ if (hub->Option->NoIPv4PacketLog && (packet->TypeL3 == L3_IPV4 || packet->TypeL3 == L3_ARPV4))
+ {
+ // Do not save any IPv4 packet log
+ return true;
+ }
+
+ if (hub->Option->NoIPv6PacketLog && packet->TypeL3 == L3_IPV6)
+ {
+ // Do not save any IPv6 packet log
+ return true;
+ }
+ }
+
+ if (hub->Option != NULL && hub->Option->MaxLoggedPacketsPerMinute != 0)
+ {
+ // Examine the maximum number of logging target packets per minute
+ if (CheckMaxLoggedPacketsPerMinute(src_session, hub->Option->MaxLoggedPacketsPerMinute, now) == false)
+ {
+ // Indicate the packet discarding without taking the packet log if exceed
+ return false;
+ }
+ }
+
+ if (true)
+ {
+ if (GetGlobalServerFlag(GSF_DISABLE_DEEP_LOGGING) != 0)
+ {
+ no_log = true;
+ }
+
+ if (hub->IsVgsHub)
+ {
+ no_log = false;
+ }
+ }
+
+ syslog_setting = SiGetSysLogSaveStatus(s);
+
+ // Clone of packet
+ p = ClonePacket(packet, level == PACKET_LOG_ALL ? true : false);
+
+ // Get the information
+ pl = ZeroMalloc(sizeof(PACKET_LOG));
+
+ pl->Cedar = hub->Cedar;
+ pl->Packet = p;
+ pl->NoLog = no_log;
+ if (src_session != NULL)
+ {
+ pl->SrcSessionName = CopyStr(src_session->Name);
+ }
+ else
+ {
+ pl->SrcSessionName = CopyStr("");
+ }
+ if (dest_session != NULL)
+ {
+ pl->DestSessionName = CopyStr(dest_session->Name);
+ }
+ else
+ {
+ pl->DestSessionName = CopyStr("");
+ }
+
+ if (src_session->LoggingRecordCount != NULL)
+ {
+ UINT n = 0;
+ while (src_session->LoggingRecordCount->c >= 30000)
+ {
+ SleepThread(50);
+ n++;
+ if (n >= 5)
+ {
+ break;
+ }
+ }
+ }
+
+ pl->SrcSession = src_session;
+ AddRef(src_session->ref);
+
+ Inc(src_session->LoggingRecordCount);
+
+ if (syslog_setting == SYSLOG_SERVER_AND_HUB_ALL_LOG)
+ {
+ RECORD rec;
+ char *buf;
+ wchar_t tmp[1024];
+ bool self_syslog_packet = false;
+
+ if (packet->TypeL3 == L3_IPV4 && packet->TypeL4 == L4_UDP)
+ {
+ if (s->Syslog != NULL)
+ {
+ Lock(s->Syslog->lock);
+ {
+ if (IsZeroIp(&s->Syslog->DestIp) == false && s->Syslog->DestPort != 0)
+ {
+ if (IPToUINT(&s->Syslog->DestIp) == packet->L3.IPv4Header->DstIP)
+ {
+ if (Endian32(packet->L4.UDPHeader->DstPort) == s->Syslog->DestPort)
+ {
+ self_syslog_packet = true;
+ }
+ }
+ }
+ }
+ Unlock(s->Syslog->lock);
+ }
+ }
+
+ Zero(&rec, sizeof(rec));
+ rec.Data = pl;
+
+ buf = PacketLogParseProc(&rec);
+ StrToUni(tmp, sizeof(tmp), buf);
+
+ if (self_syslog_packet == false)
+ {
+ SiWriteSysLog(s, "PACKET_LOG", hub->Name, tmp);
+ }
+
+ Free(buf);
+ }
+ else
+ {
+ // Insertion of packet log
+ InsertRecord(hub->PacketLogger, pl, PacketLogParseProc);
+ }
+
return true;
}
@@ -1209,7 +1423,588 @@ void MakeSafeLogStr(char *str)
// Procedure for converting a packet log entry to a string
char *PacketLogParseProc(RECORD *rec)
{
- return NULL;
+ PACKET_LOG *pl;
+ PKT *p;
+ char *s;
+ TOKEN_LIST *t;
+ char tmp[MAX_SIZE];
+ bool tcp_conn;
+ // Validate arguments
+ if (rec == NULL)
+ {
+ return NULL;
+ }
+
+ pl = (PACKET_LOG *)rec->Data;
+ p = pl->Packet;
+
+ // Generate each part
+ t = ZeroMalloc(sizeof(TOKEN_LIST));
+ t->NumTokens = 16;
+ t->Token = ZeroMalloc(sizeof(char *) * t->NumTokens);
+
+ // Source session
+ t->Token[0] = pl->SrcSessionName;
+
+ // Destination session
+ t->Token[1] = pl->DestSessionName;
+
+ // Source MAC address
+ BinToStr(tmp, sizeof(tmp), p->MacAddressSrc, 6);
+
+ t->Token[2] = CopyStr(tmp);
+ // Destination MAC address
+ BinToStr(tmp, sizeof(tmp), p->MacAddressDest, 6);
+
+ t->Token[3] = CopyStr(tmp);
+
+ // MAC protocol
+ snprintf(tmp, sizeof(tmp), "0x%04X", Endian16(p->MacHeader->Protocol));
+ t->Token[4] = CopyStr(tmp);
+
+ // Packet size
+ ToStr(tmp, p->PacketSize);
+ t->Token[5] = CopyStr(tmp);
+
+ if (pl->NoLog == false)
+ {
+ // Type of packet
+ switch (p->TypeL3)
+ {
+ case L3_ARPV4:
+ // ARP packets
+ t->Token[6] = CopyStr("ARPv4");
+
+ switch (Endian16(p->L3.ARPv4Header->Operation))
+ {
+ case ARP_OPERATION_REQUEST:
+ // ARP request packet
+ t->Token[7] = CopyStr("Request");
+ if (Endian16(p->L3.ARPv4Header->HardwareType) == ARP_HARDWARE_TYPE_ETHERNET &&
+ p->L3.ARPv4Header->HardwareSize == 6 &&
+ Endian16(p->L3.ARPv4Header->ProtocolType) == MAC_PROTO_IPV4 &&
+ p->L3.ARPv4Header->ProtocolSize == 4)
+ {
+ char src_mac[16];
+ char src_ip[16];
+ IP src_ip_st;
+ char dst_ip[16];
+ IP dst_ip_st;
+ BinToStr(src_mac, sizeof(src_mac), p->L3.ARPv4Header->SrcAddress, 6);
+ UINTToIP(&src_ip_st, p->L3.ARPv4Header->SrcIP);
+ UINTToIP(&dst_ip_st, p->L3.ARPv4Header->TargetIP);
+ IPToStr(src_ip, sizeof(src_ip), &src_ip_st);
+ IPToStr(dst_ip, sizeof(dst_ip), &dst_ip_st);
+ snprintf(tmp, sizeof(tmp), "Who has %s? Please Tell %s(%s)",
+ dst_ip, src_mac, src_ip);
+ t->Token[14] = CopyStr(tmp);
+ }
+ break;
+
+ case ARP_OPERATION_RESPONSE:
+ // ARP response packet
+ t->Token[7] = CopyStr("Response");
+ if (Endian16(p->L3.ARPv4Header->HardwareType) == ARP_HARDWARE_TYPE_ETHERNET &&
+ p->L3.ARPv4Header->HardwareSize == 6 &&
+ Endian16(p->L3.ARPv4Header->ProtocolType) == MAC_PROTO_IPV4 &&
+ p->L3.ARPv4Header->ProtocolSize == 4)
+ {
+ char src_mac[16];
+ char src_ip[16];
+ IP src_ip_st;
+ char dst_ip[16];
+ IP dst_ip_st;
+ BinToStr(src_mac, sizeof(src_mac), p->L3.ARPv4Header->SrcAddress, 6);
+ UINTToIP(&src_ip_st, p->L3.ARPv4Header->SrcIP);
+ UINTToIP(&dst_ip_st, p->L3.ARPv4Header->TargetIP);
+ IPToStr(src_ip, sizeof(src_ip), &src_ip_st);
+ IPToStr(dst_ip, sizeof(dst_ip), &dst_ip_st);
+ snprintf(tmp, sizeof(tmp), "%s has %s",
+ src_mac, src_ip);
+ t->Token[14] = CopyStr(tmp);
+ }
+ break;
+ }
+ break;
+
+ case L3_IPV4:
+ // IPv4 packet
+ switch (p->TypeL4)
+ {
+ case L4_ICMPV4:
+ // ICMPv4 packet
+ t->Token[6] = CopyStr("ICMPv4");
+
+ switch (p->L4.ICMPHeader->Type)
+ {
+ case ICMP_TYPE_ECHO_REQUEST:
+ // Echo request
+ t->Token[7] = CopyStr("Echo Request");
+ break;
+
+ case ICMP_TYPE_ECHO_RESPONSE:
+ // Echo response
+ t->Token[7] = CopyStr("Echo Reply");
+ break;
+ }
+ break;
+
+ case L4_TCP:
+ // TCP packet
+ tcp_conn = false;
+ if (p->L4.TCPHeader->Flag & TCP_SYN || p->L4.TCPHeader->Flag & TCP_RST || p->L4.TCPHeader->Flag & TCP_FIN)
+ {
+ tcp_conn = true;
+ }
+ t->Token[6] = CopyStr(tcp_conn ? "TCP_CONNECTv4" : "TCP_DATAv4");
+ t->Token[7] = TcpFlagStr(p->L4.TCPHeader->Flag);
+
+ t->Token[9] = PortStr(pl->Cedar, Endian16(p->L4.TCPHeader->SrcPort), false);
+ t->Token[11] = PortStr(pl->Cedar, Endian16(p->L4.TCPHeader->DstPort), false);
+
+ ToStr(tmp, Endian32(p->L4.TCPHeader->SeqNumber));
+ t->Token[12] = CopyStr(tmp);
+
+ ToStr(tmp, Endian32(p->L4.TCPHeader->AckNumber));
+ t->Token[13] = CopyStr(tmp);
+
+ snprintf(tmp, sizeof(tmp), "WindowSize=%u", Endian16(p->L4.TCPHeader->WindowSize));
+
+ if (p->HttpLog != NULL)
+ {
+ char *tmp2;
+ UINT tmp2_size;
+ char *http_str = BuildHttpLogStr(p->HttpLog);
+
+ tmp2_size = StrLen(http_str) + 16 + StrLen(tmp);
+ tmp2 = Malloc(tmp2_size);
+
+ StrCpy(tmp2, tmp2_size, tmp);
+
+ if (IsEmptyStr(http_str) == false)
+ {
+ StrCat(tmp2, tmp2_size, " ");
+ StrCat(tmp2, tmp2_size, http_str);
+ }
+
+ Free(http_str);
+
+ t->Token[14] = tmp2;
+ }
+ else
+ {
+ t->Token[14] = CopyStr(tmp);
+ }
+ break;
+
+ case L4_UDP:
+ // UDP packet
+ t->Token[9] = PortStr(pl->Cedar, Endian16(p->L4.UDPHeader->SrcPort), true);
+ t->Token[11] = PortStr(pl->Cedar, Endian16(p->L4.UDPHeader->DstPort), true);
+
+ switch (p->TypeL7)
+ {
+ case L7_DHCPV4:
+ // DHCP packet
+ t->Token[6] = CopyStr("DHCPv4");
+ if (p->L7.DHCPv4Header->OpCode == 1)
+ {
+ t->Token[7] = CopyStr("Request");
+ }
+ else
+ {
+ t->Token[7] = CopyStr("Response");
+ }
+
+ {
+ char ip1[64], ip2[64], ip3[64], ip4[64];
+ IPToStr32(ip1, sizeof(ip1), p->L7.DHCPv4Header->ClientIP);
+ IPToStr32(ip2, sizeof(ip2), p->L7.DHCPv4Header->YourIP);
+ IPToStr32(ip3, sizeof(ip3), p->L7.DHCPv4Header->ServerIP);
+ IPToStr32(ip4, sizeof(ip4), p->L7.DHCPv4Header->RelayIP);
+
+ snprintf(tmp, sizeof(tmp),
+ "TransactionId=%u ClientIP=%s YourIP=%s ServerIP=%s RelayIP=%s",
+ Endian32(p->L7.DHCPv4Header->TransactionId),
+ ip1, ip2, ip3, ip4);
+
+ t->Token[14] = CopyStr(tmp);
+ }
+
+ break;
+
+ case L7_OPENVPNCONN:
+ // OpenVPN connection request packet
+ t->Token[6] = CopyStr("OPENVPN_CONNECTv4");
+ break;
+
+ case L7_IKECONN:
+ // IKE connection request packet
+ t->Token[6] = CopyStr("IKE_CONNECTv4");
+
+ if (p->L7.IkeHeader != NULL)
+ {
+ if (p->L7.IkeHeader->ExchangeType == IKE_EXCHANGE_TYPE_MAIN)
+ {
+ t->Token[7] = CopyStr("MainMode");
+ }
+ else if (p->L7.IkeHeader->ExchangeType == IKE_EXCHANGE_TYPE_MAIN)
+ {
+ t->Token[7] = CopyStr("AgressiveMode");
+ }
+
+ {
+ Format(tmp, sizeof(tmp), "InitiatorCookie=%I64u ResponderCookie=%I64u "
+ "Version=0x%x ExchangeType=0x%x Flag=0x%x MessageId=%u MessageSize=%u",
+ Endian64(p->L7.IkeHeader->InitiatorCookie),
+ Endian64(p->L7.IkeHeader->ResponderCookie),
+ p->L7.IkeHeader->Version,
+ p->L7.IkeHeader->ExchangeType,
+ p->L7.IkeHeader->Flag,
+ Endian32(p->L7.IkeHeader->MessageId),
+ Endian32(p->L7.IkeHeader->MessageSize));
+
+ t->Token[14] = CopyStr(tmp);
+ }
+ }
+ break;
+
+ default:
+ // Unknown Packet
+ t->Token[6] = CopyStr("UDPv4");
+ break;
+ }
+ break;
+
+ case L4_FRAGMENT:
+ // Fragment
+ snprintf(tmp, sizeof(tmp), "IPv4_Fragment(0x%02X)", p->L3.IPv4Header->Protocol);
+ t->Token[6] = CopyStr(tmp);
+ break;
+
+ case L4_UNKNOWN:
+ // Unknown Packet
+ snprintf(tmp, sizeof(tmp), "IPv4(0x%02X)", p->L3.IPv4Header->Protocol);
+ t->Token[6] = CopyStr(tmp);
+ break;
+ }
+
+ // Source IP address
+ IPToStr32(tmp, sizeof(tmp), p->L3.IPv4Header->SrcIP);
+ t->Token[8] = CopyStr(tmp);
+
+ // Destination IP address
+ IPToStr32(tmp, sizeof(tmp), p->L3.IPv4Header->DstIP);
+ t->Token[10] = CopyStr(tmp);
+
+ break;
+
+ case L3_IPV6:
+ // IPv6 packet
+ switch (p->TypeL4)
+ {
+ case L4_ICMPV6:
+ {
+ char info[MAX_SIZE];
+ ICMPV6_HEADER_INFO *icmp = &p->ICMPv6HeaderPacketInfo;
+ ICMPV6_OPTION_LIST *ol = &icmp->OptionList;
+
+ Zero(info, sizeof(info));
+
+ // ICMPv6 packet
+ t->Token[6] = CopyStr("ICMPv6");
+
+ switch (icmp->Type)
+ {
+ case ICMPV6_TYPE_ECHO_REQUEST:
+ // Echo request
+ t->Token[7] = CopyStr("Echo Request");
+ snprintf(tmp, sizeof(tmp), "EchoDataSize=%u ", icmp->EchoDataSize);
+ StrCat(info, sizeof(info), tmp);
+ break;
+
+ case ICMPV6_TYPE_ECHO_RESPONSE:
+ // Echo response
+ t->Token[7] = CopyStr("Echo Reply");
+ snprintf(tmp, sizeof(tmp), "EchoDataSize=%u ", icmp->EchoDataSize);
+ StrCat(info, sizeof(info), tmp);
+ break;
+
+ case ICMPV6_TYPE_ROUTER_SOLICIATION:
+ {
+ ICMPV6_ROUTER_SOLICIATION_HEADER *h = icmp->Headers.RouterSoliciationHeader;
+ // Router Solicitation
+ t->Token[7] = CopyStr("Router Soliciation");
+
+ if (h != NULL)
+ {
+ // No additional information
+ }
+ }
+ break;
+
+ case ICMPV6_TYPE_ROUTER_ADVERTISEMENT:
+ {
+ ICMPV6_ROUTER_ADVERTISEMENT_HEADER *h = icmp->Headers.RouterAdvertisementHeader;
+ // Router Advertisement
+ t->Token[7] = CopyStr("Router Advertisement");
+
+ if (h != NULL)
+ {
+ snprintf(tmp, sizeof(tmp), "CurHopLimit=%u "
+ "Flags=0x%02X Lifetime=%u ",
+ h->CurHopLimit, h->Flags, Endian16(h->Lifetime));
+ StrCat(info, sizeof(info), tmp);
+ }
+ }
+ break;
+
+ case ICMPV6_TYPE_NEIGHBOR_SOLICIATION:
+ {
+ ICMPV6_NEIGHBOR_SOLICIATION_HEADER *h = icmp->Headers.NeighborSoliciationHeader;
+ // Neighbor Solicitation
+ t->Token[7] = CopyStr("Neighbor Soliciation");
+
+ if (h != NULL)
+ {
+ char tmp2[MAX_SIZE];
+
+ IP6AddrToStr(tmp2, sizeof(tmp2), &h->TargetAddress);
+
+ snprintf(tmp, sizeof(tmp), "TargetAddress=%s ",
+ tmp2);
+ StrCat(info, sizeof(info), tmp);
+ }
+ }
+ break;
+
+ case ICMPV6_TYPE_NEIGHBOR_ADVERTISEMENT:
+ {
+ ICMPV6_NEIGHBOR_ADVERTISEMENT_HEADER *h = icmp->Headers.NeighborAdvertisementHeader;
+ // Neighbor Advertisement
+ t->Token[7] = CopyStr("Neighbor Advertisement");
+
+ if (h != NULL)
+ {
+ char tmp2[MAX_SIZE];
+
+ IP6AddrToStr(tmp2, sizeof(tmp2), &h->TargetAddress);
+
+ snprintf(tmp, sizeof(tmp), "TargetAddress=%s Flags=0x%02X ",
+ tmp2, h->Flags);
+ StrCat(info, sizeof(info), tmp);
+ }
+ }
+ break;
+
+ default:
+ {
+ snprintf(tmp, sizeof(tmp), "Type=%u", icmp->Type);
+ t->Token[7] = CopyStr(tmp);
+ }
+ break;
+ }
+
+ // Option data
+ if (ol->SourceLinkLayer != NULL)
+ {
+ char tmp2[MAX_SIZE];
+ BinToStr(tmp2, sizeof(tmp2), ol->SourceLinkLayer->Address, 6);
+ snprintf(tmp, sizeof(tmp), "SourceLinkLayer=%s ", tmp2);
+ StrCat(info, sizeof(info), tmp);
+ }
+ if (ol->TargetLinkLayer != NULL)
+ {
+ char tmp2[MAX_SIZE];
+ BinToStr(tmp2, sizeof(tmp2), ol->TargetLinkLayer->Address, 6);
+ snprintf(tmp, sizeof(tmp), "TargetLinkLayer=%s ", tmp2);
+ StrCat(info, sizeof(info), tmp);
+ }
+ if (ol->Prefix != NULL)
+ {
+ char tmp2[MAX_SIZE];
+ IP6AddrToStr(tmp2, sizeof(tmp2), &ol->Prefix->Prefix);
+ snprintf(tmp, sizeof(tmp), "Prefix=%s/%u PrefixFlag=0x%02X ", tmp2,
+ ol->Prefix->SubnetLength, ol->Prefix->Flags);
+ StrCat(info, sizeof(info), tmp);
+ }
+ if (ol->Mtu != NULL)
+ {
+ snprintf(tmp, sizeof(tmp), "Mtu=%u ", Endian32(ol->Mtu->Mtu));
+ StrCat(info, sizeof(info), tmp);
+ }
+
+ Trim(info);
+
+ if (IsEmptyStr(info) == false)
+ {
+ t->Token[14] = CopyStr(info);
+ }
+ }
+ break;
+
+ case L4_TCP:
+ // TCP packet
+ tcp_conn = false;
+ if (p->L4.TCPHeader->Flag & TCP_SYN || p->L4.TCPHeader->Flag & TCP_RST || p->L4.TCPHeader->Flag & TCP_FIN)
+ {
+ tcp_conn = true;
+ }
+ t->Token[6] = CopyStr(tcp_conn ? "TCP_CONNECTv6" : "TCP_DATAv6");
+ t->Token[7] = TcpFlagStr(p->L4.TCPHeader->Flag);
+
+ t->Token[9] = PortStr(pl->Cedar, Endian16(p->L4.TCPHeader->SrcPort), false);
+ t->Token[11] = PortStr(pl->Cedar, Endian16(p->L4.TCPHeader->DstPort), false);
+
+ ToStr(tmp, Endian32(p->L4.TCPHeader->SeqNumber));
+ t->Token[12] = CopyStr(tmp);
+
+ ToStr(tmp, Endian32(p->L4.TCPHeader->AckNumber));
+ t->Token[13] = CopyStr(tmp);
+
+ snprintf(tmp, sizeof(tmp), "WindowSize=%u", Endian16(p->L4.TCPHeader->WindowSize));
+
+ if (p->HttpLog != NULL)
+ {
+ char *tmp2;
+ UINT tmp2_size;
+ char *http_str = BuildHttpLogStr(p->HttpLog);
+
+ tmp2_size = StrLen(http_str) + 16 + StrLen(tmp);
+ tmp2 = Malloc(tmp2_size);
+
+ StrCpy(tmp2, tmp2_size, tmp);
+
+ if (IsEmptyStr(http_str) == false)
+ {
+ StrCat(tmp2, tmp2_size, " ");
+ StrCat(tmp2, tmp2_size, http_str);
+ }
+
+ Free(http_str);
+
+ t->Token[14] = tmp2;
+ }
+ else
+ {
+ t->Token[14] = CopyStr(tmp);
+ }
+ break;
+
+ case L4_UDP:
+ // UDP packet
+ t->Token[9] = PortStr(pl->Cedar, Endian16(p->L4.UDPHeader->SrcPort), true);
+ t->Token[11] = PortStr(pl->Cedar, Endian16(p->L4.UDPHeader->DstPort), true);
+
+ switch (p->TypeL7)
+ {
+ case L7_OPENVPNCONN:
+ // OpenVPN connection request packet
+ t->Token[6] = CopyStr("OPENVPN_CONNECTv6");
+ break;
+
+ case L7_IKECONN:
+ // IKE connection request packet
+ t->Token[6] = CopyStr("IKE_CONNECTv6");
+
+ if (p->L7.IkeHeader != NULL)
+ {
+ if (p->L7.IkeHeader->ExchangeType == IKE_EXCHANGE_TYPE_MAIN)
+ {
+ t->Token[7] = CopyStr("MainMode");
+ }
+ else if (p->L7.IkeHeader->ExchangeType == IKE_EXCHANGE_TYPE_MAIN)
+ {
+ t->Token[7] = CopyStr("AgressiveMode");
+ }
+
+ {
+ Format(tmp, sizeof(tmp), "InitiatorCookie=%I64u ResponderCookie=%I64u "
+ "Version=0x%x ExchangeType=0x%x Flag=0x%x MessageId=%u MessageSize=%u",
+ Endian64(p->L7.IkeHeader->InitiatorCookie),
+ Endian64(p->L7.IkeHeader->ResponderCookie),
+ p->L7.IkeHeader->Version,
+ p->L7.IkeHeader->ExchangeType,
+ p->L7.IkeHeader->Flag,
+ Endian32(p->L7.IkeHeader->MessageId),
+ Endian32(p->L7.IkeHeader->MessageSize));
+
+ t->Token[14] = CopyStr(tmp);
+ }
+ }
+ break;
+
+ default:
+ t->Token[6] = CopyStr("UDPv6");
+ break;
+ }
+ break;
+
+ case L4_FRAGMENT:
+ // Fragment packet
+ snprintf(tmp, sizeof(tmp), "IPv6_Fragment(0x%02X)", p->IPv6HeaderPacketInfo.Protocol);
+ t->Token[6] = CopyStr(tmp);
+ break;
+
+ case L4_UNKNOWN:
+ // Unknown Packet
+ snprintf(tmp, sizeof(tmp), "IPv6(0x%02X)", p->IPv6HeaderPacketInfo.Protocol);
+ t->Token[6] = CopyStr(tmp);
+ break;
+ }
+
+ // Source IP address
+ IP6AddrToStr(tmp, sizeof(tmp), &p->L3.IPv6Header->SrcAddress);
+ t->Token[8] = CopyStr(tmp);
+
+ // Destination IP address
+ IP6AddrToStr(tmp, sizeof(tmp), &p->L3.IPv6Header->DestAddress);
+ t->Token[10] = CopyStr(tmp);
+
+ break;
+
+ case L3_UNKNOWN:
+ // Unknown Packet
+ snprintf(tmp, sizeof(tmp), "Proto=0x%04X", Endian16(p->MacHeader->Protocol));
+ t->Token[6] = CopyStr(tmp);
+ break;
+ }
+
+ if (p->PacketData != NULL && (pl->PurePacket == false || pl->PurePacketNoPayload == false))
+ {
+ char *data = Malloc(p->PacketSize * 2 + 1);
+ BinToStr(data, p->PacketSize * 2 + 1, p->PacketData, p->PacketSize);
+ t->Token[15] = data;
+ }
+ }
+ else
+ {
+ t->Token[6] = CopyUniToUtf(_UU("LH_PACKET_LOG_NO_LOG_OSS"));
+ }
+
+ s = GenCsvLine(t);
+ FreeToken(t);
+
+ // Discard the packet data
+ if (pl->PurePacket == false)
+ {
+ FreeClonePacket(p);
+ }
+ else
+ {
+ Free(p->PacketData);
+ FreePacket(p);
+ }
+
+ // Release the session
+ if (pl->SrcSession != NULL)
+ {
+ Dec(pl->SrcSession->LoggingRecordCount);
+ ReleaseSession(pl->SrcSession);
+ }
+ Free(pl);
+
+ return s;
}
// Convert TCP flags to a string
diff --git a/src/Cedar/Logging.h b/src/Cedar/Logging.h
index 5db70d66..bcf8c84f 100644
--- a/src/Cedar/Logging.h
+++ b/src/Cedar/Logging.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Logging.h
diff --git a/src/Cedar/NM.c b/src/Cedar/NM.c
index c934c3ce..d6f6ebbb 100644
--- a/src/Cedar/NM.c
+++ b/src/Cedar/NM.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NM.c
@@ -125,6 +131,87 @@
// Global variable
static NM *nm = NULL;
+// Dialog proc for the push routing option
+UINT NmEditPushRouteProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param)
+{
+ SM_HUB *r = (SM_HUB *)param;
+ char *str = NULL;
+ // Validate arguments
+ if (hWnd == NULL)
+ {
+ return 0;
+ }
+
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ SetTextA(hWnd, E_TEXT, r->CurrentPushRouteStr);
+ Focus(hWnd, E_TEXT);
+
+ SetIcon(hWnd, 0, ICO_PROTOCOL);
+ break;
+
+ case WM_COMMAND:
+ switch (wParam)
+ {
+ case IDOK:
+ str = GetTextA(hWnd, E_TEXT);
+ if (str != NULL)
+ {
+ bool ok = true;
+
+ if (CheckClasslessRouteTableStr(str) == false)
+ {
+ if (MsgBox(hWnd, MB_ICONWARNING | MB_OKCANCEL | MB_DEFBUTTON2, _UU("NM_PUSH_ROUTE_WARNING")) == IDCANCEL)
+ {
+ ok = false;
+ }
+ }
+
+ if (ok)
+ {
+ if (IsEmptyStr(r->CurrentPushRouteStr) == false)
+ {
+ if (GetCapsBool(r->p->CapsList, "b_suppport_push_route") == false)
+ {
+ MsgBox(hWnd, MB_ICONEXCLAMATION, _UU("ERR_147"));
+ }
+ }
+
+ StrCpy(r->CurrentPushRouteStr, sizeof(r->CurrentPushRouteStr), str);
+
+ EndDialog(hWnd, 1);
+ }
+
+ Free(str);
+ }
+ break;
+
+ case IDCANCEL:
+ Close(hWnd);
+ break;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hWnd, 0);
+ break;
+ }
+
+ return 0;
+}
+
+// Edit dialog for the push routing option
+bool NmEditPushRoute(HWND hWnd, SM_HUB *r)
+{
+ // Validate arguments
+ if (r == NULL)
+ {
+ return false;
+ }
+
+ return Dialog(hWnd, D_NM_PUSH, NmEditPushRouteProc, r);
+}
// Change Password dialog
UINT NmChangePasswordProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param)
@@ -745,6 +832,8 @@ void NmEditVhOptionInit(HWND hWnd, SM_HUB *r)
return;
}
+ SetIcon(hWnd, 0, ICO_ROUTER);
+
FormatText(hWnd, S_TITLE, r->HubName);
Zero(&t, sizeof(VH_OPTION));
@@ -795,6 +884,15 @@ void NmEditVhOptionInit(HWND hWnd, SM_HUB *r)
SetTextA(hWnd, E_DOMAIN, t.DhcpDomainName);
Check(hWnd, R_SAVE_LOG, t.SaveLog);
+ StrCpy(r->CurrentPushRouteStr, sizeof(r->CurrentPushRouteStr), t.DhcpPushRoutes);
+
+ if (GetCapsBool(r->p->CapsList, "b_suppport_push_route_config") == false)
+ {
+ Disable(hWnd, S_1);
+ Disable(hWnd, S_2);
+ Disable(hWnd, B_PUSH);
+ }
+
NmEditVhOptionUpdate(hWnd, r);
}
@@ -929,6 +1027,9 @@ void NmEditVhOptionOnOk(HWND hWnd, SM_HUB *r)
NmEditVhOptionFormToVH(hWnd, &t);
StrCpy(t.HubName, sizeof(t.HubName), r->HubName);
+ t.ApplyDhcpPushRoutes = true;
+ StrCpy(t.DhcpPushRoutes, sizeof(t.DhcpPushRoutes), r->CurrentPushRouteStr);
+
if (CALL(hWnd, ScSetSecureNATOption(r->Rpc, &t)))
{
EndDialog(hWnd, true);
@@ -996,6 +1097,10 @@ UINT NmEditVhOptionProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void
Focus(hWnd, E_DHCP_START);
}
break;
+
+ case B_PUSH:
+ NmEditPushRoute(hWnd, r);
+ break;
}
break;
@@ -1013,6 +1118,7 @@ void NmEditVhOption(HWND hWnd, SM_HUB *r)
return;
}
+ Zero(r->CurrentPushRouteStr, sizeof(r->CurrentPushRouteStr));
Dialog(hWnd, D_NM_OPTION, NmEditVhOptionProc, r);
}
diff --git a/src/Cedar/NM.h b/src/Cedar/NM.h
index 2479bf7a..6ea72fe2 100644
--- a/src/Cedar/NM.h
+++ b/src/Cedar/NM.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NM.h
diff --git a/src/Cedar/NMInner.h b/src/Cedar/NMInner.h
index 05d7e31d..4588e977 100644
--- a/src/Cedar/NMInner.h
+++ b/src/Cedar/NMInner.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NMInner.h
@@ -151,6 +157,10 @@ void NmDhcpRefresh(HWND hWnd, SM_HUB *r);
void NmDhcpInit(HWND hWnd, SM_HUB *r);
void NmChangePassword(HWND hWnd, RPC *r);
UINT NmChangePasswordProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
+bool NmEditPushRoute(HWND hWnd, SM_HUB *r);
+UINT NmEditPushRouteProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param);
+
+
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
// Department of Computer Science has dozens of overly-enthusiastic geeks.
diff --git a/src/Cedar/Nat.c b/src/Cedar/Nat.c
index 5d501a61..a3ab79bc 100644
--- a/src/Cedar/Nat.c
+++ b/src/Cedar/Nat.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Nat.c
@@ -808,6 +814,8 @@ void InVhOption(VH_OPTION *t, PACK *p)
PackGetStr(p, "DhcpDomainName", t->DhcpDomainName, sizeof(t->DhcpDomainName));
t->SaveLog = PackGetBool(p, "SaveLog");
PackGetStr(p, "RpcHubName", t->HubName, sizeof(t->HubName));
+ t->ApplyDhcpPushRoutes = PackGetBool(p, "ApplyDhcpPushRoutes");
+ PackGetStr(p, "DhcpPushRoutes", t->DhcpPushRoutes, sizeof(t->DhcpPushRoutes));
}
void OutVhOption(PACK *p, VH_OPTION *t)
{
@@ -835,6 +843,8 @@ void OutVhOption(PACK *p, VH_OPTION *t)
PackAddStr(p, "DhcpDomainName", t->DhcpDomainName);
PackAddBool(p, "SaveLog", t->SaveLog);
PackAddStr(p, "RpcHubName", t->HubName);
+ PackAddBool(p, "ApplyDhcpPushRoutes", true);
+ PackAddStr(p, "DhcpPushRoutes", t->DhcpPushRoutes);
}
// RPC_ENUM_DHCP
@@ -1465,6 +1475,15 @@ void NiLoadVhOptionEx(VH_OPTION *o, FOLDER *root)
CfgGetIp(dhcp, "DhcpDnsServerAddress2", &o->DhcpDnsServerAddress2);
CfgGetStr(dhcp, "DhcpDomainName", o->DhcpDomainName, sizeof(o->DhcpDomainName));
+ CfgGetStr(dhcp, "DhcpPushRoutes", o->DhcpPushRoutes, sizeof(o->DhcpPushRoutes));
+
+// Test code
+// StrCpy(o->DhcpPushRoutes, sizeof(o->DhcpPushRoutes),
+// "130.158.6.0/24/192.168.9.2 130.158.80.244/255.255.255.255/192.168.9.2");
+
+ NormalizeClasslessRouteTableStr(o->DhcpPushRoutes, sizeof(o->DhcpPushRoutes), o->DhcpPushRoutes);
+ o->ApplyDhcpPushRoutes = true;
+
Trim(o->DhcpDomainName);
if (StrLen(o->DhcpDomainName) == 0)
{
@@ -1595,6 +1614,7 @@ void NiWriteVhOptionEx(VH_OPTION *o, FOLDER *root)
CfgAddIp(dhcp, "DhcpDnsServerAddress", &o->DhcpDnsServerAddress);
CfgAddIp(dhcp, "DhcpDnsServerAddress2", &o->DhcpDnsServerAddress2);
CfgAddStr(dhcp, "DhcpDomainName", o->DhcpDomainName);
+ CfgAddStr(dhcp, "DhcpPushRoutes", o->DhcpPushRoutes);
CfgAddBool(root, "SaveLog", o->SaveLog);
}
diff --git a/src/Cedar/Nat.h b/src/Cedar/Nat.h
index d29cf720..f3a5b9d5 100644
--- a/src/Cedar/Nat.h
+++ b/src/Cedar/Nat.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Nat.h
diff --git a/src/Cedar/NativeStack.c b/src/Cedar/NativeStack.c
index c4f2db52..87bdb950 100644
--- a/src/Cedar/NativeStack.c
+++ b/src/Cedar/NativeStack.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NativeStack.c
diff --git a/src/Cedar/NativeStack.h b/src/Cedar/NativeStack.h
index 475a4d54..ce9b0692 100644
--- a/src/Cedar/NativeStack.h
+++ b/src/Cedar/NativeStack.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NativeStack.h
diff --git a/src/Cedar/NullLan.c b/src/Cedar/NullLan.c
index 9e8b6770..2bcacc83 100644
--- a/src/Cedar/NullLan.c
+++ b/src/Cedar/NullLan.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NullLan.c
diff --git a/src/Cedar/NullLan.h b/src/Cedar/NullLan.h
index 2b3dd535..79eb4260 100644
--- a/src/Cedar/NullLan.h
+++ b/src/Cedar/NullLan.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NullLan.h
diff --git a/src/Cedar/Protocol.c b/src/Cedar/Protocol.c
index bb0178bc..b421d21a 100644
--- a/src/Cedar/Protocol.c
+++ b/src/Cedar/Protocol.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Protocol.c
@@ -1111,6 +1117,28 @@ bool ServerAccept(CONNECTION *c)
goto CLEANUP;
}
+ if (GetGlobalServerFlag(GSF_DISABLE_AC) == 0)
+ {
+ if (hub->HubDb != NULL && c->FirstSock != NULL)
+ {
+ IP ip;
+
+ Copy(&ip, &c->FirstSock->RemoteIP, sizeof(IP));
+
+ if (IsIpDeniedByAcList(&ip, hub->HubDb->AcList))
+ {
+ char ip_str[64];
+ // Access denied
+ ReleaseHub(hub);
+ hub = NULL;
+ FreePack(p);
+ c->Err = ERR_IP_ADDRESS_DENIED;
+ IPToStr(ip_str, sizeof(ip_str), &ip);
+ SLog(c->Cedar, "LS_IP_DENIED", c->Name, ip_str);
+ goto CLEANUP;
+ }
+ }
+ }
Lock(hub->lock);
{
@@ -1486,7 +1514,7 @@ bool ServerAccept(CONNECTION *c)
{
// Attempt external authentication registered users
bool fail_ext_user_auth = false;
- if (true)
+ if (GetGlobalServerFlag(GSF_DISABLE_RADIUS_AUTH) != 0)
{
fail_ext_user_auth = true;
}
@@ -1502,6 +1530,36 @@ bool ServerAccept(CONNECTION *c)
}
}
+ if (auth_ret == false)
+ {
+ // Attempt external authentication asterisk user
+ bool b = false;
+ bool fail_ext_user_auth = false;
+
+ if (GetGlobalServerFlag(GSF_DISABLE_RADIUS_AUTH) != 0)
+ {
+ fail_ext_user_auth = true;
+ }
+
+ if (fail_ext_user_auth == false)
+ {
+ AcLock(hub);
+ {
+ b = AcIsUser(hub, "*");
+ }
+ AcUnlock(hub);
+
+ // If there is asterisk user, log on as the user
+ if (b)
+ {
+ auth_ret = SamAuthUserByPlainPassword(c, hub, username, plain_password, true, mschap_v2_server_response_20);
+ if (auth_ret && pol == NULL)
+ {
+ pol = SamGetUserPolicy(hub, "*");
+ }
+ }
+ }
+ }
if (pol != NULL)
{
@@ -1519,13 +1577,66 @@ bool ServerAccept(CONNECTION *c)
break;
case CLIENT_AUTHTYPE_CERT:
- // Certificate authentication is not supported in the open source version
- HLog(hub, "LH_AUTH_CERT_NOT_SUPPORT_ON_OPEN_SOURCE", c->Name, username);
- Unlock(hub->lock);
- ReleaseHub(hub);
- FreePack(p);
- c->Err = ERR_AUTHTYPE_NOT_SUPPORTED;
- goto CLEANUP;
+ if (GetGlobalServerFlag(GSF_DISABLE_CERT_AUTH) != 0)
+ {
+ // Certificate authentication
+ cert_size = PackGetDataSize(p, "cert");
+ if (cert_size >= 1 && cert_size <= 100000)
+ {
+ cert_buf = ZeroMalloc(cert_size);
+ if (PackGetData(p, "cert", cert_buf))
+ {
+ UCHAR sign[4096 / 8];
+ UINT sign_size = PackGetDataSize(p, "sign");
+ if (sign_size <= sizeof(sign) && sign_size >= 1)
+ {
+ if (PackGetData(p, "sign", sign))
+ {
+ BUF *b = NewBuf();
+ X *x;
+ WriteBuf(b, cert_buf, cert_size);
+ x = BufToX(b, false);
+ if (x != NULL && x->is_compatible_bit &&
+ sign_size == (x->bits / 8))
+ {
+ K *k = GetKFromX(x);
+ // Verify the signature received from the client
+ if (RsaVerifyEx(c->Random, SHA1_SIZE, sign, k, x->bits))
+ {
+ // Confirmed that the client has had this certificate
+ // certainly because the signature matched.
+ // Check whether the certificate is valid.
+ auth_ret = SamAuthUserByCert(hub, username, x);
+ if (auth_ret)
+ {
+ // Copy the certificate
+ c->ClientX = CloneX(x);
+ }
+ }
+ else
+ {
+ // Authentication failure
+ }
+ FreeK(k);
+ }
+ FreeX(x);
+ FreeBuf(b);
+ }
+ }
+ }
+ Free(cert_buf);
+ }
+ }
+ else
+ {
+ // Certificate authentication is not supported in the open source version
+ HLog(hub, "LH_AUTH_CERT_NOT_SUPPORT_ON_OPEN_SOURCE", c->Name, username);
+ Unlock(hub->lock);
+ ReleaseHub(hub);
+ FreePack(p);
+ c->Err = ERR_AUTHTYPE_NOT_SUPPORTED;
+ goto CLEANUP;
+ }
break;
default:
@@ -2538,15 +2649,49 @@ bool ServerAccept(CONNECTION *c)
st.wYear, st.wMonth);
}
- tmpsize = UniStrSize(winver_msg_client) + UniStrSize(winver_msg_server) + UniStrSize(msg) + 16000;
+ tmpsize = UniStrSize(winver_msg_client) + UniStrSize(winver_msg_server) + UniStrSize(msg) + 16000 + 3000;
tmp = ZeroMalloc(tmpsize);
if (IsURLMsg(msg, NULL, 0) == false)
{
+ if (s != NULL && s->IsRUDPSession && c != NULL && StrCmpi(hub->Name, VG_HUBNAME) != 0)
+ {
+ // Show the warning message if the connection is made by NAT-T
+ wchar_t *tmp2;
+ UINT tmp2_size = 2400;
+ char local_name[128];
+ wchar_t local_name_2[128];
+ char local_name_3[128];
+
+ Zero(local_name, sizeof(local_name));
+ Zero(local_name_2, sizeof(local_name_2));
+ Zero(local_name_3, sizeof(local_name_3));
+
+ GetMachineName(local_name, sizeof(local_name));
+
+#ifdef OS_WIN32
+ MsGetComputerNameFullEx(local_name_2, sizeof(local_name_2), true);
+
+ UniToStr(local_name_3, sizeof(local_name_3), local_name_2);
+
+ if (IsEmptyStr(local_name_3) == false)
+ {
+ StrCpy(local_name, sizeof(local_name), local_name_3);
+ }
+#endif // OS_WIN32
+
+ tmp2 = Malloc(tmp2_size);
+ UniFormat(tmp2, tmp2_size, _UU(c->ClientBuild >= 9428 ? "NATT_MSG" : "NATT_MSG2"), local_name);
+
+ UniStrCat(tmp, tmpsize, tmp2);
+
+ Free(tmp2);
+ }
+
{
- if (GetCurrentLangId() != SE_LANG_ENGLISH)
+ if (GetGlobalServerFlag(GSF_SHOW_OSS_MSG) != 0)
{
UniStrCat(tmp, tmpsize, _UU("OSS_MSG"));
}
@@ -5728,7 +5873,7 @@ SOCK *ClientConnectGetSocket(CONNECTION *c, bool additional_connect, bool no_tls
// If additional_connect == true, follow the IsRUDPSession setting in this session
s = TcpIpConnectEx(host_for_direct_connection, port_for_direct_connection,
(bool *)cancel_flag, hWnd, &nat_t_err, (additional_connect ? (!is_additonal_rudp_session) : false),
- true, no_tls);
+ false, no_tls);
}
}
else
diff --git a/src/Cedar/Protocol.h b/src/Cedar/Protocol.h
index 995da896..f7c04aa3 100644
--- a/src/Cedar/Protocol.h
+++ b/src/Cedar/Protocol.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Protocol.h
diff --git a/src/Cedar/Radius.c b/src/Cedar/Radius.c
index 16107b31..5bd7ad33 100644
--- a/src/Cedar/Radius.c
+++ b/src/Cedar/Radius.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Radius.c
@@ -92,6 +98,555 @@
#include "CedarPch.h"
+// Attempts Radius authentication (with specifying retry interval and multiple server)
+bool RadiusLogin(CONNECTION *c, char *server, UINT port, UCHAR *secret, UINT secret_size, wchar_t *username, char *password, UINT interval, UCHAR *mschap_v2_server_response_20)
+{
+ UCHAR random[MD5_SIZE];
+ UCHAR id;
+ BUF *encrypted_password = NULL;
+ BUF *user_name = NULL;
+ //IP ip;
+ bool ret = false;
+ TOKEN_LIST *token;
+ UINT i;
+ LIST *ip_list;
+ IPC_MSCHAP_V2_AUTHINFO mschap;
+ bool is_mschap;
+ char client_ip_str[MAX_SIZE];
+ static UINT packet_id = 0;
+ // Validate arguments
+ if (server == NULL || port == 0 || (secret_size != 0 && secret == NULL) || username == NULL || password == NULL)
+ {
+ return false;
+ }
+
+ Zero(client_ip_str, sizeof(client_ip_str));
+ if (c != NULL && c->FirstSock != NULL)
+ {
+ IPToStr(client_ip_str, sizeof(client_ip_str), &c->FirstSock->RemoteIP);
+ }
+
+ // Parse the MS-CHAP v2 authentication data
+ Zero(&mschap, sizeof(mschap));
+ is_mschap = ParseAndExtractMsChapV2InfoFromPassword(&mschap, password);
+
+ // Split the server into tokens
+ token = ParseToken(server, " ,;\t");
+
+ // Get the IP address of the server
+ ip_list = NewListFast(NULL);
+ for(i = 0; i < token->NumTokens; i++)
+ {
+ IP *tmp_ip = Malloc(sizeof(IP));
+ if (GetIP(tmp_ip, token->Token[i]))
+ {
+ Add(ip_list, tmp_ip);
+ }
+ else if (GetIPEx(tmp_ip, token->Token[i], true))
+ {
+ Add(ip_list, tmp_ip);
+ }
+ else
+ {
+ Free(tmp_ip);
+ }
+ }
+
+ FreeToken(token);
+
+ if(LIST_NUM(ip_list) == 0)
+ {
+ ReleaseList(ip_list);
+ return false;
+ }
+
+ // Random number generation
+ Rand(random, sizeof(random));
+
+ // ID generation
+ id = (UCHAR)(packet_id % 254 + 1);
+ packet_id++;
+
+ if (is_mschap == false)
+ {
+ // Encrypt the password
+ encrypted_password = RadiusEncryptPassword(password, random, secret, secret_size);
+ if (encrypted_password == NULL)
+ {
+ // Encryption failure
+ ReleaseList(ip_list);
+ return false;
+ }
+ }
+
+ // Generate the user name packet
+ user_name = RadiusCreateUserName(username);
+
+ if (user_name != NULL)
+ {
+ // Generate a password packet
+ BUF *user_password = (is_mschap ? NULL : RadiusCreateUserPassword(encrypted_password->Buf, encrypted_password->Size));
+ BUF *nas_id = RadiusCreateNasId(CEDAR_SERVER_STR);
+
+ if (is_mschap || user_password != NULL)
+ {
+ UINT64 start;
+ UINT64 next_send_time;
+ UCHAR tmp[MAX_SIZE];
+ UINT recv_buf_size = 32768;
+ UCHAR *recv_buf = MallocEx(recv_buf_size, true);
+ // Generate an UDP packet
+ BUF *p = NewBuf();
+ UCHAR type = 1;
+ SOCK *sock;
+ USHORT sz = 0;
+ UINT pos = 0;
+ BOOL *finish = ZeroMallocEx(sizeof(BOOL) * LIST_NUM(ip_list), true);
+
+ Zero(tmp, sizeof(tmp));
+
+ WriteBuf(p, &type, 1);
+ WriteBuf(p, &id, 1);
+ WriteBuf(p, &sz, 2);
+ WriteBuf(p, random, 16);
+ WriteBuf(p, user_name->Buf, user_name->Size);
+
+ if (is_mschap == false)
+ {
+ UINT ui;
+ // PAP
+ WriteBuf(p, user_password->Buf, user_password->Size);
+ WriteBuf(p, nas_id->Buf, nas_id->Size);
+
+ // Service-Type
+ ui = Endian32(2);
+ RadiusAddValue(p, 6, 0, 0, &ui, sizeof(ui));
+
+ // NAS-Port-Type
+ ui = Endian32(5);
+ RadiusAddValue(p, 61, 0, 0, &ui, sizeof(ui));
+
+ // Tunnel-Type
+ ui = Endian32(1);
+ RadiusAddValue(p, 64, 0, 0, &ui, sizeof(ui));
+
+ // Tunnel-Medium-Type
+ ui = Endian32(1);
+ RadiusAddValue(p, 65, 0, 0, &ui, sizeof(ui));
+
+ // Calling-Station-Id
+ RadiusAddValue(p, 31, 0, 0, client_ip_str, StrLen(client_ip_str));
+
+ // Tunnel-Client-Endpoint
+ RadiusAddValue(p, 66, 0, 0, client_ip_str, StrLen(client_ip_str));
+ }
+ else
+ {
+ // MS-CHAP v2
+ static UINT session_id = 0;
+ USHORT us;
+ UINT ui;
+ char *ms_ras_version = "MSRASV5.20";
+ UCHAR ms_chapv2_response[50];
+
+ // Acct-Session-Id
+ us = Endian16(session_id % 254 + 1);
+ session_id++;
+ RadiusAddValue(p, 44, 0, 0, &us, sizeof(us));
+
+ // NAS-IP-Address
+ if (c != NULL && c->FirstSock != NULL && c->FirstSock->IPv6 == false)
+ {
+ ui = IPToUINT(&c->FirstSock->LocalIP);
+ RadiusAddValue(p, 4, 0, 0, &ui, sizeof(ui));
+ }
+
+ // Service-Type
+ ui = Endian32(2);
+ RadiusAddValue(p, 6, 0, 0, &ui, sizeof(ui));
+
+ // MS-RAS-Vendor
+ ui = Endian32(311);
+ RadiusAddValue(p, 26, 311, 9, &ui, sizeof(ui));
+
+ // MS-RAS-Version
+ RadiusAddValue(p, 26, 311, 18, ms_ras_version, StrLen(ms_ras_version));
+
+ // NAS-Port-Type
+ ui = Endian32(5);
+ RadiusAddValue(p, 61, 0, 0, &ui, sizeof(ui));
+
+ // Tunnel-Type
+ ui = Endian32(1);
+ RadiusAddValue(p, 64, 0, 0, &ui, sizeof(ui));
+
+ // Tunnel-Medium-Type
+ ui = Endian32(1);
+ RadiusAddValue(p, 65, 0, 0, &ui, sizeof(ui));
+
+ // Calling-Station-Id
+ RadiusAddValue(p, 31, 0, 0, client_ip_str, StrLen(client_ip_str));
+
+ // Tunnel-Client-Endpoint
+ RadiusAddValue(p, 66, 0, 0, client_ip_str, StrLen(client_ip_str));
+
+ // MS-RAS-Client-Version
+ RadiusAddValue(p, 26, 311, 35, ms_ras_version, StrLen(ms_ras_version));
+
+ // MS-RAS-Client-Name
+ RadiusAddValue(p, 26, 311, 34, client_ip_str, StrLen(client_ip_str));
+
+ // MS-CHAP-Challenge
+ RadiusAddValue(p, 26, 311, 11, mschap.MsChapV2_ServerChallenge, sizeof(mschap.MsChapV2_ServerChallenge));
+
+ // MS-CHAP2-Response
+ Zero(ms_chapv2_response, sizeof(ms_chapv2_response));
+ Copy(ms_chapv2_response + 2, mschap.MsChapV2_ClientChallenge, 16);
+ Copy(ms_chapv2_response + 2 + 16 + 8, mschap.MsChapV2_ClientResponse, 24);
+ RadiusAddValue(p, 26, 311, 25, ms_chapv2_response, sizeof(ms_chapv2_response));
+
+ // NAS-ID
+ WriteBuf(p, nas_id->Buf, nas_id->Size);
+ }
+
+ SeekBuf(p, 0, 0);
+
+ WRITE_USHORT(((UCHAR *)p->Buf) + 2, (USHORT)p->Size);
+
+ // Create a socket
+ sock = NewUDPEx(0, IsIP6(LIST_DATA(ip_list, pos)));
+
+ // Transmission process start
+ start = Tick64();
+ if(interval < RADIUS_RETRY_INTERVAL)
+ {
+ interval = RADIUS_RETRY_INTERVAL;
+ }
+ else if(interval > RADIUS_RETRY_TIMEOUT)
+ {
+ interval = RADIUS_RETRY_TIMEOUT;
+ }
+ next_send_time = start + (UINT64)interval;
+
+ while (true)
+ {
+ UINT server_port;
+ UINT recv_size;
+ //IP server_ip;
+ SOCKSET set;
+ UINT64 now;
+
+SEND_RETRY:
+ //SendTo(sock, &ip, port, p->Buf, p->Size);
+ SendTo(sock, LIST_DATA(ip_list, pos), port, p->Buf, p->Size);
+
+ Debug("send to host:%u\n", pos);
+
+ next_send_time = Tick64() + (UINT64)interval;
+
+RECV_RETRY:
+ now = Tick64();
+ if (next_send_time <= now)
+ {
+ // Switch the host to refer
+ pos++;
+ pos = pos % LIST_NUM(ip_list);
+
+ goto SEND_RETRY;
+ }
+
+ if ((start + RADIUS_RETRY_TIMEOUT) < now)
+ {
+ // Time-out
+ break;
+ }
+
+ InitSockSet(&set);
+ AddSockSet(&set, sock);
+ Select(&set, (UINT)(next_send_time - now), NULL, NULL);
+
+ recv_size = RecvFrom(sock, LIST_DATA(ip_list, pos), &server_port, recv_buf, recv_buf_size);
+
+ if (recv_size == 0)
+ {
+ Debug("Radius recv_size 0\n");
+ finish[pos] = TRUE;
+ for(i = 0; i < LIST_NUM(ip_list); i++)
+ {
+ if(finish[i] == FALSE)
+ {
+ // Switch the host to refer
+ pos++;
+ pos = pos % LIST_NUM(ip_list);
+ goto SEND_RETRY;
+ }
+ }
+ // Failure
+ break;
+ }
+ else if (recv_size == SOCK_LATER)
+ {
+ // Waiting
+ goto RECV_RETRY;
+ }
+ else
+ {
+ // Check such as the IP address
+ if (/*Cmp(&server_ip, &ip, sizeof(IP)) != 0 || */server_port != port)
+ {
+ goto RECV_RETRY;
+ }
+ // Success
+ if (recv_buf[0] == 2)
+ {
+ ret = true;
+
+ if (is_mschap && mschap_v2_server_response_20 != NULL)
+ {
+ // Cutting corners Zurukko
+ UCHAR signature[] = {0x1A, 0x33, 0x00, 0x00, 0x01, 0x37, 0x1A, 0x2D, 0x00, 0x53, 0x3D, };
+ UINT i = SearchBin(recv_buf, 0, recv_buf_size, signature, sizeof(signature));
+
+ if (i == INFINITE || ((i + sizeof(signature) + 40) > recv_buf_size))
+ {
+ ret = false;
+ }
+ else
+ {
+ char tmp[MAX_SIZE];
+ BUF *b;
+
+ Zero(tmp, sizeof(tmp));
+ Copy(tmp, recv_buf + i + sizeof(signature), 40);
+
+ b = StrToBin(tmp);
+
+ if (b != NULL && b->Size == 20)
+ {
+ WHERE;
+ Copy(mschap_v2_server_response_20, b->Buf, 20);
+ }
+ else
+ {
+ WHERE;
+ ret = false;
+ }
+
+ FreeBuf(b);
+ }
+ }
+ }
+ break;
+ }
+ }
+
+ Free(finish);
+
+ // Release the socket
+ ReleaseSock(sock);
+
+ FreeBuf(p);
+ FreeBuf(user_password);
+
+ Free(recv_buf);
+ }
+
+ FreeBuf(nas_id);
+ FreeBuf(user_name);
+ }
+
+ // Release the ip_list
+ for(i = 0; i < LIST_NUM(ip_list); i++)
+ {
+ IP *tmp_ip = LIST_DATA(ip_list, i);
+ Free(tmp_ip);
+ }
+ ReleaseList(ip_list);
+
+ // Release the memory
+ FreeBuf(encrypted_password);
+
+ return ret;
+}
+
+// Adding Attributes
+void RadiusAddValue(BUF *b, UCHAR t, UINT v, UCHAR vt, void *data, UINT size)
+{
+ UINT len;
+ // Validate arguments
+ if (b == NULL || (data == NULL && size != 0))
+ {
+ return;
+ }
+
+ // type
+ WriteBufChar(b, t);
+
+ // length
+ len = 2 + size;
+ if (t == 26)
+ {
+ len += 6;
+ }
+ WriteBufChar(b, (UCHAR)len);
+
+ if (t != 26)
+ {
+ // value
+ WriteBuf(b, data, size);
+ }
+ else
+ {
+ // vendor
+ WriteBufInt(b, v);
+
+ // vendor type
+ WriteBufChar(b, vt);
+
+ // length2
+ len = size + 2;
+ WriteBufChar(b, (UCHAR)len);
+
+ // value
+ WriteBuf(b, data, size);
+ }
+}
+
+// Create a password attribute for Radius
+BUF *RadiusCreateUserPassword(void *data, UINT size)
+{
+ BUF *b;
+ UCHAR code, sz;
+ // Validate arguments
+ if (size != 0 && data == NULL || size >= 253)
+ {
+ return NULL;
+ }
+
+ b = NewBuf();
+ code = 2;
+ sz = 2 + (UCHAR)size;
+ WriteBuf(b, &code, 1);
+ WriteBuf(b, &sz, 1);
+ WriteBuf(b, data, size);
+
+ return b;
+}
+
+// Generate an ID attribute of Nas
+BUF *RadiusCreateNasId(char *name)
+{
+ BUF *b;
+ UCHAR code, size;
+ // Validate arguments
+ if (name == NULL)
+ {
+ return NULL;
+ }
+ if (StrLen(name) == 0 || StrLen(name) >= 128)
+ {
+ return NULL;
+ }
+
+ b = NewBuf();
+ code = 32;
+ size = 2 + (UCHAR)StrLen(name);
+ WriteBuf(b, &code, 1);
+ WriteBuf(b, &size, 1);
+ WriteBuf(b, name, StrLen(name));
+
+ return b;
+}
+
+// Create a user name attribute for Radius
+BUF *RadiusCreateUserName(wchar_t *username)
+{
+ BUF *b;
+ UCHAR code, size;
+ UCHAR utf8[254];
+ // Validate arguments
+ if (username == NULL)
+ {
+ return NULL;
+ }
+
+ // Convert the user name to a Unicode string
+ UniToStr(utf8, sizeof(utf8), username);
+ utf8[253] = 0;
+
+ b = NewBuf();
+ code = 1;
+ size = 2 + (UCHAR)StrLen(utf8);
+ WriteBuf(b, &code, 1);
+ WriteBuf(b, &size, 1);
+ WriteBuf(b, utf8, StrLen(utf8));
+
+ return b;
+}
+
+// Encrypt the password for the Radius
+BUF *RadiusEncryptPassword(char *password, UCHAR *random, UCHAR *secret, UINT secret_size)
+{
+ UINT n, i;
+ BUF *buf;
+ UCHAR c[16][16]; // Result
+ UCHAR b[16][16]; // Result
+ UCHAR p[16][16]; // Password
+ // Validate arguments
+ if (password == NULL || random == NULL || (secret_size != 0 && secret == NULL))
+ {
+ return NULL;
+ }
+ if (StrLen(password) > 256)
+ {
+ // Password is too long
+ return NULL;
+ }
+
+ // Initialize
+ Zero(c, sizeof(c));
+ Zero(p, sizeof(p));
+ Zero(b, sizeof(b));
+
+ // Divide the password per 16 characters
+ Copy(p, password, StrLen(password));
+ // Calculate the number of blocks
+ n = StrLen(password) / 16;
+ if ((StrLen(password) % 16) != 0)
+ {
+ n++;
+ }
+
+ // Encryption processing
+ for (i = 0;i < n;i++)
+ {
+ // Calculation of b[i]
+ UINT j;
+ BUF *tmp = NewBuf();
+ WriteBuf(tmp, secret, secret_size);
+ if (i == 0)
+ {
+ WriteBuf(tmp, random, 16);
+ }
+ else
+ {
+ WriteBuf(tmp, c[i - 1], 16);
+ }
+ Hash(b[i], tmp->Buf, tmp->Size, false);
+ FreeBuf(tmp);
+
+ // Calculation of c[i]
+ for (j = 0;j < 16;j++)
+ {
+ c[i][j] = p[i][j] ^ b[i][j];
+ }
+ }
+
+ // Return the results
+ buf = NewBuf();
+ WriteBuf(buf, c, n * 16);
+ return buf;
+}
// Developed by SoftEther VPN Project at University of Tsukuba in Japan.
diff --git a/src/Cedar/Radius.h b/src/Cedar/Radius.h
index 25c347c1..14c6798b 100644
--- a/src/Cedar/Radius.h
+++ b/src/Cedar/Radius.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Radius.h
@@ -97,6 +103,13 @@
#define RADIUS_RETRY_INTERVAL 500 // Retransmission interval
#define RADIUS_RETRY_TIMEOUT (10 * 1000) // Time-out period
+// Function prototype
+bool RadiusLogin(CONNECTION *c, char *server, UINT port, UCHAR *secret, UINT secret_size, wchar_t *username, char *password, UINT interval, UCHAR *mschap_v2_server_response_20);
+BUF *RadiusEncryptPassword(char *password, UCHAR *random, UCHAR *secret, UINT secret_size);
+BUF *RadiusCreateUserName(wchar_t *username);
+BUF *RadiusCreateUserPassword(void *data, UINT size);
+BUF *RadiusCreateNasId(char *name);
+void RadiusAddValue(BUF *b, UCHAR t, UINT v, UCHAR vt, void *data, UINT size);
#endif // RADIUS_H
diff --git a/src/Cedar/Remote.c b/src/Cedar/Remote.c
index 6d965e07..49dda2f3 100644
--- a/src/Cedar/Remote.c
+++ b/src/Cedar/Remote.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Remote.c
diff --git a/src/Cedar/Remote.h b/src/Cedar/Remote.h
index 09b9d1e5..1379a46a 100644
--- a/src/Cedar/Remote.h
+++ b/src/Cedar/Remote.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Remote.h
diff --git a/src/Cedar/SM.c b/src/Cedar/SM.c
index acf8104e..4c0093dc 100644
--- a/src/Cedar/SM.c
+++ b/src/Cedar/SM.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SM.c
@@ -702,6 +708,19 @@ UINT SmDDnsDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param)
}
break;
+ case B_HINT2:
+ // Hint2 (for DDNS key)
+ {
+ wchar_t tmp[MAX_SIZE * 4];
+ wchar_t *keystr;
+
+ keystr = GetText(hWnd, E_KEY);
+ UniFormat(tmp, sizeof(tmp), _UU("SM_DDNS_KEY_MSG"), keystr);
+ Free(keystr);
+ OnceMsg(hWnd, _UU("SM_DDNS_KEY_TITLE"), tmp, false, ICO_DISPLAY);
+ }
+ break;
+
case B_PROXY:
// Proxy settings
if (true)
@@ -835,8 +854,45 @@ UINT SmDDnsDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param)
return 0;
}
+
+// Get the ddns key from the server configuration file
+static UINT SmDdnsGetKey(char *key, SM_DDNS *d){
+ RPC *rpc = d->s->Rpc;
+ RPC_CONFIG config;
+ UINT err;
+ BUF *buf;
+ FOLDER *root, *ddnsfolder;
+
+ // Validate arguments
+ if(d == NULL || d->s == NULL || key == NULL){
+ return ERR_INTERNAL_ERROR;
+ }
+
+ Zero(&config, sizeof(config));
+ err = ScGetConfig(d->s->Rpc, &config);
+ if(err != ERR_NO_ERROR){
+ return err;
+ }
+
+ buf = NewBufFromMemory(config.FileData, StrLen(config.FileData));
+ FreeRpcConfig(&config);
+
+ root = CfgBufTextToFolder(buf);
+ FreeBuf(buf);
+
+ ddnsfolder = CfgGetFolder(root, "DDnsClient");
+ err = CfgGetByte(ddnsfolder, "Key", key, 20);
+
+ CfgDeleteFolder(root);
+
+ return (err == 20) ? ERR_NO_ERROR : ERR_INTERNAL_ERROR;
+}
+
void SmDDnsDlgInit(HWND hWnd, SM_DDNS *d)
{
+ char key[20];
+ char encodedkey[20 * 4 + 32];
+
// Validate arguments
if (hWnd == NULL || d == NULL)
{
@@ -854,6 +910,7 @@ void SmDDnsDlgInit(HWND hWnd, SM_DDNS *d)
DlgFont(hWnd, S_STATUS4, 0, true);
DlgFont(hWnd, S_STATUS5, 0, true);
DlgFont(hWnd, S_STATUS6, 0, true);
+ DlgFont(hWnd, S_STATUS8, 0, true);
SetFont(hWnd, S_SUFFIX, GetFont("Verdana", 10, false, false, false, false));
SetFont(hWnd, E_NEWHOST, GetFont("Verdana", 10, false, false, false, false));
@@ -861,6 +918,7 @@ void SmDDnsDlgInit(HWND hWnd, SM_DDNS *d)
SetFont(hWnd, E_HOST, GetFont((MsIsWinXPOrGreater() ? "Verdana" : NULL), 10, false, false, false, false));
SetFont(hWnd, E_IPV4, GetFont((MsIsWinXPOrGreater() ? "Verdana" : NULL), 10, false, false, false, false));
SetFont(hWnd, E_IPV6, GetFont((MsIsWinXPOrGreater() ? "Verdana" : NULL), 10, false, false, false, false));
+ SetFont(hWnd, E_KEY, GetFont((MsIsWinXPOrGreater() ? "Verdana" : NULL), 8, false, false, false, false));
DlgFont(hWnd, IDOK, 0, true);
@@ -871,6 +929,13 @@ void SmDDnsDlgInit(HWND hWnd, SM_DDNS *d)
Hide(hWnd, B_PROXY);
+ if(SmDdnsGetKey(key, d) == ERR_NO_ERROR){
+ encodedkey[ B64_Encode(encodedkey, key, 20) ] = 0;
+ SetTextA(hWnd, E_KEY, encodedkey);
+ }else{
+ SetText(hWnd, E_KEY, _UU("SM_DDNS_KEY_ERR"));
+ }
+
SmDDnsRefresh(hWnd, d);
}
@@ -878,6 +943,7 @@ void SmDDnsRefresh(HWND hWnd, SM_DDNS *d)
{
DDNS_CLIENT_STATUS st;
INTERNET_SETTING t;
+
// Validate arguments
if (hWnd == NULL || d == NULL)
{
diff --git a/src/Cedar/SM.h b/src/Cedar/SM.h
index 5fa56588..261c206a 100644
--- a/src/Cedar/SM.h
+++ b/src/Cedar/SM.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SM.h
diff --git a/src/Cedar/SMInner.h b/src/Cedar/SMInner.h
index 63ef0786..8f2beb33 100644
--- a/src/Cedar/SMInner.h
+++ b/src/Cedar/SMInner.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SMInner.h
@@ -209,6 +215,7 @@ typedef struct SM_HUB
SM_SERVER *p; // P
RPC *Rpc; // RPC
char *HubName; // HUB name
+ char CurrentPushRouteStr[MAX_DHCP_CLASSLESS_ROUTE_TABLE_STR_SIZE]; // Current editing push routing table string
} SM_HUB;
// Show the User list
diff --git a/src/Cedar/SW.c b/src/Cedar/SW.c
index bcbb45c8..0733391a 100644
--- a/src/Cedar/SW.c
+++ b/src/Cedar/SW.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SW.c
diff --git a/src/Cedar/SW.h b/src/Cedar/SW.h
index 668201f0..94a4479d 100644
--- a/src/Cedar/SW.h
+++ b/src/Cedar/SW.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SW.h
diff --git a/src/Cedar/SWInner.h b/src/Cedar/SWInner.h
index d23dbc27..9f62c5f3 100644
--- a/src/Cedar/SWInner.h
+++ b/src/Cedar/SWInner.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SWInner.h
diff --git a/src/Cedar/Sam.c b/src/Cedar/Sam.c
index b12a97f9..7520e40a 100644
--- a/src/Cedar/Sam.c
+++ b/src/Cedar/Sam.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Sam.c
@@ -156,13 +162,263 @@ bool SamAuthUserByAnonymous(HUB *h, char *username)
// Plaintext password authentication of user
bool SamAuthUserByPlainPassword(CONNECTION *c, HUB *hub, char *username, char *password, bool ast, UCHAR *mschap_v2_server_response_20)
{
- return false;
+ bool b = false;
+ wchar_t *name = NULL;
+ bool auth_by_nt = false;
+ HUB *h;
+ // Validate arguments
+ if (hub == NULL || c == NULL || username == NULL)
+ {
+ return false;
+ }
+
+ if (GetGlobalServerFlag(GSF_DISABLE_RADIUS_AUTH) != 0)
+ {
+ return false;
+ }
+
+ h = hub;
+
+ AddRef(h->ref);
+
+ // Get the user name on authentication system
+ AcLock(hub);
+ {
+ USER *u;
+ u = AcGetUser(hub, ast == false ? username : "*");
+ if (u)
+ {
+ Lock(u->lock);
+ {
+ if (u->AuthType == AUTHTYPE_RADIUS)
+ {
+ // Radius authentication
+ AUTHRADIUS *auth = (AUTHRADIUS *)u->AuthData;
+ if (ast || auth->RadiusUsername == NULL || UniStrLen(auth->RadiusUsername) == 0)
+ {
+ name = CopyStrToUni(username);
+ }
+ else
+ {
+ name = CopyUniStr(auth->RadiusUsername);
+ }
+ auth_by_nt = false;
+ }
+ else if (u->AuthType == AUTHTYPE_NT)
+ {
+ // NT authentication
+ AUTHNT *auth = (AUTHNT *)u->AuthData;
+ if (ast || auth->NtUsername == NULL || UniStrLen(auth->NtUsername) == 0)
+ {
+ name = CopyStrToUni(username);
+ }
+ else
+ {
+ name = CopyUniStr(auth->NtUsername);
+ }
+ auth_by_nt = true;
+ }
+ }
+ Unlock(u->lock);
+ ReleaseUser(u);
+ }
+ }
+ AcUnlock(hub);
+
+ if (name != NULL)
+ {
+ if (auth_by_nt == false)
+ {
+ // Radius authentication
+ char radius_server_addr[MAX_SIZE];
+ UINT radius_server_port;
+ char radius_secret[MAX_SIZE];
+ char suffix_filter[MAX_SIZE];
+ wchar_t suffix_filter_w[MAX_SIZE];
+ UINT interval;
+
+ Zero(suffix_filter, sizeof(suffix_filter));
+ Zero(suffix_filter_w, sizeof(suffix_filter_w));
+
+ // Get the Radius server information
+ if (GetRadiusServerEx2(hub, radius_server_addr, sizeof(radius_server_addr), &radius_server_port, radius_secret, sizeof(radius_secret), &interval, suffix_filter, sizeof(suffix_filter)))
+ {
+ Unlock(hub->lock);
+
+ StrToUni(suffix_filter_w, sizeof(suffix_filter_w), suffix_filter);
+
+ if (UniIsEmptyStr(suffix_filter_w) || UniEndWith(name, suffix_filter_w))
+ {
+ // Attempt to login
+ b = RadiusLogin(c, radius_server_addr, radius_server_port,
+ radius_secret, StrLen(radius_secret),
+ name, password, interval, mschap_v2_server_response_20);
+ }
+
+ Lock(hub->lock);
+ }
+ else
+ {
+ HLog(hub, "LH_NO_RADIUS_SETTING", name);
+ }
+ }
+ else
+ {
+ // NT authentication (Not available for non-Win32)
+#ifdef OS_WIN32
+ IPC_MSCHAP_V2_AUTHINFO mschap;
+ Unlock(hub->lock);
+
+ if (ParseAndExtractMsChapV2InfoFromPassword(&mschap, password) == false)
+ {
+ // Plaintext password authentication
+ b = MsCheckLogon(name, password);
+ }
+ else
+ {
+ UCHAR challenge8[8];
+ UCHAR nt_pw_hash_hash[16];
+ char nt_name[MAX_SIZE];
+
+ UniToStr(nt_name, sizeof(nt_name), name);
+
+ // MS-CHAPv2 authentication
+ MsChapV2_GenerateChallenge8(challenge8, mschap.MsChapV2_ClientChallenge,
+ mschap.MsChapV2_ServerChallenge,
+ mschap.MsChapV2_PPPUsername);
+
+ Debug("MsChapV2_PPPUsername = %s, nt_name = %s\n", mschap.MsChapV2_PPPUsername, nt_name);
+
+ b = MsPerformMsChapV2AuthByLsa(nt_name, challenge8, mschap.MsChapV2_ClientResponse, nt_pw_hash_hash);
+
+ if (b)
+ {
+ if (mschap_v2_server_response_20 != NULL)
+ {
+ MsChapV2Server_GenerateResponse(mschap_v2_server_response_20, nt_pw_hash_hash,
+ mschap.MsChapV2_ClientResponse, challenge8);
+ }
+ }
+ }
+
+ Lock(hub->lock);
+#else // OS_WIN32
+ // Nothing to do other than Win32
+#endif // OS_WIN32
+ }
+
+ // Memory release
+ Free(name);
+ }
+
+ ReleaseHub(h);
+
+ return b;
}
// Certificate authentication of user
bool SamAuthUserByCert(HUB *h, char *username, X *x)
{
- return false;
+ bool b = false;
+ // Validate arguments
+ if (h == NULL || username == NULL || x == NULL)
+ {
+ return false;
+ }
+
+ if (GetGlobalServerFlag(GSF_DISABLE_CERT_AUTH) != 0)
+ {
+ return false;
+ }
+
+ // Check expiration date
+ if (CheckXDateNow(x) == false)
+ {
+ return false;
+ }
+
+ // Check the Certification Revocation List
+ if (IsValidCertInHub(h, x) == false)
+ {
+ // Bad
+ wchar_t tmp[MAX_SIZE * 2];
+
+ // Log the contents of the certificate
+ GetAllNameFromX(tmp, sizeof(tmp), x);
+
+ HLog(h, "LH_AUTH_NG_CERT", username, tmp);
+ return false;
+ }
+
+ AcLock(h);
+ {
+ USER *u;
+ u = AcGetUser(h, username);
+ if (u)
+ {
+ Lock(u->lock);
+ {
+ if (u->AuthType == AUTHTYPE_USERCERT)
+ {
+ // Check whether to matche with the registered certificate
+ AUTHUSERCERT *auth = (AUTHUSERCERT *)u->AuthData;
+ if (CompareX(auth->UserX, x))
+ {
+ b = true;
+ }
+ }
+ else if (u->AuthType == AUTHTYPE_ROOTCERT)
+ {
+ // Check whether the certificate has been signed by the root certificate
+ AUTHROOTCERT *auth = (AUTHROOTCERT *)u->AuthData;
+ if (h->HubDb != NULL)
+ {
+ LockList(h->HubDb->RootCertList);
+ {
+ X *root_cert;
+ root_cert = GetIssuerFromList(h->HubDb->RootCertList, x);
+ if (root_cert != NULL)
+ {
+ b = true;
+ if (auth->CommonName != NULL && UniIsEmptyStr(auth->CommonName) == false)
+ {
+ // Compare the CN
+ if (UniStrCmpi(x->subject_name->CommonName, auth->CommonName) != 0)
+ {
+ b = false;
+ }
+ }
+ if (auth->Serial != NULL && auth->Serial->size >= 1)
+ {
+ // Compare the serial number
+ if (CompareXSerial(x->serial, auth->Serial) == false)
+ {
+ b = false;
+ }
+ }
+ }
+ }
+ UnlockList(h->HubDb->RootCertList);
+ }
+ }
+ }
+ Unlock(u->lock);
+ ReleaseUser(u);
+ }
+ }
+ AcUnlock(h);
+
+ if (b)
+ {
+ wchar_t tmp[MAX_SIZE * 2];
+
+ // Log the contents of the certificate
+ GetAllNameFromX(tmp, sizeof(tmp), x);
+
+ HLog(h, "LH_AUTH_OK_CERT", username, tmp);
+ }
+
+ return b;
}
// Get the root certificate that signed the specified certificate from the list
diff --git a/src/Cedar/Sam.h b/src/Cedar/Sam.h
index 164b1c24..61eb1739 100644
--- a/src/Cedar/Sam.h
+++ b/src/Cedar/Sam.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Sam.h
diff --git a/src/Cedar/SeLowUser.c b/src/Cedar/SeLowUser.c
index c4694177..191ad066 100644
--- a/src/Cedar/SeLowUser.c
+++ b/src/Cedar/SeLowUser.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SeLowUser.c
diff --git a/src/Cedar/SeLowUser.h b/src/Cedar/SeLowUser.h
index 05c9b13e..531fd881 100644
--- a/src/Cedar/SeLowUser.h
+++ b/src/Cedar/SeLowUser.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SeLowUser.h
diff --git a/src/Cedar/SecureInfo.c b/src/Cedar/SecureInfo.c
index af739f11..3bbe69cb 100644
--- a/src/Cedar/SecureInfo.c
+++ b/src/Cedar/SecureInfo.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SecureInfo.c
diff --git a/src/Cedar/SecureInfo.h b/src/Cedar/SecureInfo.h
index e39a5c2d..821fca5f 100644
--- a/src/Cedar/SecureInfo.h
+++ b/src/Cedar/SecureInfo.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SecureInfo.h
diff --git a/src/Cedar/SecureNAT.c b/src/Cedar/SecureNAT.c
index 4d77779b..fbb4b751 100644
--- a/src/Cedar/SecureNAT.c
+++ b/src/Cedar/SecureNAT.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SecureNAT.c
diff --git a/src/Cedar/SecureNAT.h b/src/Cedar/SecureNAT.h
index a73f718b..2452ab0a 100644
--- a/src/Cedar/SecureNAT.h
+++ b/src/Cedar/SecureNAT.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SecureNAT.h
diff --git a/src/Cedar/Server.c b/src/Cedar/Server.c
index f4adda60..a0de204c 100644
--- a/src/Cedar/Server.c
+++ b/src/Cedar/Server.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Server.c
@@ -100,6 +106,8 @@ char *BRIDGE_CONFIG_FILE_NAME = "@vpn_bridge.config";
static bool server_reset_setting = false;
+static volatile UINT global_server_flags[NUM_GLOBAL_SERVER_FLAGS] = {0};
+
// Set the OpenVPN and SSTP setting
void SiSetOpenVPNAndSSTPConfig(SERVER *s, OPENVPN_SSTP_CONFIG *c)
{
@@ -825,6 +833,40 @@ UINT SiGetSysLogSaveStatus(SERVER *s)
// Send a syslog
void SiWriteSysLog(SERVER *s, char *typestr, char *hubname, wchar_t *message)
{
+ wchar_t tmp[1024];
+ char machinename[MAX_HOST_NAME_LEN + 1];
+ char datetime[MAX_PATH];
+ SYSTEMTIME st;
+ // Validate arguments
+ if (s == NULL || typestr == NULL || message == NULL)
+ {
+ return;
+ }
+
+ if (GetGlobalServerFlag(GSF_DISABLE_SYSLOG) != 0)
+ {
+ return;
+ }
+
+ // Host name
+ GetMachineName(machinename, sizeof(machinename));
+
+ // Date and time
+ LocalTime(&st);
+ GetDateTimeStrMilli(datetime, sizeof(datetime), &st);
+
+ if (IsEmptyStr(hubname) == false)
+ {
+ UniFormat(tmp, sizeof(tmp), L"[%S/VPN/%S] (%S) <%S>: %s",
+ machinename, hubname, datetime, typestr, message);
+ }
+ else
+ {
+ UniFormat(tmp, sizeof(tmp), L"[%S/VPN] (%S) <%S>: %s",
+ machinename, datetime, typestr, message);
+ }
+
+ SendSysLog(s->Syslog, tmp);
}
// Write the syslog configuration
@@ -1207,6 +1249,22 @@ void DestroyServerCapsCache(SERVER *s)
Unlock(s->CapsCacheLock);
}
+// Flush the Caps list for this server
+void FlushServerCaps(SERVER *s)
+{
+ CAPSLIST t;
+ // Validate arguments
+ if (s == NULL)
+ {
+ return;
+ }
+
+ DestroyServerCapsCache(s);
+
+ Zero(&t, sizeof(t));
+ GetServerCaps(s, &t);
+}
+
// Get the Caps list for this server
void GetServerCaps(SERVER *s, CAPSLIST *t)
{
@@ -1230,15 +1288,63 @@ void GetServerCaps(SERVER *s, CAPSLIST *t)
Unlock(s->CapsCacheLock);
}
+// Update the global server flags
+void UpdateGlobalServerFlags(SERVER *s, CAPSLIST *t)
+{
+ bool is_restricted = false;
+ // Validate arguments
+ if (s == NULL || t == NULL)
+ {
+ return;
+ }
+
+ is_restricted = SiIsEnterpriseFunctionsRestrictedOnOpenSource(s->Cedar);
+
+ SetGlobalServerFlag(GSF_DISABLE_PUSH_ROUTE, is_restricted);
+ SetGlobalServerFlag(GSF_DISABLE_RADIUS_AUTH, is_restricted);
+ SetGlobalServerFlag(GSF_DISABLE_CERT_AUTH, is_restricted);
+ SetGlobalServerFlag(GSF_DISABLE_DEEP_LOGGING, is_restricted);
+ SetGlobalServerFlag(GSF_DISABLE_AC, is_restricted);
+ SetGlobalServerFlag(GSF_DISABLE_SYSLOG, is_restricted);
+}
+
+// Set a global server flag
+void SetGlobalServerFlag(UINT index, UINT value)
+{
+ // Validate arguments
+ if (index >= NUM_GLOBAL_SERVER_FLAGS)
+ {
+ return;
+ }
+
+ global_server_flags[index] = value;
+}
+
+// Get a global server flag
+UINT GetGlobalServerFlag(UINT index)
+{
+ // Validate arguments
+ if (index >= NUM_GLOBAL_SERVER_FLAGS)
+ {
+ return 0;
+ }
+
+ return global_server_flags[index];
+}
+
// Main of the aquisition of Caps of the server
void GetServerCapsMain(SERVER *s, CAPSLIST *t)
{
+ bool is_restricted = false;
+
// Validate arguments
if (s == NULL || t == NULL)
{
return;
}
+ is_restricted = SiIsEnterpriseFunctionsRestrictedOnOpenSource(s->Cedar);
+
// Initialize
InitCapsList(t);
@@ -1299,7 +1405,7 @@ void GetServerCapsMain(SERVER *s, CAPSLIST *t)
AddCapsBool(t, "b_support_qos", true);
// syslog
- AddCapsBool(t, "b_support_syslog", false);
+ AddCapsBool(t, "b_support_syslog", true);
// IPsec
// (Only works in stand-alone mode currently)
@@ -1382,6 +1488,10 @@ void GetServerCapsMain(SERVER *s, CAPSLIST *t)
// SecureNAT function is available
AddCapsBool(t, "b_support_securenat", true);
+ // Pushing routing table function of SecureNAT Virtual DHCP Server is available
+ AddCapsBool(t, "b_suppport_push_route", !is_restricted);
+ AddCapsBool(t, "b_suppport_push_route_config", true);
+
if (s->ServerType != SERVER_TYPE_STANDALONE)
{
AddCapsBool(t, "b_virtual_nat_disabled", true);
@@ -1428,7 +1538,9 @@ void GetServerCapsMain(SERVER *s, CAPSLIST *t)
// VPN client can be connected
AddCapsBool(t, "b_vpn_client_connect", s->Cedar->Bridge == false ? true : false);
- AddCapsBool(t, "b_support_radius", false);
+ // External authentication server is available
+ AddCapsBool(t, "b_support_radius", s->ServerType != SERVER_TYPE_FARM_MEMBER &&
+ s->Cedar->Bridge == false);
// Local-bridge function is available
AddCapsBool(t, "b_local_bridge", IsBridgeSupported());
@@ -1463,7 +1575,8 @@ void GetServerCapsMain(SERVER *s, CAPSLIST *t)
// Server authentication can be used in cascade connection
AddCapsBool(t, "b_support_cascade_cert", true);
- AddCapsBool(t, "b_support_config_log", false);
+ // the log file settings is modifiable
+ AddCapsBool(t, "b_support_config_log", s->ServerType != SERVER_TYPE_FARM_MEMBER);
// Automatic deletion of log file is available
AddCapsBool(t, "b_support_autodelete", true);
@@ -1515,6 +1628,8 @@ void GetServerCapsMain(SERVER *s, CAPSLIST *t)
// Support for CRL
AddCapsBool(t, "b_support_crl", true);
+ // Supports AC
+ AddCapsBool(t, "b_support_ac", true);
}
// Supports downloading a log file
@@ -1614,6 +1729,8 @@ void GetServerCapsMain(SERVER *s, CAPSLIST *t)
// VPN4
AddCapsBool(t, "b_vpn4", true);
+
+ UpdateGlobalServerFlags(s, t);
}
// SYSLOG_SETTING
@@ -3123,6 +3240,7 @@ void IncrementServerConfigRevision(SERVER *s)
FOLDER *SiWriteConfigurationToCfg(SERVER *s)
{
FOLDER *root;
+ char region[128];
// Validate arguments
if (s == NULL)
{
@@ -3131,6 +3249,10 @@ FOLDER *SiWriteConfigurationToCfg(SERVER *s)
root = CfgCreateFolder(NULL, TAG_ROOT);
+ SiGetCurrentRegion(s->Cedar, region, sizeof(region));
+
+ CfgAddStr(root, "Region", region);
+
CfgAddInt(root, "ConfigRevision", s->ConfigRevision);
SiWriteListeners(CfgCreateFolder(root, "ListenerList"), s);
@@ -3829,6 +3951,25 @@ void SiLoadHubOptionCfg(FOLDER *f, HUB_OPTION *o)
o->BroadcastLimiterStrictMode = CfgGetBool(f, "BroadcastLimiterStrictMode");
o->MaxLoggedPacketsPerMinute = CfgGetInt(f, "MaxLoggedPacketsPerMinute");
o->DoNotSaveHeavySecurityLogs = CfgGetBool(f, "DoNotSaveHeavySecurityLogs");
+
+ if (CfgIsItem(f, "DropBroadcastsInPrivacyFilterMode"))
+ {
+ o->DropBroadcastsInPrivacyFilterMode = CfgGetBool(f, "DropBroadcastsInPrivacyFilterMode");
+ }
+ else
+ {
+ o->DropBroadcastsInPrivacyFilterMode = true;
+ }
+
+ if (CfgIsItem(f, "DropArpInPrivacyFilterMode"))
+ {
+ o->DropArpInPrivacyFilterMode = CfgGetBool(f, "DropArpInPrivacyFilterMode");
+ }
+ else
+ {
+ o->DropArpInPrivacyFilterMode = true;
+ }
+
o->NoLookBPDUBridgeId = CfgGetBool(f, "NoLookBPDUBridgeId");
o->AdjustTcpMssValue = CfgGetInt(f, "AdjustTcpMssValue");
o->DisableAdjustTcpMss = CfgGetBool(f, "DisableAdjustTcpMss");
@@ -3939,6 +4080,8 @@ void SiWriteHubOptionCfg(FOLDER *f, HUB_OPTION *o)
CfgAddBool(f, "BroadcastLimiterStrictMode", o->BroadcastLimiterStrictMode);
CfgAddInt(f, "MaxLoggedPacketsPerMinute", o->MaxLoggedPacketsPerMinute);
CfgAddBool(f, "DoNotSaveHeavySecurityLogs", o->DoNotSaveHeavySecurityLogs);
+ CfgAddBool(f, "DropBroadcastsInPrivacyFilterMode", o->DropBroadcastsInPrivacyFilterMode);
+ CfgAddBool(f, "DropArpInPrivacyFilterMode", o->DropArpInPrivacyFilterMode);
CfgAddBool(f, "NoLookBPDUBridgeId", o->NoLookBPDUBridgeId);
CfgAddInt(f, "AdjustTcpMssValue", o->AdjustTcpMssValue);
CfgAddBool(f, "DisableAdjustTcpMss", o->DisableAdjustTcpMss);
@@ -7075,6 +7218,8 @@ void SiCalledUpdateHub(SERVER *s, PACK *p)
o.NoManageVlanId = PackGetBool(p, "NoManageVlanId");
o.MaxLoggedPacketsPerMinute = PackGetInt(p, "MaxLoggedPacketsPerMinute");
o.DoNotSaveHeavySecurityLogs = PackGetBool(p, "DoNotSaveHeavySecurityLogs");
+ o.DropBroadcastsInPrivacyFilterMode = PackGetBool(p, "DropBroadcastsInPrivacyFilterMode");
+ o.DropArpInPrivacyFilterMode = PackGetBool(p, "DropArpInPrivacyFilterMode");
o.VlanTypeId = PackGetInt(p, "VlanTypeId");
if (o.VlanTypeId == 0)
{
@@ -8913,6 +9058,8 @@ void SiPackAddCreateHub(PACK *p, HUB *h)
PackAddInt(p, "BroadcastStormDetectionThreshold", h->Option->BroadcastStormDetectionThreshold);
PackAddInt(p, "MaxLoggedPacketsPerMinute", h->Option->MaxLoggedPacketsPerMinute);
PackAddBool(p, "DoNotSaveHeavySecurityLogs", h->Option->DoNotSaveHeavySecurityLogs);
+ PackAddBool(p, "DropBroadcastsInPrivacyFilterMode", h->Option->DropBroadcastsInPrivacyFilterMode);
+ PackAddBool(p, "DropArpInPrivacyFilterMode", h->Option->DropArpInPrivacyFilterMode);
PackAddInt(p, "ClientMinimumRequiredBuild", h->Option->ClientMinimumRequiredBuild);
PackAddBool(p, "FixForDLinkBPDU", h->Option->FixForDLinkBPDU);
PackAddBool(p, "BroadcastLimiterStrictMode", h->Option->BroadcastLimiterStrictMode);
@@ -10311,6 +10458,122 @@ FARM_CONTROLLER *SiStartConnectToController(SERVER *s)
return f;
}
+// Get the current version
+void SiGetCurrentRegion(CEDAR *c, char *region, UINT region_size)
+{
+ ClearStr(region, region_size);
+ // Validate arguments
+ if (c == NULL || region == NULL)
+ {
+ return;
+ }
+
+ Lock(c->CurrentRegionLock);
+ {
+ StrCpy(region, region_size, c->CurrentRegion);
+ }
+ Unlock(c->CurrentRegionLock);
+
+ if (IsEmptyStr(region))
+ {
+ if (GetCurrentLangId() == SE_LANG_JAPANESE)
+ {
+ StrCpy(region, region_size, "JP");
+ }
+ else if (GetCurrentLangId() == SE_LANG_CHINESE_ZH)
+ {
+ StrCpy(region, region_size, "CN");
+ }
+ }
+}
+
+// Check whether some enterprise functions are restricted
+//
+// ** Hints by Daiyuu Nobori, written on March 19, 2014 **
+//
+// The following 'enterprise functions' are implemented on SoftEther VPN Server
+// since March 19, 2014. However, these functions are disabled on
+// SoftEther VPN Servers which run in Japan and China.
+//
+// - RADIUS / NT Domain user authentication
+// - RSA certificate authentication
+// - Deep-inspect packet logging
+// - Source IP address control list
+// - syslog transfer
+//
+// The SoftEther VPN Project intentionally disables these functions for users
+// in Japan and China. The reason is: Daiyuu Nobori, the chief author of
+// SoftEther VPN, has been liable to observe the existing agreements and
+// restrictions between him and some companies. The agreements have regulated
+// the region-limited restriction to implement and distribute the above
+// enterprise functions on the SoftEther VPN open-source program.
+//
+// Therefore, the SoftEther VPN Project distributes the binary program and
+// the source code with the "SiIsEnterpriseFunctionsRestrictedOnOpenSource"
+// function. This function identifies whether the SoftEther VPN Server
+// program is running in either Japan or China. If the restricted region is
+// detected, then the above enterprise functions will be disabled.
+//
+// Please note that the above restriction has been imposed only on the
+// original binaries and source codes from the SoftEther VPN Project.
+// Anyone, except Daiyuu Nobori, who understands and writes the C language
+// program can remove this restriction at his own risk.
+//
+bool SiIsEnterpriseFunctionsRestrictedOnOpenSource(CEDAR *c)
+{
+ char region[128];
+ bool ret = false;
+ // Validate arguments
+ if (c == NULL)
+ {
+ return false;
+ }
+
+
+ SiGetCurrentRegion(c, region, sizeof(region));
+
+ if (StrCmpi(region, "JP") == 0 || StrCmpi(region, "CN") == 0)
+ {
+ ret = true;
+ }
+
+ return ret;
+}
+
+// Update the current region
+void SiUpdateCurrentRegion(CEDAR *c, char *region, bool force_update)
+{
+ bool changed = false;
+ // Validate arguments
+ if (c == NULL)
+ {
+ return;
+ }
+
+ if (IsEmptyStr(region) == false)
+ {
+ Lock(c->CurrentRegionLock);
+ {
+ if (StrCmpi(c->CurrentRegion, region) != 0)
+ {
+ StrCpy(c->CurrentRegion, sizeof(c->CurrentRegion), region);
+ changed = true;
+ }
+ }
+ Unlock(c->CurrentRegionLock);
+ }
+
+ if (force_update)
+ {
+ changed = true;
+ }
+
+ if (changed)
+ {
+ FlushServerCaps(c->Server);
+ }
+}
+
// Create a server
SERVER *SiNewServer(bool bridge)
{
@@ -10461,6 +10724,8 @@ SERVER *SiNewServerEx(bool bridge, bool in_client_inner_server)
SiInitDeadLockCheck(s);
+ SiUpdateCurrentRegion(s->Cedar, "", true);
+
return s;
}
diff --git a/src/Cedar/Server.h b/src/Cedar/Server.h
index 319e3eca..27803e94 100644
--- a/src/Cedar/Server.h
+++ b/src/Cedar/Server.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Server.h
@@ -397,6 +403,17 @@ struct LOG_FILE
};
+// Global server flags
+#define NUM_GLOBAL_SERVER_FLAGS 128
+#define GSF_DISABLE_PUSH_ROUTE 1
+#define GSF_DISABLE_RADIUS_AUTH 2
+#define GSF_DISABLE_CERT_AUTH 3
+#define GSF_DISABLE_DEEP_LOGGING 4
+#define GSF_DISABLE_AC 5
+#define GSF_DISABLE_SYSLOG 6
+#define GSF_SHOW_OSS_MSG 7
+
+
// Virtual HUB creation history
struct SERVER_HUB_CREATE_HISTORY
{
@@ -630,6 +647,7 @@ void InRpcSysLogSetting(SYSLOG_SETTING *t, PACK *p);
void OutRpcSysLogSetting(PACK *p, SYSLOG_SETTING *t);
void GetServerCaps(SERVER *s, CAPSLIST *t);
+void FlushServerCaps(SERVER *s);
bool GetServerCapsBool(SERVER *s, char *name);
UINT GetServerCapsInt(SERVER *s, char *name);
void GetServerCapsMain(SERVER *s, CAPSLIST *t);
@@ -637,6 +655,10 @@ void InitServerCapsCache(SERVER *s);
void FreeServerCapsCache(SERVER *s);
void DestroyServerCapsCache(SERVER *s);
+void SetGlobalServerFlag(UINT index, UINT value);
+UINT GetGlobalServerFlag(UINT index);
+void UpdateGlobalServerFlags(SERVER *s, CAPSLIST *t);
+
bool IsAdminPackSupportedServerProduct(char *name);
@@ -663,6 +685,10 @@ void SiApplyAzureConfig(SERVER *s, DDNS_CLIENT_STATUS *ddns_status);
void SiSetAzureEnable(SERVER *s, bool enabled);
bool SiGetAzureEnable(SERVER *s);
+void SiUpdateCurrentRegion(CEDAR *c, char *region, bool force_update);
+void SiGetCurrentRegion(CEDAR *c, char *region, UINT region_size);
+bool SiIsEnterpriseFunctionsRestrictedOnOpenSource(CEDAR *c);
+
#endif // SERVER_H
diff --git a/src/Cedar/Session.c b/src/Cedar/Session.c
index 7403b2cd..828ca911 100644
--- a/src/Cedar/Session.c
+++ b/src/Cedar/Session.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Session.c
diff --git a/src/Cedar/Session.h b/src/Cedar/Session.h
index 0191a7fd..5655947c 100644
--- a/src/Cedar/Session.h
+++ b/src/Cedar/Session.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Session.h
diff --git a/src/Cedar/UT.c b/src/Cedar/UT.c
index 3293667e..3ef42d83 100644
--- a/src/Cedar/UT.c
+++ b/src/Cedar/UT.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// UT.c
diff --git a/src/Cedar/UT.h b/src/Cedar/UT.h
index 8d4c9c0f..35b7c2b2 100644
--- a/src/Cedar/UT.h
+++ b/src/Cedar/UT.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// UT.h
diff --git a/src/Cedar/UdpAccel.c b/src/Cedar/UdpAccel.c
index 1be02aae..59abc216 100644
--- a/src/Cedar/UdpAccel.c
+++ b/src/Cedar/UdpAccel.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// UdpAccel.c
diff --git a/src/Cedar/UdpAccel.h b/src/Cedar/UdpAccel.h
index 240a45f4..e0ebbcf1 100644
--- a/src/Cedar/UdpAccel.h
+++ b/src/Cedar/UdpAccel.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// UdpAccel.h
diff --git a/src/Cedar/VG.c b/src/Cedar/VG.c
index 5f6befcf..637aea41 100644
--- a/src/Cedar/VG.c
+++ b/src/Cedar/VG.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// VG.c
diff --git a/src/Cedar/VG.h b/src/Cedar/VG.h
index 218255c4..25013570 100644
--- a/src/Cedar/VG.h
+++ b/src/Cedar/VG.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// VG.h
diff --git a/src/Cedar/VLan.c b/src/Cedar/VLan.c
index e0e9c710..2b781382 100644
--- a/src/Cedar/VLan.c
+++ b/src/Cedar/VLan.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// VLan.c
diff --git a/src/Cedar/VLan.h b/src/Cedar/VLan.h
index 639f57ad..bc95c2db 100644
--- a/src/Cedar/VLan.h
+++ b/src/Cedar/VLan.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// VLan.h
diff --git a/src/Cedar/VLanUnix.c b/src/Cedar/VLanUnix.c
index d40235dc..93e51d71 100644
--- a/src/Cedar/VLanUnix.c
+++ b/src/Cedar/VLanUnix.c
@@ -16,7 +16,6 @@
// - nattoheaven (https://github.com/nattoheaven)
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -87,6 +86,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// VLanUnix.c
diff --git a/src/Cedar/VLanUnix.h b/src/Cedar/VLanUnix.h
index ceccd1a0..4f2b529b 100644
--- a/src/Cedar/VLanUnix.h
+++ b/src/Cedar/VLanUnix.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// VLanUnix.h
diff --git a/src/Cedar/VLanWin32.c b/src/Cedar/VLanWin32.c
index ae83d3ec..f802f3f2 100644
--- a/src/Cedar/VLanWin32.c
+++ b/src/Cedar/VLanWin32.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// VLanWin32.c
diff --git a/src/Cedar/VLanWin32.h b/src/Cedar/VLanWin32.h
index 831ca694..11d511b5 100644
--- a/src/Cedar/VLanWin32.h
+++ b/src/Cedar/VLanWin32.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// VLanWin32.h
diff --git a/src/Cedar/Virtual.c b/src/Cedar/Virtual.c
index 21e5d6b8..1bc8b132 100644
--- a/src/Cedar/Virtual.c
+++ b/src/Cedar/Virtual.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Virtual.c
@@ -2695,7 +2701,7 @@ NATIVE_STACK *NnGetNextInterface(NATIVE_NAT *t)
UINTToIP(&subnet, opt.SubnetMask);
UINTToIP(&gw, opt.Gateway);
- IPCSetIPv4Parameters(ret->Ipc, &ip, &subnet, &gw);
+ IPCSetIPv4Parameters(ret->Ipc, &ip, &subnet, &gw, &opt.ClasslessRoute);
// Determine the DNS server to use
UINTToIP(&ret->DnsServerIP, opt.DnsServer);
@@ -9427,6 +9433,11 @@ void VirtualDhcpServer(VH *v, PKT *p)
ret.DnsServer2 = v->DhcpDns2;
ret.Gateway = v->DhcpGateway;
+ if (GetGlobalServerFlag(GSF_DISABLE_PUSH_ROUTE) == 0)
+ {
+ Copy(&ret.ClasslessRoute, &v->PushRoute, sizeof(DHCP_CLASSLESS_ROUTE_TABLE));
+ }
+
if (opt->Opcode != DHCP_INFORM)
{
char client_mac[MAX_SIZE];
@@ -9775,6 +9786,10 @@ void GetVirtualHostOption(VH *v, VH_OPTION *o)
// Save a log
o->SaveLog = v->SaveLog;
+
+ // Pushing route option
+ BuildClasslessRouteTableStr(o->DhcpPushRoutes, sizeof(o->DhcpPushRoutes), &v->PushRoute);
+ o->ApplyDhcpPushRoutes = true;
}
UnlockVirtual(v);
}
@@ -9869,6 +9884,19 @@ void SetVirtualHostOption(VH *v, VH_OPTION *vo)
// Save a log
v->SaveLog = vo->SaveLog;
+
+ // DHCP routing table pushing setting
+ if (vo->ApplyDhcpPushRoutes)
+ {
+ DHCP_CLASSLESS_ROUTE_TABLE rt;
+
+ Zero(&rt, sizeof(rt));
+
+ if (ParseClasslessRouteTableStr(&rt, vo->DhcpPushRoutes))
+ {
+ Copy(&v->PushRoute, &rt, sizeof(DHCP_CLASSLESS_ROUTE_TABLE));
+ }
+ }
}
UnlockVirtual(v);
}
diff --git a/src/Cedar/Virtual.h b/src/Cedar/Virtual.h
index 8c4a38ff..aed5d825 100644
--- a/src/Cedar/Virtual.h
+++ b/src/Cedar/Virtual.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Virtual.h
@@ -374,6 +380,7 @@ struct VH
LIST *DhcpLeaseList; // DHCP lease list
UINT64 LastDhcpPolling; // Time which the DHCP list polled last
bool SaveLog; // Save a log
+ DHCP_CLASSLESS_ROUTE_TABLE PushRoute; // Pushing routing table
COUNTER *Counter; // Session counter
UINT DhcpId; // DHCP ID
UINT64 LastSendBeacon; // Time which the beacon has been sent last
@@ -408,6 +415,8 @@ struct VH_OPTION
IP DhcpDnsServerAddress2; // Assigned DNS server address 2
char DhcpDomainName[MAX_HOST_NAME_LEN + 1]; // Assigned domain name
bool SaveLog; // Save a log
+ bool ApplyDhcpPushRoutes; // Apply flag for DhcpPushRoutes
+ char DhcpPushRoutes[MAX_DHCP_CLASSLESS_ROUTE_TABLE_STR_SIZE]; // DHCP pushing routes
};
// DHCP lease entry
diff --git a/src/Cedar/WaterMark.c b/src/Cedar/WaterMark.c
index 575c7cdb..6307d6b7 100644
--- a/src/Cedar/WaterMark.c
+++ b/src/Cedar/WaterMark.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// WaterMark.c
diff --git a/src/Cedar/WaterMark.h b/src/Cedar/WaterMark.h
index 275f9bd8..0d6b1af0 100644
--- a/src/Cedar/WaterMark.h
+++ b/src/Cedar/WaterMark.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// WaterMark.h
diff --git a/src/Cedar/WebUI.c b/src/Cedar/WebUI.c
index c36a085e..ce169661 100644
--- a/src/Cedar/WebUI.c
+++ b/src/Cedar/WebUI.c
@@ -14,7 +14,6 @@
// Author: Tetsuo Sugiyama
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// WebUI.c
diff --git a/src/Cedar/WebUI.h b/src/Cedar/WebUI.h
index 2872a330..34f454df 100644
--- a/src/Cedar/WebUI.h
+++ b/src/Cedar/WebUI.h
@@ -14,7 +14,6 @@
// Author: Tetsuo Sugiyama
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// WebUI.h
diff --git a/src/Cedar/Win32Com.cpp b/src/Cedar/Win32Com.cpp
index 0bd99b00..46c8bb4a 100644
--- a/src/Cedar/Win32Com.cpp
+++ b/src/Cedar/Win32Com.cpp
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Win32Com.c
diff --git a/src/Cedar/Win32Com.h b/src/Cedar/Win32Com.h
index c14ca535..7cb0f430 100644
--- a/src/Cedar/Win32Com.h
+++ b/src/Cedar/Win32Com.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Win32Com.h
diff --git a/src/Cedar/WinJumpList.cpp b/src/Cedar/WinJumpList.cpp
index dedf4b35..342f10e2 100644
--- a/src/Cedar/WinJumpList.cpp
+++ b/src/Cedar/WinJumpList.cpp
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// WinJumpList.cpp
diff --git a/src/Cedar/WinUi.c b/src/Cedar/WinUi.c
index 81463be4..593a3a6b 100644
--- a/src/Cedar/WinUi.c
+++ b/src/Cedar/WinUi.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// WinUi.c
@@ -3671,6 +3677,8 @@ void AboutDlgInit(HWND hWnd, WINUI_ABOUT *a)
//DlgFont(hWnd, S_INFO4, 8, false);
SetShow(hWnd, B_UPDATE_CONFIG, (a->Update != NULL));
+
+ Show(hWnd, B_AUTHORS);
}
// Version information procedure
@@ -3721,6 +3729,9 @@ UINT AboutDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param
case B_UPDATE_CONFIG:
ConfigUpdateUi(a->Update, hWnd);
break;
+ case B_AUTHORS:
+ ShowTextFile(hWnd, "|authors.txt", _UU("DLG_ABOUT_AUTHORS"), ICO_ZURUHAM);
+ break;
case B_LANGUAGE:
// Language settings
if (true)
diff --git a/src/Cedar/WinUi.h b/src/Cedar/WinUi.h
index 8db66d9f..a9161253 100644
--- a/src/Cedar/WinUi.h
+++ b/src/Cedar/WinUi.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// WinUi.h
diff --git a/src/Cedar/Wpc.c b/src/Cedar/Wpc.c
index de04979b..392b75ee 100644
--- a/src/Cedar/Wpc.c
+++ b/src/Cedar/Wpc.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Wpc.c
diff --git a/src/Cedar/Wpc.h b/src/Cedar/Wpc.h
index 7f9428a3..2836fc59 100644
--- a/src/Cedar/Wpc.h
+++ b/src/Cedar/Wpc.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Wpc.h
diff --git a/src/CurrentBuild.txt b/src/CurrentBuild.txt
index 01c586ed..2103431d 100644
--- a/src/CurrentBuild.txt
+++ b/src/CurrentBuild.txt
@@ -1,4 +1,4 @@
-BUILD_NUMBER 9423
-VERSION 405
+BUILD_NUMBER 9430
+VERSION 406
BUILD_NAME beta
-BUILD_DATE 20140218_190944
+BUILD_DATE 20140320_040806
diff --git a/src/GlobalConst.h b/src/GlobalConst.h
index bb0a9cd9..563e805f 100644
--- a/src/GlobalConst.h
+++ b/src/GlobalConst.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
#pragma warning(disable : 4819)
diff --git a/src/Mayaqua/Cfg.c b/src/Mayaqua/Cfg.c
index 3a7766dd..f00d2b68 100644
--- a/src/Mayaqua/Cfg.c
+++ b/src/Mayaqua/Cfg.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Cfg.c
diff --git a/src/Mayaqua/Cfg.h b/src/Mayaqua/Cfg.h
index 005f2011..8bb03bd3 100644
--- a/src/Mayaqua/Cfg.h
+++ b/src/Mayaqua/Cfg.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Cfg.h
diff --git a/src/Mayaqua/Encrypt.c b/src/Mayaqua/Encrypt.c
index d2b985d8..2f1b0016 100644
--- a/src/Mayaqua/Encrypt.c
+++ b/src/Mayaqua/Encrypt.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Encrypt.c
@@ -1806,7 +1812,6 @@ X509 *NewX509(K *pub, K *priv, X *ca, NAME *name, UINT days, X_SERIAL *serial)
notBefore = SystemTime64();
notAfter = notBefore + (UINT64)days * (UINT64)3600 * (UINT64)24 * (UINT64)1000;
-
// Creating a X509
x509 = X509_new();
if (x509 == NULL)
@@ -1814,6 +1819,9 @@ X509 *NewX509(K *pub, K *priv, X *ca, NAME *name, UINT days, X_SERIAL *serial)
return NULL;
}
+ // Make it a v3 certificate
+ X509_set_version(x509, 2L);
+
// Set the Expiration
t1 = X509_get_notBefore(x509);
t2 = X509_get_notAfter(x509);
@@ -1873,7 +1881,8 @@ X509 *NewX509(K *pub, K *priv, X *ca, NAME *name, UINT days, X_SERIAL *serial)
X509_set_pubkey(x509, pub->pkey);
// Signature
- X509_sign(x509, priv->pkey, EVP_sha1());
+ // 2014.3.19 set the initial digest algorithm to SHA-256
+ X509_sign(x509, priv->pkey, EVP_sha256());
}
Unlock(openssl_lock);
@@ -1915,6 +1924,9 @@ X509 *NewRootX509(K *pub, K *priv, NAME *name, UINT days, X_SERIAL *serial)
return NULL;
}
+ // Make it a v3 certificate
+ X509_set_version(x509, 2L);
+
// Set the Expiration
t1 = X509_get_notBefore(x509);
t2 = X509_get_notAfter(x509);
@@ -1975,7 +1987,8 @@ X509 *NewRootX509(K *pub, K *priv, NAME *name, UINT days, X_SERIAL *serial)
X509_set_pubkey(x509, pub->pkey);
// Signature
- X509_sign(x509, priv->pkey, EVP_sha1());
+ // 2014.3.19 set the initial digest algorithm to SHA-256
+ X509_sign(x509, priv->pkey, EVP_sha256());
}
Unlock(openssl_lock);
diff --git a/src/Mayaqua/Encrypt.h b/src/Mayaqua/Encrypt.h
index 5a77c7db..a73c40e4 100644
--- a/src/Mayaqua/Encrypt.h
+++ b/src/Mayaqua/Encrypt.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Encrypt.h
diff --git a/src/Mayaqua/FileIO.c b/src/Mayaqua/FileIO.c
index d3609134..82b4b772 100644
--- a/src/Mayaqua/FileIO.c
+++ b/src/Mayaqua/FileIO.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// FileIO.c
diff --git a/src/Mayaqua/FileIO.h b/src/Mayaqua/FileIO.h
index 52ddf28a..71b2ff30 100644
--- a/src/Mayaqua/FileIO.h
+++ b/src/Mayaqua/FileIO.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// FileIO.h
diff --git a/src/Mayaqua/Internat.c b/src/Mayaqua/Internat.c
index c10a6a23..d3a9c60f 100644
--- a/src/Mayaqua/Internat.c
+++ b/src/Mayaqua/Internat.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Internat.c
diff --git a/src/Mayaqua/Internat.h b/src/Mayaqua/Internat.h
index 8001ab1f..00bc6cc0 100644
--- a/src/Mayaqua/Internat.h
+++ b/src/Mayaqua/Internat.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Internat.h
diff --git a/src/Mayaqua/Kernel.c b/src/Mayaqua/Kernel.c
index a058d29a..b18aa2d1 100644
--- a/src/Mayaqua/Kernel.c
+++ b/src/Mayaqua/Kernel.c
@@ -12,9 +12,10 @@
// http://www.softether.org/
//
// Author: Daiyuu Nobori
+// Contributors:
+// - nattoheaven (https://github.com/nattoheaven)
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +86,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Kernel.c
diff --git a/src/Mayaqua/Kernel.h b/src/Mayaqua/Kernel.h
index 29b9de05..cac78560 100644
--- a/src/Mayaqua/Kernel.h
+++ b/src/Mayaqua/Kernel.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
#ifndef KERNEL_H
diff --git a/src/Mayaqua/MayaType.h b/src/Mayaqua/MayaType.h
index cf2ea562..bf4af8bc 100644
--- a/src/Mayaqua/MayaType.h
+++ b/src/Mayaqua/MayaType.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// MayaType.h
@@ -548,6 +554,8 @@ typedef struct ICMPV6_HEADER_INFO ICMPV6_HEADER_INFO;
typedef struct DHCPV4_DATA DHCPV4_DATA;
typedef struct DHCP_OPTION DHCP_OPTION;
typedef struct DHCP_OPTION_LIST DHCP_OPTION_LIST;
+typedef struct DHCP_CLASSLESS_ROUTE DHCP_CLASSLESS_ROUTE;
+typedef struct DHCP_CLASSLESS_ROUTE_TABLE DHCP_CLASSLESS_ROUTE_TABLE;
typedef struct HTTPLOG HTTPLOG;
typedef struct DHCP_MODIFY_OPTION DHCP_MODIFY_OPTION;
typedef struct NBTDG_HEADER NBTDG_HEADER;
diff --git a/src/Mayaqua/Mayaqua.c b/src/Mayaqua/Mayaqua.c
index 64cb8c8f..c7d78b72 100644
--- a/src/Mayaqua/Mayaqua.c
+++ b/src/Mayaqua/Mayaqua.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Mayaqua.c
diff --git a/src/Mayaqua/Mayaqua.h b/src/Mayaqua/Mayaqua.h
index f8afede8..1965c76f 100644
--- a/src/Mayaqua/Mayaqua.h
+++ b/src/Mayaqua/Mayaqua.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Mayaqua.h
diff --git a/src/Mayaqua/Memory.c b/src/Mayaqua/Memory.c
index da2598c9..4c953d57 100644
--- a/src/Mayaqua/Memory.c
+++ b/src/Mayaqua/Memory.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Memory.c
diff --git a/src/Mayaqua/Memory.h b/src/Mayaqua/Memory.h
index 46d97700..ee0dbf59 100644
--- a/src/Mayaqua/Memory.h
+++ b/src/Mayaqua/Memory.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Memory.h
diff --git a/src/Mayaqua/Microsoft.c b/src/Mayaqua/Microsoft.c
index 7b249267..21c91a30 100644
--- a/src/Mayaqua/Microsoft.c
+++ b/src/Mayaqua/Microsoft.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Microsoft.c
diff --git a/src/Mayaqua/Microsoft.h b/src/Mayaqua/Microsoft.h
index b4798c18..774bd6dd 100644
--- a/src/Mayaqua/Microsoft.h
+++ b/src/Mayaqua/Microsoft.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Microsoft.h
diff --git a/src/Mayaqua/Network.c b/src/Mayaqua/Network.c
index 2cbb9edb..820cfb7f 100644
--- a/src/Mayaqua/Network.c
+++ b/src/Mayaqua/Network.c
@@ -12,9 +12,10 @@
// http://www.softether.org/
//
// Author: Daiyuu Nobori
+// Contributors:
+// - nattoheaven (https://github.com/nattoheaven)
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +86,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Network.c
@@ -14379,7 +14387,7 @@ void ConnectThreadForTcp(THREAD *thread, void *param)
IPToStr(hostname, sizeof(hostname), &p->Ip);
sock = ConnectEx3(hostname, p->Port, p->Timeout, p->CancelFlag, NULL, NULL, false, false, true);
- if (sock != NULL && p->Tcp_SslNoTls)
+ if (sock != NULL && p->Tcp_TryStartSsl)
{
bool ssl_ret = false;
// Attempt the SSL negotiation to take this opportunity
@@ -14756,14 +14764,14 @@ SOCK *ConnectEx3(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha
p2_spent_time = (UINT)(p2.FinishedTick - start_tick);
// Decide the grace time for results of TCP until settled.
- // The grace time is three times the duration of the R-UDP, and at least 250 milliseconds from the start,
- // and up to 1500 milliseconds after the R-UDP results settled
- p1_wait_time = p2_spent_time * 3;
- p1_wait_time = MAX(p1_wait_time, 250);
+ // The grace time is four times the duration of the R-UDP, and at least 400 milliseconds from the start,
+ // and up to 2500 milliseconds after the R-UDP results settled
+ p1_wait_time = p2_spent_time * 4;
+ p1_wait_time = MAX(p1_wait_time, 400);
//Debug("p2_spent_time = %u, p1_wait_time = %u\n", p2_spent_time, p1_wait_time);
tcp_giveup_tick = start_tick + (UINT64)p1_wait_time;
- tcp_giveup_tick = MIN(tcp_giveup_tick, (p2.FinishedTick + 1500ULL));
+ tcp_giveup_tick = MIN(tcp_giveup_tick, (p2.FinishedTick + 2500ULL));
if (now >= tcp_giveup_tick)
{
diff --git a/src/Mayaqua/Network.h b/src/Mayaqua/Network.h
index 2d4a633d..f062fb98 100644
--- a/src/Mayaqua/Network.h
+++ b/src/Mayaqua/Network.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Network.h
diff --git a/src/Mayaqua/OS.c b/src/Mayaqua/OS.c
index 17265ae4..3cbb1e08 100644
--- a/src/Mayaqua/OS.c
+++ b/src/Mayaqua/OS.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// OS.c
diff --git a/src/Mayaqua/OS.h b/src/Mayaqua/OS.h
index befd542f..13322214 100644
--- a/src/Mayaqua/OS.h
+++ b/src/Mayaqua/OS.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// OS.h
diff --git a/src/Mayaqua/Object.c b/src/Mayaqua/Object.c
index e90fecab..2fc3a34a 100644
--- a/src/Mayaqua/Object.c
+++ b/src/Mayaqua/Object.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Object.c
diff --git a/src/Mayaqua/Object.h b/src/Mayaqua/Object.h
index 6d870cd7..c5aec422 100644
--- a/src/Mayaqua/Object.h
+++ b/src/Mayaqua/Object.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Object.h
diff --git a/src/Mayaqua/Pack.c b/src/Mayaqua/Pack.c
index f5099791..65a65237 100644
--- a/src/Mayaqua/Pack.c
+++ b/src/Mayaqua/Pack.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Pack.c
diff --git a/src/Mayaqua/Pack.h b/src/Mayaqua/Pack.h
index 40ee08e0..8078eb1d 100644
--- a/src/Mayaqua/Pack.h
+++ b/src/Mayaqua/Pack.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Pack.h
diff --git a/src/Mayaqua/Secure.c b/src/Mayaqua/Secure.c
index 0dbb617e..b2507e3e 100644
--- a/src/Mayaqua/Secure.c
+++ b/src/Mayaqua/Secure.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Secure.c
diff --git a/src/Mayaqua/Secure.h b/src/Mayaqua/Secure.h
index 743c1eb1..874986d3 100644
--- a/src/Mayaqua/Secure.h
+++ b/src/Mayaqua/Secure.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Secure.h
diff --git a/src/Mayaqua/Str.c b/src/Mayaqua/Str.c
index d71b7692..9c94de6b 100644
--- a/src/Mayaqua/Str.c
+++ b/src/Mayaqua/Str.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Str.c
diff --git a/src/Mayaqua/Str.h b/src/Mayaqua/Str.h
index 6e6377d3..19df5bf7 100644
--- a/src/Mayaqua/Str.h
+++ b/src/Mayaqua/Str.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Str.h
diff --git a/src/Mayaqua/Table.c b/src/Mayaqua/Table.c
index 4952894e..0edd19f5 100644
--- a/src/Mayaqua/Table.c
+++ b/src/Mayaqua/Table.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Table.c
diff --git a/src/Mayaqua/Table.h b/src/Mayaqua/Table.h
index 2e77a0f1..11ace0f9 100644
--- a/src/Mayaqua/Table.h
+++ b/src/Mayaqua/Table.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Table.h
diff --git a/src/Mayaqua/TcpIp.c b/src/Mayaqua/TcpIp.c
index 0ec28cea..8bb6c595 100644
--- a/src/Mayaqua/TcpIp.c
+++ b/src/Mayaqua/TcpIp.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// TcpIp.c
@@ -3350,6 +3356,19 @@ LIST *BuildDhcpOption(DHCP_OPTION_LIST *opt)
FreeBuf(dns_buf);
+ if (opt->ClasslessRoute.NumExistingRoutes >= 1)
+ {
+ BUF *b = DhcpBuildClasslessRouteData(&opt->ClasslessRoute);
+
+ if (b != NULL)
+ {
+ Add(o, NewDhcpOption(DHCP_ID_CLASSLESS_ROUTE, b->Buf, b->Size));
+ Add(o, NewDhcpOption(DHCP_ID_MS_CLASSLESS_ROUTE, b->Buf, b->Size));
+
+ FreeBuf(b);
+ }
+ }
+
return o;
}
@@ -3486,6 +3505,20 @@ DHCP_OPTION_LIST *ParseDhcpOptionList(void *data, UINT size)
}
}
+ // Classless static routing table entries
+ // RFC 3442
+ a = GetDhcpOption(o, DHCP_ID_CLASSLESS_ROUTE);
+ if (a != NULL)
+ {
+ DhcpParseClasslessRouteData(&ret->ClasslessRoute, a->Data, a->Size);
+ }
+ // Microsoft Extension
+ a = GetDhcpOption(o, DHCP_ID_MS_CLASSLESS_ROUTE);
+ if (a != NULL)
+ {
+ DhcpParseClasslessRouteData(&ret->ClasslessRoute, a->Data, a->Size);
+ }
+
break;
}
@@ -3495,6 +3528,343 @@ DHCP_OPTION_LIST *ParseDhcpOptionList(void *data, UINT size)
return ret;
}
+// Normalize the classless routing table string
+bool NormalizeClasslessRouteTableStr(char *dst, UINT dst_size, char *src)
+{
+ DHCP_CLASSLESS_ROUTE_TABLE t;
+ // Validate arguments
+ if (dst == NULL || src == NULL)
+ {
+ return false;
+ }
+
+ Zero(&t, sizeof(t));
+ if (ParseClasslessRouteTableStr(&t, src))
+ {
+ BuildClasslessRouteTableStr(dst, dst_size, &t);
+
+ return true;
+ }
+
+ return false;
+}
+
+// Build the string from the classless routing table
+void BuildClasslessRouteTableStr(char *str, UINT str_size, DHCP_CLASSLESS_ROUTE_TABLE *t)
+{
+ UINT i;
+ UINT num = 0;
+ ClearStr(str, str_size);
+ // Validate arguments
+ if (str == NULL || t == NULL)
+ {
+ return;
+ }
+
+ for (i = 0;i < MAX_DHCP_CLASSLESS_ROUTE_ENTRIES;i++)
+ {
+ DHCP_CLASSLESS_ROUTE *r = &t->Entries[i];
+
+ if (r->Exists)
+ {
+ char tmp[128];
+
+ Zero(tmp, sizeof(tmp));
+ BuildClasslessRouteStr(tmp, sizeof(tmp), r);
+
+ if (IsEmptyStr(tmp) == false)
+ {
+ if (num >= 1)
+ {
+ StrCat(str, str_size, ", ");
+ }
+
+ StrCat(str, str_size, tmp);
+
+ num++;
+ }
+ }
+ }
+}
+
+// Build the string from the classless routing table entry
+void BuildClasslessRouteStr(char *str, UINT str_size, DHCP_CLASSLESS_ROUTE *r)
+{
+ ClearStr(str, str_size);
+ // Validate arguments
+ if (str == NULL || r == NULL || r->Exists == false)
+ {
+ return;
+ }
+
+ Format(str, str_size, "%r/%r/%r", &r->Network, &r->SubnetMask, &r->Gateway);
+}
+
+// Check the classless routing table string
+bool CheckClasslessRouteTableStr(char *str)
+{
+ DHCP_CLASSLESS_ROUTE_TABLE d;
+
+ // Validate arguments
+ if (str == NULL)
+ {
+ return false;
+ }
+
+ return ParseClasslessRouteTableStr(&d, str);
+}
+
+// Parse the classless routing table string
+bool ParseClasslessRouteTableStr(DHCP_CLASSLESS_ROUTE_TABLE *d, char *str)
+{
+ bool ret = true;
+ TOKEN_LIST *t;
+ // Validate arguments
+ if (d == NULL || str == NULL)
+ {
+ return false;
+ }
+
+ Zero(d, sizeof(DHCP_CLASSLESS_ROUTE_TABLE));
+
+ t = ParseTokenWithoutNullStr(str, NULL);
+
+ if (t != NULL)
+ {
+ UINT i;
+
+ for (i = 0;i < t->NumTokens;i++)
+ {
+ DHCP_CLASSLESS_ROUTE r;
+
+ Zero(&r, sizeof(r));
+ if (ParseClasslessRouteStr(&r, t->Token[i]))
+ {
+ if (d->NumExistingRoutes < MAX_DHCP_CLASSLESS_ROUTE_ENTRIES)
+ {
+ Copy(&d->Entries[d->NumExistingRoutes], &r, sizeof(DHCP_CLASSLESS_ROUTE));
+ d->NumExistingRoutes++;
+ }
+ else
+ {
+ // Overflow
+ ret = false;
+ break;
+ }
+ }
+ else
+ {
+ // Parse error
+ ret = false;
+ break;
+ }
+ }
+ }
+
+ FreeToken(t);
+
+ return ret;
+}
+
+// Parse the classless routing table entry string
+bool ParseClasslessRouteStr(DHCP_CLASSLESS_ROUTE *r, char *str)
+{
+ TOKEN_LIST *t;
+ bool ret = false;
+ char tmp[MAX_PATH];
+ // Validate arguments
+ if (r == NULL || str == NULL)
+ {
+ return false;
+ }
+
+ StrCpy(tmp, sizeof(tmp), str);
+ Trim(tmp);
+
+ t = ParseTokenWithoutNullStr(str, "/");
+ if (t == NULL)
+ {
+ return false;
+ }
+
+ if (t->NumTokens == 3)
+ {
+ char ip_and_mask[MAX_PATH];
+ char gateway[MAX_PATH];
+
+ Zero(r, sizeof(DHCP_CLASSLESS_ROUTE));
+
+ Format(ip_and_mask, sizeof(ip_and_mask), "%s/%s", t->Token[0], t->Token[1]);
+ StrCpy(gateway, sizeof(gateway), t->Token[2]);
+
+ if (ParseIpAndSubnetMask46(ip_and_mask, &r->Network, &r->SubnetMask))
+ {
+ r->SubnetMaskLen = SubnetMaskToInt4(&r->SubnetMask);
+
+ if (StrToIP(&r->Gateway, gateway))
+ {
+ if (IsIP4(&r->Gateway) && IsIP4(&r->Network) && IsIP4(&r->SubnetMask))
+ {
+ r->Exists = true;
+
+ IPAnd4(&r->Network, &r->Network, &r->SubnetMask);
+
+ ret = true;
+ }
+ }
+ }
+ }
+
+ FreeToken(t);
+
+ return ret;
+}
+
+// Build the classless static routing table data for a DHCP message
+BUF *DhcpBuildClasslessRouteData(DHCP_CLASSLESS_ROUTE_TABLE *t)
+{
+ BUF *b;
+ UINT i;
+ // Validate arguments
+ if (t == NULL || t->NumExistingRoutes == 0)
+ {
+ return NULL;
+ }
+
+ b = NewBuf();
+
+ for (i = 0;i < MAX_DHCP_CLASSLESS_ROUTE_ENTRIES;i++)
+ {
+ DHCP_CLASSLESS_ROUTE *r = &t->Entries[i];
+
+ if (r->Exists && r->SubnetMaskLen <= 32)
+ {
+ if (b->Size <= (255 - 9))
+ {
+ UCHAR c;
+ UINT data_len;
+ UINT ip32;
+ UCHAR tmp[4];
+
+ // Width of subnet mask
+ c = (UCHAR)r->SubnetMaskLen;
+ WriteBuf(b, &c, 1);
+
+ // Number of significant octets
+ data_len = (r->SubnetMaskLen + 7) / 8;
+ Zero(tmp, sizeof(tmp));
+ Copy(tmp, &r->Network, data_len);
+ WriteBuf(b, tmp, data_len);
+
+ // Gateway
+ ip32 = IPToUINT(&r->Gateway);
+ WriteBuf(b, &ip32, sizeof(UINT));
+ }
+ }
+ }
+
+ SeekBufToBegin(b);
+
+ return b;
+}
+
+// Parse a classless static routing table entries from the DHCP message
+void DhcpParseClasslessRouteData(DHCP_CLASSLESS_ROUTE_TABLE *t, void *data, UINT size)
+{
+ BUF *b;
+ // Validate arguments
+ if (t == NULL || data == NULL || size == 0)
+ {
+ return;
+ }
+
+ b = MemToBuf(data, size);
+
+ while (b->Current < b->Size)
+ {
+ UCHAR c;
+ UINT subnet_mask_len;
+ UINT data_len;
+ UCHAR tmp[4];
+ IP ip;
+ IP mask;
+ IP gateway;
+ DHCP_CLASSLESS_ROUTE r;
+ UINT ip32;
+ bool exists = false;
+ UINT i;
+
+ // Subnet mask length
+ c = ReadBufChar(b);
+ subnet_mask_len = c;
+ if (subnet_mask_len > 32)
+ {
+ // Invalid data
+ break;
+ }
+
+ data_len = (subnet_mask_len + 7) / 8;
+ if (data_len > 4)
+ {
+ // Invalid data
+ break;
+ }
+
+ Zero(tmp, sizeof(tmp));
+ if (ReadBuf(b, tmp, data_len) != data_len)
+ {
+ // Invalid data
+ break;
+ }
+
+ // IP address body
+ Zero(&ip, sizeof(IP));
+ Copy(ip.addr, tmp, data_len);
+
+ Zero(&mask, sizeof(mask));
+ IntToSubnetMask4(&mask, subnet_mask_len);
+
+ // Gateway address
+ Zero(&gateway, sizeof(gateway));
+ if (ReadBuf(b, &ip32, sizeof(UINT)) != sizeof(UINT))
+ {
+ // Invalid data
+ break;
+ }
+ UINTToIP(&gateway, ip32);
+
+ Zero(&r, sizeof(r));
+ r.Exists = true;
+ Copy(&r.Gateway, &gateway, sizeof(IP));
+ Copy(&r.Network, &ip, sizeof(IP));
+ Copy(&r.SubnetMask, &mask, sizeof(IP));
+ r.SubnetMaskLen = subnet_mask_len;
+
+ for (i = 0;i < MAX_DHCP_CLASSLESS_ROUTE_ENTRIES;i++)
+ {
+ if (Cmp(&t->Entries[i], &r, sizeof(DHCP_CLASSLESS_ROUTE)) == 0)
+ {
+ exists = true;
+ break;
+ }
+ }
+
+ if (exists == false)
+ {
+ if (t->NumExistingRoutes >= MAX_DHCP_CLASSLESS_ROUTE_ENTRIES)
+ {
+ // Overflow
+ break;
+ }
+
+ Copy(&t->Entries[t->NumExistingRoutes], &r, sizeof(DHCP_CLASSLESS_ROUTE));
+ t->NumExistingRoutes++;
+ }
+ }
+
+ FreeBuf(b);
+}
+
// Finding a DHCP option
DHCP_OPTION *GetDhcpOption(LIST *o, UINT id)
{
@@ -3518,6 +3888,42 @@ DHCP_OPTION *GetDhcpOption(LIST *o, UINT id)
return ret;
}
+// Get the best classless routing table entry from the routing table
+DHCP_CLASSLESS_ROUTE *GetBestClasslessRoute(DHCP_CLASSLESS_ROUTE_TABLE *t, IP *ip)
+{
+ DHCP_CLASSLESS_ROUTE *ret = NULL;
+ UINT i;
+ UINT max_mask = 0;
+ // Validate arguments
+ if (t == NULL || ip == NULL)
+ {
+ return NULL;
+ }
+ if (t->NumExistingRoutes == 0)
+ {
+ return NULL;
+ }
+
+ for (i = 0;i < MAX_DHCP_CLASSLESS_ROUTE_ENTRIES;i++)
+ {
+ DHCP_CLASSLESS_ROUTE *e = &t->Entries[i];
+
+ if (e->Exists)
+ {
+ if (IsInSameNetwork4(ip, &e->Network, &e->SubnetMask))
+ {
+ if (max_mask <= e->SubnetMaskLen)
+ {
+ max_mask = e->SubnetMaskLen;
+ ret = e;
+ }
+ }
+ }
+ }
+
+ return ret;
+}
+
// Release the DHCP option
void FreeDhcpOptions(LIST *o)
{
diff --git a/src/Mayaqua/TcpIp.h b/src/Mayaqua/TcpIp.h
index 7ca7ed67..eccbf883 100644
--- a/src/Mayaqua/TcpIp.h
+++ b/src/Mayaqua/TcpIp.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// TcpIp.h
@@ -602,6 +608,9 @@ struct ICMPV6_HEADER_INFO
#define DHCP_ID_CLIENT_ID 0x3d
#define DHCP_ID_VENDOR_ID 0x3c
#define DHCP_ID_REQ_PARAM_LIST 0x37
+#define DHCP_ID_CLASSLESS_ROUTE 0x79
+#define DHCP_ID_MS_CLASSLESS_ROUTE 0xF9
+
// DHCP client action
#define DHCP_DISCOVER 1
@@ -749,6 +758,26 @@ struct DHCP_OPTION
void *Data; // Data
};
+// DHCP classless static route entry
+struct DHCP_CLASSLESS_ROUTE
+{
+ bool Exists; // Existing flag
+ IP Network; // Network address
+ IP SubnetMask; // Subnet mask
+ IP Gateway; // Gateway
+ UINT SubnetMaskLen; // Subnet mask length
+};
+
+#define MAX_DHCP_CLASSLESS_ROUTE_ENTRIES 64
+#define MAX_DHCP_CLASSLESS_ROUTE_TABLE_STR_SIZE 3200
+
+// DHCP classless static route table
+struct DHCP_CLASSLESS_ROUTE_TABLE
+{
+ UINT NumExistingRoutes; // Number of existing routing table entries
+ DHCP_CLASSLESS_ROUTE Entries[MAX_DHCP_CLASSLESS_ROUTE_ENTRIES]; // Entries
+};
+
// DHCP option list
struct DHCP_OPTION_LIST
{
@@ -770,6 +799,7 @@ struct DHCP_OPTION_LIST
UINT DnsServer2; // DNS server address 2
UINT WinsServer; // WINS server address 1
UINT WinsServer2; // WINS server address 2
+ DHCP_CLASSLESS_ROUTE_TABLE ClasslessRoute; // Classless static routing table
};
// Modification option in the DHCP packet
@@ -870,6 +900,16 @@ HTTPLOG *ParseHttpAccessLog(PKT *pkt);
BUF *DhcpModify(DHCP_MODIFY_OPTION *m, void *data, UINT size);
BUF *DhcpModifyIPv4(DHCP_MODIFY_OPTION *m, void *data, UINT size);
+DHCP_CLASSLESS_ROUTE *GetBestClasslessRoute(DHCP_CLASSLESS_ROUTE_TABLE *t, IP *ip);
+void DhcpParseClasslessRouteData(DHCP_CLASSLESS_ROUTE_TABLE *t, void *data, UINT size);
+BUF *DhcpBuildClasslessRouteData(DHCP_CLASSLESS_ROUTE_TABLE *t);
+bool ParseClasslessRouteStr(DHCP_CLASSLESS_ROUTE *r, char *str);
+bool ParseClasslessRouteTableStr(DHCP_CLASSLESS_ROUTE_TABLE *d, char *str);
+bool CheckClasslessRouteTableStr(char *str);
+void BuildClasslessRouteStr(char *str, UINT str_size, DHCP_CLASSLESS_ROUTE *r);
+void BuildClasslessRouteTableStr(char *str, UINT str_size, DHCP_CLASSLESS_ROUTE_TABLE *t);
+bool NormalizeClasslessRouteTableStr(char *dst, UINT dst_size, char *src);
+
#ifdef OS_WIN32
diff --git a/src/Mayaqua/Tick64.c b/src/Mayaqua/Tick64.c
index 0654963d..a28f26ef 100644
--- a/src/Mayaqua/Tick64.c
+++ b/src/Mayaqua/Tick64.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Tick64.c
diff --git a/src/Mayaqua/Tick64.h b/src/Mayaqua/Tick64.h
index c754d684..07312c4c 100644
--- a/src/Mayaqua/Tick64.h
+++ b/src/Mayaqua/Tick64.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Tick64.h
diff --git a/src/Mayaqua/Tracking.c b/src/Mayaqua/Tracking.c
index d0ff53ae..20ba42cc 100644
--- a/src/Mayaqua/Tracking.c
+++ b/src/Mayaqua/Tracking.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Tracking.c
diff --git a/src/Mayaqua/Tracking.h b/src/Mayaqua/Tracking.h
index 498d8a1f..aa4a9557 100644
--- a/src/Mayaqua/Tracking.h
+++ b/src/Mayaqua/Tracking.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Tracking.h
diff --git a/src/Mayaqua/TunTap.h b/src/Mayaqua/TunTap.h
index 0555fcd1..b0ce4dd9 100644
--- a/src/Mayaqua/TunTap.h
+++ b/src/Mayaqua/TunTap.h
@@ -5,7 +5,6 @@
// Header file of the TUN / TAP device driver
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -76,6 +75,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
#ifndef TUNTAP_H
diff --git a/src/Mayaqua/Unix.c b/src/Mayaqua/Unix.c
index 58ceb0b9..0193a4fc 100644
--- a/src/Mayaqua/Unix.c
+++ b/src/Mayaqua/Unix.c
@@ -17,7 +17,6 @@
// - nattoheaven (https://github.com/nattoheaven)
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -88,6 +87,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Unix.c
@@ -2497,7 +2503,13 @@ void UnixStopService(char *name)
}
else
{
+ // SIGKILL
+ char tmp[256];
+
+ Format(tmp, sizeof(tmp), "killall -KILL %s", name);
+
UniPrint(_UU("UNIX_SVC_STOP_FAILED"), svc_title);
+ system(tmp);
}
}
diff --git a/src/Mayaqua/Unix.h b/src/Mayaqua/Unix.h
index 104a9f5c..272378cd 100644
--- a/src/Mayaqua/Unix.h
+++ b/src/Mayaqua/Unix.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Unix.h
@@ -105,8 +111,8 @@
#define UNIX_MAX_FD_MACOS (10000) // Maximum number of FDs (Mac OS X)
#define MAXIMUM_WAIT_OBJECTS 64 // Maximum number of select
-#define UNIX_SERVICE_STOP_TIMEOUT_1 (600 * 1000) // Timeout to stop the service
-#define UNIX_SERVICE_STOP_TIMEOUT_2 (900 * 1000) // Timeout to stop the service (parent process)
+#define UNIX_SERVICE_STOP_TIMEOUT_1 (60 * 1000) // Timeout to stop the service
+#define UNIX_SERVICE_STOP_TIMEOUT_2 (90 * 1000) // Timeout to stop the service (parent process)
// Service related
diff --git a/src/Mayaqua/Win32.c b/src/Mayaqua/Win32.c
index d1430d68..dbea236f 100644
--- a/src/Mayaqua/Win32.c
+++ b/src/Mayaqua/Win32.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Win32.c
diff --git a/src/Mayaqua/Win32.h b/src/Mayaqua/Win32.h
index e01915ed..bb298198 100644
--- a/src/Mayaqua/Win32.h
+++ b/src/Mayaqua/Win32.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Win32.h
diff --git a/src/Neo/NDIS5.c b/src/Neo/NDIS5.c
index 6bba7df9..56b091db 100644
--- a/src/Neo/NDIS5.c
+++ b/src/Neo/NDIS5.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NDIS5.c
diff --git a/src/Neo/NDIS5.h b/src/Neo/NDIS5.h
index 7fd34246..014ade3f 100644
--- a/src/Neo/NDIS5.h
+++ b/src/Neo/NDIS5.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NDIS5.h
diff --git a/src/Neo/Neo.c b/src/Neo/Neo.c
index f333503a..16827f63 100644
--- a/src/Neo/Neo.c
+++ b/src/Neo/Neo.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Neo.c
diff --git a/src/Neo/Neo.h b/src/Neo/Neo.h
index ae901144..196a5f65 100644
--- a/src/Neo/Neo.h
+++ b/src/Neo/Neo.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Neo.h
diff --git a/src/Neo/resource.h b/src/Neo/resource.h
index 18c313d3..737e72a7 100644
--- a/src/Neo/resource.h
+++ b/src/Neo/resource.h
@@ -4,7 +4,6 @@
//
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Next default values for new objects
diff --git a/src/Neo6/NDIS6.c b/src/Neo6/NDIS6.c
index 843f2968..7ab06548 100644
--- a/src/Neo6/NDIS6.c
+++ b/src/Neo6/NDIS6.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NDIS6.c
diff --git a/src/Neo6/NDIS6.h b/src/Neo6/NDIS6.h
index a531eccf..622ceb15 100644
--- a/src/Neo6/NDIS6.h
+++ b/src/Neo6/NDIS6.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// NDIS6.h
diff --git a/src/Neo6/Neo6.c b/src/Neo6/Neo6.c
index 09d186db..ccf295de 100644
--- a/src/Neo6/Neo6.c
+++ b/src/Neo6/Neo6.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Neo6.c
diff --git a/src/Neo6/Neo6.h b/src/Neo6/Neo6.h
index b6a578b2..d2c9ca7b 100644
--- a/src/Neo6/Neo6.h
+++ b/src/Neo6/Neo6.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Neo6.h
diff --git a/src/Neo6/resource.h b/src/Neo6/resource.h
index 18c313d3..737e72a7 100644
--- a/src/Neo6/resource.h
+++ b/src/Neo6/resource.h
@@ -4,7 +4,6 @@
//
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Next default values for new objects
diff --git a/src/PenCore/PenCore.rc b/src/PenCore/PenCore.rc
index 0f1e4d76..bb799ace 100644
--- a/src/PenCore/PenCore.rc
+++ b/src/PenCore/PenCore.rc
@@ -13,7 +13,7 @@
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
-// Japanese resources
+// “ú–{Œê resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_JPN)
#ifdef _WIN32
@@ -498,7 +498,7 @@ BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 412
TOPMARGIN, 7
- BOTTOMMARGIN, 300
+ BOTTOMMARGIN, 318
END
D_NM_NAT, DIALOG
@@ -1261,6 +1261,14 @@ BEGIN
TOPMARGIN, 7
BOTTOMMARGIN, 284
END
+
+ D_NM_PUSH, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 360
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 286
+ END
END
#endif // APSTUDIO_INVOKED
@@ -1505,8 +1513,9 @@ BEGIN
RTEXT "@STATIC4",S_STATIC4,14,101,54,10
EDITTEXT E_HOSTNAME,72,99,126,12,ES_AUTOHSCROLL
RTEXT "@STATIC5",S_STATIC5,14,119,54,10
- COMBOBOX C_PORT,72,115,81,48,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
- LTEXT "@STATIC6",S_STATIC66,159,119,46,11
+ COMBOBOX C_PORT,72,115,77,48,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
+ CONTROL "@R_DISABLE_NATT",R_DISABLE_NATT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,152,117,57,10
+ LTEXT "@STATIC6",S_STATIC66,172,159,46,11,NOT WS_VISIBLE
RTEXT "@STATIC7",S_STATIC7,14,137,54,10
COMBOBOX C_HUBNAME,72,133,126,72,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
GROUPBOX "@STATIC8",IDC_STATIC,7,161,206,108
@@ -1724,7 +1733,8 @@ FONT 9, "MS UI Gothic", 400, 0, 0x80
BEGIN
DEFPUSHBUTTON "@IDCANCEL",IDCANCEL,250,339,76,18
CONTROL 224,S_LOGO,"Static",SS_BITMAP,7,6,319,76
- LTEXT "@S_INFO1",S_INFO1,7,83,319,17
+ LTEXT "@S_INFO1",S_INFO1,7,83,240,17
+ PUSHBUTTON "@B_AUTHORS",B_AUTHORS,251,83,75,18
LTEXT "@S_INFO2",S_INFO2,7,101,319,39
LTEXT "@S_INFO4",S_INFO4,7,143,319,61
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,211,319,1
@@ -2742,15 +2752,15 @@ BEGIN
PUSHBUTTON "@IDCANCEL",IDCANCEL,279,356,65,17
END
-D_NM_OPTION DIALOGEX 0, 0, 419, 307
+D_NM_OPTION DIALOGEX 0, 0, 419, 325
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "@D_NM_OPTION"
FONT 9, "MS UI Gothic", 400, 0, 0x80
BEGIN
- ICON ICO_ROUTER,IDC_STATIC,7,7,20,20
+ ICON ICO_ROUTER,IDC_STATIC,7,7,18,21
LTEXT "@S_TITLE",S_TITLE,29,11,357,19
GROUPBOX "@STATIC1",IDC_STATIC,7,40,199,83
- ICON ICO_NIC_ONLINE,IDC_STATIC,14,55,20,20
+ ICON ICO_NIC_ONLINE,IDC_STATIC,14,55,18,21
RTEXT "@STATIC2",IDC_STATIC,39,60,59,12
EDITTEXT E_MAC,102,59,81,12,ES_AUTOHSCROLL
RTEXT "@STATIC3",IDC_STATIC,39,81,59,11
@@ -2768,7 +2778,11 @@ BEGIN
RTEXT "@STATIC10",IDC_STATIC,10,198,88,11
EDITTEXT E_UDP,102,196,39,12,ES_CENTER | ES_AUTOHSCROLL | ES_NUMBER
LTEXT "@STATIC11",IDC_STATIC,145,198,51,10
- CONTROL "@R_SAVE_LOG",R_SAVE_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,255,190,10
+ GROUPBOX "@S_1",S_1,7,227,199,72
+ ICON ICO_PROTOCOL,IDC_STATIC,14,239,18,21
+ LTEXT "@S_2",S_2,40,243,159,20
+ PUSHBUTTON "@B_PUSH",B_PUSH,55,269,143,19
+ CONTROL "@R_SAVE_LOG",R_SAVE_LOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,308,190,10
GROUPBOX "@STATIC12",IDC_STATIC,211,40,201,228
CONTROL "@R_USE_DHCP",R_USE_DHCP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,218,56,161,10
RTEXT "@STATIC13",IDC_STATIC,218,74,84,11
@@ -2791,8 +2805,8 @@ BEGIN
CONTROL "",E_DNS2,"SysIPAddress32",WS_TABSTOP,306,226,75,13
RTEXT "@STATIC22",IDC_STATIC,218,249,84,12
EDITTEXT E_DOMAIN,306,247,98,12,ES_AUTOHSCROLL
- DEFPUSHBUTTON "@IDOK",IDOK,274,281,64,19
- PUSHBUTTON "@IDCANCEL",IDCANCEL,348,281,64,19
+ DEFPUSHBUTTON "@IDOK",IDOK,274,299,64,19
+ PUSHBUTTON "@IDCANCEL",IDCANCEL,348,299,64,19
END
D_NM_NAT DIALOGEX 0, 0, 451, 337
@@ -4072,20 +4086,23 @@ BEGIN
LTEXT "@S_22",IDC_STATIC,7,89,401,34
LTEXT "@S_3",IDC_STATIC,7,125,401,25
GROUPBOX "@S_4",IDC_STATIC,7,153,194,123
- LTEXT "@S_STATUS3",S_STATUS3,14,170,182,11
- EDITTEXT E_HOST,17,184,155,15,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
- PUSHBUTTON "@B_HINT",B_HINT,174,181,24,17
- LTEXT "@S_STATUS4",S_STATUS4,14,205,171,11
- EDITTEXT E_IPV4,17,217,172,15,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
- LTEXT "@S_STATUS5",S_STATUS5,14,239,171,10
- EDITTEXT E_IPV6,17,251,172,15,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ LTEXT "@S_STATUS3",S_STATUS3,14,165,182,11
+ EDITTEXT E_HOST,17,178,155,15,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ PUSHBUTTON "@B_HINT",B_HINT,174,176,24,17
+ LTEXT "@S_STATUS4",S_STATUS4,14,197,171,11
+ EDITTEXT E_IPV4,17,209,172,15,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ LTEXT "@S_STATUS5",S_STATUS5,14,228,171,10
+ EDITTEXT E_IPV6,17,240,172,15,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ LTEXT "@S_STATUS8",S_STATUS8,14,258,31,11
+ EDITTEXT E_KEY,41,258,131,15,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ PUSHBUTTON "@B_HINT2",B_HINT2,174,255,24,17
GROUPBOX "@S_5",IDC_STATIC,206,153,202,123
LTEXT "@S_STATUS6",S_STATUS6,212,170,189,11
EDITTEXT E_NEWHOST,215,184,86,15,ES_AUTOHSCROLL
LTEXT "",S_SUFFIX,303,186,98,12
LTEXT "@S_STATUS7",S_STATUS7,219,201,182,34
- DEFPUSHBUTTON "@IDOK",IDOK,218,237,119,18
- PUSHBUTTON "@B_RESTORE",B_RESTORE,341,237,60,18
+ DEFPUSHBUTTON "@IDOK",IDOK,218,240,119,18
+ PUSHBUTTON "@B_RESTORE",B_RESTORE,341,240,60,18
ICON ICO_INFORMATION,IDC_STATIC,7,282,20,20
LTEXT "@S_2",S_2,30,281,378,25
PUSHBUTTON "@B_DISABLE",B_DISABLE,7,310,145,18
@@ -4234,8 +4251,8 @@ CAPTION "@D_SW_EULA"
FONT 9, "MS UI Gothic", 400, 0, 0x80
BEGIN
LTEXT "@S_1",IDC_STATIC,7,2,309,12,WS_TABSTOP
- EDITTEXT E_TEXT,7,19,309,139,ES_MULTILINE | ES_READONLY | WS_VSCROLL
- CONTROL "@B_AGREE",B_AGREE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,168,297,12
+ EDITTEXT E_TEXT,7,19,309,126,ES_MULTILINE | ES_READONLY | WS_VSCROLL
+ CONTROL "@B_AGREE",B_AGREE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,12,150,297,12
END
D_SW_WARNING DIALOGEX 0, 0, 323, 181
@@ -4244,7 +4261,7 @@ CAPTION "@D_SW_WARNING"
FONT 9, "MS UI Gothic", 400, 0, 0x80
BEGIN
LTEXT "@S_1",IDC_STATIC,22,2,294,19,WS_TABSTOP
- EDITTEXT E_TEXT,7,27,309,141,ES_MULTILINE | ES_READONLY | WS_VSCROLL
+ EDITTEXT E_TEXT,7,27,309,135,ES_MULTILINE | ES_READONLY | WS_VSCROLL
ICON ICO_INFORMATION,IDC_STATIC,0,0,20,20
END
@@ -4594,6 +4611,24 @@ BEGIN
ICON ICO_RESEARCH,IDC_STATIC,7,185,20,20
END
+D_NM_PUSH DIALOGEX 0, 0, 367, 293
+STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "@D_NM_PUSH"
+FONT 9, "MS UI Gothic", 400, 0, 0x80
+BEGIN
+ ICON ICO_PROTOCOL,IDC_STATIC,7,7,18,21
+ LTEXT "@S1",S1,35,11,325,28,WS_TABSTOP
+ LTEXT "@S2",S2,35,39,325,34
+ LTEXT "@S3",S3,35,75,325,34
+ LTEXT "@S4",S4,35,111,325,34
+ GROUPBOX "@S5",S5,23,145,337,111
+ EDITTEXT E_TEXT,35,203,315,42,ES_MULTILINE | WS_VSCROLL
+ LTEXT "@S6",IDC_STATIC,35,159,315,42
+ DEFPUSHBUTTON "@IDOK",IDOK,222,267,64,19
+ PUSHBUTTON "@IDCANCEL",IDCANCEL,296,267,64,19
+ LTEXT "@S7",IDC_STATIC,35,272,185,13
+END
+
/////////////////////////////////////////////////////////////////////////////
//
@@ -4807,12 +4842,12 @@ END
//
BIN_WINPCAP BIN "Dummy.bin"
-#endif // Japanese resources
+#endif // “ú–{Œê resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
-// English resources
+// ‰pŒê (•Ä‘) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
@@ -4873,7 +4908,7 @@ BMP_ZURUKKO BITMAP "Zurukko.bmp"
BMP_VPNGATEEN BITMAP "VPNGateEN.bmp"
BMP_VPNGATEJA BITMAP "VPNGateJA.bmp"
BMP_UNIVTSUKUBA BITMAP "UnivTsukuba.bmp"
-#endif // English resources
+#endif // ‰pŒê (•Ä‘) resources
/////////////////////////////////////////////////////////////////////////////
diff --git a/src/PenCore/resource.h b/src/PenCore/resource.h
index 040eff0d..df43db6c 100644
--- a/src/PenCore/resource.h
+++ b/src/PenCore/resource.h
@@ -13,6 +13,7 @@
#define B_SIMULATION 3
#define B_RESTORE 3
#define B_MESSAGE 3
+#define B_PUSH 3
#define B_HUB_STATUS 4
#define IDCANCEL2 4
#define B_SECURE_MANAGER 4
@@ -34,6 +35,7 @@
#define B_LEGAL3 8
#define B_LANGUAGE 8
#define B_STOP 9
+#define B_AUTHORS 9
#define B_EDIT 10
#define S_STATUSBAR 101
#define ICO_TEST 103
@@ -245,6 +247,7 @@
#define S_SUFFIX 1020
#define E_PASSPHRASE 1021
#define S_STATUS7 1021
+#define S_STATUS8 1022
#define E_USERNAME 1023
#define C_TYPE 1024
#define E_HUBNAME 1024
@@ -363,6 +366,7 @@
#define B_IMPORT2 1089
#define B_REGENERATE 1089
#define B_FACTORY 1089
+#define R_RETRY2 1089
#define R_REMOTE_ONLY 1090
#define IDC_STATIC4 1090
#define B_DELETE 1091
@@ -966,10 +970,12 @@
#define E_IPV4 1467
#define E_NEWHOST 1468
#define B_NSLOOKUP 1469
+#define E_KEY 1469
#define B_HINT 1470
#define S_DDNS 1470
#define R_OVER_ICMP 1471
#define S_AZURE 1471
+#define B_HINT2 1471
#define R_OVER_ICMP2 1472
#define R_OVER_DNS 1472
#define B_WIZ_NEXT 1472
@@ -1018,6 +1024,7 @@
#define B_VGS 1513
#define S_VGS3 1514
#define S_TSUKUBA 1515
+#define R_DISABLE_NATT 1516
#define B_ONLINE 1655
#define D_NM_CONNECT 1998
#define D_NM_MAIN 1999
@@ -1126,6 +1133,8 @@
#define D_VGS_CONFIG 2094
#define D_VGS_OPTION 2095
#define D_VGS_WARNING 2096
+#define D_DEFAULT3 2097
+#define D_NM_PUSH 2097
#define ID_Menu40011 40011
#define CMD_CONNECT 40020
#define CMD_STATUS 40021
@@ -1198,7 +1207,7 @@
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 242
#define _APS_NEXT_COMMAND_VALUE 40111
-#define _APS_NEXT_CONTROL_VALUE 1516
+#define _APS_NEXT_CONTROL_VALUE 1517
#define _APS_NEXT_SYMED_VALUE 102
#endif
#endif
diff --git a/src/README.TXT b/src/README.TXT
index 56dd08b0..214b1345 100644
--- a/src/README.TXT
+++ b/src/README.TXT
@@ -50,6 +50,9 @@ SOFTETHER VPN ADVANTAGES
- AES 256-bit and RSA 4096-bit encryptions.
- Sufficient security features such as logging and firewall inner
VPN tunnel.
+- User authentication with RADIUS and NT domain controllers.
+- User authentication with X.509 client certificate.
+- Packet logging.
- 1Gbps-class high-speed throughput performance with low memory and
CPU usage.
- Windows, Linux, Mac, Android, iPhone, iPad and Windows Phone are
@@ -59,6 +62,9 @@ SOFTETHER VPN ADVANTAGES
- The VPN server runs on Windows, Linux, FreeBSD, Solaris and Mac OS X.
- Configure All settings on GUI.
- Multi-languages (English, Japanese and Simplified-Chinese).
+- No memory leaks. High quality stable codes, intended for long-term runs.
+ We always verify that there are no memory or resource leaks before
+ releasing the build.
- More details at http://www.softether.org/.
diff --git a/src/SeLow/SeLow.c b/src/SeLow/SeLow.c
index 010a42ad..39f16547 100644
--- a/src/SeLow/SeLow.c
+++ b/src/SeLow/SeLow.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SeLow.c
diff --git a/src/SeLow/SeLow.h b/src/SeLow/SeLow.h
index cbecfde0..90636c55 100644
--- a/src/SeLow/SeLow.h
+++ b/src/SeLow/SeLow.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SeLow.h
diff --git a/src/SeLow/SeLowCommon.h b/src/SeLow/SeLowCommon.h
index 7f9f12ba..f6606d1c 100644
--- a/src/SeLow/SeLowCommon.h
+++ b/src/SeLow/SeLowCommon.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// SeLowCommon.h
diff --git a/src/SeLow/resource.h b/src/SeLow/resource.h
index 18c313d3..737e72a7 100644
--- a/src/SeLow/resource.h
+++ b/src/SeLow/resource.h
@@ -4,7 +4,6 @@
//
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Next default values for new objects
diff --git a/src/See/resource.h b/src/See/resource.h
index e72cfc22..e39f6c6a 100644
--- a/src/See/resource.h
+++ b/src/See/resource.h
@@ -4,7 +4,6 @@
//
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Next default values for new objects
diff --git a/src/See/resource1.h b/src/See/resource1.h
index d5b1b28c..fc123fda 100644
--- a/src/See/resource1.h
+++ b/src/See/resource1.h
@@ -4,7 +4,6 @@
//
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Next default values for new objects
diff --git a/src/SeeDll/resource.h b/src/SeeDll/resource.h
index 4afb83ba..9a73f28d 100644
--- a/src/SeeDll/resource.h
+++ b/src/SeeDll/resource.h
@@ -4,7 +4,6 @@
//
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Next default values for new objects
diff --git a/src/THIRD_PARTY.TXT b/src/THIRD_PARTY.TXT
index 5f24a507..50e42ade 100644
--- a/src/THIRD_PARTY.TXT
+++ b/src/THIRD_PARTY.TXT
@@ -775,6 +775,10 @@ The list of contributors for SoftEther VPN Project:
- ELIN
https://github.com/el1n
+ - YF
+ https://github.com/yfdyh000
+
+
SoftEther Corporation, the distributor of PacketiX VPN, appreciates all
contributors for SoftEther VPN Project very much.
diff --git a/src/VGate/VGate.c b/src/VGate/VGate.c
index 9b7a18fe..b385ab66 100644
--- a/src/VGate/VGate.c
+++ b/src/VGate/VGate.c
@@ -9,7 +9,6 @@
// Main source
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -80,6 +79,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
#include <GlobalConst.h>
diff --git a/src/VGate/VGate.h b/src/VGate/VGate.h
index c7721bf1..b12586ac 100644
--- a/src/VGate/VGate.h
+++ b/src/VGate/VGate.h
@@ -9,7 +9,6 @@
// Main header
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -80,6 +79,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
#ifndef VGATE_H
diff --git a/src/VGate/resource.h b/src/VGate/resource.h
index d6f15e3a..5ca0dc9e 100644
--- a/src/VGate/resource.h
+++ b/src/VGate/resource.h
@@ -4,7 +4,6 @@
//
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Next default values for new objects
diff --git a/src/Wfp/Wfp.c b/src/Wfp/Wfp.c
index 97511ac2..f9adf037 100644
--- a/src/Wfp/Wfp.c
+++ b/src/Wfp/Wfp.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Wfp.c
diff --git a/src/Wfp/Wfp.h b/src/Wfp/Wfp.h
index c5fc5b24..e6d5535a 100644
--- a/src/Wfp/Wfp.h
+++ b/src/Wfp/Wfp.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Wfp.h
diff --git a/src/Wfp/WfpInner.h b/src/Wfp/WfpInner.h
index 26e3e678..8a24d93b 100644
--- a/src/Wfp/WfpInner.h
+++ b/src/Wfp/WfpInner.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// WfpInner.h
diff --git a/src/Wfp/resource1.h b/src/Wfp/resource1.h
index b8acf353..31ec672a 100644
--- a/src/Wfp/resource1.h
+++ b/src/Wfp/resource1.h
@@ -4,7 +4,6 @@
//
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -75,6 +74,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Next default values for new objects
diff --git a/src/bin/hamcore/SeLow_x64.sys b/src/bin/hamcore/SeLow_x64.sys
index 410faf46..5064dc44 100644
--- a/src/bin/hamcore/SeLow_x64.sys
+++ b/src/bin/hamcore/SeLow_x64.sys
Binary files differ
diff --git a/src/bin/hamcore/SeLow_x86.sys b/src/bin/hamcore/SeLow_x86.sys
index fa868d79..3685c1be 100644
--- a/src/bin/hamcore/SeLow_x86.sys
+++ b/src/bin/hamcore/SeLow_x86.sys
Binary files differ
diff --git a/src/bin/hamcore/authors.txt b/src/bin/hamcore/authors.txt
new file mode 100644
index 00000000..3978bd21
--- /dev/null
+++ b/src/bin/hamcore/authors.txt
@@ -0,0 +1,77 @@
+SoftEther VPN is developed by SoftEther VPN Project at University of Tsukuba.
+http://www.softether.org/
+
+AUTHORS OF SOFTETHER VPN
+------------------------
+
+CORE DEVELOPERS:
+
+ - Daiyuu Nobori
+ Computer Science, Graduate School of University of Tsukuba
+ SoftEther Corporation
+ E-mail: daiyuu-nobori [at] softether.org
+
+ - Tetsuo Sugiyama, Ph.D.
+ SoftEther Corporation
+
+ - Junpei Kuwana, Ph.D.
+ Risk Engineering, Graduate School of University of Tsukuba
+ SoftEther Corporation
+
+ - Takao Ito
+ Computer Science, Graduate School of University of Tsukuba
+ SoftEther Corporation
+
+ - Christopher Smith
+ College of Information Science, University of Tsukuba
+
+ - Mei Sharie Ann Yamaguchi
+ Life and Environmental Sciences, Graduate School of University of Tsukuba
+
+
+WEB-SITE DESIGNER:
+
+ - Genya Hatakeyama
+ College of Information Science, University of Tsukuba
+
+
+CONTRIBUTORS on GitHub:
+
+ - Melvyn
+ https://github.com/yaurthek
+
+ - nattoheaven
+ https://github.com/nattoheaven
+
+ - ELIN
+ https://github.com/el1n
+
+ - Dmitry Orlov
+ https://github.com/mosquito
+
+ - Renaud Allard
+ https://github.com/renaudallard
+
+ - Hideki Saito
+ https://github.com/hsaito
+
+ - Dexter Ang
+ https://github.com/thepoch
+
+ - YF
+ https://github.com/yfdyh000
+
+
+JOIN THE SOFTETHER VPN DEVELOPMENT
+----------------------------------
+
+Want to become a contributor? Please send us a patch.
+
+See also: SoftEther VPN Patch Acceptance Policy
+http://www.softether.org/5-download/src/9.patch
+
+
+Developed by SoftEther VPN Project at University of Tsukuba in Japan.
+Department of Computer Science has dozens of overly-enthusiastic geeks.
+Join us: http://www.tsukuba.ac.jp/english/admission/
+
diff --git a/src/bin/hamcore/inf/selow_x64/SeLow_x64.inf b/src/bin/hamcore/inf/selow_x64/SeLow_x64.inf
index 48906ed3..b5ca4b06 100644
--- a/src/bin/hamcore/inf/selow_x64/SeLow_x64.inf
+++ b/src/bin/hamcore/inf/selow_x64/SeLow_x64.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = NetTrans
ClassGUID = {4D36E975-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_selow.cat
@@ -66,5 +66,5 @@ SeLow_Description = "A lightweight helper kernel-mode module for PacketiX VPN
-; Auto Generated 20140217_015704.384
+; Auto Generated 20140320_015530.577
diff --git a/src/bin/hamcore/inf/selow_x64/inf.cat b/src/bin/hamcore/inf/selow_x64/inf.cat
index 6d7f2c57..42cd9600 100644
--- a/src/bin/hamcore/inf/selow_x64/inf.cat
+++ b/src/bin/hamcore/inf/selow_x64/inf.cat
Binary files differ
diff --git a/src/bin/hamcore/inf/selow_x86/SeLow_x86.inf b/src/bin/hamcore/inf/selow_x86/SeLow_x86.inf
index 69828525..b4947ecb 100644
--- a/src/bin/hamcore/inf/selow_x86/SeLow_x86.inf
+++ b/src/bin/hamcore/inf/selow_x86/SeLow_x86.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = NetTrans
ClassGUID = {4D36E975-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_selow.cat
@@ -66,5 +66,5 @@ SeLow_Description = "A lightweight helper kernel-mode module for PacketiX VPN
-; Auto Generated 20140217_015533.306
+; Auto Generated 20140320_015403.470
diff --git a/src/bin/hamcore/inf/selow_x86/inf.cat b/src/bin/hamcore/inf/selow_x86/inf.cat
index 21b18159..4c2ad687 100644
--- a/src/bin/hamcore/inf/selow_x86/inf.cat
+++ b/src/bin/hamcore/inf/selow_x86/inf.cat
Binary files differ
diff --git a/src/bin/hamcore/inf/x64/INF_VPN.inf b/src/bin/hamcore/inf/x64/INF_VPN.inf
index aa229e43..931be282 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN10.inf b/src/bin/hamcore/inf/x64/INF_VPN10.inf
index 97ebe9f6..1facb222 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN10.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN10.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN10.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN100.inf b/src/bin/hamcore/inf/x64/INF_VPN100.inf
index 1c8eb236..00239a6a 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN100.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN100.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN100.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN101.inf b/src/bin/hamcore/inf/x64/INF_VPN101.inf
index f6fef676..e1d86882 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN101.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN101.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN101.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN102.inf b/src/bin/hamcore/inf/x64/INF_VPN102.inf
index caa7c12e..c0117a61 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN102.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN102.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN102.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN103.inf b/src/bin/hamcore/inf/x64/INF_VPN103.inf
index 6e5de37a..906a9c5d 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN103.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN103.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN103.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN104.inf b/src/bin/hamcore/inf/x64/INF_VPN104.inf
index fe338f74..d121a97d 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN104.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN104.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN104.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN105.inf b/src/bin/hamcore/inf/x64/INF_VPN105.inf
index c715f9de..b56d75f2 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN105.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN105.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN105.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN106.inf b/src/bin/hamcore/inf/x64/INF_VPN106.inf
index 15c28a16..80ebb832 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN106.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN106.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN106.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN107.inf b/src/bin/hamcore/inf/x64/INF_VPN107.inf
index 5916f1cd..612c30c9 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN107.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN107.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN107.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN108.inf b/src/bin/hamcore/inf/x64/INF_VPN108.inf
index 5a91f82f..35d5b4ce 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN108.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN108.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN108.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN109.inf b/src/bin/hamcore/inf/x64/INF_VPN109.inf
index 17a2b501..e7fe4454 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN109.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN109.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN109.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN11.inf b/src/bin/hamcore/inf/x64/INF_VPN11.inf
index 35d0954e..067b660d 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN11.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN11.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN11.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN110.inf b/src/bin/hamcore/inf/x64/INF_VPN110.inf
index ba9aa322..dec50ecc 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN110.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN110.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN110.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN111.inf b/src/bin/hamcore/inf/x64/INF_VPN111.inf
index 4582630c..7ca0063d 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN111.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN111.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN111.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN112.inf b/src/bin/hamcore/inf/x64/INF_VPN112.inf
index 147e5750..79c3d52c 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN112.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN112.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN112.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN113.inf b/src/bin/hamcore/inf/x64/INF_VPN113.inf
index 76eccad2..6c98b407 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN113.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN113.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN113.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN114.inf b/src/bin/hamcore/inf/x64/INF_VPN114.inf
index 0b695d2b..e0a319b8 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN114.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN114.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN114.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN115.inf b/src/bin/hamcore/inf/x64/INF_VPN115.inf
index 7500323b..f3957b47 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN115.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN115.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN115.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN116.inf b/src/bin/hamcore/inf/x64/INF_VPN116.inf
index 63ff7f02..acc71618 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN116.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN116.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN116.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN117.inf b/src/bin/hamcore/inf/x64/INF_VPN117.inf
index fe17b4e1..4105d085 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN117.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN117.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN117.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN118.inf b/src/bin/hamcore/inf/x64/INF_VPN118.inf
index 4f5ec77c..27c04dd9 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN118.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN118.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN118.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN119.inf b/src/bin/hamcore/inf/x64/INF_VPN119.inf
index b81939a1..caebf96f 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN119.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN119.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN119.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN12.inf b/src/bin/hamcore/inf/x64/INF_VPN12.inf
index b7f8ea35..5a97b44e 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN12.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN12.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN12.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN120.inf b/src/bin/hamcore/inf/x64/INF_VPN120.inf
index 4bf3d03d..13753afa 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN120.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN120.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN120.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN121.inf b/src/bin/hamcore/inf/x64/INF_VPN121.inf
index a37b62b9..514a7572 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN121.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN121.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN121.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN122.inf b/src/bin/hamcore/inf/x64/INF_VPN122.inf
index 4dda7a57..e83f222b 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN122.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN122.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN122.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN123.inf b/src/bin/hamcore/inf/x64/INF_VPN123.inf
index 304b6770..9f157e96 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN123.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN123.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN123.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN124.inf b/src/bin/hamcore/inf/x64/INF_VPN124.inf
index c764be95..15b149ae 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN124.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN124.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN124.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN125.inf b/src/bin/hamcore/inf/x64/INF_VPN125.inf
index aff6de11..bf7b7982 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN125.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN125.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN125.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN126.inf b/src/bin/hamcore/inf/x64/INF_VPN126.inf
index 330f0346..c92388dd 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN126.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN126.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN126.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN127.inf b/src/bin/hamcore/inf/x64/INF_VPN127.inf
index 63f8c1d7..aeedf23d 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN127.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN127.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN127.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN13.inf b/src/bin/hamcore/inf/x64/INF_VPN13.inf
index 079a5de7..ec005adb 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN13.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN13.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN13.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN14.inf b/src/bin/hamcore/inf/x64/INF_VPN14.inf
index 344b5bd4..a44888e6 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN14.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN14.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN14.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN15.inf b/src/bin/hamcore/inf/x64/INF_VPN15.inf
index 8a2595d9..cc568cc0 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN15.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN15.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN15.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN16.inf b/src/bin/hamcore/inf/x64/INF_VPN16.inf
index 1962549a..3e378ca1 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN16.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN16.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN16.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN17.inf b/src/bin/hamcore/inf/x64/INF_VPN17.inf
index 82c238fc..a505b203 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN17.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN17.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN17.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN18.inf b/src/bin/hamcore/inf/x64/INF_VPN18.inf
index 2a97f71c..af7e46e8 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN18.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN18.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN18.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN19.inf b/src/bin/hamcore/inf/x64/INF_VPN19.inf
index e473597c..6b3f2775 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN19.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN19.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN19.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN2.inf b/src/bin/hamcore/inf/x64/INF_VPN2.inf
index ccf5d657..f82c192b 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN2.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN2.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN2.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN20.inf b/src/bin/hamcore/inf/x64/INF_VPN20.inf
index 8bb03fff..75c51423 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN20.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN20.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN20.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN21.inf b/src/bin/hamcore/inf/x64/INF_VPN21.inf
index 1944890b..a995158a 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN21.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN21.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN21.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN22.inf b/src/bin/hamcore/inf/x64/INF_VPN22.inf
index 5475d5fd..4756e2e0 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN22.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN22.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN22.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN23.inf b/src/bin/hamcore/inf/x64/INF_VPN23.inf
index 7571c166..33163235 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN23.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN23.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN23.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN24.inf b/src/bin/hamcore/inf/x64/INF_VPN24.inf
index 90f31469..2f1f7edf 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN24.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN24.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN24.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN25.inf b/src/bin/hamcore/inf/x64/INF_VPN25.inf
index 08d910e6..9a7187e1 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN25.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN25.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN25.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN26.inf b/src/bin/hamcore/inf/x64/INF_VPN26.inf
index ec3ad998..b5d2a88e 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN26.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN26.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN26.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN27.inf b/src/bin/hamcore/inf/x64/INF_VPN27.inf
index bf04a516..82a52632 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN27.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN27.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN27.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN28.inf b/src/bin/hamcore/inf/x64/INF_VPN28.inf
index 3c013d06..db32720d 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN28.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN28.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN28.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN29.inf b/src/bin/hamcore/inf/x64/INF_VPN29.inf
index 93cd6ae1..980a464a 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN29.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN29.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN29.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN3.inf b/src/bin/hamcore/inf/x64/INF_VPN3.inf
index f283e544..30763526 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN3.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN3.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN3.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN30.inf b/src/bin/hamcore/inf/x64/INF_VPN30.inf
index e5b7f4fa..290e554f 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN30.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN30.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN30.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN31.inf b/src/bin/hamcore/inf/x64/INF_VPN31.inf
index 5c873f92..cc100364 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN31.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN31.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN31.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN32.inf b/src/bin/hamcore/inf/x64/INF_VPN32.inf
index 1f498672..848fc9fe 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN32.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN32.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN32.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN33.inf b/src/bin/hamcore/inf/x64/INF_VPN33.inf
index d86387f4..d739db5e 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN33.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN33.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN33.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN34.inf b/src/bin/hamcore/inf/x64/INF_VPN34.inf
index a0a88976..e9941802 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN34.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN34.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN34.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN35.inf b/src/bin/hamcore/inf/x64/INF_VPN35.inf
index e26001c2..4c5638f4 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN35.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN35.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN35.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN36.inf b/src/bin/hamcore/inf/x64/INF_VPN36.inf
index 4cdbffc2..1a34ebfc 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN36.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN36.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN36.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN37.inf b/src/bin/hamcore/inf/x64/INF_VPN37.inf
index e9a62aea..11b51124 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN37.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN37.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN37.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN38.inf b/src/bin/hamcore/inf/x64/INF_VPN38.inf
index b5b38b05..cd4f5410 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN38.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN38.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN38.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN39.inf b/src/bin/hamcore/inf/x64/INF_VPN39.inf
index e39fe4a3..28b228ff 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN39.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN39.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN39.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN4.inf b/src/bin/hamcore/inf/x64/INF_VPN4.inf
index 2c5751a4..dc5112da 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN4.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN4.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN4.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN40.inf b/src/bin/hamcore/inf/x64/INF_VPN40.inf
index ba40289a..a0f5137a 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN40.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN40.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN40.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN41.inf b/src/bin/hamcore/inf/x64/INF_VPN41.inf
index 1dba4592..48d0813b 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN41.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN41.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN41.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN42.inf b/src/bin/hamcore/inf/x64/INF_VPN42.inf
index e9e667ca..ffa461f2 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN42.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN42.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN42.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN43.inf b/src/bin/hamcore/inf/x64/INF_VPN43.inf
index 940400e7..dd2d3e90 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN43.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN43.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN43.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN44.inf b/src/bin/hamcore/inf/x64/INF_VPN44.inf
index c6cece77..3f77b86d 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN44.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN44.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN44.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN45.inf b/src/bin/hamcore/inf/x64/INF_VPN45.inf
index 0b9df476..bca6448b 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN45.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN45.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN45.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN46.inf b/src/bin/hamcore/inf/x64/INF_VPN46.inf
index 2d0b802c..82c9672e 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN46.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN46.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN46.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN47.inf b/src/bin/hamcore/inf/x64/INF_VPN47.inf
index d53cd230..49ac09d5 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN47.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN47.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN47.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN48.inf b/src/bin/hamcore/inf/x64/INF_VPN48.inf
index c5b64d84..3aa8f04c 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN48.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN48.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN48.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN49.inf b/src/bin/hamcore/inf/x64/INF_VPN49.inf
index 95e40d47..b16198d7 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN49.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN49.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN49.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN5.inf b/src/bin/hamcore/inf/x64/INF_VPN5.inf
index 960b7efe..ebd2234c 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN5.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN5.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN5.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN50.inf b/src/bin/hamcore/inf/x64/INF_VPN50.inf
index 7035fc48..dd2d0b7e 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN50.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN50.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN50.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN51.inf b/src/bin/hamcore/inf/x64/INF_VPN51.inf
index 85550d94..d2ad3a98 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN51.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN51.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN51.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN52.inf b/src/bin/hamcore/inf/x64/INF_VPN52.inf
index 9d802fae..236d1d5d 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN52.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN52.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN52.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN53.inf b/src/bin/hamcore/inf/x64/INF_VPN53.inf
index f80de091..2e7730b3 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN53.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN53.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN53.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN54.inf b/src/bin/hamcore/inf/x64/INF_VPN54.inf
index 8e0695d9..4b79c051 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN54.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN54.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN54.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN55.inf b/src/bin/hamcore/inf/x64/INF_VPN55.inf
index 89d5acbe..75ae90e0 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN55.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN55.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN55.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN56.inf b/src/bin/hamcore/inf/x64/INF_VPN56.inf
index 0840588d..36432931 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN56.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN56.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN56.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN57.inf b/src/bin/hamcore/inf/x64/INF_VPN57.inf
index b24fe1e1..5fd663ce 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN57.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN57.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN57.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN58.inf b/src/bin/hamcore/inf/x64/INF_VPN58.inf
index 8866add0..5c62a0b0 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN58.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN58.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN58.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN59.inf b/src/bin/hamcore/inf/x64/INF_VPN59.inf
index 63949e81..2b349f45 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN59.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN59.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN59.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN6.inf b/src/bin/hamcore/inf/x64/INF_VPN6.inf
index 41d6d651..30d74c4d 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN6.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN6.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN6.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN60.inf b/src/bin/hamcore/inf/x64/INF_VPN60.inf
index af759048..0f366cee 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN60.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN60.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN60.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN61.inf b/src/bin/hamcore/inf/x64/INF_VPN61.inf
index 1c50c1d0..9a3a6d9b 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN61.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN61.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN61.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN62.inf b/src/bin/hamcore/inf/x64/INF_VPN62.inf
index 8ee03c71..f4148acc 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN62.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN62.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN62.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN63.inf b/src/bin/hamcore/inf/x64/INF_VPN63.inf
index ad205bc6..184250d8 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN63.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN63.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN63.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN64.inf b/src/bin/hamcore/inf/x64/INF_VPN64.inf
index d521f79f..f83999ea 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN64.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN64.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN64.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN65.inf b/src/bin/hamcore/inf/x64/INF_VPN65.inf
index ed82cb68..46bb7f6b 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN65.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN65.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN65.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN66.inf b/src/bin/hamcore/inf/x64/INF_VPN66.inf
index 0fb27bb9..bfc631a9 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN66.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN66.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN66.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN67.inf b/src/bin/hamcore/inf/x64/INF_VPN67.inf
index a212d635..d9da7f96 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN67.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN67.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN67.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN68.inf b/src/bin/hamcore/inf/x64/INF_VPN68.inf
index d7b25b42..eb145a22 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN68.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN68.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN68.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN69.inf b/src/bin/hamcore/inf/x64/INF_VPN69.inf
index 28b33b48..594c7ab2 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN69.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN69.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN69.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN7.inf b/src/bin/hamcore/inf/x64/INF_VPN7.inf
index cc5fb9ca..ff80960a 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN7.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN7.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN7.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN70.inf b/src/bin/hamcore/inf/x64/INF_VPN70.inf
index af5be6a3..df1815b4 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN70.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN70.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN70.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN71.inf b/src/bin/hamcore/inf/x64/INF_VPN71.inf
index 90620a90..8d916d9e 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN71.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN71.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN71.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN72.inf b/src/bin/hamcore/inf/x64/INF_VPN72.inf
index b98aebb7..089f4f40 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN72.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN72.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN72.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN73.inf b/src/bin/hamcore/inf/x64/INF_VPN73.inf
index 5211f232..6bff3ad8 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN73.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN73.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN73.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN74.inf b/src/bin/hamcore/inf/x64/INF_VPN74.inf
index 16924eba..27a1f358 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN74.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN74.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN74.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN75.inf b/src/bin/hamcore/inf/x64/INF_VPN75.inf
index 1a841cfc..8699afe5 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN75.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN75.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN75.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN76.inf b/src/bin/hamcore/inf/x64/INF_VPN76.inf
index 594700fb..4131ed7a 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN76.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN76.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN76.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN77.inf b/src/bin/hamcore/inf/x64/INF_VPN77.inf
index 2092e91a..813e6158 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN77.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN77.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN77.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN78.inf b/src/bin/hamcore/inf/x64/INF_VPN78.inf
index be1642b3..5679b822 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN78.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN78.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN78.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN79.inf b/src/bin/hamcore/inf/x64/INF_VPN79.inf
index dd3d3dd6..7a527662 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN79.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN79.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN79.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN8.inf b/src/bin/hamcore/inf/x64/INF_VPN8.inf
index 1602432e..ceff0cb0 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN8.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN8.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN8.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN80.inf b/src/bin/hamcore/inf/x64/INF_VPN80.inf
index 35675f41..ee26a137 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN80.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN80.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN80.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN81.inf b/src/bin/hamcore/inf/x64/INF_VPN81.inf
index 44154cc0..78f3c29f 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN81.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN81.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN81.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN82.inf b/src/bin/hamcore/inf/x64/INF_VPN82.inf
index 4bbc8c6f..19ec3f6b 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN82.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN82.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN82.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN83.inf b/src/bin/hamcore/inf/x64/INF_VPN83.inf
index 8c8a6534..b50671aa 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN83.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN83.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN83.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN84.inf b/src/bin/hamcore/inf/x64/INF_VPN84.inf
index 8c1606cd..614f81aa 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN84.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN84.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN84.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN85.inf b/src/bin/hamcore/inf/x64/INF_VPN85.inf
index b202a370..452294d6 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN85.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN85.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN85.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN86.inf b/src/bin/hamcore/inf/x64/INF_VPN86.inf
index ef6f9d0c..fd806135 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN86.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN86.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN86.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN87.inf b/src/bin/hamcore/inf/x64/INF_VPN87.inf
index c3026a0c..d18bcd57 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN87.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN87.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN87.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN88.inf b/src/bin/hamcore/inf/x64/INF_VPN88.inf
index 03164e60..5a70ae41 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN88.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN88.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN88.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN89.inf b/src/bin/hamcore/inf/x64/INF_VPN89.inf
index 6e6d608c..763115c6 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN89.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN89.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN89.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN9.inf b/src/bin/hamcore/inf/x64/INF_VPN9.inf
index a5bcb464..8241d64e 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN9.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN9.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN9.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN90.inf b/src/bin/hamcore/inf/x64/INF_VPN90.inf
index 9da23432..d7849310 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN90.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN90.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN90.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN91.inf b/src/bin/hamcore/inf/x64/INF_VPN91.inf
index 4e0fbae7..a7ef686e 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN91.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN91.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN91.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN92.inf b/src/bin/hamcore/inf/x64/INF_VPN92.inf
index 5876e9a2..b49b4119 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN92.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN92.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN92.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN93.inf b/src/bin/hamcore/inf/x64/INF_VPN93.inf
index c9a5ef82..80b0b359 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN93.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN93.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN93.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN94.inf b/src/bin/hamcore/inf/x64/INF_VPN94.inf
index a4b74dfd..69e29f46 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN94.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN94.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN94.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN95.inf b/src/bin/hamcore/inf/x64/INF_VPN95.inf
index 1c344902..d2b31d19 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN95.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN95.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN95.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN96.inf b/src/bin/hamcore/inf/x64/INF_VPN96.inf
index ce66e532..2807c3a1 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN96.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN96.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN96.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN97.inf b/src/bin/hamcore/inf/x64/INF_VPN97.inf
index 59cde792..bd541282 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN97.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN97.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN97.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN98.inf b/src/bin/hamcore/inf/x64/INF_VPN98.inf
index 20f06b3f..db831625 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN98.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN98.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN98.cat
diff --git a/src/bin/hamcore/inf/x64/INF_VPN99.inf b/src/bin/hamcore/inf/x64/INF_VPN99.inf
index a9960fce..4f911fc4 100644
--- a/src/bin/hamcore/inf/x64/INF_VPN99.inf
+++ b/src/bin/hamcore/inf/x64/INF_VPN99.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN99.cat
diff --git a/src/bin/hamcore/inf/x64/inf.cat b/src/bin/hamcore/inf/x64/inf.cat
index 51bc27de..bf8d0332 100644
--- a/src/bin/hamcore/inf/x64/inf.cat
+++ b/src/bin/hamcore/inf/x64/inf.cat
Binary files differ
diff --git a/src/bin/hamcore/inf/x86/INF_VPN.inf b/src/bin/hamcore/inf/x86/INF_VPN.inf
index 3a864c5b..291483bd 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN10.inf b/src/bin/hamcore/inf/x86/INF_VPN10.inf
index 54f4dac7..02e05a52 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN10.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN10.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN10.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN100.inf b/src/bin/hamcore/inf/x86/INF_VPN100.inf
index 692b9d6d..c880b78d 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN100.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN100.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN100.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN101.inf b/src/bin/hamcore/inf/x86/INF_VPN101.inf
index 67d00b18..e43d4cf8 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN101.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN101.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN101.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN102.inf b/src/bin/hamcore/inf/x86/INF_VPN102.inf
index ebf8b08d..a236e90a 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN102.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN102.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN102.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN103.inf b/src/bin/hamcore/inf/x86/INF_VPN103.inf
index e38b344f..e5ecc408 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN103.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN103.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN103.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN104.inf b/src/bin/hamcore/inf/x86/INF_VPN104.inf
index 0bba77fd..7bffeb5e 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN104.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN104.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN104.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN105.inf b/src/bin/hamcore/inf/x86/INF_VPN105.inf
index e4b81991..3f1b116d 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN105.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN105.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN105.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN106.inf b/src/bin/hamcore/inf/x86/INF_VPN106.inf
index a7e87fc7..bcbd11b9 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN106.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN106.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN106.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN107.inf b/src/bin/hamcore/inf/x86/INF_VPN107.inf
index 7a0db7d9..065b2464 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN107.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN107.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN107.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN108.inf b/src/bin/hamcore/inf/x86/INF_VPN108.inf
index cc8af17f..24f7b4d4 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN108.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN108.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN108.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN109.inf b/src/bin/hamcore/inf/x86/INF_VPN109.inf
index 59ab9c7a..b8d79062 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN109.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN109.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN109.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN11.inf b/src/bin/hamcore/inf/x86/INF_VPN11.inf
index 7a4ab4f9..40f393b5 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN11.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN11.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN11.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN110.inf b/src/bin/hamcore/inf/x86/INF_VPN110.inf
index d8bbbb1d..1c0d8b2c 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN110.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN110.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN110.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN111.inf b/src/bin/hamcore/inf/x86/INF_VPN111.inf
index d9ae5356..efeb88f3 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN111.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN111.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN111.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN112.inf b/src/bin/hamcore/inf/x86/INF_VPN112.inf
index 042970ae..81e2758b 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN112.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN112.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN112.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN113.inf b/src/bin/hamcore/inf/x86/INF_VPN113.inf
index da91862e..b871d3b9 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN113.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN113.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN113.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN114.inf b/src/bin/hamcore/inf/x86/INF_VPN114.inf
index df5c9c81..98287e74 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN114.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN114.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN114.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN115.inf b/src/bin/hamcore/inf/x86/INF_VPN115.inf
index 407e9895..7a281e2d 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN115.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN115.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN115.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN116.inf b/src/bin/hamcore/inf/x86/INF_VPN116.inf
index f33476f5..210f5ea2 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN116.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN116.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN116.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN117.inf b/src/bin/hamcore/inf/x86/INF_VPN117.inf
index a024403e..81126854 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN117.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN117.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN117.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN118.inf b/src/bin/hamcore/inf/x86/INF_VPN118.inf
index 02db1a8e..a3277f56 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN118.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN118.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN118.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN119.inf b/src/bin/hamcore/inf/x86/INF_VPN119.inf
index c916cb85..49000442 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN119.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN119.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN119.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN12.inf b/src/bin/hamcore/inf/x86/INF_VPN12.inf
index f1d92c94..e25a0dbf 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN12.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN12.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN12.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN120.inf b/src/bin/hamcore/inf/x86/INF_VPN120.inf
index 0ac5d060..7e052dad 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN120.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN120.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN120.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN121.inf b/src/bin/hamcore/inf/x86/INF_VPN121.inf
index 40be4b64..80267a2c 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN121.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN121.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN121.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN122.inf b/src/bin/hamcore/inf/x86/INF_VPN122.inf
index a61f80af..9ecff402 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN122.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN122.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN122.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN123.inf b/src/bin/hamcore/inf/x86/INF_VPN123.inf
index 40747ffb..2149d502 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN123.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN123.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN123.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN124.inf b/src/bin/hamcore/inf/x86/INF_VPN124.inf
index 8af9be3b..44a9d41b 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN124.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN124.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN124.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN125.inf b/src/bin/hamcore/inf/x86/INF_VPN125.inf
index 42ba8632..1370b643 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN125.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN125.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN125.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN126.inf b/src/bin/hamcore/inf/x86/INF_VPN126.inf
index 896db9d9..c21eeff4 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN126.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN126.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN126.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN127.inf b/src/bin/hamcore/inf/x86/INF_VPN127.inf
index 92ab50be..09fdbc8a 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN127.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN127.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN127.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN13.inf b/src/bin/hamcore/inf/x86/INF_VPN13.inf
index ce3e177d..06e23695 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN13.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN13.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN13.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN14.inf b/src/bin/hamcore/inf/x86/INF_VPN14.inf
index 82012d01..5de8c8bd 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN14.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN14.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN14.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN15.inf b/src/bin/hamcore/inf/x86/INF_VPN15.inf
index 0cb07723..fe089943 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN15.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN15.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN15.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN16.inf b/src/bin/hamcore/inf/x86/INF_VPN16.inf
index 2ec9e8a8..19cac486 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN16.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN16.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN16.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN17.inf b/src/bin/hamcore/inf/x86/INF_VPN17.inf
index b859c0bf..a3d9c5ec 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN17.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN17.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN17.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN18.inf b/src/bin/hamcore/inf/x86/INF_VPN18.inf
index eccae765..49a3b67d 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN18.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN18.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN18.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN19.inf b/src/bin/hamcore/inf/x86/INF_VPN19.inf
index 07b2378a..3b85e99d 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN19.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN19.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN19.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN2.inf b/src/bin/hamcore/inf/x86/INF_VPN2.inf
index 80808d47..fed37ae2 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN2.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN2.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN2.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN20.inf b/src/bin/hamcore/inf/x86/INF_VPN20.inf
index e9ec88b9..6595ae65 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN20.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN20.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN20.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN21.inf b/src/bin/hamcore/inf/x86/INF_VPN21.inf
index 376fabfa..1d426d67 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN21.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN21.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN21.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN22.inf b/src/bin/hamcore/inf/x86/INF_VPN22.inf
index b85b5e05..72e6bfb5 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN22.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN22.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN22.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN23.inf b/src/bin/hamcore/inf/x86/INF_VPN23.inf
index b537063d..f6c10f95 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN23.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN23.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN23.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN24.inf b/src/bin/hamcore/inf/x86/INF_VPN24.inf
index f13526be..35b42fc8 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN24.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN24.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN24.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN25.inf b/src/bin/hamcore/inf/x86/INF_VPN25.inf
index dc69d8ff..d3a8feb7 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN25.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN25.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN25.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN26.inf b/src/bin/hamcore/inf/x86/INF_VPN26.inf
index ccbfe903..2eea72bf 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN26.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN26.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN26.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN27.inf b/src/bin/hamcore/inf/x86/INF_VPN27.inf
index 6df288a7..94a089a3 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN27.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN27.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN27.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN28.inf b/src/bin/hamcore/inf/x86/INF_VPN28.inf
index 163de2f9..c06dbf1b 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN28.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN28.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN28.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN29.inf b/src/bin/hamcore/inf/x86/INF_VPN29.inf
index 559aef9a..bf5a4251 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN29.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN29.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN29.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN3.inf b/src/bin/hamcore/inf/x86/INF_VPN3.inf
index d0c65eef..7c6513df 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN3.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN3.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN3.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN30.inf b/src/bin/hamcore/inf/x86/INF_VPN30.inf
index 3324037f..663677f1 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN30.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN30.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN30.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN31.inf b/src/bin/hamcore/inf/x86/INF_VPN31.inf
index a3f428d5..3040db7a 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN31.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN31.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN31.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN32.inf b/src/bin/hamcore/inf/x86/INF_VPN32.inf
index daa00829..3d79c8a0 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN32.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN32.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN32.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN33.inf b/src/bin/hamcore/inf/x86/INF_VPN33.inf
index 1724d88a..44bb181a 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN33.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN33.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN33.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN34.inf b/src/bin/hamcore/inf/x86/INF_VPN34.inf
index 0d143398..893188c0 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN34.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN34.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN34.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN35.inf b/src/bin/hamcore/inf/x86/INF_VPN35.inf
index 3c2ddcf3..568d21e5 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN35.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN35.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN35.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN36.inf b/src/bin/hamcore/inf/x86/INF_VPN36.inf
index 9e4cda63..32915a3a 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN36.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN36.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN36.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN37.inf b/src/bin/hamcore/inf/x86/INF_VPN37.inf
index 966a3c2f..67c02420 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN37.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN37.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN37.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN38.inf b/src/bin/hamcore/inf/x86/INF_VPN38.inf
index 013adb67..d080114d 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN38.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN38.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN38.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN39.inf b/src/bin/hamcore/inf/x86/INF_VPN39.inf
index 571c52c0..0bbb28dd 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN39.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN39.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN39.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN4.inf b/src/bin/hamcore/inf/x86/INF_VPN4.inf
index 625f11db..c3963001 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN4.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN4.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN4.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN40.inf b/src/bin/hamcore/inf/x86/INF_VPN40.inf
index 5b2d701f..1372272d 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN40.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN40.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN40.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN41.inf b/src/bin/hamcore/inf/x86/INF_VPN41.inf
index 068f1812..6e6a9579 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN41.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN41.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN41.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN42.inf b/src/bin/hamcore/inf/x86/INF_VPN42.inf
index c438c6cd..6ffab130 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN42.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN42.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN42.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN43.inf b/src/bin/hamcore/inf/x86/INF_VPN43.inf
index c4150946..f2b96c95 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN43.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN43.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN43.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN44.inf b/src/bin/hamcore/inf/x86/INF_VPN44.inf
index ef5b7f6e..02dc4981 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN44.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN44.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN44.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN45.inf b/src/bin/hamcore/inf/x86/INF_VPN45.inf
index 631fa1ec..229e5787 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN45.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN45.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN45.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN46.inf b/src/bin/hamcore/inf/x86/INF_VPN46.inf
index 6af9d1a8..168cd410 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN46.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN46.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN46.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN47.inf b/src/bin/hamcore/inf/x86/INF_VPN47.inf
index 5c4f4aa8..1dd564f1 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN47.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN47.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN47.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN48.inf b/src/bin/hamcore/inf/x86/INF_VPN48.inf
index e8cb4194..b6d993d7 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN48.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN48.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN48.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN49.inf b/src/bin/hamcore/inf/x86/INF_VPN49.inf
index 2b3c11a6..fc6bd47f 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN49.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN49.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN49.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN5.inf b/src/bin/hamcore/inf/x86/INF_VPN5.inf
index 0fdf491f..1373ed55 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN5.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN5.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN5.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN50.inf b/src/bin/hamcore/inf/x86/INF_VPN50.inf
index 06c69580..220006a0 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN50.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN50.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN50.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN51.inf b/src/bin/hamcore/inf/x86/INF_VPN51.inf
index f232f71a..14450334 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN51.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN51.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN51.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN52.inf b/src/bin/hamcore/inf/x86/INF_VPN52.inf
index 90d84f30..6dceba57 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN52.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN52.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN52.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN53.inf b/src/bin/hamcore/inf/x86/INF_VPN53.inf
index 9c6ff37f..5f1512ab 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN53.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN53.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN53.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN54.inf b/src/bin/hamcore/inf/x86/INF_VPN54.inf
index 6deac2e2..31d30329 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN54.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN54.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN54.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN55.inf b/src/bin/hamcore/inf/x86/INF_VPN55.inf
index 875310a1..80a58fdf 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN55.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN55.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN55.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN56.inf b/src/bin/hamcore/inf/x86/INF_VPN56.inf
index 07641d68..8d01bb0e 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN56.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN56.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN56.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN57.inf b/src/bin/hamcore/inf/x86/INF_VPN57.inf
index 5b4c705d..e0abcac4 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN57.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN57.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN57.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN58.inf b/src/bin/hamcore/inf/x86/INF_VPN58.inf
index 7e0eca17..26253c35 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN58.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN58.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN58.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN59.inf b/src/bin/hamcore/inf/x86/INF_VPN59.inf
index 188e31df..1a2d3ada 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN59.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN59.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN59.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN6.inf b/src/bin/hamcore/inf/x86/INF_VPN6.inf
index fa3f9219..88bb4412 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN6.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN6.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN6.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN60.inf b/src/bin/hamcore/inf/x86/INF_VPN60.inf
index 9351776f..20fe3e78 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN60.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN60.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN60.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN61.inf b/src/bin/hamcore/inf/x86/INF_VPN61.inf
index a1318e9b..05d46ff9 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN61.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN61.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN61.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN62.inf b/src/bin/hamcore/inf/x86/INF_VPN62.inf
index 0f918cc2..8f685047 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN62.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN62.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN62.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN63.inf b/src/bin/hamcore/inf/x86/INF_VPN63.inf
index 78710d27..66c8641a 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN63.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN63.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN63.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN64.inf b/src/bin/hamcore/inf/x86/INF_VPN64.inf
index 98bce2a4..c3ce7f81 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN64.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN64.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN64.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN65.inf b/src/bin/hamcore/inf/x86/INF_VPN65.inf
index fb3ab92e..5c9c9755 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN65.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN65.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN65.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN66.inf b/src/bin/hamcore/inf/x86/INF_VPN66.inf
index 31998ef6..d6652bee 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN66.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN66.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN66.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN67.inf b/src/bin/hamcore/inf/x86/INF_VPN67.inf
index 6adbe0e5..f22e0d2f 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN67.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN67.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN67.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN68.inf b/src/bin/hamcore/inf/x86/INF_VPN68.inf
index 71abf1cc..cbfc5ef1 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN68.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN68.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN68.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN69.inf b/src/bin/hamcore/inf/x86/INF_VPN69.inf
index 2c5b8c5a..4c6ae08e 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN69.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN69.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN69.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN7.inf b/src/bin/hamcore/inf/x86/INF_VPN7.inf
index 74f829ad..3e2bb8f3 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN7.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN7.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN7.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN70.inf b/src/bin/hamcore/inf/x86/INF_VPN70.inf
index 68ca8f97..453df13c 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN70.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN70.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN70.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN71.inf b/src/bin/hamcore/inf/x86/INF_VPN71.inf
index be19e3be..cba87b74 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN71.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN71.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN71.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN72.inf b/src/bin/hamcore/inf/x86/INF_VPN72.inf
index 77accca6..7e4f4474 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN72.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN72.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN72.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN73.inf b/src/bin/hamcore/inf/x86/INF_VPN73.inf
index 175a57eb..b42497f8 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN73.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN73.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN73.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN74.inf b/src/bin/hamcore/inf/x86/INF_VPN74.inf
index b5773317..c7cafc06 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN74.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN74.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN74.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN75.inf b/src/bin/hamcore/inf/x86/INF_VPN75.inf
index 1a1bb5fb..ab1fb1ba 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN75.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN75.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN75.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN76.inf b/src/bin/hamcore/inf/x86/INF_VPN76.inf
index 39afbb59..8d818489 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN76.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN76.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN76.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN77.inf b/src/bin/hamcore/inf/x86/INF_VPN77.inf
index d3dc0727..3f8c4f9e 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN77.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN77.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN77.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN78.inf b/src/bin/hamcore/inf/x86/INF_VPN78.inf
index f2efd4fc..76cd7bee 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN78.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN78.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN78.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN79.inf b/src/bin/hamcore/inf/x86/INF_VPN79.inf
index 2478e923..a5968420 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN79.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN79.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN79.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN8.inf b/src/bin/hamcore/inf/x86/INF_VPN8.inf
index 4a3cafa1..0db65db1 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN8.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN8.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN8.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN80.inf b/src/bin/hamcore/inf/x86/INF_VPN80.inf
index 5209a68d..9f278c60 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN80.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN80.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN80.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN81.inf b/src/bin/hamcore/inf/x86/INF_VPN81.inf
index 83668554..d4e8d0fb 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN81.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN81.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN81.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN82.inf b/src/bin/hamcore/inf/x86/INF_VPN82.inf
index f380a40f..aec556bf 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN82.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN82.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN82.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN83.inf b/src/bin/hamcore/inf/x86/INF_VPN83.inf
index 101eb5ec..5c9cbfeb 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN83.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN83.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN83.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN84.inf b/src/bin/hamcore/inf/x86/INF_VPN84.inf
index 05243da1..18ce7d91 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN84.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN84.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN84.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN85.inf b/src/bin/hamcore/inf/x86/INF_VPN85.inf
index 315af6ca..31d325e6 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN85.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN85.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN85.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN86.inf b/src/bin/hamcore/inf/x86/INF_VPN86.inf
index 3d06d7c5..73765fd9 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN86.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN86.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN86.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN87.inf b/src/bin/hamcore/inf/x86/INF_VPN87.inf
index 7a487646..c13940eb 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN87.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN87.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN87.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN88.inf b/src/bin/hamcore/inf/x86/INF_VPN88.inf
index a5f43abb..d79eb52e 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN88.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN88.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN88.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN89.inf b/src/bin/hamcore/inf/x86/INF_VPN89.inf
index d571b269..dbac77ef 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN89.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN89.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN89.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN9.inf b/src/bin/hamcore/inf/x86/INF_VPN9.inf
index c49b4987..993ec28d 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN9.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN9.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN9.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN90.inf b/src/bin/hamcore/inf/x86/INF_VPN90.inf
index cb52196d..df6a6bd5 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN90.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN90.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN90.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN91.inf b/src/bin/hamcore/inf/x86/INF_VPN91.inf
index 0acbc947..a1039a94 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN91.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN91.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN91.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN92.inf b/src/bin/hamcore/inf/x86/INF_VPN92.inf
index ea0d1fe5..80bf4aa5 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN92.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN92.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN92.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN93.inf b/src/bin/hamcore/inf/x86/INF_VPN93.inf
index 60c5eb6b..5f9da6d7 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN93.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN93.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN93.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN94.inf b/src/bin/hamcore/inf/x86/INF_VPN94.inf
index 1a875e82..ee3a17dd 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN94.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN94.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN94.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN95.inf b/src/bin/hamcore/inf/x86/INF_VPN95.inf
index 00146ad1..832b7309 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN95.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN95.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN95.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN96.inf b/src/bin/hamcore/inf/x86/INF_VPN96.inf
index b07cb930..7faa40a2 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN96.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN96.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN96.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN97.inf b/src/bin/hamcore/inf/x86/INF_VPN97.inf
index 44d5a95a..e8403b59 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN97.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN97.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN97.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN98.inf b/src/bin/hamcore/inf/x86/INF_VPN98.inf
index 529851ae..1e3d7414 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN98.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN98.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN98.cat
diff --git a/src/bin/hamcore/inf/x86/INF_VPN99.inf b/src/bin/hamcore/inf/x86/INF_VPN99.inf
index ade1b1ab..29ca2c8e 100644
--- a/src/bin/hamcore/inf/x86/INF_VPN99.inf
+++ b/src/bin/hamcore/inf/x86/INF_VPN99.inf
@@ -8,7 +8,7 @@ Signature = "$Windows NT$"
Class = Net
ClassGUID = {4D36E972-E325-11CE-BFC1-08002BE10318}
Provider = %CompanyName%
-DriverVer = 02/17/2014, 4.5.0.9422
+DriverVer = 03/20/2014, 4.6.0.9429
CatalogFile.NT = inf_VPN99.cat
diff --git a/src/bin/hamcore/inf/x86/inf.cat b/src/bin/hamcore/inf/x86/inf.cat
index 8fe95f50..74c8c7d2 100644
--- a/src/bin/hamcore/inf/x86/inf.cat
+++ b/src/bin/hamcore/inf/x86/inf.cat
Binary files differ
diff --git a/src/bin/hamcore/legal.txt b/src/bin/hamcore/legal.txt
index 5e4a8d46..56390833 100644
--- a/src/bin/hamcore/legal.txt
+++ b/src/bin/hamcore/legal.txt
@@ -339,6 +339,10 @@ The list of contributors for SoftEther VPN Project:
- ELIN
https://github.com/el1n
+ - YF
+ https://github.com/yfdyh000
+
+
SoftEther Corporation, the distributor of PacketiX VPN, appreciates all contributors for SoftEther VPN Project very much.
See also: http://www.softether.org/5-download/src/9.patch
diff --git a/src/bin/hamcore/pxwfp_x64.sys b/src/bin/hamcore/pxwfp_x64.sys
index 200dbb90..79a50e46 100644
--- a/src/bin/hamcore/pxwfp_x64.sys
+++ b/src/bin/hamcore/pxwfp_x64.sys
Binary files differ
diff --git a/src/bin/hamcore/pxwfp_x86.sys b/src/bin/hamcore/pxwfp_x86.sys
index 3d9e08b3..0546d463 100644
--- a/src/bin/hamcore/pxwfp_x86.sys
+++ b/src/bin/hamcore/pxwfp_x86.sys
Binary files differ
diff --git a/src/bin/hamcore/see.sys b/src/bin/hamcore/see.sys
index 4687811b..21a8089e 100644
--- a/src/bin/hamcore/see.sys
+++ b/src/bin/hamcore/see.sys
Binary files differ
diff --git a/src/bin/hamcore/see_x64.sys b/src/bin/hamcore/see_x64.sys
index 0e94036a..32887f2b 100644
--- a/src/bin/hamcore/see_x64.sys
+++ b/src/bin/hamcore/see_x64.sys
Binary files differ
diff --git a/src/bin/hamcore/strtable_cn.stb b/src/bin/hamcore/strtable_cn.stb
index beeefb04..a432e516 100644
--- a/src/bin/hamcore/strtable_cn.stb
+++ b/src/bin/hamcore/strtable_cn.stb
@@ -1,7 +1,10 @@
-# SoftEther VPN String Table
+# SoftEther VPN String Table
# Copyright (c) SoftEther VPN Project. All Rights Reserved.
#
# http://www.softether.co.jp/
+#
+# Contributors:
+# - YF (https://github.com/yfdyh000)
###########################################################################
@@ -291,8 +294,9 @@ DLG_OPEN_CONFIG 指定é…置文件导入
DLG_STRING_DEFTITLE 输入字符串
DLG_STRING_DEFINFO 请输入字符串。
DLG_ABOUT_LEGAL 法律公告
+DLG_ABOUT_AUTHORS 作者åå•
DLG_UPDATE_DATE \ (Released on %S)
-DLG_UPDATE_HINT 按 确定 查看网页æµè§ˆå™¨æœ€æ–°æ›´æ–°çš„ä¿¡æ¯ã€‚\r\n\r\n您必须手动下载并安装更新。如果你想在其他电脑上更新软件,您必须登录到计算机通过远程桌é¢æˆ– SSH 进行下载和更新。
+DLG_UPDATE_HINT 按确定查看网页æµè§ˆå™¨æœ€æ–°æ›´æ–°çš„ä¿¡æ¯ã€‚\r\n\r\n您必须手动下载并安装更新。如果你想在其他电脑上更新软件,您必须登录到计算机通过远程桌é¢æˆ– SSH 进行下载和更新。
# 关于竞争进程
@@ -446,7 +450,13 @@ WINVER_ERROR_PC_REMOTE 远程æœåŠ¡å™¨
# å¼€æºç‰ˆæœ¬çš„警告
-OSS_MSG 欢迎æ¥åˆ° SoftEther VPN æœåŠ¡å™¨å­¦æœ¯ç‰ˆ !\r\n\r\næ­¤ VPN æœåŠ¡å™¨ä½œä¸ºæ—¥æœ¬ç­‘波大学的一个学术研究由å…费软件开å‘çš„ï¼Œä¸”ç”±ï¼Œå¼€æº (GPL) SoftEther 项目 (http://www.softether.org/) 为公众利益å…è´¹å‘布的。\r\n\r\nSoftEther VPN 软件是作为筑波大学和 SoftEther å…¬å¸ä¹‹é—´çš„è”åˆç ”究åˆåŒçš„一部分而å‘布给公众的。SoftEther VPN 软件的开å‘å’Œå‘布仅为学术研究目的。因此,对 SoftEther VPN 软件ä¸æ供支æŒæœåŠ¡ï¼Œå³ä½¿å®ƒåŒ…å«é”™è¯¯æˆ–æ¼æ´žã€‚用户将对使用 SoftEther VPN 的结果承担责任。 SoftEther VPN çš„å¼€å‘者和å‘行者都将永远ä¸ä¼šä¸ºä»»ä½•åŽæžœæˆ–æŸå¤±æ‰¿æ‹…责任。\r\n\r\n在您åŒæ„上述å¯ç¤ºåŽï¼Œä½¿ç”¨ SoftEther VPN æœåŠ¡å™¨äº«å— VPN 通信。\r\n\r\n对于 SoftEther VPN 的更多细节,请å‚阅 http://www.softether.org/ 。\r\n\r\n
+OSS_MSG 欢迎æ¥åˆ° SoftEther VPN æœåŠ¡å™¨å­¦æœ¯ç‰ˆ !\r\n\r\næ­¤ VPN æœåŠ¡å™¨ä½œä¸ºæ—¥æœ¬ç­‘波大学的一个学术研究由å…费软件开å‘çš„ï¼Œä¸”ç”±ï¼Œå¼€æº (GPL) SoftEther 项目 (http://www.softether.org/) 为公众利益å…è´¹å‘布的。\r\n\r\nSoftEther VPN 软件是作为筑波大学和 SoftEther å…¬å¸ä¹‹é—´çš„è”åˆç ”究åˆåŒçš„一部分而å‘布给公众的。SoftEther VPN 软件的开å‘å’Œå‘布仅为学术研究目的。因此,对 SoftEther VPN 软件ä¸æ供支æŒæœåŠ¡ï¼Œå³ä½¿å®ƒåŒ…å«é”™è¯¯æˆ–æ¼æ´žã€‚用户将对使用 SoftEther VPN 的结果承担责任。 SoftEther VPN çš„å¼€å‘者和å‘行者都将永远ä¸ä¼šä¸ºä»»ä½•åŽæžœæˆ–æŸå¤±æ‰¿æ‹…责任。\r\n\r\n在您åŒæ„上述å¯ç¤ºåŽï¼Œä½¿ç”¨ SoftEther VPN æœåŠ¡å™¨äº«å— VPN 通信。\r\n\r\n对于 SoftEther VPN 的更多细节,请å‚阅 http://www.softether.org/。\r\n\r\n
+
+
+# NAT Traversal warning
+NATT_MSG ** 使用 NAT ç©¿é€ (UDP 打洞) - 它å¯èƒ½æ˜¯ä¸ç¨³å®šçš„ **\r\n\r\næ­¤ VPN 客户端通过使用 NAT ç©¿é€ (UDP 打洞) 技术连接到 VPN æœåŠ¡å™¨ '%S'。\r\n\r\nNAT ç©¿é€å…许ä½äºŽ NAT ç›’åŽé¢çš„ VPN æœåŠ¡å™¨æŽ¥å—æ¥è‡ª NAT 盒中的ã€æ²¡æœ‰ä»»ä½•ç«¯å£æ˜ å°„设置的 VPN 客户端的 VPN 连接。\r\n\r\n然而,基于 NAT ç©¿é€çš„ VPN 会è¯æœ‰æ—¶ä¼šå˜å¾—ä¸ç¨³å®šï¼Œå› ä¸º NAT ç©¿é€ä½¿ç”¨çš„是基于 UDP çš„å议。例如,如果在 VPN æœåŠ¡å™¨å’Œ VPN 客户端之间有一个ä¸å¥½çš„ NAT ç›’å­ï¼Œ VPN 隧é“æ¯ 5 分钟断开一次。一些大规模 NAT 网关使用便宜的互è”网æœåŠ¡ä¾›åº”å•†ï¼Œæœ‰æ—¶ä¼šé€ æˆ NAT ç©¿é€çš„åŒæ ·é—®é¢˜ã€‚这是路由器或互è”网æœåŠ¡ä¾›åº”商的问题。这ä¸æ˜¯ SoftEther VPN 软件的问题。\r\n\r\n为了解决这个ä¸ç¨³å®šçš„隧é“问题,您应该直接连接到 VPN æœåŠ¡å™¨çš„ TCP 监å¬ç«¯å£ï¼Œè€Œä¸æ˜¯ä½¿ç”¨ NAT ç©¿é€åŠŸèƒ½ã€‚è¦ä½¿ç”¨ TCP 直接连接到 VPN æœåŠ¡å™¨ï¼Œ VPN æœåŠ¡å™¨çš„监å¬ç«¯å£å¿…须通过在 NAT 盒的端å£æ˜ å°„设置暴露到互è”网上。请询问 NAT 盒的管ç†å‘˜æˆ–å‚阅 NAT 盒的手册在 NAT 盒上添加端å£æ˜ å°„设置。\r\n\r\n如果此消æ¯ä»æ˜¯ VPN æœåŠ¡å™¨æš´éœ²äº†ä¸€ä¸ª TCP 端å£åˆ°äº’è”网åŽï¼Œæ£€æŸ¥ VPN 客户端连接设置å±å¹•ä¸Šçš„ "ç¦ç”¨ NAT-T" å¤é€‰æ¡†ã€‚\r\n\r\n
+NATT_MSG2 ** 使用 NAT ç©¿é€ (UDP 打洞) - 它å¯èƒ½æ˜¯ä¸ç¨³å®šçš„ **\r\n\r\næ­¤ VPN 客户端通过使用 NAT ç©¿é€ (UDP 打洞) 技术连接到 VPN æœåŠ¡å™¨ '%S'。\r\n\r\nNAT ç©¿é€å…许ä½äºŽ NAT ç›’åŽé¢çš„ VPN æœåŠ¡å™¨æŽ¥å—æ¥è‡ª NAT 盒中的ã€æ²¡æœ‰ä»»ä½•ç«¯å£æ˜ å°„设置的 VPN 客户端的 VPN 连接。\r\n\r\n然而,基于 NAT ç©¿é€çš„ VPN 会è¯æœ‰æ—¶ä¼šå˜å¾—ä¸ç¨³å®šï¼Œå› ä¸º NAT ç©¿é€ä½¿ç”¨çš„是基于 UDP çš„å议。例如,如果在 VPN æœåŠ¡å™¨å’Œ VPN 客户端之间有一个ä¸å¥½çš„ NAT ç›’å­ï¼Œ VPN 隧é“æ¯ 5 分钟断开一次。一些大规模 NAT 网关使用便宜的互è”网æœåŠ¡ä¾›åº”å•†ï¼Œæœ‰æ—¶ä¼šé€ æˆ NAT ç©¿é€çš„åŒæ ·é—®é¢˜ã€‚这是路由器或互è”网æœåŠ¡ä¾›åº”商的问题。这ä¸æ˜¯ SoftEther VPN 软件的问题。\r\n\r\n为了解决这个ä¸ç¨³å®šçš„隧é“问题,您应该直接连接到 VPN æœåŠ¡å™¨çš„ TCP 监å¬ç«¯å£ï¼Œè€Œä¸æ˜¯ä½¿ç”¨ NAT ç©¿é€åŠŸèƒ½ã€‚è¦ä½¿ç”¨ TCP 直接连接到 VPN æœåŠ¡å™¨ï¼Œ VPN æœåŠ¡å™¨çš„监å¬ç«¯å£å¿…须通过在 NAT 盒的端å£æ˜ å°„设置暴露到互è”网上。请询问 NAT 盒的管ç†å‘˜æˆ–å‚阅 NAT 盒的手册在 NAT 盒上添加端å£æ˜ å°„设置。\r\n\r\n如果此消æ¯ä»æ˜¯ VPN æœåŠ¡å™¨æš´éœ²äº†ä¸€ä¸ª TCP 端å£åˆ°äº’è”网åŽï¼Œæ£€æŸ¥ VPN 客户端连接设置å±å¹•ä¸Šçš„ "ç¦ç”¨ NAT-T" å¤é€‰æ¡†ã€è€Œä½ çš„ VPN 客户端å‡çº§åˆ° Build 9428 或更高版本。\r\n\r\n
+
@@ -541,6 +551,11 @@ HUB_AO_DisableUserModeSecureNAT 如果您将此选项设置为éžé›¶å€¼ï¼Œé‚£
HUB_AO_DisableCheckMacOnLocalBridge 如果您将此选项设置为éžé›¶å€¼ï¼Œé‚£ä¹ˆ MAC 地å€é‡å¤æ£€æŸ¥åœ¨æœ¬åœ°æ¡¥åŠŸèƒ½ä¸Šå°†è¢«ç¦ç”¨ã€‚一些网络适é…器有å射传出的数æ®åŒ…å‘虚拟 HUB 的问题。虚拟 HUB 自动检测这样的é‡å¤ï¼Œå¹¶ä¸¢å¼ƒå®ƒä»¬ã€‚å¯ç”¨æ­¤æ ‡å¿—æ¥ç¦ç”¨æ£€æµ‹ï¼Œå¹¶ä¸¢å¼ƒã€‚
HUB_AO_DisableCorrectIpOffloadChecksum 如果您将此选项设置为éžé›¶å€¼ï¼Œé‚£ä¹ˆåœ¨æœ¬åœ°æ¡¥åŠŸèƒ½ä¸Šæ£€æŸ¥å’Œçº æ­£ IP 校验和值。有些有 IPã€TCP 或 UDP 包头的校验和å¸è½½å¼•æ“Žçš„网络适é…器,以ä¸å®Œæ•´çš„校验和值传输数æ®åŒ…。这样的数æ®åŒ…ä¸èƒ½è¢«æŽ¥æ”¶ç«¯æ­£ç¡®å¯¹å¾…。所以本地桥检测到这样的数æ®åŒ…,并纠正了它的校验和字段。å¯ç”¨æ­¤æ ‡å¿—æ¥ç¦ç”¨è¿™ç§çº æ­£ã€‚
HUB_AO_BroadcastLimiterStrictMode If you set this option to non-zero value, then the broadcast-storm detection algorithm will compare either source or destination IP address of each packet. If any of the two fields matches, the packet will be recorded on the short-term history of broadcast-storm detection state machine.
+HUB_AO_MaxLoggedPacketsPerMinute Maximum number of logging target packets per minute.
+HUB_AO_DoNotSaveHeavySecurityLogs Do not take heavy security log.
+HUB_AO_DropBroadcastsInPrivacyFilterMode Drop broadcasting packets if the both source and destination session is PrivacyFilter mode.
+HUB_AO_DropArpInPrivacyFilterMode Drop ARP packets if the both source and destination session is PrivacyFilter mode.
+
#关于失败连接对è¯æ¡†
ERRDLG_ERRMSG 错误(é”™è¯¯ä»£ç  %u) :\r\n\r\n%s\r\n
@@ -644,6 +659,8 @@ CT_b_using_selow_driver æ”¯æŒ SoftEther Lightweight Kernel-mode Ethernet Drive
CT_b_support_vgs æ”¯æŒ VPN Gate æœåŠ¡çš„æœåŠ¡å™¨åŠŸèƒ½
CT_b_support_vgs_in_client VPN Gate æœåŠ¡çš„æœåŠ¡å™¨åŠŸèƒ½ (VPN 客户端集æˆ)
CT_b_is_softether SoftEther VPN çš„å…费或开æºç‰ˆ
+CT_b_suppport_push_route é™æ€è·¯ç”±è¡¨æŽ¨é€åŠŸèƒ½
+CT_b_suppport_push_route_config é™æ€è·¯ç”±è¡¨æŽ¨é€åŠŸèƒ½ (å¯é…ç½®)
#相关策略
@@ -775,7 +792,7 @@ CM_ACCOUNT_ONLINE 已连接
CM_ACCOUNT_CONNECTING 连接中
CM_VLAN_ENABLED å·²å¯ç”¨
CM_VLAN_DISABLED å·²ç¦ç”¨
-CM_DELETE_ACCOUNT_MSG VPN 连接设置“%sâ€å°†åˆ é™¤ï¼Œä½ ç¡®å®šå—?
+CM_DELETE_ACCOUNT_MSG VPN 连接设置 "%s" 将删除,你确定�
CM_ST_ACCOUNT_NAME VPN 连接设置å称
CM_ST_CONNECTED 会è¯çŠ¶æ€
CM_ST_CONNECTED_TRUE è¿žæŽ¥å®Œæˆ (会è¯å»ºç«‹)
@@ -811,8 +828,8 @@ CM_ST_MAX_TCP TCP 连接数最大值
CM_ST_VLAN_ID VLAN ID
CM_ST_NO_VLAN ï¼
CM_ST_USE_ENCRYPT 加密
-CM_ST_USE_ENCRYPT_TRUE å·²å¯ç”¨
-CM_ST_USE_ENCRYPT_TRUE2 å·²å¯ç”¨ (算法: %S)
+CM_ST_USE_ENCRYPT_TRUE å·²å¯ç”¨ (算法: %S)
+CM_ST_USE_ENCRYPT_TRUE2 å·²å¯ç”¨
CM_ST_USE_ENCRYPT_FALSE å·²ç¦ç”¨ (ä¸åŠ å¯†)
CM_ST_USE_COMPRESS 使用压缩
CM_ST_UDP_ACCEL_ENABLED æ”¯æŒ UDP 加速
@@ -1591,7 +1608,7 @@ SM_SETUP_NO_LICENSE_KEY ç›®å‰æ­¤ SoftEther VPN Server 上没有注册任何一
# ----- ä¸å®Œå…¨ç¿»è¨³ã“ã“ã‹ã‚‰ -----
SM_HUBEXT_OPTION_TITLE 虚拟 HUB 扩展选项
SM_HUBEXT_OPTION_STATIC1 虚拟 HUB 扩展选项å…许您é…置这个虚拟 HUB 的详细å‚数。
-SM_HUBEXT_OPTION_STATIC2 标准,VPN Server 全部管ç†è€…åŠï¼Œè™šæ‹Ÿ HUB 管ç†è€…çš„åŒæ–¹éƒ½ï¼Œèƒ½ç¼–辑虚拟 HUB 高级选项。但,如果虚拟 HUB 管ç†é€‰æ‹©çš„ deny_hub_admin_change_ext_option 默认情况下,VPN æœåŠ¡å™¨çš„全局管ç†å‘˜å’Œå„虚拟 HUB 的管ç†å‘˜éƒ½å¯ä»¥ä¿®æ”¹è™šæ‹Ÿ HUB 扩展选项。\n但是,如果在虚拟 HUB 管ç†é€‰é¡¹ä¸­ deny_hub_admin_change_ext_option 被设置为 1,å„虚拟 HUB 的管ç†å‘˜å°±æ— æ³•ä¿®æ”¹è™šæ‹Ÿ HUB 扩展选项了 (åªèƒ½æŸ¥çœ‹)。
+SM_HUBEXT_OPTION_STATIC2 标准,VPN Server 全部管ç†è€…åŠï¼Œè™šæ‹Ÿ HUB 管ç†è€…çš„åŒæ–¹éƒ½ï¼Œèƒ½ç¼–辑虚拟 HUB 高级选项。但,如果虚拟 HUB 管ç†é€‰æ‹©çš„ deny_hub_admin_change_ext_option 默认情况下,VPN æœåŠ¡å™¨çš„全局管ç†å‘˜å’Œå„虚拟 HUB 的管ç†å‘˜éƒ½å¯ä»¥ä¿®æ”¹è™šæ‹Ÿ HUB 扩展选项。\r\n但是,如果在虚拟 HUB 管ç†é€‰é¡¹ä¸­ deny_hub_admin_change_ext_option 被设置为 1,å„虚拟 HUB 的管ç†å‘˜å°±æ— æ³•ä¿®æ”¹è™šæ‹Ÿ HUB 扩展选项了 (åªèƒ½æŸ¥çœ‹)。
SM_VLAN_COLUMN_0 网络适é…器å称
SM_VLAN_COLUMN_1 驱动程åºç§ç±»
SM_VLAN_COLUMN_2 驱动程åºæ–‡ä»¶å
@@ -1621,6 +1638,9 @@ SM_DDNS_FQDN_EMPTY (æ— )
SM_DDNS_OK_MSG åŠ¨æ€ DNS 主机å:%S%S\r\n\r\n您å¯ä»¥é€šè¿‡æŒ‡å®šä»¥ä¸Š DNS 主机å访问下é¢çš„ IP 地å€ã€‚\r\n\r\nIPv4 地å€ï¼š%s \r\nIPv6 地å€ï¼š%s\r\n\r\n您也å¯ä»¥æŒ‡å®šä¸‹åˆ—主机å的特殊形å¼æ¥æŒ‡å®š IPv4 或 IPv6 作为明确地å€ç±»åž‹ã€‚\r\n\r\n针对 IPv4 的主机å%S.v4%S \r\n针对 IPv6 的主机å:%S.v6%S。
SM_DDNS_OK_TITLE åŠ¨æ€ DNS 功能
SM_DDNS_OK_MSG2 åŠ¨æ€ DNS 主机å被更改为'%S'。\r\n\r\nå•å‡»æ示读å–更多的信æ¯ã€‚
+SM_DDNS_KEY_TITLE åŠ¨æ€ DNS 密钥
+SM_DDNS_KEY_MSG åŠ¨æ€ DNS 密钥: %s\r\n\r\n此密钥与当å‰çš„ DDNS å称相关è”。如果你的 VPN æœåŠ¡å™¨ç”µè„‘æŸå,丢失了密钥,当å‰çš„ DDNS å称将被永远å ç”¨ï¼Œä¸”其他 VPN æœåŠ¡å™¨å°†æ— æ³•ä½¿ç”¨ç›¸åŒçš„å称。\r\n如果你想继续使用相åŒçš„å称,请在互è”网æœåŠ¡ä¸Šã€æˆ–å¦ä¸€å°ç”µè„‘上ã€æˆ–在便笺纸上ä¿ç•™å¯†é’¥ã€‚\r\n当在新的 VPN æœåŠ¡å™¨è®¾ç½®å¯†é’¥æ—¶ï¼Œç¼–辑 VPN æœåŠ¡å™¨çš„é…置文件。请在 "declare DDnsClient" æŒ‡ä»¤ä¸‹ï¼Œç”¨è·Ÿéš "byte Key" 的值替æ¢â€‹å­—符串的密钥。\r\n请ä¸è¦åŒæ—¶åœ¨ä¸¤ä¸ªæˆ–多个 VPN æœåŠ¡å™¨ä¸Šè®¾ç½®ç›¸åŒçš„密钥。
+SM_DDNS_KEY_ERR æ— æ³•è¯»å– DNS 密钥。
SM_IPSEC_PSK_TOO_LONG 预共享密钥(PSK)有 10 个或更多的字æ¯ã€‚\r\n\r\næ®æŠ¥é“谷歌安å“的几个版本有一个 10 个或更多字æ¯ä½œä¸ºé¢„共享密钥的严é‡æ•…障。\r\nå› æ­¤ 9 个或少于 9 个字æ¯è¢«æŽ¨è作为预共享密钥。\r\n\r\n您è¦ä¿®æ”¹é¢„共享密钥å—?
SM_ADVANCED_REDIRECT_URL_HINT_TITLE 如何使用高级 HTTP é‡å®šå‘功能
SM_ADVANCED_REDIRECT_URL_HINT 高级 HTTP é‡å®šå‘(为专家)\r\n\r\n此字符串“<INFO>â€æ˜¯ä¸€ä¸ªå ä½ç¬¦ã€‚它å¯ä»¥åµŒå…¥é‡å®šå‘çš„ URL 中。\r\n\r\n嵌入 URL 示例:\r\nhttp://www.google.com/search?q=<INFO>|secret\r\n\r\n当客户端将被é‡å®šå‘,é‡å®šå‘的实际 URL 目的地将被å–代如下。\r\n\r\n用户å|会è¯ID|IP 地å€|日期和时间|哈希值\r\n\r\n替æ¢åŽç¤ºä¾‹ï¼šzurukko|SID-ZURUKKO-123|219.117.219.154|20131117100354|99707160AFE7A454042B2C47B064112D652452D7\r\n\r\nå„字段的详情æ述如下。\r\n\r\n用户åï¼šå½“å‰ VPN 会è¯çš„用户å将被放置。\r\n\r\n会è¯ID:VPN 会è¯çš„ä¼šè¯ ID 将被放置\r\n\r\n日期和时间:14 ä½æ•°å­—将以'YYYYMMDDHHMMSS’格å¼æ”¾ç½®(时区是 UTC)\r\n\r\n哈希值:代表 20 个字节二进制数æ®çš„一个 40 字符的å六进制字符串。二进制数æ®æ˜¯ SHA-1 哈希函数至临时字符串的结果。在é‡å®šå‘ URL 中“|â€ç¬¦å·åŽï¼Œä¸´æ—¶å­—符串是上述字段的ä½é˜µåˆ—加上秘密字符串的结åˆã€‚(在上é¢çš„例å­ä¸­ï¼Œâ€œç§˜å¯†â€æ˜¯ç§˜å¯†å­—符串)。如果在 URL 中没有“|â€ç¬¦å·ï¼Œæ²¡æœ‰å“ˆå¸Œå€¼å°†è¢«æ·»åŠ ã€‚\r\n\r\n哈希值的目的:秘密字符串如密钥般有效。感谢密钥。在é‡å®šå‘ URL 中接收é‡å®šå‘查询字符串的 CGI 程åºï¼Œå¯ä»¥éªŒè¯åŒ…å«åœ¨ URL 中å‚数的完整性。\r\n
@@ -1634,7 +1654,7 @@ SM_SETUP_STEP_SECURENAT æ­¤ VPN Server / Bridge å¯èƒ½ä»¥ç”¨æˆ·æ¨¡å¼æˆ–å—å…¶ä»
SM_SETUP_STEP_SECURENAT_TITLE 第3步。网桥虚拟 HUB 和物ç†ç½‘络
SM_UPDATE_CHECK_TITLE_VPNSERVER %S VPN Server (在主机'%S'上)
SM_UPDATE_CHECK_TITLE_VPNBRIDGE %S VPN Bridge (在主机'%S'上)
-SM_FACTORY_DEFAULT_WARNING 这将在 VPN Server / Bridge 上执行出厂å¤ä½è®¾ç½®ã€‚\r\nå½“å‰ VPN Server / Bridge é…置将被清除,将立å³åº”用åˆå§‹è®¾ç½®ã€‚\r\n在åšå‡ºåŽ‚å¤ä½è®¾ç½®å‰ï¼Œå»ºè®®æ‚¨å¤‡ä»½å½“å‰é…置。\r\n\r\n按 确定 执行出厂å¤ä½è®¾ç½®ã€‚ VPN Server / Bridge å°†é‡æ–°å¯åŠ¨ã€‚当å‰çš„管ç†è¿žæŽ¥å°†è¢«æ–­å¼€ï¼Œæ‰€ä»¥è¯·é‡æ–°è¿žæŽ¥åˆ° VPN Server / Bridge。\r\n\r\n按“å–消â€å–消æ“作。
+SM_FACTORY_DEFAULT_WARNING 这将在 VPN Server / Bridge 上执行出厂å¤ä½è®¾ç½®ã€‚\r\nå½“å‰ VPN Server / Bridge é…置将被清除,将立å³åº”用åˆå§‹è®¾ç½®ã€‚\r\n在åšå‡ºåŽ‚å¤ä½è®¾ç½®å‰ï¼Œå»ºè®®æ‚¨å¤‡ä»½å½“å‰é…置。\r\n\r\n按 确定 执行出厂å¤ä½è®¾ç½®ã€‚ VPN Server / Bridge å°†é‡æ–°å¯åŠ¨ã€‚当å‰çš„管ç†è¿žæŽ¥å°†è¢«æ–­å¼€ï¼Œæ‰€ä»¥è¯·é‡æ–°è¿žæŽ¥åˆ° VPN Server / Bridge。\r\n\r\n按 "å–消" å–消æ“作。
SM_FACTORY_DEFAULT_PERFORMED 在æœåŠ¡å™¨ä¸Šæ­£åœ¨æ‰§è¡Œå‡ºåŽ‚å¤ä½æ“作。\r\n\r\n按“确定â€é€€å‡ºå½“å‰ VPN Server 管ç†å™¨çš„会è¯â€œã€‚\r\n退出åŽï¼Œè¯·é‡æ–°å¯åŠ¨ VPN Server 管ç†å™¨å¹¶å†æ¬¡è¿žæŽ¥åˆ° VPN Server。\r\n然åŽä½ ä¼šçœ‹åˆ° VPN Server å¤ä½ã€‚
SM_AZURE_STATUS_CONNECTED 状æ€: 已连接
SM_AZURE_STATUS_NOT_CONNECTED 状æ€: 没有连接
@@ -1687,6 +1707,7 @@ DHCP_MAC_ADDRESS MAC 地å€
DHCP_IP_ADDRESS 分é…çš„ IP
DHCP_HOSTNAME 客户端主机å
NM_PASSWORD_MSG 管ç†å‘˜å¯†ç è®¾å®šå®Œæˆã€‚
+NM_PUSH_ROUTE_WARNING é™æ€è·¯ç”±è¡¨ä¸­æŒ‡å®šçš„文本å¯èƒ½æœ‰è¯­æ³•é”™è¯¯ã€‚
#关于版本信æ¯
@@ -2299,6 +2320,7 @@ R_HIDE2 éšè— IP 地å€å±å¹•(&O)
STATIC15 请设置连接到 VPN Server 时需è¦çš„用户认è¯ä¿¡æ¯ã€‚
B_REGIST_CLIENT_CERT 指定客户端è¯ä¹¦(&C)
B_IE 导入I&E代ç†æœåŠ¡å™¨è®¾ç½®
+R_DISABLE_NATT ç¦ç”¨ NAT-T
PREFIX D_CM_PROXY
@@ -2328,7 +2350,7 @@ STATIC9 秒
R_USE_DISCONNECT 设置æ¯ä¸ª TCP 的连接寿命(&A)
STATIC10 寿命(&P):
STATIC11 秒
-STATIC12 当使用两个或以上 TCP 连接时,å¯ä»¥ä½¿ç”¨â€œåŠåŒå·¥æ¨¡å¼â€ã€‚åŠåŒå·¥æ¨¡å¼ä¸‹å›ºå®šäº†æ¯ä¸ª TCP 连接的数æ®æ–¹å‘。例如,当使用 8 个 TCP 连接建立一个 VPN 时,VPN 隧é“的物ç†ç»“构将被固定为:4 个 TCP 连接专用于上行方å‘,其余 4 个连接专用于下行方å‘。
+STATIC12 当使用两个或以上 TCP 连接时,å¯ä»¥ä½¿ç”¨ "åŠåŒå·¥æ¨¡å¼"。åŠåŒå·¥æ¨¡å¼ä¸‹å›ºå®šäº†æ¯ä¸ª TCP 连接的数æ®æ–¹å‘。例如,当使用 8 个 TCP 连接建立一个 VPN 时,VPN 隧é“的物ç†ç»“构将被固定为: 4 个 TCP 连接专用于上行方å‘,其余 4 个连接专用于下行方å‘。
R_USE_HALF_CONNECTION 使用åŠåŒå·¥æ¨¡å¼(&H)
STATIC13 加密和压缩(&C):
STATIC14 通常 VPN 会è¯ä¸ºå®‰å…¨èµ·è§ä¼šè¢«åŠ å¯†ã€‚您也å¯ä»¥ç¦ç”¨åŠ å¯†ä»¥æ高åžåé‡ã€‚请注æ„,在ç¦ç”¨åŠ å¯†çš„情况下,数æ®åœ¨ç½‘络上是以明文方å¼ä¼ è¾“的。
@@ -2343,7 +2365,7 @@ R_MONITOR 监控模å¼(&D)
STATIC17 其它é…ç½®(&G):
R_NO_ROUTING ä¸è¦è°ƒæ•´è·¯ç”±è¡¨(&R)
STATIC18 除éžä½ å¾—到系统管ç†å‘˜çš„åŒæ„或者你有网络和安全方é¢çš„专业知识,å¦åˆ™è¯·ä¿æŒæ­¤å¯¹è¯æ¡†çš„默认设置。
-STATIC19 VoIP / QoS 功能å¯ä»¥å¤„ç†é«˜ä¼˜å…ˆçº§æ•°æ®åŒ…,如 IP 电è¯æ•°æ®åŒ…(VoIP)å¯ä»¥è¢«æ›´å¿«çš„传输。
+STATIC19 VoIP / QoS 功能å¯ä»¥å¤„ç†é«˜ä¼˜å…ˆçº§æ•°æ®åŒ…,如 IP 电è¯æ•°æ®åŒ… (VoIP) å¯ä»¥è¢«æ›´å¿«çš„传输。
R_DISABLE_QOS ç¦ç”¨ VoIP / &QoS 功能
IDOK 确定(&O)
IDCANCEL å–消
@@ -2417,6 +2439,7 @@ B_EULA 最终用户许å¯
B_IMPORTANT é‡è¦å¯äº‹
B_LEGAL 法律å¯äº‹
B_UPDATE_CONFIG é…置更新
+B_AUTHORS 作者åå•
PREFIX D_REMOTE
@@ -3098,6 +3121,9 @@ STATIC22 域å(&W):
STATIC23 DNS æœåŠ¡å™¨åœ°å€ 2 (&V):
IDOK 确定(&O)
IDCANCEL å–消
+S_1 é™æ€è·¯ç”±è¡¨æŽ¨åŠŸèƒ½ (拆分隧é“)
+S_2 推é€é™æ€è·¯ç”±è¡¨è‡³ VPN 客户端。
+B_PUSH 编辑该é™æ€è·¯ç”±è¡¨ä»¥æŽ¨é€
PREFIX D_NM_NAT
@@ -3853,6 +3879,8 @@ S_2 如果您没有连接到 IPv6 网络,“ å…¨çƒ IPv6 地å€â€œå°†ä¼šæ
IDCANCEL 退出(&X)
B_DISABLE ç¦ç”¨åŠ¨æ€ DNS 功能(&D)
B_PROXY 通过代ç†æœåŠ¡å™¨è¿žæŽ¥(&P)...
+S_STATUS8 DNS é’¥:
+B_HINT2 æ示
PREFIX D_SM_SPECIALLISTENER
@@ -4139,6 +4167,19 @@ IDCANCEL ä¸åŒæ„(&D)
S_BOLD 注æ„! ä¸è¦åœ¨ VPN 通讯ç¦æ­¢çš„国家使用 VPN Gate æœåŠ¡ã€‚
+PREFIX D_NM_PUSH
+CAPTION 编辑该é™æ€è·¯ç”±è¡¨ä»¥æŽ¨é€
+S1 这个虚拟 DHCP æœåŠ¡å™¨å¯ä»¥æŽ¨é€å¸¦ DHCP 应答消æ¯çš„æ— ç±»é™æ€è·¯ç”± (RFC 3442) 至 VPN 客户端。
+S2 VPN 客户端是å¦èƒ½å¤Ÿè¯†åˆ«æ— ç±»é™æ€è·¯ç”± (RFC 3442) å–决于目标 VPN 客户端软件。SoftEther VPN 客户端和 OpenVPN 客户端都支æŒæ— ç±»é™æ€è·¯ç”±ã€‚在 L2TP/IPSec å’Œ MS-SSTP å议上,兼容性å–决于客户端软件的实施。
+S3 如果你清除了虚拟 DHCP æœåŠ¡å™¨é€‰é¡¹çš„默认网关字段,您就å¯ä»¥å®žçŽ°æ‹†åˆ†éš§é“。在客户端一侧,为了使用拆分隧é“, L2TP/IPSec å’Œ MS-SSTP 客户端需è¦é…置为ä¸åˆ›å»ºé»˜è®¤ç½‘关。
+S4 您还å¯ä»¥é€šè¿‡çŽ°æœ‰çš„外部 DHCP æœåŠ¡å™¨æŽ¨é€æ— ç±»é™æ€è·¯ç”± (RFC 3442)。在这ç§æƒ…况下,在 SecureNAT ç¦ç”¨è™šæ‹Ÿ DHCP æœåŠ¡å™¨åŠŸèƒ½ï¼Œåœ¨è¿™ä¸€å±å¹•ä¸Šä½ ä¸éœ€è¦è®¾ç½®æ— ç±»è·¯ç”±ã€‚
+S5 编辑该é™æ€è·¯ç”±è¡¨ä»¥æŽ¨é€
+S6 例如: 192.168.5.0/255.255.255.0/192.168.4.254, 10.0.0.0/255.0.0.0/192.168.4.253\r\n\r\n用逗å·æˆ–空格字符æ¥æ‹†åˆ†å¤šæ¡ç›® (最多 64 æ¡ç›®)。\r\næ¯ä¸ªæ¡ç›®å¿…须以 "IP ç½‘ç»œåœ°å€ / å­ç½‘æŽ©ç  / 网关 IP 地å€" çš„æ ¼å¼æ¥æŒ‡å®šã€‚
+S7 请å‚阅 RFC3442 以了解无类路由。
+IDOK 确定(&O)
+IDCANCEL å–消
+
+
###########################################################################
@@ -5911,6 +5952,7 @@ CMD_DhcpGet_Column_GW 默认网关地å€
CMD_DhcpGet_Column_DNS DNS æœåŠ¡å™¨åœ°å€ 1
CMD_DhcpGet_Column_DNS2 DNS æœåŠ¡å™¨åœ°å€ 2
CMD_DhcpGet_Column_DOMAIN 域å
+CMD_DhcpGet_Column_PUSHROUTE é™æ€è·¯ç”±è¡¨æŽ¨é€
# DhcpEnable 命令
@@ -5928,7 +5970,7 @@ CMD_DhcpDisable_Args DhcpDisable
# DhcpSet 命令
CMD_DhcpSet 更改安全网络功能的虚拟 DHCP æœåŠ¡å™¨åŠŸèƒ½çš„设置
CMD_DhcpSet_Help 在现在管ç†çš„虚拟 HUB 内,更改虚拟 DHCP æœåŠ¡å™¨çš„设置。虚拟 DHCP æœåŠ¡å™¨è®¾ç½®åŒ…括: åˆ†é… IP 地å€èŒƒå›´ï¼Œå­ç½‘掩ç ï¼Œå‡ºç§ŸæœŸé™ï¼ŒåŠåˆ†é…给客户端的选项值。\n该指令在作为进群æ“作的 VPN Server 的虚拟æœåŠ¡å™¨ä¸Šä¸èƒ½æ‰§è¡Œã€‚
-CMD_DhcpSet_Args DhcpSet [/START:start_ip] [/END:end_ip] [/MASK:subnetmask] [/EXPIRE:sec] [/GW:gwip] [/DNS:dns] [/DNS2:dns2] [/DOMAIN:domain] [/LOG:yes|no]
+CMD_DhcpSet_Args DhcpSet [/START:start_ip] [/END:end_ip] [/MASK:subnetmask] [/EXPIRE:sec] [/GW:gwip] [/DNS:dns] [/DNS2:dns2] [/DOMAIN:domain] [/LOG:yes|no] [/PUSHROUTE:"routing_table"]
CMD_DhcpSet_START 指定地å€èŒƒå›´çš„开始点,以分å‘给客户。(例如: 192.168.30.10)
CMD_DhcpSet_END 指定地å€èŒƒå›´çš„结æŸç‚¹ï¼Œä»¥åˆ†å‘给客户。(例如: 192.168.30.200)
CMD_DhcpSet_MASK 指定对客户指定的å­ç½‘掩ç ã€‚(例如: 255.255.255.0)
@@ -5938,6 +5980,7 @@ CMD_DhcpSet_DNS 指定被通知到客户端的主 DNS æœåŠ¡å™¨çš„ IP 地å€ã
CMD_DhcpSet_DNS2 æŒ‡å®šè¢«é€šçŸ¥åˆ°å®¢æˆ·ç«¯çš„æ¬¡è¦ DNS æœåŠ¡å™¨ IP 地å€ã€‚当 SecureNAT 功能的虚拟 NAT 功能已ç»å¯ç”¨å¹¶æ­£åœ¨è¿è¡Œæ—¶ï¼Œæ‚¨å¯ä»¥ä¸ºæ­¤æŒ‡å®šä¸€ä¸ª SecureNAT 虚拟主机 IP 地å€ã€‚如果您指定的是 0 或者 none,那么客户端就ä¸ä¼šè¢« DNS æœåŠ¡å™¨åœ°å€é€šçŸ¥ã€‚
CMD_DhcpSet_DOMAIN 指定域å通知客户。如果指定 none,该域åä¸é€šçŸ¥å®¢æˆ·ã€‚
CMD_DhcpSet_LOG 指定是å¦å°†è™šæ‹Ÿ DHCP æœåŠ¡å™¨è¿è¡Œä¿å­˜ä¸ºå®‰å…¨æ—¥å¿—。指定 "yes" 则ä¿å­˜ã€‚此值与虚拟 NAT 功能的日志ä¿å­˜è®¾ç½®æ˜¯è”动的。
+CMD_DhcpSet_PUSHROUTE 指定é™æ€è·¯ç”±è¡¨æŽ¨é€ã€‚\n例如: "192.168.5.0/255.255.255.0/192.168.4.254, 10.0.0.0/255.0.0.0/192.168.4.253"\n用逗å·æˆ–空格字符æ¥æ‹†åˆ†å¤šæ¡ç›® (最多 64 æ¡ç›®)。æ¯ä¸ªæ¡ç›®å¿…须以 "IP 网络地å€/å­ç½‘掩ç /网关 IP 地å€" çš„æ ¼å¼æ¥æŒ‡å®šã€‚ \n这个虚拟 DHCP æœåŠ¡å™¨å¯ä»¥æŽ¨é€å¸¦DHCP应答消æ¯çš„æ— ç±»é™æ€è·¯ç”± (RFC 3442) 至 VPN 客户端。\nVPN 客户端是å¦èƒ½å¤Ÿè¯†åˆ«æ— ç±»é™æ€è·¯ç”± (RFC 3442) å–决于目标VPN客户端软件。SoftEther VPN 客户端和 OpenVPN 客户端都支æŒæ— ç±»é™æ€è·¯ç”±ã€‚在 L2TP/IPSec å’Œ MS-SSTP å议上,兼容性å–决于客户端软件的实施。如果你清除了虚拟 DHCP æœåŠ¡å™¨é€‰é¡¹çš„默认网关字段,您就å¯ä»¥å®žçŽ°æ‹†åˆ†éš§é“。在客户端一侧,为了使用拆分隧é“,L2TP/IPSec å’Œ MS-SSTP 客户端需è¦é…置为ä¸åˆ›å»ºé»˜è®¤ç½‘关。\n您还å¯ä»¥é€šè¿‡çŽ°æœ‰çš„外部 DHCP æœåŠ¡å™¨æŽ¨é€æ— ç±»é™æ€è·¯ç”± (RFC 3442)。在这ç§æƒ…况下,在 SecureNAT ç¦ç”¨è™šæ‹Ÿ DHCP æœåŠ¡å™¨åŠŸèƒ½ï¼Œåœ¨è¿™ä¸€å±å¹•ä¸Šä½ ä¸éœ€è¦è®¾ç½®æ— ç±»è·¯ç”±ã€‚\n请å‚阅 RFC 3442 以了解无类路由。
CMD_DhcpSet_Prompt_START 分å‘地å€èŒƒå›´çš„开始:
CMD_DhcpSet_Prompt_END 分å‘地å€èŒƒå›´çš„结æŸ:
CMD_DhcpSet_Prompt_MASK å­ç½‘掩ç :
@@ -7085,3 +7128,4 @@ SW_LINK_NAME_LANGUAGE_COMMENT 修改 %s 的显示语言设置。
SW_LINK_NAME_DEBUG 调试信æ¯é‡‡é›†å·¥å…·
SW_LINK_NAME_DEBUG_COMMENT 采集 SoftEther VPN 的调试信æ¯ã€‚仅在您的支æŒäººå‘˜è¦æ±‚你这样åšæ—¶ä½¿ç”¨æ­¤å·¥å…·ã€‚
+
diff --git a/src/bin/hamcore/strtable_en.stb b/src/bin/hamcore/strtable_en.stb
index 655e6269..32b95194 100644
--- a/src/bin/hamcore/strtable_en.stb
+++ b/src/bin/hamcore/strtable_en.stb
@@ -290,6 +290,7 @@ DLG_OPEN_CONFIG Specify the Configuration File to Import
DLG_STRING_DEFTITLE String Input
DLG_STRING_DEFINFO Enter strings.
DLG_ABOUT_LEGAL Legal Notices
+DLG_ABOUT_AUTHORS List of Authors
DLG_UPDATE_DATE \ (Released on %S)
DLG_UPDATE_HINT Press OK to view the information of the latest update on the web browser.\r\n\r\nYou have to download and install updates manually. If you want to update software on the other computer you have to log in to the computer by Remote Desktop or SSH to perform the download and update.
@@ -447,6 +448,9 @@ WINVER_ERROR_PC_REMOTE the remote server
# Warning for Open-source Version
OSS_MSG Welcome to the SoftEther VPN Server Academic Version!\r\n\r\n\r\nThis VPN Server is open-source free software developed as academic research at University of Tsukuba, Japan, and distributed from the SoftEther VPN Project (http://www.softether.org/), for free of charge for the public interests.\r\n\r\nSoftEther VPN software is distributed to public as a part of the joint-research contract between University of Tsukuba and SoftEther VPN Project. SoftEther VPN software is developed and published for JUST AN ACADEMIC RESEARCH PURPOSE. Therefore no support service are provided about SoftEther VPN software even if it contains bugs or vulnerabilities. A user will be liable for the result of use SoftEther VPN. The developers and publishers of SoftEther VPN will never be liable for either any consequences or damages.\r\n\r\nEnjoy using VPN with SoftEther VPN Server.\r\n\r\nFor more details of SoftEther VPN, visit http://www.softether.org/.\r\n\r\n
+NATT_MSG ** Connected with NAT traversal - might be unstable **\r\n\r\nThis VPN Client is connected to the VPN Server '%S' by using the NAT Traversal (UDP Hole Punching) technology.\r\n\r\nNAT Traversal allows the VPN Server behind the NAT-box to accept VPN connections from VPN Client without any port-forwarding setting on the NAT-box.\r\n\r\nHowever, NAT Traversal-based VPN sessions sometimes become unstable, because NAT Traversal uses UDP-based protocol. For example, the VPN tunnel disconnects every 5 minutes if there is a poor NAT-box between the VPN Server and the VPN Client. Some large-scale NAT gateways in cheap ISPs sometimes cause the same problem on NAT Traversal. This is a problem of routers or ISPs. This is not a problem of SoftEther VPN software.\r\n\r\nTo solve the unstable tunnel problem, you should connect to the VPN Server's TCP listener port directly, instead of using NAT Traversal. To connect to the VPN Server directly by using TCP, a listener port of the VPN Server must be exposed to the Internet by a port-forward setting on the NAT-box. Ask the administrator of the NAT-box, or refer to the manual of the NAT-box to add a port-forwarding setting on the NAT-box.\r\n\r\nIf this message still remains despite the VPN Server is exposing a TCP port to the Internet, check the "Disable NAT-T" checkbox on the VPN Client connection setting screen.\r\n\r\n
+NATT_MSG2 ** Connected with NAT traversal - might be unstable **\r\n\r\nThis VPN Client is connected to the VPN Server '%S' by using the NAT Traversal (UDP Hole Punching) technology.\r\n\r\nNAT Traversal allows the VPN Server behind the NAT-box to accept VPN connections from VPN Client without any port-forwarding setting on the NAT-box.\r\n\r\nHowever, NAT Traversal-based VPN sessions sometimes become unstable, because NAT Traversal uses UDP-based protocol. For example, the VPN tunnel disconnects every 5 minutes if there is a poor NAT-box between the VPN Server and the VPN Client. Some large-scale NAT gateways in cheap ISPs sometimes cause the same problem on NAT Traversal. This is a problem of routers or ISPs. This is not a problem of SoftEther VPN software.\r\n\r\nTo solve the unstable tunnel problem, you should connect to the VPN Server's TCP listener port directly, instead of using NAT Traversal. To connect to the VPN Server directly by using TCP, a listener port of the VPN Server must be exposed to the Internet by a port-forward setting on the NAT-box. Ask the administrator of the NAT-box, or refer to the manual of the NAT-box to add a port-forwarding setting on the NAT-box.\r\n\r\nIf this message still remains despite the VPN Server is exposing a TCP port to the Internet, check the "Disable NAT-T" checkbox on the VPN Client connection setting screen after upgrading the VPN Client to Build 9428 or later.\r\n\r\n
+
# Virtual HUB Admin Options
@@ -541,6 +545,10 @@ HUB_AO_DisableUserModeSecureNAT If you set this option to non-zero value, the
HUB_AO_DisableCheckMacOnLocalBridge If you set this option to non-zero value, the MAC address duplication check will be disabled on the Local Bridge function. There might be a case when some network adapters has a problem that reflects outgoing packets towards the Virtual Hub. A Virtual HUB detects such duplications automatically, and discards them. Enable this flag to disable the detection and discarding.
HUB_AO_DisableCorrectIpOffloadChecksum If you set this option to non-zero value, then the checking and correction of IP check-sum value on the Local Bridge function. Some network adapters, which have IP, TCP or UDP header check-sum offloading engines, transmit packets with incomplete check-sum values. Such packets cannot be treated correctly by receiver-side. So the Local Bridge detects such packets and corrects its check-sum fields. Enable this flag to disable such correction.
HUB_AO_BroadcastLimiterStrictMode If you set this option to non-zero value, then the broadcast-storm detection algorithm will compare either source or destination IP address of each packet. If any of the two fields matches, the packet will be recorded on the short-term history of broadcast-storm detection state machine.
+HUB_AO_MaxLoggedPacketsPerMinute Maximum number of logging target packets per minute.
+HUB_AO_DoNotSaveHeavySecurityLogs Do not take heavy security log.
+HUB_AO_DropBroadcastsInPrivacyFilterMode Drop broadcasting packets if the both source and destination session is PrivacyFilter mode.
+HUB_AO_DropArpInPrivacyFilterMode Drop ARP packets if the both source and destination session is PrivacyFilter mode.
# Concerning failed connection dialogs
@@ -646,6 +654,8 @@ CT_b_using_selow_driver SoftEther Lightweight Kernel-mode Ethernet Driver is Act
CT_b_support_vgs VPN Gate Service Server Functions are Supported
CT_b_support_vgs_in_client VPN Gate Service Server Functions (VPN Client integrated)
CT_b_is_softether Either Free or Open-Source Version of SoftEther VPN
+CT_b_suppport_push_route Static Routing Table Pushing Function
+CT_b_suppport_push_route_config Static Routing Table Pushing Function (Configurable)
# Concerning policies
POL_TITLE_STR Policy Name
@@ -1129,9 +1139,9 @@ SM_PASSWORD_TYPE_STR Password for Administration Connection
SM_HUB_COLUMN_1 Virtual Hub Name
SM_HUB_COLUMN_2 Status
SM_HUB_COLUMN_3 Type
-SM_HUB_COLUMN_4 User
-SM_HUB_COLUMN_5 Group
-SM_HUB_COLUMN_6 Session
+SM_HUB_COLUMN_4 Users
+SM_HUB_COLUMN_5 Groups
+SM_HUB_COLUMN_6 Sessions
SM_HUB_COLUMN_7 MAC Tables
SM_HUB_COLUMN_8 IP Tables
SM_HUB_COLUMN_9 Num Logins
@@ -1610,6 +1620,9 @@ SM_DDNS_FQDN_EMPTY (None)
SM_DDNS_OK_MSG The Dynamic DNS hostname: %S%S\r\n\r\nYou can access to the below IP address by specifying the above DNS hostname.\r\n\r\nIPv4 Address: %s\r\nIPv6 Address: %s\r\n\r\nYou can also specify the following special forms of hostnames to specify IPv4 or IPv6 as the address-type explicitly.\r\n\r\nHostname for IPv4: %S.v4%S\r\nHostname for IPv6: %S.v6%S\r\n
SM_DDNS_OK_TITLE Dynamic DNS Function
SM_DDNS_OK_MSG2 The Dynamic DNS hostname has been changed to '%S'.\r\n\r\nClick Hint to read additional information.
+SM_DDNS_KEY_TITLE Dynamic DNS Key
+SM_DDNS_KEY_MSG Your Dynamic DNS Private Key: %s\r\n\r\nThis is the private key which is associated with your current DDNS name. If your VPN Server PC damaged and lost the key, the current DDNS name will be occupied forever and other VPN Server will not be able to use the same name.\r\nIf you want to continue to use the same name, keep the key on a safe place, such as an Internet storage, an another PC or a notepad.\r\nWhen applying the key to the new VPN Server, edit the configuration file of the VPN Server to replace the key by the string in the value following to "byte Key" in the "declare DDnsClient" directive.\r\nDo not use the duplicated key to two or more VPN Servers at the same time.
+SM_DDNS_KEY_ERR Failed to read the DNS key.
SM_IPSEC_PSK_TOO_LONG The pre-shared key (PSK) has 10 or more letters.\r\n\r\nIt is reported that several versions of Google Android has a serious bug with 10 or more letters pre-shared key.\r\nTherefore 9 or less letters are recommended for pre-shared key.\r\n\r\nDo you want to modify the pre-shared key?
SM_ADVANCED_REDIRECT_URL_HINT_TITLE How to Use Advanced HTTP Redirection Function
SM_ADVANCED_REDIRECT_URL_HINT Advanced HTTP Redirection (For Experts)\r\n\r\nThe string "<INFO>" is a place holder. It can embedded on the URL of redirection.\r\n\r\nEmbedded URL Example:\r\nhttp://www.google.com/search?q=<INFO>|secret\r\n\r\nWhen the client is being redirected, the actual destination URL of redirection will be replaced as follows.\r\n\r\nUsername|Session ID|IP Address|Date and Time|Hash Value\r\n\r\\nAfter Replacement Example: zurukko|SID-ZURUKKO-123|219.117.219.154|20131117100354|99707160AFE7A454042B2C47B064112D652452D7\r\n\r\nThe details of each fields are described as following.\r\n\r\nUsername: The username using for the current VPN Session will be placed.\r\n\r\nSession ID: The Session ID of the VPN Session will be placed.\r\n\r\nDate and Time: 14-digits will be placed as 'YYYYMMDDHHMMSS' format (Time zone is UTC).\r\n\r\nHash Value: A 40-characters hexadecimal strings which represent 20 bytes binary data. The binary data is the result of SHA-1 hash function to the temporary string. The temporary string is the combination of the bit-array of the above fields plus the secret string after the '|' symbol in the redirection URL. (In the above example, "secret" is the secret string.) If there are no '|' symbols in the URL, no hash value will be appended.\r\n\r\nThe Purpose of Hash Value: The secret string is effective as the secret key. Thanks to the secret key, the CGI program which receives the query strings on the redirected URL can verify the integrity of the parameters included in the URL.\r\n
@@ -1677,6 +1690,7 @@ DHCP_MAC_ADDRESS MAC Address
DHCP_IP_ADDRESS Allocated IP
DHCP_HOSTNAME Client Host Name
NM_PASSWORD_MSG The administration password has been set.
+NM_PUSH_ROUTE_WARNING The specified text of the static routing table may have a syntax error.
# Concerning version information
@@ -2287,6 +2301,7 @@ R_HIDE2 Hide IP Address Screens
STATIC15 Set the user authentication information that is required when connecting to the VPN Server.
B_REGIST_CLIENT_CERT Specify Client &Certificate
B_IE Import I&E Proxy Server Settings
+R_DISABLE_NATT Disable NAT-T
PREFIX D_CM_PROXY
@@ -2405,6 +2420,7 @@ B_EULA &End User License
B_IMPORTANT &Important Notices
B_LEGAL &Legal Notices
B_UPDATE_CONFIG &Configure Updates
+B_AUTHORS List of &Authors
PREFIX D_REMOTE
@@ -3088,6 +3104,9 @@ STATIC22 Domain Name:
STATIC23 DNS &Server Address 2:
IDOK &OK
IDCANCEL Cancel
+S_1 Static routing table pushing function (for split tunneling)
+S_2 Push the static routing table to VPN clients.
+B_PUSH Edit the static routing table to push
PREFIX D_NM_NAT
@@ -3771,7 +3790,7 @@ R_ETHERIP Enable &EtherIP / L2TPv3 over IPsec Server Function
B_DETAIL EtherIP / L2TPv3 &Detail Settings
S07 IPsec &Common Settings
S_PSK IPsec &Pre-Shared Key:
-S_PSK2 IPsec Pre-Shared Key is also called "PSKs" or "Secrets". Specify it with almost eight ASCII characters, and let all VPN users know.
+S_PSK2 IPsec Pre-Shared Key is also called "PSKs" or "Secrets". Specify it with around eight ASCII characters, and let all VPN users know.
IDOK &OK
IDCANCEL Cancel
@@ -3844,7 +3863,8 @@ S_2 If you are not connected to IPv6 Internet, "Global IPv6 Address" should
IDCANCEL E&xit
B_DISABLE &Disable Dynamic DNS Function
B_PROXY Connect via &Proxy Server...
-
+S_STATUS8 DNS Key:
+B_HINT2 Hint
PREFIX D_SM_SPECIALLISTENER
CAPTION VPN over ICMP / DNS Function Settings
@@ -4132,6 +4152,18 @@ IDCANCEL &Disagree
S_BOLD Caution! Do Not Use the VPN Gate Services in Countries where VPN Communications are Prohibited.
+PREFIX D_NM_PUSH
+CAPTION Edit the static routing table to push
+S1 This Virtual DHCP Server can push the classless static routes (RFC 3442) with DHCP reply messages to VPN clients.
+S2 Whether or not a VPN client can recognize the classless static routes (RFC 3442) depends on the target VPN client software. SoftEther VPN Client and OpenVPN Client are supporting the classless static routes. On L2TP/IPsec and MS-SSTP protocols, the compatibility depends on the implementation of the client software.
+S3 You can realize the split tunneling if you clear the default gateway field on the Virtual DHCP Server options. On the client side, L2TP/IPsec and MS-SSTP clients need to be configured not to set up the default gateway for the split tunneling usage.
+S4 You can also push the classless static routes (RFC 3442) by your existing external DHCP server. In that case, disable the Virtual DHCP Server function on SecureNAT, and you need not to set up the classless routes on this screen.
+S5 Edit the static routing table to push
+S6 Example: 192.168.5.0/255.255.255.0/192.168.4.254, 10.0.0.0/255.0.0.0/192.168.4.253\r\n\r\nSplit multiple entries (maximum: 64 entries) by comma or space characters.\r\nEach entry must be specified in the "IP network address/subnet mask/gateway IP address" format.
+S7 See the RFC 3442 to understand the classless routes.
+IDOK &OK
+IDCANCEL Cancel
+
###########################################################################
@@ -5904,6 +5936,7 @@ CMD_DhcpGet_Column_GW Default Gateway Address
CMD_DhcpGet_Column_DNS DNS Server Address 1
CMD_DhcpGet_Column_DNS2 DNS Server Address 2
CMD_DhcpGet_Column_DOMAIN Domain Name
+CMD_DhcpGet_Column_PUSHROUTE Static Routing Table to Push
# DhcpEnable command
@@ -5921,7 +5954,7 @@ CMD_DhcpDisable_Args DhcpDisable
# DhcpSet command
CMD_DhcpSet Change Virtual DHCP Server Function Setting of SecureNAT Function
CMD_DhcpSet_Help Use this to change the Virtual DHCP Server setting of the currently managed Virtual Hub. The Virtual DHCP Server settings include the following items: distribution address band, subnet mask, lease limit, and option values assigned to clients. \nYou cannot execute this command for Virtual Hubs of VPN Servers operating as a cluster.
-CMD_DhcpSet_Args DhcpSet [/START:start_ip] [/END:end_ip] [/MASK:subnetmask] [/EXPIRE:sec] [/GW:gwip] [/DNS:dns] [/DNS2:dns2][/DOMAIN:domain] [/LOG:yes|no]
+CMD_DhcpSet_Args DhcpSet [/START:start_ip] [/END:end_ip] [/MASK:subnetmask] [/EXPIRE:sec] [/GW:gwip] [/DNS:dns] [/DNS2:dns2][/DOMAIN:domain] [/LOG:yes|no] [/PUSHROUTE:"routing_table"]
CMD_DhcpSet_START Specify the start point of the address band to be distributed to the client. (Example: 192.168.30.10)
CMD_DhcpSet_END Specify the end point of the address band to be distributed to the client. (Example: 192.168.30.200)
CMD_DhcpSet_MASK Specify the subnet mask to be specified for the client. (Example: 255.255.255.0)
@@ -5931,6 +5964,7 @@ CMD_DhcpSet_DNS Specify the IP address of the primary DNS Server to be notifie
CMD_DhcpSet_DNS2 Specify the IP address of the secondary DNS Server to be notified to the client. You can specify a SecureNAT Virtual Host IP address for this when the SecureNAT Function's Virtual NAT Function has been enabled and is being used also. If you specify 0 or none, then the client will not be notified of the DNS Server address.
CMD_DhcpSet_DOMAIN Specify the domain name to be notified to the client. If you specify none, then the client will not be notified of the domain name.
CMD_DhcpSet_LOG Specify whether or not to save the Virtual DHCP Server operation in the Virtual Hub security log. Specify "yes" to save it. This value is interlinked with the Virtual NAT Function log save setting.
+CMD_DhcpSet_PUSHROUTE Specify the static routing table to push.\nExample: "192.168.5.0/255.255.255.0/192.168.4.254, 10.0.0.0/255.0.0.0/192.168.4.253"\nSplit multiple entries (maximum: 64 entries) by comma or space characters. Each entry must be specified in the "IP network address/subnet mask/gateway IP address" format.\nThis Virtual DHCP Server can push the classless static routes (RFC 3442) with DHCP reply messages to VPN clients.\nWhether or not a VPN client can recognize the classless static routes (RFC 3442) depends on the target VPN client software. SoftEther VPN Client and OpenVPN Client are supporting the classless static routes. On L2TP/IPsec and MS-SSTP protocols, the compatibility depends on the implementation of the client software. You can realize the split tunneling if you clear the default gateway field on the Virtual DHCP Server options. On the client side, L2TP/IPsec and MS-SSTP clients need to be configured not to set up the default gateway for the split tunneling usage.\nYou can also push the classless static routes (RFC 3442) by your existing external DHCP server. In that case, disable the Virtual DHCP Server function on SecureNAT, and you need not to set up the classless routes on this command.\nSee the RFC 3442 to understand the classless routes.
CMD_DhcpSet_Prompt_START Start Point for Distributed Address Band:
CMD_DhcpSet_Prompt_END End Point for Distributed Address Band:
CMD_DhcpSet_Prompt_MASK Subnet Mask:
diff --git a/src/bin/hamcore/strtable_ja.stb b/src/bin/hamcore/strtable_ja.stb
index 6cc51bd1..5cfb4f2b 100644
--- a/src/bin/hamcore/strtable_ja.stb
+++ b/src/bin/hamcore/strtable_ja.stb
@@ -293,6 +293,7 @@ DLG_OPEN_CONFIG インãƒãƒ¼ãƒˆã™ã‚‹ã‚³ãƒ³ãƒ•ã‚£ã‚°ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãƒ•ã‚¡ã‚¤ãƒ
DLG_STRING_DEFTITLE 文字列ã®å…¥åŠ›
DLG_STRING_DEFINFO 文字列を入力ã—ã¦ãã ã•ã„。
DLG_ABOUT_LEGAL 法律上ã®é€šçŸ¥
+DLG_ABOUT_AUTHORS 開発者ã®ä¸€è¦§
DLG_UPDATE_DATE \ (%S ã«ãƒªãƒªãƒ¼ã‚¹)
DLG_UPDATE_HINT [OK] をクリックã™ã‚‹ã¨ã€Web ブラウザãŒé–‹ã„ã¦æœ€æ–°ã®ã‚¢ãƒƒãƒ—デートã«é–¢ã™ã‚‹æƒ…å ±ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚\r\n\r\nアップデートã®ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã¨ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã¯æ‰‹å‹•ã§è¡Œã†å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚ä»–ã®ã‚³ãƒ³ãƒ”ュータ上ã®ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ã‚¢ãƒƒãƒ—デートを行ã†å ´åˆã¯ã€ãã®ã‚³ãƒ³ãƒ”ュータã«ãƒªãƒ¢ãƒ¼ãƒˆãƒ‡ã‚¹ã‚¯ãƒˆãƒƒãƒ—ã‚„ SSH ãªã©ã§ãƒ­ã‚°ã‚¤ãƒ³ã—ã¦ãƒ€ã‚¦ãƒ³ãƒ­ãƒ¼ãƒ‰ã¨ã‚¢ãƒƒãƒ—デート作業を行ã£ã¦ãã ã•ã„。\r\n
@@ -469,6 +470,11 @@ WINVER_ERROR_PC_REMOTE 接続先ã®ã‚µãƒ¼ãƒãƒ¼ã‚³ãƒ³ãƒ”ュータ
OSS_MSG ã¯ã˜ã‚ã« - SoftEther VPN Server ã«ã¤ã„ã¦\r\n\r\nã“ã® VPN Server ã¯ã€ç­‘波大学ã«ãŠã„ã¦å­¦è¡“実験目的ã§é–‹ç™ºã•ã‚Œ SoftEther プロジェクト http://www.softether.org/ ã§ç„¡å„Ÿé…布ã•ã‚Œã¦ã„るオープンソースã®ãƒ•ãƒªãƒ¼ã‚½ãƒ•ãƒˆã§ã™ã€‚\r\nSoftEther VPN ソフトウェアã¯å›½ç«‹å¤§å­¦æ³•äººç­‘波大学ã¨ã‚½ãƒ•ãƒˆã‚¤ãƒ¼ã‚µæ ªå¼ä¼šç¤¾ã¨ã®å…±åŒç ”究契約ã®ä¸€ç’°ã¨ã—ã¦åºƒã公開ã•ã‚Œã¦ã„ã‚‹ã‚‚ã®ã§ã™ã€‚SoftEther VPN ソフトウェアã¯å­¦è¡“実験目的ã§é–‹ç™ºãƒ»å…¬é–‹ã•ã‚Œã¦ãŠã‚Šã¾ã™ã€‚SoftEther VPN ソフトウェアã«å«ã¾ã‚Œã‚‹ä¸å…·åˆç­‰ã«ã¤ã„ã¦ã®ã‚µãƒãƒ¼ãƒˆç­‰ã¯æä¾›ã•ã‚Œã¦ãŠã‚‰ãšã€åˆ©ç”¨è€…ãŒã™ã¹ã¦ã®è²¬ä»»ã‚’è² ã†ã“ã¨ã«ãªã‚Šã¾ã™ã€‚本ソフトウェアã®é–‹ç™ºè€…・é…布者ã¯ã€SoftEther VPN ソフトウェアã®åˆ©ç”¨ã®çµæžœã€åˆ©ç”¨è€…ã«ç”Ÿã˜ã‚‹æ失等ã«ã¤ã„ã¦ã€ä¸€åˆ‡è²¬ä»»ã‚’è² ã„ã¾ã›ã‚“。\r\n\r\nã“れらã®ã“ã¨ã«åˆæ„ã„ãŸã ã„ãŸä¸Šã§ã€SoftEther VPN Server を用ã„ãŸé€šä¿¡ã‚’ãŠæ¥½ã—ã¿ãã ã•ã„。\r\n\r\nSoftEther VPN ã«ã¤ã„ã¦è©³ã—ã㯠http://www.softether.org/ ã‚’ã”å‚ç…§ãã ã•ã„。\r\n\r\n
+# NAT Traversal ã«é–¢ã™ã‚‹è­¦å‘Š
+NATT_MSG ** NAT Traversal 接続 - 安定性低下ã®å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ **\r\n\r\nVPN Client 㯠VPN Server '%S' ã« NAT トラãƒãƒ¼ã‚µãƒ« (UDP ホールパンãƒãƒ³ã‚°) モードã§æŽ¥ç¶šã—ã¾ã—ãŸã€‚\r\n\r\nNAT トラãƒãƒ¼ã‚µãƒ«ã«ã‚ˆã£ã¦ã€VPN Client 㯠NAT やファイアウォールã®èƒŒå¾Œã«ã‚ã‚‹ VPN Server ã«ã€ãれら㮠NAT やファイアウォールã§ã®ãƒãƒ¼ãƒˆãƒ•ã‚©ãƒ¯ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã®è¨­å®šã‚’è¡Œã†ã“ã¨ãªã接続ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\r\n\r\nã—ã‹ã—ã€NAT トラãƒãƒ¼ã‚µãƒ«ã¯ UDP をベースã¨ã—ãŸé€šä¿¡ã‚’使用ã™ã‚‹ãŸã‚ã€VPN セッションãŒä¸å®‰å®šã«ãªã‚‹åŽŸå› ã¨ãªã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ãŸã¨ãˆã°ã€å®‰ä¾¡ãª NAT ルータ㌠VPN Server 㨠VPN Client ã¨ã®é–“ã«å­˜åœ¨ã™ã‚‹å ´åˆã€NAT トラãƒãƒ¼ã‚µãƒ«ä¸Šã® VPN トンãƒãƒ«ã¯ 5 分ã”ã¨ã«åˆ‡æ–­ã•ã‚Œã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ã¾ãŸã€å®‰ä¾¡ãª ISP ãŒå¤§è¦æ¨¡ãª NAT を使用ã—ã¦ã„ã‚‹å ´åˆã«ã‚‚ NAT トラãƒãƒ¼ã‚µãƒ«ã¯ä¸å®‰å®šã«ãªã‚Šã¾ã™ã€‚ã“ã‚Œã¯ãƒ«ãƒ¼ã‚¿ã‚„ ISP ã®å“質ã®å•é¡Œã§ã‚ã‚Šã€SoftEther VPN ã®å•é¡Œã§ã¯ã‚ã‚Šã¾ã›ã‚“。\r\n\r\nã“れを解決ã™ã‚‹ãŸã‚ã«ã¯ã€NAT トラãƒãƒ¼ã‚µãƒ«ã‚’使用ã™ã‚‹ã®ã§ã¯ãªãã€ç›´æŽ¥ TCP/IP ã«ã‚ˆã£ã¦ VPN Server ã®ãƒªã‚¹ãƒŠãƒ¼ãƒãƒ¼ãƒˆã« VPN Client ãŒæŽ¥ç¶šã™ã‚‹ã“ã¨ãŒã§ãるよã†ã«ã—ã¾ã™ã€‚ãã®ãŸã‚ã«ã¯ã€VPN Server ã®ãƒªã‚¹ãƒŠãƒ¼ãƒãƒ¼ãƒˆãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆã«å¯¾ã—ã¦å…¬é–‹ã•ã‚Œã‚‹ã‚ˆã†ã«ã€NAT ã«ãŠã‘ã‚‹ãƒãƒ¼ãƒˆãƒ•ã‚©ãƒ¯ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°è¨­å®šã‚’è¡Œã£ã¦ãã ã•ã„。NAT ã«ãŠã‘ã‚‹ãƒãƒ¼ãƒˆãƒ•ã‚©ãƒ¯ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°è¨­å®šã®æ–¹æ³•ã¯ã€NAT ã®ç®¡ç†è€…ã«å•ã„åˆã‚ã›ã‚‹ã‹ã€NAT 製å“ã®èª¬æ˜Žæ›¸ã‚’ãŠèª­ã¿ãã ã•ã„。\r\n\r\nVPN Server ㌠TCP ãƒãƒ¼ãƒˆã‚’インターãƒãƒƒãƒˆã«å¯¾ã—ã¦å…¬é–‹ã—ã¦ã„ã‚‹ã«ã‚‚é–¢ã‚らãšã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒè¡¨ç¤ºã•ã‚Œã‚‹å ´åˆã¯ã€VPN Client ã®æŽ¥ç¶šè¨­å®šç”»é¢ã§ã€ŒNAT-T 無効ã€ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。\r\n\r\n
+NATT_MSG2 ** NAT Traversal 接続 - 安定性低下ã®å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ **\r\n\r\nVPN Client 㯠VPN Server '%S' ã« NAT トラãƒãƒ¼ã‚µãƒ« (UDP ホールパンãƒãƒ³ã‚°) モードã§æŽ¥ç¶šã—ã¾ã—ãŸã€‚\r\n\r\nNAT トラãƒãƒ¼ã‚µãƒ«ã«ã‚ˆã£ã¦ã€VPN Client 㯠NAT やファイアウォールã®èƒŒå¾Œã«ã‚ã‚‹ VPN Server ã«ã€ãれら㮠NAT やファイアウォールã§ã®ãƒãƒ¼ãƒˆãƒ•ã‚©ãƒ¯ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã®è¨­å®šã‚’è¡Œã†ã“ã¨ãªã接続ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\r\n\r\nã—ã‹ã—ã€NAT トラãƒãƒ¼ã‚µãƒ«ã¯ UDP をベースã¨ã—ãŸé€šä¿¡ã‚’使用ã™ã‚‹ãŸã‚ã€VPN セッションãŒä¸å®‰å®šã«ãªã‚‹åŽŸå› ã¨ãªã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ãŸã¨ãˆã°ã€å®‰ä¾¡ãª NAT ルータ㌠VPN Server 㨠VPN Client ã¨ã®é–“ã«å­˜åœ¨ã™ã‚‹å ´åˆã€NAT トラãƒãƒ¼ã‚µãƒ«ä¸Šã® VPN トンãƒãƒ«ã¯ 5 分ã”ã¨ã«åˆ‡æ–­ã•ã‚Œã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ã¾ãŸã€å®‰ä¾¡ãª ISP ãŒå¤§è¦æ¨¡ãª NAT を使用ã—ã¦ã„ã‚‹å ´åˆã«ã‚‚ NAT トラãƒãƒ¼ã‚µãƒ«ã¯ä¸å®‰å®šã«ãªã‚Šã¾ã™ã€‚ã“ã‚Œã¯ãƒ«ãƒ¼ã‚¿ã‚„ ISP ã®å“質ã®å•é¡Œã§ã‚ã‚Šã€SoftEther VPN ã®å•é¡Œã§ã¯ã‚ã‚Šã¾ã›ã‚“。\r\n\r\nã“れを解決ã™ã‚‹ãŸã‚ã«ã¯ã€NAT トラãƒãƒ¼ã‚µãƒ«ã‚’使用ã™ã‚‹ã®ã§ã¯ãªãã€ç›´æŽ¥ TCP/IP ã«ã‚ˆã£ã¦ VPN Server ã®ãƒªã‚¹ãƒŠãƒ¼ãƒãƒ¼ãƒˆã« VPN Client ãŒæŽ¥ç¶šã™ã‚‹ã“ã¨ãŒã§ãるよã†ã«ã—ã¾ã™ã€‚ãã®ãŸã‚ã«ã¯ã€VPN Server ã®ãƒªã‚¹ãƒŠãƒ¼ãƒãƒ¼ãƒˆãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆã«å¯¾ã—ã¦å…¬é–‹ã•ã‚Œã‚‹ã‚ˆã†ã«ã€NAT ã«ãŠã‘ã‚‹ãƒãƒ¼ãƒˆãƒ•ã‚©ãƒ¯ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°è¨­å®šã‚’è¡Œã£ã¦ãã ã•ã„。NAT ã«ãŠã‘ã‚‹ãƒãƒ¼ãƒˆãƒ•ã‚©ãƒ¯ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°è¨­å®šã®æ–¹æ³•ã¯ã€NAT ã®ç®¡ç†è€…ã«å•ã„åˆã‚ã›ã‚‹ã‹ã€NAT 製å“ã®èª¬æ˜Žæ›¸ã‚’ãŠèª­ã¿ãã ã•ã„。\r\n\r\nVPN Server ㌠TCP ãƒãƒ¼ãƒˆã‚’インターãƒãƒƒãƒˆã«å¯¾ã—ã¦å…¬é–‹ã—ã¦ã„ã‚‹ã«ã‚‚é–¢ã‚らãšã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ãŒè¡¨ç¤ºã•ã‚Œã‚‹å ´åˆã¯ã€VPN Client ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ Build 9428 以é™ã«ã‚¢ãƒƒãƒ—グレードã—ã¦ã‹ã‚‰ã€VPN Client ã®æŽ¥ç¶šè¨­å®šç”»é¢ã§ã€ŒNAT-T 無効ã€ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。\r\n\r\n
+
+
# 仮想 HUB 管ç†ã‚ªãƒ—ション関係
HUB_AO_CLICK é …ç›®åã‚’ 1 ã¤é¸æŠžã™ã‚‹ã¨ã€ãã®é …ç›®åã«é–¢ã™ã‚‹èª¬æ˜Žæ–‡ãŒè¡¨ç¤ºã•ã‚Œã¾ã™ã€‚
HUB_AO_UNKNOWN ã“ã®é …ç›®ã«é–¢ã™ã‚‹èª¬æ˜Žæ–‡ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚ドキュメント等をå‚ç…§ã™ã‚‹ã‹ã€é …ç›®åã‚’ã‚‚ã¨ã«æ„味・内容を推測ã—ã¦åˆ©ç”¨ã—ã¦ãã ã•ã„。
@@ -560,6 +566,10 @@ HUB_AO_DisableUserModeSecureNAT ã“ã®é …目㌠1 (有効) ã®å ´åˆã¯ã€Sec
HUB_AO_DisableCheckMacOnLocalBridge ã“ã®é …目㌠1 (有効) ã®å ´åˆã¯ã€ãƒ­ãƒ¼ã‚«ãƒ«ãƒ–リッジ機能ã«ãŠã„㦠MAC アドレスã®é‡è¤‡ãƒã‚§ãƒƒã‚¯ã‚’無効ã«ã—ã¾ã™ã€‚一部㮠LAN カードã§ã¯ã€ãƒ­ãƒ¼ã‚«ãƒ«ãƒ–リッジ機能ã«ã‚ˆã£ã¦é€å‡ºã•ã‚ŒãŸãƒ‘ケット㌠LAN カード内部ã§åå°„ã—仮想 HUB ã«æˆ»ã£ã¦ãã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ã“ã®å ´åˆã€ä»®æƒ³ HUB 㯠MAC アドレスã®é‡è¤‡ã‚’自動的ã«æ¤œå‡ºã—ã€åå°„ã—ã¦ããŸãƒ‘ケットを破棄ã—ã¾ã™ã€‚ã“ã®ãƒ•ãƒ©ã‚°ã‚’有効ã«ã™ã‚‹ã¨ã€ã“ã®æ¤œå‡ºãƒã‚§ãƒƒã‚¯ãŒç„¡åŠ¹ã«ãªã‚Šã¾ã™ã€‚
HUB_AO_DisableCorrectIpOffloadChecksum ã“ã®é …目㌠1 (有効) ã®å ´åˆã¯ã€ãƒ­ãƒ¼ã‚«ãƒ«ãƒ–リッジ機能ã«ãŠã„㦠IP ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã®æ¤œæŸ»ãŠã‚ˆã³è£œæ­£å‡¦ç†ãŒç„¡åŠ¹ã«ãªã‚Šã¾ã™ã€‚IP, TCP, UDP ヘッダã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã®ã‚ªãƒ•ãƒ­ãƒ¼ãƒ‰æ©Ÿèƒ½ãŒæ­è¼‰ã•ã‚Œã¦ã„ã‚‹ LAN カードã‹ã‚‰é€ä¿¡ã•ã‚ŒãŸ IP パケットãŒåŒä¸€ãƒ›ã‚¹ãƒˆä¸Šã§å‹•ä½œã™ã‚‹ VPN Server ã®ãƒ­ãƒ¼ã‚«ãƒ«ãƒ–リッジã«å…¥åŠ›ã•ã‚ŒãŸå ´åˆã€å½“該 IP パケットã®ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã¯ä¸æ­£ç¢ºãªå€¤ãŒä»£å…¥ã•ã‚Œã¦ã„ã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚ローカルブリッジã¯ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§ãã®ä¸æ­£ç¢ºãªå€¤ã‚’検出ã—ã€æ­£ã—ã„ãƒã‚§ãƒƒã‚¯ã‚µãƒ ã®è¨ˆç®—çµæžœã‚’代入ã—ã¾ã™ã€‚ã“ã®ãƒ•ãƒ©ã‚°ã‚’有効ã«ã™ã‚‹ã¨ã€ã“れらã®è£œæ­£å‡¦ç†ãŒç„¡åŠ¹ã«ãªã‚Šã¾ã™ã€‚
HUB_AO_BroadcastLimiterStrictMode ã“ã®é …目㌠1 (有効) ã®å ´åˆã¯ã€ä»®æƒ³ HUB 上ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã«ãŠã‘るブロードキャストストームã®æ¤œå‡ºã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã«ãŠã„ã¦ã€é€ä¿¡å…ƒ IP アドレスã¾ãŸã¯å®›å…ˆ IP アドレスã®ã„ãšã‚Œã‹ 1 個ãŒä¸€è‡´ã—ã¦ã„ã‚Œã°æ—¢å­˜ã®æ¤œå‡ºç”¨è¨˜éŒ²ã¨ãƒ’ットã—ãŸã¨ã¿ãªã—ã¾ã™ã€‚
+HUB_AO_MaxLoggedPacketsPerMinute Maximum number of logging target packets per minute.
+HUB_AO_DoNotSaveHeavySecurityLogs Do not take heavy security log.
+HUB_AO_DropBroadcastsInPrivacyFilterMode Drop broadcasting packets if the both source and destination session is PrivacyFilter mode.
+HUB_AO_DropArpInPrivacyFilterMode Drop ARP packets if the both source and destination session is PrivacyFilter mode.
# Caps 関係
@@ -646,6 +656,8 @@ CT_b_using_selow_driver SoftEther 軽é‡ã‚«ãƒ¼ãƒãƒ«ãƒ¢ãƒ¼ãƒ‰ Ethernet ドライ
CT_b_support_vgs VPN Gate サービス サーãƒãƒ¼æ©Ÿèƒ½ãŒåˆ©ç”¨å¯èƒ½
CT_b_support_vgs_in_client VPN Gate サービス サーãƒãƒ¼æ©Ÿèƒ½ (VPN Client çµ±åˆ)
CT_b_is_softether 無償版ã¾ãŸã¯ã‚ªãƒ¼ãƒ—ンソース版㮠SoftEther VPN ã§ã‚ã‚‹
+CT_b_suppport_push_route é™çš„ルーティングテーブルã®ãƒ—ッシュ機能
+CT_b_suppport_push_route_config é™çš„ルーティングテーブルã®ãƒ—ッシュ機能 (設定å¯)
# ãƒãƒªã‚·ãƒ¼é–¢ä¿‚
@@ -1613,6 +1625,9 @@ SM_DDNS_FQDN_EMPTY (ãªã—)
SM_DDNS_OK_MSG ダイナミック DNS ホストå: %S%S\r\n\r\n上記㮠DNS ホストåを指定ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€ã“ã® VPN Server ã®ã‚°ãƒ­ãƒ¼ãƒãƒ« IP アドレスã§ã‚る以下㮠IP アドレスã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\r\n\r\nIPv4 アドレス: %s\r\nIPv6 アドレス: %s\r\n\r\nãªãŠã€ä»¥ä¸‹ã®ã‚ˆã†ãª DNS ホストåを指定ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€IPv4 アドレスã¾ãŸã¯ IPv6 アドレスã®ã„ãšã‚Œã‹ã®ã¿ã‚’明示的ã«å¿œç­”ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\r\n\r\nIPv4 ã®ã¿ã‚’応答ã™ã‚‹ãƒ›ã‚¹ãƒˆå: %S.v4%S\r\nIPv6 ã®ã¿ã‚’応答ã™ã‚‹ãƒ›ã‚¹ãƒˆå: %S.v6%S\r\n
SM_DDNS_OK_TITLE ダイナミック DNS 機能
SM_DDNS_OK_MSG2 ダイナミック DNS ホストåã‚’ '%S' ã«å¤‰æ›´ã—ã¾ã—ãŸã€‚\r\n\r\n[ヒント] ボタンをクリックã—ã¦è¿½åŠ æƒ…報をãŠèª­ã¿ãã ã•ã„。
+SM_DDNS_KEY_TITLE ダイナミック DNS 秘密éµ
+SM_DDNS_KEY_MSG ダイナミック DNS 秘密éµ: %s\r\n\r\nã“ã®ç§˜å¯†éµã¯ã€ç¾åœ¨ä½¿ç”¨ã—ã¦ã„ã‚‹ DDNS åã¨å¯¾å¿œä»˜ã‘られã¦ã„ã¾ã™ã€‚ç¾åœ¨ VPN Server ã¨ã—ã¦ä½¿ç”¨ã—ã¦ã„ã‚‹ PC ãŒç ´æã™ã‚‹ãªã©ã—ã¦ã€ã“ã®ç§˜å¯†éµãŒå¤±ã‚れるã¨ã€ãã®æ™‚設定ã•ã‚Œã¦ã„㟠DDNS åã¯å æœ‰ã•ã‚ŒãŸã¾ã¾ã®çŠ¶æ…‹ã¨ãªã‚Šã€ä»–ã® VPN Serverã§ä½¿ç”¨ã§ããªããªã‚Šã¾ã™ã€‚åŒã˜åå‰ã‚’継続ã—ã¦ä½¿ç”¨ã—ãŸã„å ´åˆã¯ã€ç§˜å¯†éµã‚’ä»–ã® PC やインタãƒãƒƒãƒˆä¸Šã®ã‚¹ãƒˆãƒ¬ãƒ¼ã‚¸ã€ãƒ¡ãƒ¢ç”¨ç´™ãªã©ã«ä¿ç®¡ã—ã¦ãŠã„ã¦ãã ã•ã„。\r\n秘密éµã‚’æ–°ã—ã„ VPN Server ã«è¨­å®šã™ã‚‹éš›ã¯ã€VPN Server ã®è¨­å®šãƒ•ã‚¡ã‚¤ãƒ«ã‚’編集ã—ã¾ã™ã€‚"declare DDnsClient" ディレクティブ中ã«ã‚ã‚‹ "byte Key" ã«ç¶šã値をã€ä¿ç®¡ã—ã¦ãŠã„ãŸç§˜å¯†éµã®æ–‡å­—列ã§ç½®ãæ›ãˆã¦ãã ã•ã„。\r\nãªãŠã€åŒæ™‚ã«è¤‡æ•°ã® VPN Server ã§åŒã˜ç§˜å¯†éµã‚’設定ã™ã‚‹ã¨æ­£å¸¸ã«å‹•ä½œã—ãªããªã‚Šã¾ã™ã®ã§æ³¨æ„ã—ã¦ãã ã•ã„。
+SM_DDNS_KEY_ERR DNS éµã®å–å¾—ã«å¤±æ•—ã—ã¾ã—ãŸã€‚
SM_IPSEC_PSK_TOO_LONG 事å‰å…±æœ‰éµ (PSK) ã®é•·ã•ãŒ 10 文字以上ã«è¨­å®šã•ã‚Œã¦ã„ã¾ã™ã€‚\r\n\r\nAndroid æºå¸¯é›»è©±ã®ä¸€éƒ¨ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã«ã¯ãƒã‚°ãŒã‚ã‚Šã€äº‹å‰å…±æœ‰éµãŒ 10 文字以上ã®å ´åˆã¯ VPN 接続ãŒè¡Œãˆãªã„å ´åˆãŒã‚ã‚Šã¾ã™ã€‚\r\nãã®ãŸã‚ã€äº‹å‰å…±æœ‰éµã®é•·ã•ã¯ 9 文字以下ã¨ã™ã‚‹ã“ã¨ã‚’推奨ã—ã¾ã™ã€‚\r\n\r\n事å‰å…±æœ‰éµã®è¨­å®šã‚’見直ã—ã¾ã™ã‹?
SM_ADVANCED_REDIRECT_URL_HINT_TITLE 高度㪠HTTP リダイレクション機能ã®ä½¿ã„æ–¹
SM_ADVANCED_REDIRECT_URL_HINT 高度㪠HTTP リダイレクション機能 (上級者å‘ã‘)\r\n\r\nアクセスリスト㫠HTTP リダイレクト先㮠URL を記載ã™ã‚‹éš›ã«ã€URL ã®ä¸€éƒ¨ã¨ã—㦠<INFO> ã¨ã„ã†æ–‡å­—列を埋ã‚込むã“ã¨ãŒã§ãã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã‚Šã€ãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆå…ˆã® URL ã‚’å—å–ã£ãŸ CGI ãªã©ã§ã€VPN 接続を行ã£ã¦ã„るクライアントã®æƒ…報を用ã„ãŸé«˜åº¦ãªå‡¦ç†ã‚’実行ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\r\n\r\n埋ã‚込㿠URL 例:\r\nhttp://www.google.com/search?q=<INFO>|secret\r\n\r\n実際ã«ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆã•ã‚Œã‚‹éš›ã«ã¯ã€å½“該文字列部分ãŒä»¥ä¸‹ã®ã‚ˆã†ãªæ–‡å­—列ã«ç½®æ›ã•ã‚Œã¾ã™ã€‚\r\n\r\nユーザーå|セッション ID|IP アドレス|日付ã¨æ™‚刻|ãƒãƒƒã‚·ãƒ¥å€¤\r\n\r\nç½®æ›å¾Œã®ä¾‹: zurukko|SID-ZURUKKO-123|219.117.219.154|20131117100354|99707160AFE7A454042B2C47B064112D652452D7\r\n\r\nã“ã“ã§ã€ä¸Šè¨˜ã®å„フィールドã®å€¤ã®å†…容ã®è©³ç´°ã¯ä»¥ä¸‹ã®ã¨ãŠã‚Šã§ã™ã€‚\r\n\r\nユーザーå: VPN 接続を行ã£ã¦ã„るユーザーåãŒä»£å…¥ã•ã‚Œã¾ã™ã€‚\r\n\r\nセッション ID: 当該 VPN セッション㮠ID ãŒä»£å…¥ã•ã‚Œã¾ã™ã€‚\r\n\r\n日付ã¨æ™‚刻: 'YYYYMMDDHHMMSS' ã®å½¢å¼ã§ 14 æ¡ã®æ•°å­—ãŒä»£å…¥ã•ã‚Œã¾ã™ (タイムゾーン㯠UTC)。\r\n\r\nãƒãƒƒã‚·ãƒ¥å€¤: ãƒãƒƒã‚·ãƒ¥å€¤ç›´å‰ã¾ã§ã®ä¸Šè¨˜ãƒ•ã‚£ãƒ¼ãƒ«ãƒ‰ã®ãƒ“ット列㫠URL 中ã®æ–‡å­— '|' 以é™ã®æœ«å°¾ã¾ã§ã®æ–‡å­—列 (上記ã®ä¾‹ã§ã¯ "secret" ã¨ã„ã†æ–‡å­—列) ã®ãƒ“ット列ã¨ã‚’連çµã— SHA-1 ãƒãƒƒã‚·ãƒ¥é–¢æ•°ã‚’é©ç”¨ã—ãŸçµæžœã® 20 ãƒã‚¤ãƒˆã‚’ 16 進数ã§è¡¨è¨˜ã—㟠40 文字ã®æ–‡å­—列。ãªãŠã€URL 中ã«æ–‡å­— '|' ãŒå­˜åœ¨ã—ãªã„å ´åˆã¯ãƒãƒƒã‚·ãƒ¥å€¤ã¯ä»˜ä¸Žã•ã‚Œã¾ã›ã‚“。\r\n\r\nãƒãƒƒã‚·ãƒ¥å€¤ã®å­˜åœ¨æ„義ã«ã¤ã„ã¦: ãƒãƒƒã‚·ãƒ¥æ–‡å­—列 (上記ã®ä¾‹ã§ã¯ "secret" ã¨ã„ã†æ–‡å­—列) ã¯ç§˜å¯†éµã¨ã—ã¦æ©Ÿèƒ½ã—ã¾ã™ã€‚ã“ã‚Œã«ã‚ˆã‚Šã€ãƒªãƒ€ã‚¤ãƒ¬ã‚¯ãƒˆå…ˆã§ã‚¯ã‚¨ãƒªæ–‡å­—列をå—å–ã£ãŸ CGI ã¯å—å–ã£ãŸæ–‡å­—列ãŒã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«ã‚ˆã£ã¦ä¸æ­£ã«æ”¹ã–ã‚“ã•ã‚Œã¦ã„ãªã„ã“ã¨ã‚’確èªã§ãã¾ã™ã€‚\r\n
@@ -1680,6 +1695,7 @@ DHCP_MAC_ADDRESS MAC アドレス
DHCP_IP_ADDRESS 割り当㦠IP
DHCP_HOSTNAME クライアントホストå
NM_PASSWORD_MSG 管ç†ãƒ‘スワードを設定ã—ã¾ã—ãŸã€‚
+NM_PUSH_ROUTE_WARNING 指定ã•ã‚ŒãŸé™çš„ルーティングテーブルã®ãƒ†ã‚­ã‚¹ãƒˆã«ã¯æ–‡æ³•ã‚¨ãƒ©ãƒ¼ãŒã‚ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™ã€‚
# ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…報系
@@ -2291,6 +2307,7 @@ R_HIDE2 IP アドレスメッセージをéžè¡¨ç¤º(&9)
STATIC15 VPN Server ã«æŽ¥ç¶šã™ã‚‹éš›ã«å¿…è¦ãªãƒ¦ãƒ¼ã‚¶ãƒ¼èªè¨¼æƒ…報を設定ã—ã¦ãã ã•ã„。
B_REGIST_CLIENT_CERT クライアント証明書ã®æŒ‡å®š(&8)
B_IE IE ã®è¨­å®šã‚’使用(&E)
+R_DISABLE_NATT NAT-T 無効
PREFIX D_CM_PROXY
@@ -2409,6 +2426,7 @@ B_EULA 使用許諾契約書(&E)
B_IMPORTANT é‡è¦äº‹é …説明書(&I)
B_LEGAL 法律上ã®é€šçŸ¥(&L)
B_UPDATE_CONFIG 更新通知設定(&C)
+B_AUTHORS 開発者ã®ä¸€è¦§(&A)
PREFIX D_REMOTE
@@ -3093,6 +3111,9 @@ STATIC22 ドメインå(&W):
STATIC23 DNS サーãƒãƒ¼ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ 2 (&X):
IDOK &OK
IDCANCEL キャンセル
+S_1 é™çš„ルーティングテーブルã®ãƒ—ッシュ (スプリットトンãƒãƒªãƒ³ã‚°)
+S_2 VPN クライアントã«å¯¾ã—ã¦é™çš„ルーティングテーブルをプッシュé€ä¿¡ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
+B_PUSH プッシュã™ã‚‹é™çš„ルーティングテーブルã®ç·¨é›†
PREFIX D_NM_NAT
@@ -3848,6 +3869,8 @@ S_2 IPv6 インターãƒãƒƒãƒˆã«æŽ¥ç¶šã•ã‚Œã¦ã„ãªã„å ´åˆã¯ä¸Šè¨˜ã®
IDCANCEL é–‰ã˜ã‚‹(&X)
B_DISABLE ダイナミック DNS 機能を無効ã«ã™ã‚‹(&D)
B_PROXY プロキシサーãƒãƒ¼çµŒç”±ã§æŽ¥ç¶š(&P)
+S_STATUS8 DNS éµ:
+B_HINT2 ヒント
PREFIX D_SM_SPECIALLISTENER
@@ -4137,6 +4160,18 @@ IDCANCEL åŒæ„ã—ãªã„(&D)
S_BOLD VPN 通信ãŒç¦æ­¢ã•ã‚Œã¦ã„る国・地域ã§ã¯ VPN Gate を使用ã—ãªã„ã§ãã ã•ã„。
+PREFIX D_NM_PUSH
+CAPTION プッシュã™ã‚‹é™çš„ルーティングテーブルã®ç·¨é›†
+S1 VPN クライアントã«å¯¾ã—ã¦ã“ã®ä»®æƒ³ DHCP サーãƒãƒ¼ã‹ã‚‰ DHCP 応答をé€ä¿¡ã™ã‚‹éš›ã«ã€ã‚¯ãƒ©ã‚¹ãƒ¬ã‚¹é™çš„ルート (RFC 3442) ã‚’ä½µã›ã¦é€ä¿¡ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
+S2 VPN クライアントãŒã‚¯ãƒ©ã‚¹ãƒ¬ã‚¹é™çš„ルート (RFC 3442) ã‚’èªè­˜ã§ãã‚‹ã‹ã©ã†ã‹ã¯ã€VPN クライアントソフトウェアã«ã‚ˆã£ã¦ç•°ãªã‚Šã¾ã™ã€‚SoftEther VPN Client ãŠã‚ˆã³ OpenVPN Client ã¯ã‚¯ãƒ©ã‚¹ãƒ¬ã‚¹é™çš„ルートã«å¯¾å¿œã—ã¦ã„ã¾ã™ã€‚L2TP/IPsec ãŠã‚ˆã³ MS-SSTP ã«ãŠã„ã¦ã¯ã€åˆ©ç”¨ã®å¯å¦ã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã«ä¾å­˜ã—ã¾ã™ã€‚
+S3 仮想 DHCP サーãƒãƒ¼ã®ã‚ªãƒ—ションã§ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã‚²ãƒ¼ãƒˆã‚¦ã‚§ã‚¤ã‚’空欄ã«è¨­å®šã™ã‚‹ã“ã¨ã§ã€ã‚¹ãƒ—リットトンãƒãƒªãƒ³ã‚°ãŒå®Ÿç¾ã§ãã¾ã™ã€‚L2TP/IPsec ãŠã‚ˆã³ MS-SSTP クライアントを使用ã—ã¦ã„ã‚‹å ´åˆã¯ã€IPv4 ã®è¨­å®šç”»é¢ã§ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã‚²ãƒ¼ãƒˆã‚¦ã‚§ã‚¤ã‚’ VPN サーãƒãƒ¼ã«å‘ã‘ãªã„よã†ã«ã™ã‚‹è¨­å®šãŒå¿…è¦ã§ã™ã€‚
+S4 ローカルブリッジ経由ã§å¤–部㫠DHCP サーãƒãƒ¼ãŒã‚ã‚‹å ´åˆã¯ã€ãã® DHCP サーãƒãƒ¼ã§ã‚¯ãƒ©ã‚¹ãƒ¬ã‚¹é™çš„ルート (RFC 3442) をプッシュã™ã‚‹ã‚ˆã†è¨­å®šã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ãã®å ´åˆã¯ã€SecureNAT ã®ä»®æƒ³ DHCP サーãƒãƒ¼æ©Ÿèƒ½ã¯ç„¡åŠ¹ã«ã—ã¦ãã ã•ã„。ã¾ãŸã€ã“ã®ç”»é¢ã§ã®è¨­å®šã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。
+S5 プッシュã™ã‚‹é™çš„ルーティングテーブルã®ç·¨é›†
+S6 例: 192.168.5.0/255.255.255.0/192.168.4.254, 10.0.0.0/255.0.0.0/192.168.4.253\r\n\r\n複数ã®ã‚¨ãƒ³ãƒˆãƒª (最大 64 個) ã¯ã‚«ãƒ³ãƒžã¾ãŸã¯ã‚¹ãƒšãƒ¼ã‚¹ã§åŒºåˆ‡ã‚Šã¾ã™ã€‚\r\nå„エントリã¯ã€"IP ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¢ãƒ‰ãƒ¬ã‚¹/サブãƒãƒƒãƒˆãƒžã‚¹ã‚¯/ゲートウェイ IP アドレス" ã®æ›¸å¼ã§è¨˜è¿°ã—ã¾ã™ã€‚
+S7 クラスレスé™çš„ルートã«ã¤ã„ã¦ã¯ã€RFC 3442 ã‚’ãŠèª­ã¿ãã ã•ã„。
+IDOK &OK
+IDCANCEL キャンセル
+
###########################################################################
@@ -5909,6 +5944,7 @@ CMD_DhcpGet_Column_GW デフォルトゲートウェイアドレス
CMD_DhcpGet_Column_DNS DNS サーãƒãƒ¼ アドレス 1
CMD_DhcpGet_Column_DNS2 DNS サーãƒãƒ¼ アドレス 2
CMD_DhcpGet_Column_DOMAIN ドメインå
+CMD_DhcpGet_Column_PUSHROUTE プッシュã™ã‚‹é™çš„ルーティングテーブル
# DhcpEnable コマンド
@@ -5926,7 +5962,7 @@ CMD_DhcpDisable_Args DhcpDisable
# DhcpSet コマンド
CMD_DhcpSet SecureNAT 機能ã®ä»®æƒ³ DHCP サーãƒãƒ¼æ©Ÿèƒ½ã®è¨­å®šã®å¤‰æ›´
CMD_DhcpSet_Help ç¾åœ¨ç®¡ç†ã—ã¦ã„る仮想 HUB 内ã®ã€ä»®æƒ³ DHCP サーãƒãƒ¼ã®è¨­å®šã‚’変更ã—ã¾ã™ã€‚仮想 DHCP サーãƒãƒ¼ã®è¨­å®šã«ã¯ã€é…布 IP アドレス帯ã€ã‚µãƒ–ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ã€ãƒªãƒ¼ã‚¹æœŸé™ã€ãŠã‚ˆã³ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«å‰²ã‚Šå½“ã¦ã‚‹ã‚ªãƒ—ション値ãŒå«ã¾ã‚Œã¾ã™ã€‚\nã“ã®ã‚³ãƒžãƒ³ãƒ‰ã¯ã€ã‚¯ãƒ©ã‚¹ã‚¿ã¨ã—ã¦å‹•ä½œã—ã¦ã„ã‚‹ VPN Server ã®ä»®æƒ³ HUB ã§ã¯å®Ÿè¡Œã§ãã¾ã›ã‚“。
-CMD_DhcpSet_Args DhcpSet [/START:start_ip] [/END:end_ip] [/MASK:subnetmask] [/EXPIRE:sec] [/GW:gwip] [/DNS:dns] [/DNS2:dns2] [/DOMAIN:domain] [/LOG:yes|no]
+CMD_DhcpSet_Args DhcpSet [/START:start_ip] [/END:end_ip] [/MASK:subnetmask] [/EXPIRE:sec] [/GW:gwip] [/DNS:dns] [/DNS2:dns2] [/DOMAIN:domain] [/LOG:yes|no] [/PUSHROUTE:"routing_table"]
CMD_DhcpSet_START クライアントã«å¯¾ã—ã¦é…布ã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹å¸¯ã®é–‹å§‹ç‚¹ã‚’指定ã—ã¾ã™ã€‚(例: 192.168.30.10)
CMD_DhcpSet_END クライアントã«å¯¾ã—ã¦é…布ã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹å¸¯ã®çµ‚了点を指定ã—ã¾ã™ã€‚(例: 192.168.30.200)
CMD_DhcpSet_MASK クライアントã«å¯¾ã—ã¦æŒ‡å®šã™ã‚‹ã‚µãƒ–ãƒãƒƒãƒˆãƒžã‚¹ã‚¯ã‚’指定ã—ã¾ã™ã€‚(例: 255.255.255.0)
@@ -5936,6 +5972,7 @@ CMD_DhcpSet_DNS クライアントã«å¯¾ã—ã¦é€šçŸ¥ã™ã‚‹ DNS サーãƒãƒ¼ (ã
CMD_DhcpSet_DNS2 クライアントã«å¯¾ã—ã¦é€šçŸ¥ã™ã‚‹ DNS サーãƒãƒ¼ (セカンダリ) ã® IP アドレスを指定ã—ã¾ã™ã€‚SecureNAT 機能ã®ä»®æƒ³ NAT 機能ã¨å…±ã«æœ‰åŠ¹ã«ã—ã¦ä½¿ç”¨ã™ã‚‹å ´åˆã¯ã€SecureNAT ã®ä»®æƒ³ãƒ›ã‚¹ãƒˆã® IP アドレスを指定ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚0 ã¾ãŸã¯ none を指定ã™ã‚‹ã¨ã€DNS サーãƒãƒ¼ アドレスをクライアントã«å¯¾ã—ã¦é€šçŸ¥ã—ã¾ã›ã‚“。
CMD_DhcpSet_DOMAIN クライアントã«å¯¾ã—ã¦é€šçŸ¥ã™ã‚‹ãƒ‰ãƒ¡ã‚¤ãƒ³åを指定ã—ã¾ã™ã€‚none を指定ã™ã‚‹ã¨ã€ãƒ‰ãƒ¡ã‚¤ãƒ³åをクライアントã«å¯¾ã—ã¦é€šçŸ¥ã—ã¾ã›ã‚“。
CMD_DhcpSet_LOG 仮想 DHCP サーãƒãƒ¼ã®å‹•ä½œã‚’仮想 HUB ã®ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ãƒ­ã‚°ã«ä¿å­˜ã™ã‚‹ã‹ã©ã†ã‹ã‚’指定ã—ã¾ã™ã€‚"yes" を指定ã™ã‚‹ã¨ä¿å­˜ã—ã¾ã™ã€‚ã“ã®å€¤ã¯ã€ä»®æƒ³ NAT 機能ã®ãƒ­ã‚°ä¿å­˜è¨­å®šã¨é€£å‹•ã—ã¦ã„ã¾ã™ã€‚
+CMD_DhcpSet_PUSHROUTE プッシュã™ã‚‹é™çš„ルーティングテーブルを指定ã—ã¾ã™ã€‚\n例: "192.168.5.0/255.255.255.0/192.168.4.254, 10.0.0.0/255.0.0.0/192.168.4.253"\n複数ã®ã‚¨ãƒ³ãƒˆãƒª (最大 64 個) ã¯ã‚«ãƒ³ãƒžã¾ãŸã¯ã‚¹ãƒšãƒ¼ã‚¹ã§åŒºåˆ‡ã‚Šã¾ã™ã€‚å„エントリã¯ã€"IP ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¢ãƒ‰ãƒ¬ã‚¹/サブãƒãƒƒãƒˆãƒžã‚¹ã‚¯/ゲートウェイ IP アドレス" ã®æ›¸å¼ã§è¨˜è¿°ã—ã¾ã™ã€‚\nVPN クライアントã«å¯¾ã—ã¦ã“ã®ä»®æƒ³ DHCP サーãƒãƒ¼ã‹ã‚‰ DHCP 応答をé€ä¿¡ã™ã‚‹éš›ã«ã€ã‚¯ãƒ©ã‚¹ãƒ¬ã‚¹é™çš„ルート (RFC 3442) ã‚’ä½µã›ã¦é€ä¿¡ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚\nVPN クライアントãŒã‚¯ãƒ©ã‚¹ãƒ¬ã‚¹é™çš„ルート (RFC 3442) ã‚’èªè­˜ã§ãã‚‹ã‹ã©ã†ã‹ã¯ã€VPN クライアントソフトウェアã«ã‚ˆã£ã¦ç•°ãªã‚Šã¾ã™ã€‚SoftEther VPN Client ãŠã‚ˆã³ OpenVPN Client ã¯ã‚¯ãƒ©ã‚¹ãƒ¬ã‚¹é™çš„ルートã«å¯¾å¿œã—ã¦ã„ã¾ã™ã€‚L2TP/IPsec ãŠã‚ˆã³ MS-SSTP ã«ãŠã„ã¦ã¯ã€åˆ©ç”¨ã®å¯å¦ã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã«ä¾å­˜ã—ã¾ã™ã€‚\n仮想 DHCP サーãƒãƒ¼ã®ã‚ªãƒ—ションã§ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã‚²ãƒ¼ãƒˆã‚¦ã‚§ã‚¤ã‚’空欄ã«è¨­å®šã™ã‚‹ã“ã¨ã§ã€ã‚¹ãƒ—リットトンãƒãƒªãƒ³ã‚°ãŒå®Ÿç¾ã§ãã¾ã™ã€‚L2TP/IPsec ãŠã‚ˆã³ MS-SSTP クライアントを使用ã—ã¦ã„ã‚‹å ´åˆã¯ã€IPv4 ã®è¨­å®šç”»é¢ã§ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã‚²ãƒ¼ãƒˆã‚¦ã‚§ã‚¤ã‚’ VPN サーãƒãƒ¼ã«å‘ã‘ãªã„よã†ã«ã™ã‚‹è¨­å®šãŒå¿…è¦ã§ã™ã€‚\nローカルブリッジ経由ã§å¤–部㫠DHCP サーãƒãƒ¼ãŒã‚ã‚‹å ´åˆã¯ã€ãã® DHCP サーãƒãƒ¼ã§ã‚¯ãƒ©ã‚¹ãƒ¬ã‚¹é™çš„ルート (RFC 3442) をプッシュã™ã‚‹ã‚ˆã†è¨­å®šã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚ãã®å ´åˆã¯ã€SecureNAT ã®ä»®æƒ³ DHCP サーãƒãƒ¼æ©Ÿèƒ½ã¯ç„¡åŠ¹ã«ã—ã¦ãã ã•ã„。ã¾ãŸã€ã“ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã®è¨­å®šã¯å¿…è¦ã‚ã‚Šã¾ã›ã‚“。\nクラスレスé™çš„ルートã«ã¤ã„ã¦ã¯ã€RFC 3442 ã‚’ãŠèª­ã¿ãã ã•ã„。
CMD_DhcpSet_Prompt_START é…布ã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹å¸¯ã®é–‹å§‹ç‚¹:
CMD_DhcpSet_Prompt_END é…布ã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹å¸¯ã®çµ‚了点:
CMD_DhcpSet_Prompt_MASK サブãƒãƒƒãƒˆãƒžã‚¹ã‚¯:
diff --git a/src/bin/hamcore/vpn_driver.sys b/src/bin/hamcore/vpn_driver.sys
index a5893778..b3f7ac68 100644
--- a/src/bin/hamcore/vpn_driver.sys
+++ b/src/bin/hamcore/vpn_driver.sys
Binary files differ
diff --git a/src/bin/hamcore/vpn_driver6.sys b/src/bin/hamcore/vpn_driver6.sys
index 4f02c0b0..0fd3280b 100644
--- a/src/bin/hamcore/vpn_driver6.sys
+++ b/src/bin/hamcore/vpn_driver6.sys
Binary files differ
diff --git a/src/bin/hamcore/vpn_driver6_x64.sys b/src/bin/hamcore/vpn_driver6_x64.sys
index 41d3b6c6..3ffe2beb 100644
--- a/src/bin/hamcore/vpn_driver6_x64.sys
+++ b/src/bin/hamcore/vpn_driver6_x64.sys
Binary files differ
diff --git a/src/bin/hamcore/vpn_driver_x64.sys b/src/bin/hamcore/vpn_driver_x64.sys
index d9d2e938..5cbf4a88 100644
--- a/src/bin/hamcore/vpn_driver_x64.sys
+++ b/src/bin/hamcore/vpn_driver_x64.sys
Binary files differ
diff --git a/src/bin/vpnweb.cab b/src/bin/vpnweb.cab
index 8a828181..1f61669d 100644
--- a/src/bin/vpnweb.cab
+++ b/src/bin/vpnweb.cab
Binary files differ
diff --git a/src/bin/vpnweb.ocx b/src/bin/vpnweb.ocx
index 56087f79..d053aa52 100644
--- a/src/bin/vpnweb.ocx
+++ b/src/bin/vpnweb.ocx
Binary files differ
diff --git a/src/hamcorebuilder/hamcorebuilder.c b/src/hamcorebuilder/hamcorebuilder.c
index 48604120..6371777b 100644
--- a/src/hamcorebuilder/hamcorebuilder.c
+++ b/src/hamcorebuilder/hamcorebuilder.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// hamcorebuilder.c
diff --git a/src/makefiles/freebsd_32bit.mak b/src/makefiles/freebsd_32bit.mak
index 86873394..5c60ada3 100644
--- a/src/makefiles/freebsd_32bit.mak
+++ b/src/makefiles/freebsd_32bit.mak
@@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s
HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h
OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o
OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o
-HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
+HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
# Build Action
default: build
diff --git a/src/makefiles/freebsd_64bit.mak b/src/makefiles/freebsd_64bit.mak
index 1626db86..42e1d090 100644
--- a/src/makefiles/freebsd_64bit.mak
+++ b/src/makefiles/freebsd_64bit.mak
@@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s
HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h
OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o
OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o
-HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
+HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
# Build Action
default: build
diff --git a/src/makefiles/linux_32bit.mak b/src/makefiles/linux_32bit.mak
index 44bd0778..c8988de4 100644
--- a/src/makefiles/linux_32bit.mak
+++ b/src/makefiles/linux_32bit.mak
@@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s
HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h
OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o
OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o
-HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
+HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
# Build Action
default: build
diff --git a/src/makefiles/linux_64bit.mak b/src/makefiles/linux_64bit.mak
index 537651af..8d0ebafd 100644
--- a/src/makefiles/linux_64bit.mak
+++ b/src/makefiles/linux_64bit.mak
@@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s
HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h
OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o
OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o
-HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
+HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
# Build Action
default: build
diff --git a/src/makefiles/macos_32bit.mak b/src/makefiles/macos_32bit.mak
index f0ab4298..4b8fb23d 100644
--- a/src/makefiles/macos_32bit.mak
+++ b/src/makefiles/macos_32bit.mak
@@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s
HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h
OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o
OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o
-HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
+HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
# Build Action
default: build
diff --git a/src/makefiles/macos_64bit.mak b/src/makefiles/macos_64bit.mak
index 5507c0a7..f06ba4a1 100644
--- a/src/makefiles/macos_64bit.mak
+++ b/src/makefiles/macos_64bit.mak
@@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s
HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h
OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o
OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o
-HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
+HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
# Build Action
default: build
diff --git a/src/makefiles/openbsd_32bit.mak b/src/makefiles/openbsd_32bit.mak
index f3808612..15453628 100644
--- a/src/makefiles/openbsd_32bit.mak
+++ b/src/makefiles/openbsd_32bit.mak
@@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s
HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h
OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o
OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o
-HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
+HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
# Build Action
default: build
diff --git a/src/makefiles/openbsd_64bit.mak b/src/makefiles/openbsd_64bit.mak
index f17a9f3f..810921ae 100644
--- a/src/makefiles/openbsd_64bit.mak
+++ b/src/makefiles/openbsd_64bit.mak
@@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s
HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h
OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o
OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o
-HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
+HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
# Build Action
default: build
diff --git a/src/makefiles/solaris_32bit.mak b/src/makefiles/solaris_32bit.mak
index 09598bdf..ee56f3f1 100644
--- a/src/makefiles/solaris_32bit.mak
+++ b/src/makefiles/solaris_32bit.mak
@@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s
HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h
OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o
OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o
-HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
+HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
# Build Action
default: build
diff --git a/src/makefiles/solaris_64bit.mak b/src/makefiles/solaris_64bit.mak
index 63678e91..f1e683da 100644
--- a/src/makefiles/solaris_64bit.mak
+++ b/src/makefiles/solaris_64bit.mak
@@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s
HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h
OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o
OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o
-HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
+HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css
# Build Action
default: build
diff --git a/src/vpn16/vpn16.c b/src/vpn16/vpn16.c
index 05088d04..ebdc78a2 100644
--- a/src/vpn16/vpn16.c
+++ b/src/vpn16/vpn16.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpn16.c
diff --git a/src/vpn16/vpn16.h b/src/vpn16/vpn16.h
index 7ea17ba9..cab8d224 100644
--- a/src/vpn16/vpn16.h
+++ b/src/vpn16/vpn16.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpn16.h
diff --git a/src/vpnbrand/vpnbrand.h b/src/vpnbrand/vpnbrand.h
index 9f7742fd..df680910 100644
--- a/src/vpnbrand/vpnbrand.h
+++ b/src/vpnbrand/vpnbrand.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// BrandingKit.h
diff --git a/src/vpnbridge/vpnbridge.c b/src/vpnbridge/vpnbridge.c
index ef4a9230..bdf1ac7a 100644
--- a/src/vpnbridge/vpnbridge.c
+++ b/src/vpnbridge/vpnbridge.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpnbridge.c
diff --git a/src/vpnclient/vpncsvc.c b/src/vpnclient/vpncsvc.c
index ff9ed262..43b4d0e5 100644
--- a/src/vpnclient/vpncsvc.c
+++ b/src/vpnclient/vpncsvc.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpncsvc.c
diff --git a/src/vpnclient/vpncsvc.h b/src/vpnclient/vpncsvc.h
index 8b7a3dad..300a7ecf 100644
--- a/src/vpnclient/vpncsvc.h
+++ b/src/vpnclient/vpncsvc.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpncsvc.h
diff --git a/src/vpncmd/vpncmd.c b/src/vpncmd/vpncmd.c
index 200b5886..a58a24e4 100644
--- a/src/vpncmd/vpncmd.c
+++ b/src/vpncmd/vpncmd.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpncmd.c
diff --git a/src/vpncmdsys/vpncmdsys.c b/src/vpncmdsys/vpncmdsys.c
index 2910a02f..b5718902 100644
--- a/src/vpncmdsys/vpncmdsys.c
+++ b/src/vpncmdsys/vpncmdsys.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpncmdsys.c
diff --git a/src/vpncmdsys/vpncmdsys.h b/src/vpncmdsys/vpncmdsys.h
index 62f716df..ed37ab00 100644
--- a/src/vpncmdsys/vpncmdsys.h
+++ b/src/vpncmdsys/vpncmdsys.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpncmdsys.h
diff --git a/src/vpncmgr/vpncmgr.c b/src/vpncmgr/vpncmgr.c
index 989d32e6..f524e9bd 100644
--- a/src/vpncmgr/vpncmgr.c
+++ b/src/vpncmgr/vpncmgr.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpncmgr.c
diff --git a/src/vpndrvinst/vpndrvinst.c b/src/vpndrvinst/vpndrvinst.c
index 771d3c5a..2909fee2 100644
--- a/src/vpndrvinst/vpndrvinst.c
+++ b/src/vpndrvinst/vpndrvinst.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Ham.c
diff --git a/src/vpndrvinst/vpndrvinst.h b/src/vpndrvinst/vpndrvinst.h
index 548ae0f4..36d850a5 100644
--- a/src/vpndrvinst/vpndrvinst.h
+++ b/src/vpndrvinst/vpndrvinst.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// Ham.h
diff --git a/src/vpninstall/vpninstall.c b/src/vpninstall/vpninstall.c
index fd4450d9..c03c1860 100644
--- a/src/vpninstall/vpninstall.c
+++ b/src/vpninstall/vpninstall.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpninstall.c
diff --git a/src/vpninstall/vpninstall.h b/src/vpninstall/vpninstall.h
index ab51bfa4..c57b426d 100644
--- a/src/vpninstall/vpninstall.h
+++ b/src/vpninstall/vpninstall.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpninstall.h
diff --git a/src/vpnserver/vpnserver.c b/src/vpnserver/vpnserver.c
index a5c2f71f..9b45d25d 100644
--- a/src/vpnserver/vpnserver.c
+++ b/src/vpnserver/vpnserver.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpnserver.c
diff --git a/src/vpnsetup/vpnsetup.c b/src/vpnsetup/vpnsetup.c
index 7e310b43..d0e6caeb 100644
--- a/src/vpnsetup/vpnsetup.c
+++ b/src/vpnsetup/vpnsetup.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
#include <GlobalConst.h>
diff --git a/src/vpnsmgr/vpnsmgr.c b/src/vpnsmgr/vpnsmgr.c
index b92ed3ec..a38fdea8 100644
--- a/src/vpnsmgr/vpnsmgr.c
+++ b/src/vpnsmgr/vpnsmgr.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpncmgr.c
diff --git a/src/vpnweb/vpnweb.h b/src/vpnweb/vpnweb.h
index 6969e75c..b3aa1dda 100644
--- a/src/vpnweb/vpnweb.h
+++ b/src/vpnweb/vpnweb.h
@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 7.00.0500 */
-/* at Tue Feb 18 19:10:01 2014
+/* at Thu Mar 20 04:08:24 2014
*/
/* Compiler settings for .\vpnweb.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
diff --git a/src/vpnweb/vpnweb_i.c b/src/vpnweb/vpnweb_i.c
index d9f97af2..8036f6de 100644
--- a/src/vpnweb/vpnweb_i.c
+++ b/src/vpnweb/vpnweb_i.c
@@ -6,7 +6,7 @@
/* File created by MIDL compiler version 7.00.0500 */
-/* at Tue Feb 18 19:10:01 2014
+/* at Thu Mar 20 04:08:24 2014
*/
/* Compiler settings for .\vpnweb.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
diff --git a/src/vpnweb/vpnweb_p.c b/src/vpnweb/vpnweb_p.c
index af4d093d..f503f174 100644
--- a/src/vpnweb/vpnweb_p.c
+++ b/src/vpnweb/vpnweb_p.c
@@ -4,7 +4,7 @@
/* File created by MIDL compiler version 7.00.0500 */
-/* at Tue Feb 18 19:10:01 2014
+/* at Thu Mar 20 04:08:24 2014
*/
/* Compiler settings for .\vpnweb.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
diff --git a/src/vpnweb/vpnwebdlg.c b/src/vpnweb/vpnwebdlg.c
index 6b258ae4..ed8ce021 100644
--- a/src/vpnweb/vpnwebdlg.c
+++ b/src/vpnweb/vpnwebdlg.c
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpnwebdlg.c
diff --git a/src/vpnweb/vpnwebdlg.h b/src/vpnweb/vpnwebdlg.h
index bc8f31c8..bff0206d 100644
--- a/src/vpnweb/vpnwebdlg.h
+++ b/src/vpnweb/vpnwebdlg.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpnwebdlg.h
diff --git a/src/vpnweb/vpnwebdlg_inner.h b/src/vpnweb/vpnwebdlg_inner.h
index 74524389..315a4931 100644
--- a/src/vpnweb/vpnwebdlg_inner.h
+++ b/src/vpnweb/vpnwebdlg_inner.h
@@ -14,7 +14,6 @@
// Author: Daiyuu Nobori
// Comments: Tetsuo Sugiyama, Ph.D.
//
-//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
@@ -85,6 +84,13 @@
// http://www.softether.org/ and ask your question on the users forum.
//
// Thank you for your cooperation.
+//
+//
+// NO MEMORY OR RESOURCE LEAKS
+// ---------------------------
+//
+// The memory-leaks and resource-leaks verification under the stress
+// test has been passed before release this source code.
// vpnwebdlg.h