From 06a72040a347e567bec560e3426e5ccddcf785c5 Mon Sep 17 00:00:00 2001 From: dnobori Date: Fri, 30 Jan 2015 22:30:34 +0900 Subject: [PATCH] v4.13-9522-beta --- LICENSE | 6 +- LICENSE.TXT | 6 +- README | 2 +- README.TXT | 2 +- WARNING.TXT | 42 +++ centos/SOURCES/linux_32bit.mak | 4 +- centos/SOURCES/linux_64bit.mak | 4 +- src/Cedar/Admin.c | 41 ++ src/Cedar/Admin.h | 3 + src/Cedar/BridgeUnix.c | 28 +- src/Cedar/Cedar.c | 4 +- src/Cedar/Cedar.h | 16 +- src/Cedar/Client.c | 4 +- src/Cedar/Client.h | 2 +- src/Cedar/DDNS.c | 42 ++- src/Cedar/DDNS.h | 2 + src/Cedar/Hub.c | 36 ++ src/Cedar/Hub.h | 4 + src/Cedar/IPsec.c | 10 +- src/Cedar/IPsec_L2TP.c | 205 +++++----- src/Cedar/IPsec_L2TP.h | 6 + src/Cedar/Interop_SSTP.c | 1 + src/Cedar/Protocol.c | 21 +- src/Cedar/SM.c | 5 + src/Cedar/Server.c | 13 +- src/Cedar/Server.h | 2 +- src/Cedar/Session.c | 39 +- src/Cedar/Session.h | 1 + src/Cedar/UdpAccel.c | 2 +- src/Cedar/UdpAccel.h | 1 + src/Cedar/Virtual.c | 61 ++- src/Cedar/Virtual.h | 1 + src/Cedar/Wpc.c | 16 +- src/Cedar/Wpc.h | 5 +- src/CurrentBuild.txt | 6 +- src/LICENSE.TXT | 6 +- src/Mayaqua/Encrypt.c | 390 +++++++++++++++++++- src/Mayaqua/Encrypt.h | 3 + src/Mayaqua/MayaType.h | 1 + src/Mayaqua/Microsoft.c | 4 - src/Mayaqua/Network.c | 162 ++++++-- src/Mayaqua/Network.h | 13 +- src/Mayaqua/Win32.c | 44 ++- src/README.TXT | 2 +- src/WARNING.TXT | 42 +++ src/bin/hamcore/SeLow_x64.sys | Bin 38368 -> 38368 bytes src/bin/hamcore/SeLow_x86.sys | Bin 31072 -> 31072 bytes src/bin/hamcore/eula.txt | 17 +- src/bin/hamcore/inf/selow_x64/SeLow_x64.inf | 4 +- src/bin/hamcore/inf/selow_x64/inf.cat | Bin 6275 -> 6275 bytes src/bin/hamcore/inf/selow_x86/SeLow_x86.inf | 4 +- src/bin/hamcore/inf/selow_x86/inf.cat | Bin 6275 -> 6275 bytes src/bin/hamcore/inf/x64/INF_VPN.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN10.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN100.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN101.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN102.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN103.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN104.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN105.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN106.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN107.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN108.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN109.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN11.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN110.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN111.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN112.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN113.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN114.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN115.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN116.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN117.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN118.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN119.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN12.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN120.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN121.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN122.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN123.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN124.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN125.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN126.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN127.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN13.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN14.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN15.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN16.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN17.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN18.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN19.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN2.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN20.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN21.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN22.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN23.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN24.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN25.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN26.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN27.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN28.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN29.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN3.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN30.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN31.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN32.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN33.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN34.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN35.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN36.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN37.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN38.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN39.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN4.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN40.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN41.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN42.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN43.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN44.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN45.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN46.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN47.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN48.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN49.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN5.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN50.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN51.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN52.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN53.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN54.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN55.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN56.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN57.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN58.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN59.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN6.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN60.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN61.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN62.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN63.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN64.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN65.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN66.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN67.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN68.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN69.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN7.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN70.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN71.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN72.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN73.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN74.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN75.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN76.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN77.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN78.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN79.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN8.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN80.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN81.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN82.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN83.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN84.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN85.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN86.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN87.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN88.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN89.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN9.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN90.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN91.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN92.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN93.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN94.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN95.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN96.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN97.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN98.inf | 2 +- src/bin/hamcore/inf/x64/INF_VPN99.inf | 2 +- src/bin/hamcore/inf/x64/inf.cat | Bin 43113 -> 43113 bytes src/bin/hamcore/inf/x86/INF_VPN.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN10.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN100.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN101.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN102.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN103.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN104.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN105.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN106.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN107.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN108.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN109.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN11.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN110.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN111.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN112.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN113.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN114.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN115.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN116.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN117.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN118.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN119.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN12.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN120.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN121.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN122.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN123.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN124.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN125.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN126.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN127.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN13.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN14.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN15.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN16.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN17.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN18.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN19.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN2.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN20.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN21.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN22.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN23.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN24.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN25.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN26.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN27.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN28.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN29.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN3.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN30.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN31.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN32.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN33.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN34.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN35.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN36.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN37.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN38.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN39.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN4.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN40.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN41.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN42.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN43.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN44.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN45.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN46.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN47.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN48.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN49.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN5.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN50.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN51.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN52.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN53.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN54.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN55.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN56.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN57.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN58.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN59.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN6.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN60.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN61.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN62.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN63.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN64.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN65.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN66.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN67.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN68.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN69.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN7.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN70.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN71.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN72.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN73.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN74.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN75.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN76.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN77.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN78.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN79.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN8.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN80.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN81.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN82.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN83.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN84.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN85.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN86.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN87.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN88.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN89.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN9.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN90.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN91.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN92.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN93.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN94.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN95.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN96.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN97.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN98.inf | 2 +- src/bin/hamcore/inf/x86/INF_VPN99.inf | 2 +- src/bin/hamcore/inf/x86/inf.cat | Bin 43113 -> 43113 bytes src/bin/hamcore/pxwfp_x64.sys | Bin 22240 -> 22240 bytes src/bin/hamcore/pxwfp_x86.sys | Bin 18016 -> 18016 bytes src/bin/hamcore/see.sys | Bin 43104 -> 43104 bytes src/bin/hamcore/see_x64.sys | Bin 38240 -> 38240 bytes src/bin/hamcore/strtable_cn.stb | 2 + src/bin/hamcore/strtable_en.stb | 3 +- src/bin/hamcore/strtable_ja.stb | 2 + src/bin/hamcore/vpn_driver.sys | Bin 25824 -> 25824 bytes src/bin/hamcore/vpn_driver6.sys | Bin 26208 -> 26208 bytes src/bin/hamcore/vpn_driver6_x64.sys | Bin 28768 -> 28640 bytes src/bin/hamcore/vpn_driver_x64.sys | Bin 29536 -> 29536 bytes src/bin/hamcore/warning_cn.txt | 3 + src/bin/hamcore/warning_en.txt | 3 + src/bin/hamcore/warning_ja.txt | 2 + src/bin/vpnweb.cab | Bin 195821 -> 195820 bytes src/bin/vpnweb.ocx | Bin 333880 -> 333880 bytes src/makefiles/freebsd_32bit.mak | 4 +- src/makefiles/freebsd_64bit.mak | 4 +- src/makefiles/linux_32bit.mak | 4 +- src/makefiles/linux_64bit.mak | 4 +- src/makefiles/macos_32bit.mak | 4 +- src/makefiles/macos_64bit.mak | 4 +- src/makefiles/openbsd_32bit.mak | 4 +- src/makefiles/openbsd_64bit.mak | 4 +- src/makefiles/solaris_32bit.mak | 4 +- src/makefiles/solaris_64bit.mak | 4 +- src/vpnweb/vpnweb.h | 2 +- src/vpnweb/vpnweb_i.c | 2 +- src/vpnweb/vpnweb_p.c | 2 +- 337 files changed, 1411 insertions(+), 493 deletions(-) diff --git a/LICENSE b/LICENSE index 11b11df2..a919c97b 100644 --- a/LICENSE +++ b/LICENSE @@ -3,9 +3,9 @@ open-source. You can redistribute them and/or modify them under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. -Copyright (c) 2012-2014 Daiyuu Nobori. -Copyright (c) 2012-2014 SoftEther Project at University of Tsukuba, Japan. -Copyright (c) 2012-2014 SoftEther Corporation. +Copyright (c) 2012-2015 Daiyuu Nobori. +Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. +Copyright (c) 2012-2015 SoftEther Corporation. All Rights Reserved. http://www.softether.org/ diff --git a/LICENSE.TXT b/LICENSE.TXT index 11b11df2..a919c97b 100644 --- a/LICENSE.TXT +++ b/LICENSE.TXT @@ -3,9 +3,9 @@ open-source. You can redistribute them and/or modify them under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. -Copyright (c) 2012-2014 Daiyuu Nobori. -Copyright (c) 2012-2014 SoftEther Project at University of Tsukuba, Japan. -Copyright (c) 2012-2014 SoftEther Corporation. +Copyright (c) 2012-2015 Daiyuu Nobori. +Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. +Copyright (c) 2012-2015 SoftEther Corporation. All Rights Reserved. http://www.softether.org/ diff --git a/README b/README index e12a777f..9e4efff0 100644 --- a/README +++ b/README @@ -10,7 +10,7 @@ http://www.softether-download.com/ We accept your patches by the acceptance policy: http://www.softether.org/5-download/src/9.patch -Copyright (c) 2012-2014 SoftEther Project at University of Tsukuba, Japan. +Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 diff --git a/README.TXT b/README.TXT index e12a777f..9e4efff0 100644 --- a/README.TXT +++ b/README.TXT @@ -10,7 +10,7 @@ http://www.softether-download.com/ We accept your patches by the acceptance policy: http://www.softether.org/5-download/src/9.patch -Copyright (c) 2012-2014 SoftEther Project at University of Tsukuba, Japan. +Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 diff --git a/WARNING.TXT b/WARNING.TXT index ac8ca580..ebb373a7 100644 --- a/WARNING.TXT +++ b/WARNING.TXT @@ -521,3 +521,45 @@ parts of VPN Gate are not developed by SoftEther Corporation. The VPN Gate Research Project is not a subject to be led, operated, promoted nor guaranteed by SoftEther Corporation. +5.13. The P2P Relay Function in the VPN Gate Client to strengthen the +capability of circumvention of censorship firewalls +VPN Gate Clients, which are published since January 2015, include the P2P +Relay Function. The P2P Relay Function is implemented in order to strengthen +the capability of circumvention of censorship firewalls. If the P2P Relay +Function in your VPN Gate Client is enabled, then the P2P Relay Function will +accept the incoming VPN connections from the VPN Gate users, which are located +on mainly same regions around you, and will provide the relay function to the +external remote VPN Gate Servers, which are hosted by third parties in the +free Internet environment. This P2P Relay Function never provides the shared +NAT functions nor replaces the outgoing IP address of the VPN Gate users to +your IP addresses because this P2P Relay Function only provides the +"reflection service" (hair-pin relaying), relaying from incoming VPN Gate +users to an external VPN Gate Server. In this situation, VPN tunnels via your +P2P Relay Function will be finally terminated on the external VPN Gate Server, +not your VPN Gate Client. However, the VPN Gate Server as the final +destination will record your IP address as the source IP address of VPN +tunnels which will be initiated by your P2P Relay Function. Additionally, user +packets which are transmitted via your P2P Relay Function will be recorded on +your computer as packet logs as described on the section 5.8. After you +installed the VPN Gate Client, and if the P2P Relay Function will be enabled +automatically, then all matters on the 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, +5.10, 5.11 and 5.12 sections will be applied to you and your computer, as same +to the situation when you enabled the VPN Gate Service (the VPN Gate Server +function). If your P2P Function is enabled, then your computer's IP address +and the default operator's name which is described on the section 5.5 will be +listed on the VPN Gate Server List which is provided by the VPN Gate Project. +You can change these strings by editing the "vpn_gate_relay.config" file +manually. Note that you need to stop the VPN Client service before editing it. +The VPN Gate Client will automatically enable the P2P Relay Function on your +computer if the VPN Gate Client detects that your computer might be located in +regions where there are existing censorship firewalls. If you want to disable +the P2P Relay Function, you must set the "DisableRelayServer" flag to "true" +on the "vpn_client.config" file which is the configuration file of the VPN +Client. Note that you need to stop the VPN Client service before editing it. +The VPN Gate Client does not recognize the particular regulation of your +country or your region. The VPN Gate Client activates the P2P Relay Function +even if your country or your region has the law to restrict running P2P relay +functions. Therefore, in such a case, you must disable the P2P Relay Function +on the VPN Gate Client manually by setting the "DisableRelayServer" flag if +you reside in such a restricted area, in your own responsibility. + diff --git a/centos/SOURCES/linux_32bit.mak b/centos/SOURCES/linux_32bit.mak index d6a9307e..cfcb41dd 100644 --- a/centos/SOURCES/linux_32bit.mak +++ b/centos/SOURCES/linux_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/centos/SOURCES/linux_64bit.mak b/centos/SOURCES/linux_64bit.mak index ccf8f61d..43b7940e 100644 --- a/centos/SOURCES/linux_64bit.mak +++ b/centos/SOURCES/linux_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/Cedar/Admin.c b/src/Cedar/Admin.c index 29bdf52b..5458b7dd 100644 --- a/src/Cedar/Admin.c +++ b/src/Cedar/Admin.c @@ -10400,6 +10400,8 @@ void SiEnumLocalLogFileList(SERVER *s, char *hubname, RPC_ENUM_LOG_FILE *t) void SiEnumLocalSession(SERVER *s, char *hubname, RPC_ENUM_SESSION *t) { HUB *h; + UINT64 now = Tick64(); + UINT64 dormant_interval = 0; // Validate arguments if (s == NULL || hubname == NULL || t == NULL) { @@ -10417,6 +10419,11 @@ void SiEnumLocalSession(SERVER *s, char *hubname, RPC_ENUM_SESSION *t) return; } + if (h->Option != NULL) + { + dormant_interval = h->Option->DetectDormantSessionInterval * (UINT64)1000; + } + LockList(h->SessionList); { UINT i; @@ -10453,8 +10460,36 @@ void SiEnumLocalSession(SERVER *s, char *hubname, RPC_ENUM_SESSION *t) e->Client_BridgeMode = s->IsBridgeMode; e->Client_MonitorMode = s->IsMonitorMode; Copy(e->UniqueId, s->NodeInfo.UniqueId, 16); + + if (s->NormalClient) + { + e->IsDormantEnabled = (dormant_interval == 0 ? false : true); + if (e->IsDormantEnabled) + { + if (s->LastCommTimeForDormant == 0) + { + e->LastCommDormant = (UINT64)0x7FFFFFFF; + } + else + { + e->LastCommDormant = now - s->LastCommTimeForDormant; + } + if (s->LastCommTimeForDormant == 0) + { + e->IsDormant = true; + } + else + { + if ((s->LastCommTimeForDormant + dormant_interval) < now) + { + e->IsDormant = true; + } + } + } + } } Unlock(s->lock); + GetMachineName(e->RemoteHostname, sizeof(e->RemoteHostname)); } } @@ -12744,6 +12779,9 @@ void InRpcEnumSession(RPC_ENUM_SESSION *t, PACK *p) PackGetStrEx(p, "RemoteHostname", e->RemoteHostname, sizeof(e->RemoteHostname), i); e->VLanId = PackGetIntEx(p, "VLanId", i); PackGetDataEx2(p, "UniqueId", e->UniqueId, sizeof(e->UniqueId), i); + e->IsDormantEnabled = PackGetBoolEx(p, "IsDormantEnabled", i); + e->IsDormant = PackGetBoolEx(p, "IsDormant", i); + e->LastCommDormant = PackGetInt64Ex(p, "LastCommDormant", i); } } void OutRpcEnumSession(PACK *p, RPC_ENUM_SESSION *t) @@ -12778,6 +12816,9 @@ void OutRpcEnumSession(PACK *p, RPC_ENUM_SESSION *t) PackAddBoolEx(p, "Client_MonitorMode", e->Client_MonitorMode, i, t->NumSession); PackAddIntEx(p, "VLanId", e->VLanId, i, t->NumSession); PackAddDataEx(p, "UniqueId", e->UniqueId, sizeof(e->UniqueId), i, t->NumSession); + PackAddBoolEx(p, "IsDormantEnabled", e->IsDormantEnabled, i, t->NumSession); + PackAddBoolEx(p, "IsDormant", e->IsDormant, i, t->NumSession); + PackAddInt64Ex(p, "LastCommDormant", e->LastCommDormant, i, t->NumSession); } } void FreeRpcEnumSession(RPC_ENUM_SESSION *t) diff --git a/src/Cedar/Admin.h b/src/Cedar/Admin.h index 9d4039ce..98723851 100644 --- a/src/Cedar/Admin.h +++ b/src/Cedar/Admin.h @@ -672,6 +672,9 @@ struct RPC_ENUM_SESSION_ITEM bool Client_MonitorMode; // Client is monitoring mode UINT VLanId; // VLAN ID UCHAR UniqueId[16]; // Unique ID + bool IsDormantEnabled; // Is the dormant state enabled + bool IsDormant; // Is in the dormant state + UINT64 LastCommDormant; // Last comm interval in the dormant state }; // Disconnect the session diff --git a/src/Cedar/BridgeUnix.c b/src/Cedar/BridgeUnix.c index d3618eff..8519b53c 100644 --- a/src/Cedar/BridgeUnix.c +++ b/src/Cedar/BridgeUnix.c @@ -159,14 +159,22 @@ struct my_tpacket_auxdata #define MY_PACKET_AUXDATA 8 #endif // UNIX_LINUX +static LIST *eth_offload_list = NULL; + // Initialize void InitEth() { + eth_offload_list = NewList(NULL); } // Free void FreeEth() { + if (eth_offload_list != NULL) + { + FreeStrList(eth_offload_list); + eth_offload_list = NULL; + } } // Check whether interface description string of Ethernet device can be retrieved in this system @@ -683,8 +691,24 @@ ETH *OpenEthLinux(char *name, bool local, bool tapmode, char *tapaddr) { if (GetGlobalServerFlag(GSF_LOCALBRIDGE_NO_DISABLE_OFFLOAD) == false) { - // Disable hardware offloading - UnixDisableInterfaceOffload(name); + bool b = false; + + LockList(eth_offload_list); + { + if (IsInListStr(eth_offload_list, name) == false) + { + b = true; + + Add(eth_offload_list, CopyStr(name)); + } + } + UnlockList(eth_offload_list); + + if (b) + { + // Disable hardware offloading + UnixDisableInterfaceOffload(name); + } } } diff --git a/src/Cedar/Cedar.c b/src/Cedar/Cedar.c index 45a49a38..127c862e 100644 --- a/src/Cedar/Cedar.c +++ b/src/Cedar/Cedar.c @@ -237,7 +237,7 @@ bool IsSupportedWinVer(RPC_WINVER *v) #if 0 // Enable in future when supported - if (v->VerMajor == 6 && v->VerMinor == 4) + if ((v->VerMajor == 6 && v->VerMinor == 4) ||(v->VerMajor == 10 && v->VerMinor == 0)) { // Windows 10, Server 10 if (v->ServicePack <= 0) @@ -908,6 +908,8 @@ void AddConnection(CEDAR *cedar, CONNECTION *c) // Determine the name of the connection i = Inc(cedar->ConnectionIncrement); Format(tmp, sizeof(tmp), "CID-%u", i); + + Lock(c->lock); { Free(c->Name); diff --git a/src/Cedar/Cedar.h b/src/Cedar/Cedar.h index 562583c2..d08fcb66 100644 --- a/src/Cedar/Cedar.h +++ b/src/Cedar/Cedar.h @@ -135,10 +135,10 @@ // Version number -#define CEDAR_VER 412 +#define CEDAR_VER 413 // Build Number -#define CEDAR_BUILD 9514 +#define CEDAR_BUILD 9522 // Beta number //#define BETA_NUMBER 3 @@ -153,15 +153,15 @@ // Specify the location to build #ifndef BUILD_PLACE -#define BUILD_PLACE "pc25" +#define BUILD_PLACE "pc30" #endif // BUILD_PLACE // Specifies the build date -#define BUILD_DATE_Y 2014 -#define BUILD_DATE_M 11 -#define BUILD_DATE_D 17 -#define BUILD_DATE_HO 21 -#define BUILD_DATE_MI 41 +#define BUILD_DATE_Y 2015 +#define BUILD_DATE_M 1 +#define BUILD_DATE_D 30 +#define BUILD_DATE_HO 19 +#define BUILD_DATE_MI 27 #define BUILD_DATE_SE 16 // Tolerable time difference diff --git a/src/Cedar/Client.c b/src/Cedar/Client.c index 41cf7c1f..622c57d5 100644 --- a/src/Cedar/Client.c +++ b/src/Cedar/Client.c @@ -10462,7 +10462,7 @@ void CiWriteSettingToCfg(CLIENT *c, FOLDER *root) } // Create the inner VPN Server -SERVER *CiNewInnerVPNServer(CLIENT *c) +SERVER *CiNewInnerVPNServer(CLIENT *c, bool relay_server) { SERVER *s = NULL; // Validate arguments @@ -10473,7 +10473,7 @@ SERVER *CiNewInnerVPNServer(CLIENT *c) SetNatTLowPriority(); - s = SiNewServerEx(false, true); + s = SiNewServerEx(false, true, relay_server); return s; } diff --git a/src/Cedar/Client.h b/src/Cedar/Client.h index 5a1101b6..5b23c4cd 100644 --- a/src/Cedar/Client.h +++ b/src/Cedar/Client.h @@ -797,7 +797,7 @@ bool CiEraseSensitiveInAccount(BUF *b); bool CiHasAccountSensitiveInformation(BUF *b); bool CiHasAccountSensitiveInformationFile(wchar_t *name); void CiApplyInnerVPNServerConfig(CLIENT *c); -SERVER *CiNewInnerVPNServer(CLIENT *c); +SERVER *CiNewInnerVPNServer(CLIENT *c, bool relay_server); void CiFreeInnerVPNServer(CLIENT *c, SERVER *s); void CiIncrementNumActiveSessions(); void CiDecrementNumActiveSessions(); diff --git a/src/Cedar/DDNS.c b/src/Cedar/DDNS.c index d376be10..f1cb47a0 100644 --- a/src/Cedar/DDNS.c +++ b/src/Cedar/DDNS.c @@ -518,7 +518,7 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace UCHAR machine_key[SHA1_SIZE]; char machine_key_str[MAX_SIZE]; char machine_name[MAX_SIZE]; - BUF *cert_hash; + BUF *cert_hash = NULL; UINT err = ERR_INTERNAL_ERROR; UCHAR key_hash[SHA1_SIZE]; char key_hash_str[MAX_SIZE]; @@ -528,12 +528,18 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace UINT build = 0; bool use_https = false; bool use_vgs = false; + bool no_cert_verify = false; + char add_header_name[64]; + char add_header_value[64]; // Validate arguments if (c == NULL) { return ERR_INTERNAL_ERROR; } + Zero(add_header_name, sizeof(add_header_name)); + Zero(add_header_value, sizeof(add_header_value)); + Zero(current_azure_ip, sizeof(current_azure_ip)); GetCurrentMachineIpProcessHash(machine_key); @@ -642,8 +648,6 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace - cert_hash = StrToBin(DDNS_CERT_HASH); - Format(url2, sizeof(url2), "%s?v=%I64u", url, Rand64()); Format(url3, sizeof(url3), url2, key_hash_str[2], key_hash_str[3]); @@ -654,10 +658,23 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace ReplaceStr(url3, sizeof(url3), url3, ".servers", ".open.servers"); - Debug("WpcCall: %s\n", url3); - ret = WpcCallEx(url3, &t, DDNS_CONNECT_TIMEOUT, DDNS_COMM_TIMEOUT, "register", req, - NULL, NULL, ((cert_hash != NULL && cert_hash->Size == SHA1_SIZE) ? cert_hash->Buf : NULL), NULL, DDNS_RPC_MAX_RECV_SIZE); - Debug("WpcCall Ret: %u\n", ret); + + if (no_cert_verify == false) + { + cert_hash = StrToBin(DDNS_CERT_HASH); + } + + ret = NULL; + + + if (ret == NULL) + { + Debug("WpcCall: %s\n", url3); + ret = WpcCallEx(url3, &t, DDNS_CONNECT_TIMEOUT, DDNS_COMM_TIMEOUT, "register", req, + NULL, NULL, ((cert_hash != NULL && cert_hash->Size == SHA1_SIZE) ? cert_hash->Buf : NULL), NULL, DDNS_RPC_MAX_RECV_SIZE, + add_header_name, add_header_value); + Debug("WpcCall Ret: %u\n", ret); + } FreeBuf(cert_hash); @@ -806,7 +823,8 @@ UINT DCGetMyIpMain(DDNS_CLIENT *c, bool ipv6, char *dst, UINT dst_size, bool use UINT ret = ERR_INTERNAL_ERROR; URL_DATA data; BUF *recv; - BUF *cert_hash; + BUF *cert_hash = NULL; + bool no_cert_verify = false; // Validate arguments if (dst == NULL || c == NULL) { @@ -844,12 +862,17 @@ UINT DCGetMyIpMain(DDNS_CLIENT *c, bool ipv6, char *dst, UINT dst_size, bool use ReplaceStr(url2, sizeof(url2), url2, "http://", "https://"); } + if (ParseUrl(&data, url2, false, NULL) == false) { return ERR_INTERNAL_ERROR; } - cert_hash = StrToBin(DDNS_CERT_HASH); + if (no_cert_verify == false) + { + cert_hash = StrToBin(DDNS_CERT_HASH); + } + recv = HttpRequest(&data, (ipv6 ? NULL : &c->InternetSetting), DDNS_CONNECT_TIMEOUT, DDNS_COMM_TIMEOUT, &ret, false, NULL, NULL, NULL, ((cert_hash != NULL && cert_hash->Size == SHA1_SIZE) ? cert_hash->Buf : NULL)); @@ -904,6 +927,7 @@ UINT DCGetMyIpMain(DDNS_CLIENT *c, bool ipv6, char *dst, UINT dst_size, bool use return ret; } + // Creating a DDNS client DDNS_CLIENT *NewDDNSClient(CEDAR *cedar, UCHAR *key, INTERNET_SETTING *t) { diff --git a/src/Cedar/DDNS.h b/src/Cedar/DDNS.h index 14b0929d..0fcd13cd 100644 --- a/src/Cedar/DDNS.h +++ b/src/Cedar/DDNS.h @@ -236,6 +236,8 @@ UINT DCChangeHostName(DDNS_CLIENT *c, char *hostname); void DCSetInternetSetting(DDNS_CLIENT *c, INTERNET_SETTING *t); void DCGetInternetSetting(DDNS_CLIENT *c, INTERNET_SETTING *t); + + #endif // DDNS_H diff --git a/src/Cedar/Hub.c b/src/Cedar/Hub.c index bb99d434..35e33659 100644 --- a/src/Cedar/Hub.c +++ b/src/Cedar/Hub.c @@ -598,6 +598,8 @@ void DataToHubOptionStruct(HUB_OPTION *o, RPC_ADMIN_OPTION *ao) GetHubAdminOptionDataAndSet(ao, "SuppressClientUpdateNotification", &o->SuppressClientUpdateNotification); GetHubAdminOptionDataAndSet(ao, "FloodingSendQueueBufferQuota", &o->FloodingSendQueueBufferQuota); GetHubAdminOptionDataAndSet(ao, "AssignVLanIdByRadiusAttribute", &o->AssignVLanIdByRadiusAttribute); + GetHubAdminOptionDataAndSet(ao, "SecureNAT_RandomizeAssignIp", &o->SecureNAT_RandomizeAssignIp); + GetHubAdminOptionDataAndSet(ao, "DetectDormantSessionInterval", &o->DetectDormantSessionInterval); } // Convert the contents of the HUB_OPTION to data @@ -664,6 +666,8 @@ void HubOptionStructToData(RPC_ADMIN_OPTION *ao, HUB_OPTION *o, char *hub_name) Add(aol, NewAdminOption("SuppressClientUpdateNotification", o->SuppressClientUpdateNotification)); Add(aol, NewAdminOption("FloodingSendQueueBufferQuota", o->FloodingSendQueueBufferQuota)); Add(aol, NewAdminOption("AssignVLanIdByRadiusAttribute", o->AssignVLanIdByRadiusAttribute)); + Add(aol, NewAdminOption("SecureNAT_RandomizeAssignIp", o->SecureNAT_RandomizeAssignIp)); + Add(aol, NewAdminOption("DetectDormantSessionInterval", o->DetectDormantSessionInterval)); Zero(ao, sizeof(RPC_ADMIN_OPTION)); @@ -3973,6 +3977,7 @@ void StorePacket(HUB *hub, SESSION *s, PKT *packet) bool drop_broadcast_packet_privacy = false; bool drop_arp_packet_privacy = false; UINT tcp_queue_quota = 0; + UINT64 dormant_interval = 0; // Validate arguments if (hub == NULL || packet == NULL) { @@ -3996,6 +4001,24 @@ void StorePacket(HUB *hub, SESSION *s, PKT *packet) drop_broadcast_packet_privacy = hub->Option->DropBroadcastsInPrivacyFilterMode; drop_arp_packet_privacy = hub->Option->DropArpInPrivacyFilterMode; tcp_queue_quota = hub->Option->FloodingSendQueueBufferQuota; + if (hub->Option->DetectDormantSessionInterval != 0) + { + dormant_interval = (UINT64)hub->Option->DetectDormantSessionInterval * (UINT64)1000; + } + } + + if (dormant_interval != 0) + { + if (s != NULL && s->NormalClient) + { + if (packet->MacAddressSrc != NULL) + { + if (IsHubMacAddress(packet->MacAddressSrc) == false) + { + s->LastCommTimeForDormant = now; + } + } + } } // Lock the entire MAC address table @@ -4944,6 +4967,19 @@ DISCARD_UNICAST_PACKET: discard = true; } + if (dest_session->NormalClient) + { + if (dormant_interval != 0) + { + if (dest_session->LastCommTimeForDormant == 0 || + (dest_session->LastCommTimeForDormant + dormant_interval) < now) + { + // This is dormant session + discard = true; + } + } + } + if (tcp_queue_quota != 0) { current_tcp_queue_size = CedarGetCurrentTcpQueueSize(hub->Cedar); diff --git a/src/Cedar/Hub.h b/src/Cedar/Hub.h index 909dc77d..878cf825 100644 --- a/src/Cedar/Hub.h +++ b/src/Cedar/Hub.h @@ -276,6 +276,8 @@ struct HUB_OPTION bool SuppressClientUpdateNotification; // Suppress the update notification function on the VPN Client UINT FloodingSendQueueBufferQuota; // The global quota of send queues of flooding packets bool AssignVLanIdByRadiusAttribute; // Assign the VLAN ID for the VPN session, by the attribute value of RADIUS + bool SecureNAT_RandomizeAssignIp; // Randomize the assignment IP address for new DHCP client + UINT DetectDormantSessionInterval; // Interval (seconds) threshold to detect a dormant VPN session }; // MAC table entry @@ -487,8 +489,10 @@ struct HUB wchar_t *Msg; // Message to be displayed when the client is connected LIST *UserList; // Cache of the user list file bool IsVgsHub; // Whether it's a VGS Virtual HUB + bool IsVgsSuperRelayHub; // Whether it's a VGS Super Relay Virtual HUB UINT64 LastFlushTick; // Last tick to flush the MAC address table bool StopAllLinkFlag; // Stop all link flag + bool ForceDisableComm; // Disable the communication function }; diff --git a/src/Cedar/IPsec.c b/src/Cedar/IPsec.c index da86d323..42212525 100644 --- a/src/Cedar/IPsec.c +++ b/src/Cedar/IPsec.c @@ -392,12 +392,14 @@ void IPsecServerUdpPacketRecvProc(UDPLISTENER *u, LIST *packet_list) if (ipsec_disable == false) { - // Process the received packet - for (i = 0;i < LIST_NUM(packet_list);i++) { - UDPPACKET *p = LIST_DATA(packet_list, i); + // Process the received packet + for (i = 0;i < LIST_NUM(packet_list);i++) + { + UDPPACKET *p = LIST_DATA(packet_list, i); - IPsecProcPacket(s, p); + IPsecProcPacket(s, p); + } } } diff --git a/src/Cedar/IPsec_L2TP.c b/src/Cedar/IPsec_L2TP.c index badeb5c8..a73c6d61 100644 --- a/src/Cedar/IPsec_L2TP.c +++ b/src/Cedar/IPsec_L2TP.c @@ -1312,6 +1312,11 @@ L2TP_SESSION *NewL2TPSession(L2TP_SERVER *l2tp, L2TP_TUNNEL *t, UINT session_id_ return NULL; } + if (LIST_NUM(t->SessionList) >= L2TP_QUOTA_MAX_NUM_SESSIONS_PER_TUNNEL) + { + return NULL; + } + if (t->IsV3 == false) { session_id_by_server = GenerateNewSessionIdEx(t, t->IsV3); @@ -1481,6 +1486,31 @@ L2TP_SESSION *GetSessionFromIdAssignedByClient(L2TP_TUNNEL *t, UINT session_id) return NULL; } +// Get the number of L2TP sessions connected from the client IP address +UINT GetNumL2TPTunnelsByClientIP(L2TP_SERVER *l2tp, IP *client_ip) +{ + UINT i, ret; + // Validate arguments + if (l2tp == NULL || client_ip == NULL) + { + return 0; + } + + ret = 0; + + for (i = 0;i < LIST_NUM(l2tp->TunnelList);i++) + { + L2TP_TUNNEL *t = LIST_DATA(l2tp->TunnelList, i); + + if (CmpIpAddr(&t->ClientIp, client_ip) == 0) + { + ret++; + } + } + + return ret; +} + // Performs processing L2TP received packets. void ProcL2TPPacketRecv(L2TP_SERVER *l2tp, UDPPACKET *p) { @@ -1509,106 +1539,109 @@ void ProcL2TPPacketRecv(L2TP_SERVER *l2tp, UDPPACKET *p) UINT client_assigned_id = (pp->Ver == 3 ? READ_UINT(a->Data) : READ_USHORT(a->Data)); if (GetTunnelFromIdOfAssignedByClient(l2tp, &p->SrcIP, client_assigned_id) == NULL) { - char ipstr[MAX_SIZE]; - L2TP_PACKET *pp2; - UCHAR protocol_version[2]; - UCHAR caps_data[4]; - USHORT us; - char hostname[MAX_SIZE]; - - // Begin Tunneling - L2TP_TUNNEL *t = NewL2TPTunnel(l2tp, pp, p); - - if (t != NULL) + if (LIST_NUM(l2tp->TunnelList) < L2TP_QUOTA_MAX_NUM_TUNNELS && GetNumL2TPTunnelsByClientIP(l2tp, &p->SrcIP) >= L2TP_QUOTA_MAX_NUM_TUNNELS_PER_IP) { - IPToStr(ipstr, sizeof(ipstr), &t->ClientIp); - Debug("L2TP New Tunnel From %s (%s, %s): New Tunnel ID = %u/%u\n", ipstr, t->HostName, t->VendorName, - t->TunnelId1, t->TunnelId2); + char ipstr[MAX_SIZE]; + L2TP_PACKET *pp2; + UCHAR protocol_version[2]; + UCHAR caps_data[4]; + USHORT us; + char hostname[MAX_SIZE]; - // Add the tunnel to the list - Add(l2tp->TunnelList, t); + // Begin Tunneling + L2TP_TUNNEL *t = NewL2TPTunnel(l2tp, pp, p); - // Respond with SCCEP to SCCRQ - pp2 = NewL2TPControlPacket(L2TP_MESSAGE_TYPE_SCCRP, t->IsV3); - - // Protocol Version - protocol_version[0] = 1; - protocol_version[1] = 0; - Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_PROTOCOL_VERSION, true, 0, protocol_version, sizeof(protocol_version))); - - // Framing Capabilities - Zero(caps_data, sizeof(caps_data)); - if (t->IsV3 == false) + if (t != NULL) { - caps_data[3] = 3; - } - Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_FRAME_CAP, false, 0, caps_data, sizeof(caps_data))); + IPToStr(ipstr, sizeof(ipstr), &t->ClientIp); + Debug("L2TP New Tunnel From %s (%s, %s): New Tunnel ID = %u/%u\n", ipstr, t->HostName, t->VendorName, + t->TunnelId1, t->TunnelId2); - if (t->IsV3 == false) - { - // Bearer Capabilities + // Add the tunnel to the list + Add(l2tp->TunnelList, t); + + // Respond with SCCEP to SCCRQ + pp2 = NewL2TPControlPacket(L2TP_MESSAGE_TYPE_SCCRP, t->IsV3); + + // Protocol Version + protocol_version[0] = 1; + protocol_version[1] = 0; + Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_PROTOCOL_VERSION, true, 0, protocol_version, sizeof(protocol_version))); + + // Framing Capabilities Zero(caps_data, sizeof(caps_data)); - caps_data[3] = 3; - Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_BEARER_CAP, false, 0, caps_data, sizeof(caps_data))); - } + if (t->IsV3 == false) + { + caps_data[3] = 3; + } + Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_FRAME_CAP, false, 0, caps_data, sizeof(caps_data))); - // Host Name - GetMachineHostName(hostname, sizeof(hostname)); - if (IsEmptyStr(hostname)) - { - StrCpy(hostname, sizeof(hostname), "vpn"); - } - Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_HOST_NAME, true, 0, hostname, StrLen(hostname))); + if (t->IsV3 == false) + { + // Bearer Capabilities + Zero(caps_data, sizeof(caps_data)); + caps_data[3] = 3; + Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_BEARER_CAP, false, 0, caps_data, sizeof(caps_data))); + } - // Vendor Name - Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_VENDOR_NAME, false, 0, L2TP_VENDOR_NAME, StrLen(L2TP_VENDOR_NAME))); + // Host Name + GetMachineHostName(hostname, sizeof(hostname)); + if (IsEmptyStr(hostname)) + { + StrCpy(hostname, sizeof(hostname), "vpn"); + } + Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_HOST_NAME, true, 0, hostname, StrLen(hostname))); - // Assigned Tunnel ID - if (t->IsV3 == false) - { - us = Endian16(t->TunnelId2); - Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_ASSIGNED_TUNNEL, true, 0, &us, sizeof(USHORT))); - } - else - { - UINT ui = Endian32(t->TunnelId2); - Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_V3_TUNNEL_ID, true, 0, &ui, sizeof(UINT))); + // Vendor Name + Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_VENDOR_NAME, false, 0, L2TP_VENDOR_NAME, StrLen(L2TP_VENDOR_NAME))); + // Assigned Tunnel ID + if (t->IsV3 == false) + { + us = Endian16(t->TunnelId2); + Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_ASSIGNED_TUNNEL, true, 0, &us, sizeof(USHORT))); + } + else + { + UINT ui = Endian32(t->TunnelId2); + Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_V3_TUNNEL_ID, true, 0, &ui, sizeof(UINT))); + + if (t->IsCiscoV3) + { + Add(pp2->AvpList, NewAVP(L2TPV3_CISCO_AVP_TUNNEL_ID, true, L2TP_AVP_VENDOR_ID_CISCO, &ui, sizeof(UINT))); + } + } + + // Pseudowire Capabilities List + if (t->IsV3) + { + // Only Ethernet + USHORT cap_list[2]; + cap_list[0] = Endian16(L2TPV3_PW_TYPE_ETHERNET); + cap_list[1] = Endian16(L2TPV3_PW_TYPE_ETHERNET_VLAN); + Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_V3_PW_CAP_LIST, true, 0, cap_list, sizeof(cap_list))); + + if (t->IsCiscoV3) + { + Add(pp2->AvpList, NewAVP(L2TPV3_CISCO_AVP_PW_CAP_LIST, true, L2TP_AVP_VENDOR_ID_CISCO, cap_list, sizeof(cap_list))); + } + } + + // Cisco AVP if (t->IsCiscoV3) { - Add(pp2->AvpList, NewAVP(L2TPV3_CISCO_AVP_TUNNEL_ID, true, L2TP_AVP_VENDOR_ID_CISCO, &ui, sizeof(UINT))); + USHORT us = Endian16(1); + Add(pp2->AvpList, NewAVP(L2TPV3_CISCO_AVP_DRAFT_AVP_VERSION, true, L2TP_AVP_VENDOR_ID_CISCO, &us, sizeof(USHORT))); } + + // Recv Window Size + us = Endian16(L2TP_WINDOW_SIZE); + Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_RECV_WINDOW_SIZE, false, 0, &us, sizeof(USHORT))); + + SendL2TPControlPacket(l2tp, t, 0, pp2); + + FreeL2TPPacket(pp2); } - - // Pseudowire Capabilities List - if (t->IsV3) - { - // Only Ethernet - USHORT cap_list[2]; - cap_list[0] = Endian16(L2TPV3_PW_TYPE_ETHERNET); - cap_list[1] = Endian16(L2TPV3_PW_TYPE_ETHERNET_VLAN); - Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_V3_PW_CAP_LIST, true, 0, cap_list, sizeof(cap_list))); - - if (t->IsCiscoV3) - { - Add(pp2->AvpList, NewAVP(L2TPV3_CISCO_AVP_PW_CAP_LIST, true, L2TP_AVP_VENDOR_ID_CISCO, cap_list, sizeof(cap_list))); - } - } - - // Cisco AVP - if (t->IsCiscoV3) - { - USHORT us = Endian16(1); - Add(pp2->AvpList, NewAVP(L2TPV3_CISCO_AVP_DRAFT_AVP_VERSION, true, L2TP_AVP_VENDOR_ID_CISCO, &us, sizeof(USHORT))); - } - - // Recv Window Size - us = Endian16(L2TP_WINDOW_SIZE); - Add(pp2->AvpList, NewAVP(L2TP_AVP_TYPE_RECV_WINDOW_SIZE, false, 0, &us, sizeof(USHORT))); - - SendL2TPControlPacket(l2tp, t, 0, pp2); - - FreeL2TPPacket(pp2); } } } diff --git a/src/Cedar/IPsec_L2TP.h b/src/Cedar/IPsec_L2TP.h index 0c6bda5e..29815bfc 100644 --- a/src/Cedar/IPsec_L2TP.h +++ b/src/Cedar/IPsec_L2TP.h @@ -148,6 +148,11 @@ // Threshold number of registered items in the transmission queue for suppressing the L2TP Hello transmission #define L2TP_HELLO_SUPRESS_MAX_THRETHORD_NUM_SEND_QUEUE 32 +// Quota +#define L2TP_QUOTA_MAX_NUM_TUNNELS_PER_IP 1000 // Number of L2TP sessions per IP address +#define L2TP_QUOTA_MAX_NUM_TUNNELS 30000 // Limit of the number of sessions +#define L2TP_QUOTA_MAX_NUM_SESSIONS_PER_TUNNEL 1024 // Max sessions in a tunnel + // L2TP window size #define L2TP_WINDOW_SIZE 16 @@ -328,6 +333,7 @@ struct L2TP_SERVER //// Function prototype L2TP_SERVER *NewL2TPServer(CEDAR *cedar); L2TP_SERVER *NewL2TPServerEx(CEDAR *cedar, IKE_SERVER *ike, bool is_ipv6, UINT crypt_block_size); +UINT GetNumL2TPTunnelsByClientIP(L2TP_SERVER *l2tp, IP *client_ip); void SetL2TPServerSockEvent(L2TP_SERVER *l2tp, SOCK_EVENT *e); void FreeL2TPServer(L2TP_SERVER *l2tp); void StopL2TPServer(L2TP_SERVER *l2tp, bool no_wait); diff --git a/src/Cedar/Interop_SSTP.c b/src/Cedar/Interop_SSTP.c index c0a47581..187d0c4c 100644 --- a/src/Cedar/Interop_SSTP.c +++ b/src/Cedar/Interop_SSTP.c @@ -118,6 +118,7 @@ static bool g_no_sstp = false; // Get the SSTP disabling flag bool GetNoSstp() { + return g_no_sstp; } diff --git a/src/Cedar/Protocol.c b/src/Cedar/Protocol.c index 7599a28b..6648be26 100644 --- a/src/Cedar/Protocol.c +++ b/src/Cedar/Protocol.c @@ -1596,6 +1596,16 @@ bool ServerAccept(CONNECTION *c) goto CLEANUP; } + if (hub->ForceDisableComm) + { + // Commnunication function is disabled + FreePack(p); + c->Err = ERR_SERVER_CANT_ACCEPT; + error_detail = "ERR_COMM_DISABLED"; + ReleaseHub(hub); + goto CLEANUP; + } + if (GetGlobalServerFlag(GSF_DISABLE_AC) == 0) { if (hub->HubDb != NULL && c->FirstSock != NULL) @@ -2974,8 +2984,11 @@ bool ServerAccept(CONNECTION *c) if (s->UseUdpAcceleration) { + bool no_nat_t = false; + + // Initialize the UDP acceleration function - s->UdpAccel = NewUdpAccel(c->Cedar, (c->FirstSock->IsRUDPSocket ? NULL : &c->FirstSock->LocalIP), false, c->FirstSock->IsRUDPSocket, false); + s->UdpAccel = NewUdpAccel(c->Cedar, (c->FirstSock->IsRUDPSocket ? NULL : &c->FirstSock->LocalIP), false, c->FirstSock->IsRUDPSocket, no_nat_t); if (s->UdpAccel == NULL) { s->UseUdpAcceleration = false; @@ -6039,6 +6052,8 @@ bool ServerDownloadSignature(CONNECTION *c, char **error_detail_str) while (true) { + bool not_found_error = false; + num++; if (num > max) { @@ -6082,6 +6097,8 @@ bool ServerDownloadSignature(CONNECTION *c, char **error_detail_str) } + + // Interpret if (StrCmpi(h->Method, "POST") == 0) { @@ -6107,7 +6124,7 @@ bool ServerDownloadSignature(CONNECTION *c, char **error_detail_str) return false; } // Check the Target - if (StrCmpi(h->Target, vpn_http_target) != 0) + if ((StrCmpi(h->Target, vpn_http_target) != 0) || not_found_error) { // Target is invalid HttpSendNotFound(s, h->Target); diff --git a/src/Cedar/SM.c b/src/Cedar/SM.c index 1f1775d3..a320f1a7 100644 --- a/src/Cedar/SM.c +++ b/src/Cedar/SM.c @@ -9629,6 +9629,11 @@ void SmSessionDlgRefresh(HWND hWnd, SM_HUB *s) } } + if (e->IsDormantEnabled && e->IsDormant) + { + icon = ICO_TRAY0; + } + LvInsertAdd(b, icon, (void *)(e->RemoteSession), 8, tmp1, tmp8, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7); if (free_tmp2) diff --git a/src/Cedar/Server.c b/src/Cedar/Server.c index 08b1fb3d..5121f731 100644 --- a/src/Cedar/Server.c +++ b/src/Cedar/Server.c @@ -117,6 +117,7 @@ static SERVER *server = NULL; static LOCK *server_lock = NULL; char *SERVER_CONFIG_FILE_NAME = "@vpn_server.config"; char *SERVER_CONFIG_FILE_NAME_IN_CLIENT = "@vpn_gate_svc.config"; +char *SERVER_CONFIG_FILE_NAME_IN_CLIENT_RELAY = "@vpn_gate_relay.config"; char *BRIDGE_CONFIG_FILE_NAME = "@vpn_bridge.config"; char *SERVER_CONFIG_TEMPLATE_NAME = "@vpn_server_template.config"; char *BRIDGE_CONFIG_TEMPLATE_NAME = "@vpn_server_template.config"; @@ -4102,6 +4103,8 @@ void SiLoadHubOptionCfg(FOLDER *f, HUB_OPTION *o) o->DisableCorrectIpOffloadChecksum = CfgGetBool(f, "DisableCorrectIpOffloadChecksum"); o->SuppressClientUpdateNotification = CfgGetBool(f, "SuppressClientUpdateNotification"); o->AssignVLanIdByRadiusAttribute = CfgGetBool(f, "AssignVLanIdByRadiusAttribute"); + o->SecureNAT_RandomizeAssignIp = CfgGetBool(f, "SecureNAT_RandomizeAssignIp"); + o->DetectDormantSessionInterval = CfgGetInt(f, "DetectDormantSessionInterval"); // Enabled by default if (CfgIsItem(f, "ManageOnlyPrivateIP")) @@ -4178,6 +4181,8 @@ void SiWriteHubOptionCfg(FOLDER *f, HUB_OPTION *o) CfgAddBool(f, "DropArpInPrivacyFilterMode", o->DropArpInPrivacyFilterMode); CfgAddBool(f, "SuppressClientUpdateNotification", o->SuppressClientUpdateNotification); CfgAddBool(f, "AssignVLanIdByRadiusAttribute", o->AssignVLanIdByRadiusAttribute); + CfgAddBool(f, "SecureNAT_RandomizeAssignIp", o->SecureNAT_RandomizeAssignIp); + CfgAddInt(f, "DetectDormantSessionInterval", o->DetectDormantSessionInterval); CfgAddBool(f, "NoLookBPDUBridgeId", o->NoLookBPDUBridgeId); CfgAddInt(f, "AdjustTcpMssValue", o->AdjustTcpMssValue); CfgAddBool(f, "DisableAdjustTcpMss", o->DisableAdjustTcpMss); @@ -7479,6 +7484,8 @@ void SiCalledUpdateHub(SERVER *s, PACK *p) o.DropArpInPrivacyFilterMode = PackGetBool(p, "DropArpInPrivacyFilterMode"); o.SuppressClientUpdateNotification = PackGetBool(p, "SuppressClientUpdateNotification"); o.AssignVLanIdByRadiusAttribute = PackGetBool(p, "AssignVLanIdByRadiusAttribute"); + o.SecureNAT_RandomizeAssignIp = PackGetBool(p, "SecureNAT_RandomizeAssignIp"); + o.DetectDormantSessionInterval = PackGetInt(p, "DetectDormantSessionInterval"); o.VlanTypeId = PackGetInt(p, "VlanTypeId"); if (o.VlanTypeId == 0) { @@ -9320,6 +9327,8 @@ void SiPackAddCreateHub(PACK *p, HUB *h) PackAddBool(p, "SuppressClientUpdateNotification", h->Option->SuppressClientUpdateNotification); PackAddBool(p, "AssignVLanIdByRadiusAttribute", h->Option->AssignVLanIdByRadiusAttribute); PackAddInt(p, "ClientMinimumRequiredBuild", h->Option->ClientMinimumRequiredBuild); + PackAddBool(p, "SecureNAT_RandomizeAssignIp", h->Option->SecureNAT_RandomizeAssignIp); + PackAddInt(p, "DetectDormantSessionInterval", h->Option->DetectDormantSessionInterval); PackAddBool(p, "FixForDLinkBPDU", h->Option->FixForDLinkBPDU); PackAddBool(p, "BroadcastLimiterStrictMode", h->Option->BroadcastLimiterStrictMode); PackAddBool(p, "NoLookBPDUBridgeId", h->Option->NoLookBPDUBridgeId); @@ -10851,9 +10860,9 @@ void SiUpdateCurrentRegion(CEDAR *c, char *region, bool force_update) // Create a server SERVER *SiNewServer(bool bridge) { - return SiNewServerEx(bridge, false); + return SiNewServerEx(bridge, false, false); } -SERVER *SiNewServerEx(bool bridge, bool in_client_inner_server) +SERVER *SiNewServerEx(bool bridge, bool in_client_inner_server, bool relay_server) { SERVER *s; LISTENER *inproc; diff --git a/src/Cedar/Server.h b/src/Cedar/Server.h index c722ca43..54be62c2 100644 --- a/src/Cedar/Server.h +++ b/src/Cedar/Server.h @@ -472,7 +472,7 @@ struct SERVER_HUB_CREATE_HISTORY // Function prototype declaration SERVER *SiNewServer(bool bridge); -SERVER *SiNewServerEx(bool bridge, bool in_client_inner_server); +SERVER *SiNewServerEx(bool bridge, bool in_client_inner_server, bool relay_server); void SiReleaseServer(SERVER *s); void SiCleanupServer(SERVER *s); void StStartServer(bool bridge); diff --git a/src/Cedar/Session.c b/src/Cedar/Session.c index a01b2ec4..601a635f 100644 --- a/src/Cedar/Session.c +++ b/src/Cedar/Session.c @@ -305,6 +305,16 @@ void SessionMain(SESSION *s) } + if (is_server_session && s->LinkModeServer == false && s->SecureNATMode == false && s->BridgeMode == false && s->L3SwitchMode == false) + { + if (s->Hub != NULL && s->Hub->ForceDisableComm) + { + // Disconnect the session forcibly because the ForceDisableComm flag is set + err = ERR_SERVER_CANT_ACCEPT; + pa_fail = true; + } + } + if (s->InProcMode) { if (c->TubeSock == NULL || IsTubeConnected(c->TubeSock->SendTube) == false || IsTubeConnected(c->TubeSock->RecvTube) == false) @@ -324,7 +334,6 @@ void SessionMain(SESSION *s) pa_fail = true; } } - // Chance of additional connection if (is_server_session == false) @@ -1409,20 +1418,26 @@ void ClientThread(THREAD *t, void *param) bool no_save_password = false; bool is_vpngate_connection = false; CEDAR *cedar; + bool num_active_sessions_incremented = false; // Validate arguments if (t == NULL || param == NULL) { return; } - CiIncrementNumActiveSessions(); - Debug("ClientThread 0x%x Started.\n", t); s = (SESSION *)param; AddRef(s->ref); s->Thread = t; AddRef(t->ref); + + if (s->LinkModeClient == false) + { + CiIncrementNumActiveSessions(); + num_active_sessions_incremented = true; + } + NoticeThreadInit(t); cedar = s->Cedar; @@ -1793,7 +1808,10 @@ SKIP: ReleaseSession(s); - CiDecrementNumActiveSessions(); + if (num_active_sessions_incremented) + { + CiDecrementNumActiveSessions(); + } } // Name comparison of sessions @@ -2209,6 +2227,19 @@ SESSION *NewServerSessionEx(CEDAR *cedar, CONNECTION *c, HUB *h, char *username, { Format(name, sizeof(name), "SID-%s-[%s]-%u", user_name_upper, c->InProcPrefix, Inc(h->SessionCounter)); } + + if (h->IsVgsHub || h->IsVgsSuperRelayHub) + { + UCHAR rand[5]; + char tmp[32]; + + Rand(rand, sizeof(rand)); + + BinToStr(tmp, sizeof(tmp), rand, sizeof(rand)); + + StrCat(name, sizeof(name), "-"); + StrCat(name, sizeof(name), tmp); + } } else { diff --git a/src/Cedar/Session.h b/src/Cedar/Session.h index 5f10fe24..d3c68be5 100644 --- a/src/Cedar/Session.h +++ b/src/Cedar/Session.h @@ -230,6 +230,7 @@ struct SESSION UINT64 CreatedTime; // Creation date and time UINT64 LastCommTime; // Last communication date and time + UINT64 LastCommTimeForDormant; // Last communication date and time (for dormant) TRAFFIC *Traffic; // Traffic data TRAFFIC *OldTraffic; // Old traffic data UINT64 TotalSendSize; // Total transmitted data size diff --git a/src/Cedar/UdpAccel.c b/src/Cedar/UdpAccel.c index 0e592e81..408da23d 100644 --- a/src/Cedar/UdpAccel.c +++ b/src/Cedar/UdpAccel.c @@ -342,7 +342,7 @@ void UdpAccelPoll(UDP_ACCEL *a) else { // NAT_T is disabled, but there is a reference host (such as VGC) - if (a->UseUdpIpQuery) + if (a->UseUdpIpQuery || a->UseSuperRelayQuery) { } } diff --git a/src/Cedar/UdpAccel.h b/src/Cedar/UdpAccel.h index 52fec969..8723220b 100644 --- a/src/Cedar/UdpAccel.h +++ b/src/Cedar/UdpAccel.h @@ -193,6 +193,7 @@ struct UDP_ACCEL UINT64 CreatedTick; // Object creation time bool FastDetect; // Fast disconnection detection mode UINT64 FirstStableReceiveTick; // Start time of current stable continued receivable period + bool UseSuperRelayQuery; // Use the super relay query bool UseUdpIpQuery; // Use the self IP address query by UDP IP UdpIpQueryHost; // Host for the self IP address query by UDP UINT UdpIpQueryPort; // Port number for self IP address for query by UDP diff --git a/src/Cedar/Virtual.c b/src/Cedar/Virtual.c index 44e35e55..444c7f9d 100644 --- a/src/Cedar/Virtual.c +++ b/src/Cedar/Virtual.c @@ -9282,7 +9282,16 @@ UINT ServeDhcpDiscover(VH *v, UCHAR *mac, UINT request_ip) if (ret == 0) { // Take an appropriate IP addresses that can be assigned newly - ret = GetFreeDhcpIpAddress(v); + HUB_OPTION *opt = NatGetHubOption(v); + + if (opt != NULL && opt->SecureNAT_RandomizeAssignIp) + { + ret = GetFreeDhcpIpAddressByRandom(v, mac); + } + else + { + ret = GetFreeDhcpIpAddress(v); + } } return ret; @@ -9316,6 +9325,56 @@ UINT GetFreeDhcpIpAddress(VH *v) return 0; } +// Take an appropriate IP addresses that can be assigned newly (random) +UINT GetFreeDhcpIpAddressByRandom(VH *v, UCHAR *mac) +{ + UINT ip_start, ip_end; + UINT i; + UINT num_retry; + // Validate arguments + if (v == NULL || mac == NULL) + { + return 0; + } + + ip_start = Endian32(v->DhcpIpStart); + ip_end = Endian32(v->DhcpIpEnd); + + if (ip_start > ip_end) + { + return 0; + } + + num_retry = (ip_end - ip_start + 1) * 2; + num_retry = MIN(num_retry, 65536 * 2); + + for (i = 0;i < num_retry;i++) + { + UCHAR rand_seed[sizeof(UINT) + 6]; + UCHAR hash[16]; + UINT rand_int; + UINT new_ip; + + WRITE_UINT(&rand_seed[0], i); + Copy(rand_seed + sizeof(UINT), mac, 6); + + Hash(hash, rand_seed, sizeof(rand_seed), false); + + rand_int = READ_UINT(hash); + + new_ip = Endian32(ip_start + (rand_int % (ip_end - ip_start + 1))); + + if (SearchDhcpLeaseByIp(v, new_ip) == NULL) + { + // A free IP address is found + return new_ip; + } + } + + // There is no free address + return 0; +} + // Virtual DHCP Server void VirtualDhcpServer(VH *v, PKT *p) { diff --git a/src/Cedar/Virtual.h b/src/Cedar/Virtual.h index ba23368a..de1aae42 100644 --- a/src/Cedar/Virtual.h +++ b/src/Cedar/Virtual.h @@ -618,6 +618,7 @@ DHCP_LEASE *SearchDhcpLeaseByMac(VH *v, UCHAR *mac); DHCP_LEASE *SearchDhcpLeaseByIp(VH *v, UINT ip); UINT ServeDhcpDiscover(VH *v, UCHAR *mac, UINT request_ip); UINT GetFreeDhcpIpAddress(VH *v); +UINT GetFreeDhcpIpAddressByRandom(VH *v, UCHAR *mac); UINT ServeDhcpRequest(VH *v, UCHAR *mac, UINT request_ip); void VirtualDhcpSend(VH *v, UINT tran_id, UINT dest_ip, UINT dest_port, UINT new_ip, UCHAR *client_mac, BUF *b, UINT hw_type, UINT hw_addr_size); diff --git a/src/Cedar/Wpc.c b/src/Cedar/Wpc.c index 66798e4f..0215e22d 100644 --- a/src/Cedar/Wpc.c +++ b/src/Cedar/Wpc.c @@ -158,10 +158,11 @@ PACK *WpcCall(char *url, INTERNET_SETTING *setting, UINT timeout_connect, UINT t char *function_name, PACK *pack, X *cert, K *key, void *sha1_cert_hash) { return WpcCallEx(url, setting, timeout_connect, timeout_comm, function_name, pack, cert, key, - sha1_cert_hash, NULL, 0); + sha1_cert_hash, NULL, 0, NULL, NULL); } PACK *WpcCallEx(char *url, INTERNET_SETTING *setting, UINT timeout_connect, UINT timeout_comm, - char *function_name, PACK *pack, X *cert, K *key, void *sha1_cert_hash, bool *cancel, UINT max_recv_size) + char *function_name, PACK *pack, X *cert, K *key, void *sha1_cert_hash, bool *cancel, UINT max_recv_size, + char *additional_header_name, char *additional_header_value) { URL_DATA data; BUF *b, *recv; @@ -190,6 +191,12 @@ PACK *WpcCallEx(char *url, INTERNET_SETTING *setting, UINT timeout_connect, UINT WriteBufInt(b, 0); SeekBuf(b, 0, 0); + if (IsEmptyStr(additional_header_name) == false && IsEmptyStr(additional_header_value) == false) + { + StrCpy(data.AdditionalHeaderName, sizeof(data.AdditionalHeaderName), additional_header_name); + StrCpy(data.AdditionalHeaderValue, sizeof(data.AdditionalHeaderValue), additional_header_value); + } + recv = HttpRequestEx(&data, setting, timeout_connect, timeout_comm, &error, false, b->Buf, NULL, NULL, sha1_cert_hash, cancel, max_recv_size); @@ -822,6 +829,11 @@ BUF *HttpRequestEx2(URL_DATA *data, INTERNET_SETTING *setting, AddHttpValue(h, NewHttpValue("Content-Length", len_str)); } + if (IsEmptyStr(data->AdditionalHeaderName) == false && IsEmptyStr(data->AdditionalHeaderValue) == false) + { + AddHttpValue(h, NewHttpValue(data->AdditionalHeaderName, data->AdditionalHeaderValue)); + } + if (use_http_proxy) { AddHttpValue(h, NewHttpValue("Proxy-Connection", "Keep-Alive")); diff --git a/src/Cedar/Wpc.h b/src/Cedar/Wpc.h index 0d42f7ca..0e23d617 100644 --- a/src/Cedar/Wpc.h +++ b/src/Cedar/Wpc.h @@ -157,6 +157,8 @@ struct URL_DATA char Method[32]; // Method char Target[MAX_SIZE * 3]; // Target char Referer[MAX_SIZE * 3]; // Referer + char AdditionalHeaderName[128]; // Additional header name + char AdditionalHeaderValue[MAX_SIZE]; // Additional header value }; // WPC entry @@ -219,7 +221,8 @@ void WpcFreePacket(WPC_PACKET *packet); PACK *WpcCall(char *url, INTERNET_SETTING *setting, UINT timeout_connect, UINT timeout_comm, char *function_name, PACK *pack, X *cert, K *key, void *sha1_cert_hash); PACK *WpcCallEx(char *url, INTERNET_SETTING *setting, UINT timeout_connect, UINT timeout_comm, - char *function_name, PACK *pack, X *cert, K *key, void *sha1_cert_hash, bool *cancel, UINT max_recv_size); + char *function_name, PACK *pack, X *cert, K *key, void *sha1_cert_hash, bool *cancel, UINT max_recv_size, + char *additional_header_name, char *additional_header_value); bool IsProxyPrivateIp(INTERNET_SETTING *s); #endif // WPC_H diff --git a/src/CurrentBuild.txt b/src/CurrentBuild.txt index 45aa2be7..67a27302 100644 --- a/src/CurrentBuild.txt +++ b/src/CurrentBuild.txt @@ -1,4 +1,4 @@ -BUILD_NUMBER 9514 -VERSION 412 +BUILD_NUMBER 9522 +VERSION 413 BUILD_NAME beta -BUILD_DATE 20141117_214116 +BUILD_DATE 20150130_192716 diff --git a/src/LICENSE.TXT b/src/LICENSE.TXT index 11b11df2..a919c97b 100644 --- a/src/LICENSE.TXT +++ b/src/LICENSE.TXT @@ -3,9 +3,9 @@ open-source. You can redistribute them and/or modify them under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. -Copyright (c) 2012-2014 Daiyuu Nobori. -Copyright (c) 2012-2014 SoftEther Project at University of Tsukuba, Japan. -Copyright (c) 2012-2014 SoftEther Corporation. +Copyright (c) 2012-2015 Daiyuu Nobori. +Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. +Copyright (c) 2012-2015 SoftEther Corporation. All Rights Reserved. http://www.softether.org/ diff --git a/src/Mayaqua/Encrypt.c b/src/Mayaqua/Encrypt.c index fe6f1449..8a67462a 100644 --- a/src/Mayaqua/Encrypt.c +++ b/src/Mayaqua/Encrypt.c @@ -156,6 +156,8 @@ UINT ssl_lock_num; static bool openssl_inited = false; static bool is_intel_aes_supported = false; +static unsigned char *Internal_SHA0(const unsigned char *d, size_t n, unsigned char *md); + // For the callback function typedef struct CB_PARAM { @@ -239,6 +241,74 @@ void Enc_tls1_PRF(unsigned char *label, int label_len, const unsigned char *sec, Free(out2); } +// Easy encryption +BUF *EasyEncrypt(BUF *src_buf) +{ + UCHAR key[SHA1_SIZE]; + BUF *tmp_data; + CRYPT *rc4; + BUF *ret; + // Validate arguments + if (src_buf == NULL) + { + return NULL; + } + + Rand(key, SHA1_SIZE); + + tmp_data = CloneBuf(src_buf); + + rc4 = NewCrypt(key, SHA1_SIZE); + + Encrypt(rc4, tmp_data->Buf, tmp_data->Buf, tmp_data->Size); + + ret = NewBuf(); + + WriteBuf(ret, key, SHA1_SIZE); + WriteBufBuf(ret, tmp_data); + + FreeCrypt(rc4); + FreeBuf(tmp_data); + + SeekBufToBegin(ret); + + return ret; +} + +// Easy decryption +BUF *EasyDecrypt(BUF *src_buf) +{ + UCHAR key[SHA1_SIZE]; + BUF *tmp_buf; + CRYPT *rc4; + // Validate arguments + if (src_buf == NULL) + { + return NULL; + } + + SeekBufToBegin(src_buf); + + if (ReadBuf(src_buf, key, SHA1_SIZE) != SHA1_SIZE) + { + return NULL; + } + + tmp_buf = ReadRemainBuf(src_buf); + if (tmp_buf == NULL) + { + return NULL; + } + + rc4 = NewCrypt(key, SHA1_SIZE); + Encrypt(rc4, tmp_buf->Buf, tmp_buf->Buf, tmp_buf->Size); + FreeCrypt(rc4); + + SeekBufToBegin(tmp_buf); + + return tmp_buf; +} + // Calculation of HMAC (MD5) void HMacMd5(void *dst, void *key, UINT key_size, void *data, UINT data_size) { @@ -4158,7 +4228,7 @@ void Hash(void *dst, void *src, UINT size, bool sha) else { // SHA hash - SHA(src, size, dst); + Internal_SHA0(src, size, dst); } } @@ -4907,6 +4977,324 @@ void DhFree(DH_CTX *dh) Free(dh); } +///////////////////////// +// SHA0 implementation // +///////////////////////// +// +// From: https://bitbucket.org/Polarina/ampheck/src/097585ce2a74/src/ +/* + Copyright (C) 2009 Gabriel A. Petursson + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +struct ampheck_sha0 +{ + UINT h[5]; + UCHAR buffer[64]; + UINT64 length; +}; +#define ROR(x, y) (((x) >> (y)) ^ ((x) << ((sizeof(x) * 8) - (y)))) +#define ROL(x, y) (((x) << (y)) ^ ((x) >> ((sizeof(x) * 8) - (y)))) +#define UNPACK_32_BE(x, str) { \ + *((str)) = (UCHAR) ((x) >> 24); \ + *((str) + 1) = (UCHAR) ((x) >> 16); \ + *((str) + 2) = (UCHAR) ((x) >> 8); \ + *((str) + 3) = (UCHAR) (x); \ +} +#define UNPACK_64_BE(x, str) { \ + *((str)) = (UCHAR) ((x) >> 56); \ + *((str) + 1) = (UCHAR) ((x) >> 48); \ + *((str) + 2) = (UCHAR) ((x) >> 40); \ + *((str) + 3) = (UCHAR) ((x) >> 32); \ + *((str) + 4) = (UCHAR) ((x) >> 24); \ + *((str) + 5) = (UCHAR) ((x) >> 16); \ + *((str) + 6) = (UCHAR) ((x) >> 8); \ + *((str) + 7) = (UCHAR) (x); \ +} +#define PACK_32_BE(str, x) { \ + *(x) = ((UINT) *((str) ) << 24) \ + ^ ((UINT) *((str) + 1) << 16) \ + ^ ((UINT) *((str) + 2) << 8) \ + ^ ((UINT) *((str) + 3)); \ +} +#define PACK_64_BE(str, x) { \ + *(x) = ((UINT64) *((str) ) << 56) \ + ^ ((UINT64) *((str) + 1) << 48) \ + ^ ((UINT64) *((str) + 2) << 40) \ + ^ ((UINT64) *((str) + 3) << 32) \ + ^ ((UINT64) *((str) + 4) << 24) \ + ^ ((UINT64) *((str) + 5) << 16) \ + ^ ((UINT64) *((str) + 6) << 8) \ + ^ ((UINT64) *((str) + 7)); \ +} +#define UNPACK_32_LE(x, str) { \ + *((str)) = (UCHAR) (x); \ + *((str) + 1) = (UCHAR) ((x) >> 8); \ + *((str) + 2) = (UCHAR) ((x) >> 16); \ + *((str) + 3) = (UCHAR) ((x) >> 24); \ +} +#define UNPACK_64_LE(x, str) { \ + *((str)) = (UCHAR) (x); \ + *((str) + 1) = (UCHAR) ((x) >> 8); \ + *((str) + 2) = (UCHAR) ((x) >> 16); \ + *((str) + 3) = (UCHAR) ((x) >> 24); \ + *((str) + 4) = (UCHAR) ((x) >> 32); \ + *((str) + 5) = (UCHAR) ((x) >> 40); \ + *((str) + 6) = (UCHAR) ((x) >> 48); \ + *((str) + 7) = (UCHAR) ((x) >> 56); \ +} +#define PACK_32_LE(str, x) { \ + *(x) = ((UINT) *((str) )) \ + ^ ((UINT) *((str) + 1) << 8) \ + ^ ((UINT) *((str) + 2) << 16) \ + ^ ((UINT) *((str) + 3) << 24); \ +} +#define PACK_64_LE(str, x) { \ + *(x) = ((UINT64) *((str) )) \ + ^ ((UINT64) *((str) + 1) << 8) \ + ^ ((UINT64) *((str) + 2) << 16) \ + ^ ((UINT64) *((str) + 3) << 24) \ + ^ ((UINT64) *((str) + 4) << 32) \ + ^ ((UINT64) *((str) + 5) << 40) \ + ^ ((UINT64) *((str) + 6) << 48) \ + ^ ((UINT64) *((str) + 7) << 56); \ +} +#define SHA0_R1(x, y, z) ((z ^ (x & (y ^ z))) + 0x5a827999) +#define SHA0_R2(x, y, z) ((x ^ y ^ z) + 0x6ed9eba1) +#define SHA0_R3(x, y, z) (((x & y) | (z & (x | y))) + 0x8f1bbcdc) +#define SHA0_R4(x, y, z) ((x ^ y ^ z) + 0xca62c1d6) +#define SHA0_PRC(a, b, c, d, e, idx, rnd) { \ + wv[e] += ROR(wv[a], 27) + SHA0_R##rnd(wv[b], wv[c], wv[d]) + idx; \ + wv[b] = ROR(wv[b], 2); \ +} +#define SHA0_EXT(i) ( \ + w[i] ^= w[(i - 3) & 0x0F] ^ w[(i - 8) & 0x0F] ^ w[(i - 14) & 0x0F] \ + ) +static void ampheck_sha0_init(struct ampheck_sha0 *ctx); +static void ampheck_sha0_update(struct ampheck_sha0 *ctx, const UCHAR *data, UINT length); +static void ampheck_sha0_finish(const struct ampheck_sha0 *ctx, UCHAR *digest); +static void ampheck_sha0_init(struct ampheck_sha0 *ctx) +{ + ctx->h[0] = 0x67452301; + ctx->h[1] = 0xefcdab89; + ctx->h[2] = 0x98badcfe; + ctx->h[3] = 0x10325476; + ctx->h[4] = 0xc3d2e1f0; + + ctx->length = 0; +} + +static void ampheck_sha0_transform(struct ampheck_sha0 *ctx, const UCHAR *data, UINT blocks) +{ + UINT i; + for (i = 0; i < blocks; ++i) + { + UINT wv[5]; + UINT w[16]; + + PACK_32_BE(&data[(i << 6) ], &w[ 0]); + PACK_32_BE(&data[(i << 6) + 4], &w[ 1]); + PACK_32_BE(&data[(i << 6) + 8], &w[ 2]); + PACK_32_BE(&data[(i << 6) + 12], &w[ 3]); + PACK_32_BE(&data[(i << 6) + 16], &w[ 4]); + PACK_32_BE(&data[(i << 6) + 20], &w[ 5]); + PACK_32_BE(&data[(i << 6) + 24], &w[ 6]); + PACK_32_BE(&data[(i << 6) + 28], &w[ 7]); + PACK_32_BE(&data[(i << 6) + 32], &w[ 8]); + PACK_32_BE(&data[(i << 6) + 36], &w[ 9]); + PACK_32_BE(&data[(i << 6) + 40], &w[10]); + PACK_32_BE(&data[(i << 6) + 44], &w[11]); + PACK_32_BE(&data[(i << 6) + 48], &w[12]); + PACK_32_BE(&data[(i << 6) + 52], &w[13]); + PACK_32_BE(&data[(i << 6) + 56], &w[14]); + PACK_32_BE(&data[(i << 6) + 60], &w[15]); + + wv[0] = ctx->h[0]; + wv[1] = ctx->h[1]; + wv[2] = ctx->h[2]; + wv[3] = ctx->h[3]; + wv[4] = ctx->h[4]; + + SHA0_PRC(0, 1, 2, 3, 4, w[ 0], 1); + SHA0_PRC(4, 0, 1, 2, 3, w[ 1], 1); + SHA0_PRC(3, 4, 0, 1, 2, w[ 2], 1); + SHA0_PRC(2, 3, 4, 0, 1, w[ 3], 1); + SHA0_PRC(1, 2, 3, 4, 0, w[ 4], 1); + SHA0_PRC(0, 1, 2, 3, 4, w[ 5], 1); + SHA0_PRC(4, 0, 1, 2, 3, w[ 6], 1); + SHA0_PRC(3, 4, 0, 1, 2, w[ 7], 1); + SHA0_PRC(2, 3, 4, 0, 1, w[ 8], 1); + SHA0_PRC(1, 2, 3, 4, 0, w[ 9], 1); + SHA0_PRC(0, 1, 2, 3, 4, w[10], 1); + SHA0_PRC(4, 0, 1, 2, 3, w[11], 1); + SHA0_PRC(3, 4, 0, 1, 2, w[12], 1); + SHA0_PRC(2, 3, 4, 0, 1, w[13], 1); + SHA0_PRC(1, 2, 3, 4, 0, w[14], 1); + SHA0_PRC(0, 1, 2, 3, 4, w[15], 1); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT( 0), 1); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT( 1), 1); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT( 2), 1); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT( 3), 1); + + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT( 4), 2); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT( 5), 2); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT( 6), 2); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT( 7), 2); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT( 8), 2); + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT( 9), 2); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT(10), 2); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT(11), 2); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT(12), 2); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT(13), 2); + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT(14), 2); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT(15), 2); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT( 0), 2); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT( 1), 2); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT( 2), 2); + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT( 3), 2); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT( 4), 2); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT( 5), 2); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT( 6), 2); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT( 7), 2); + + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT( 8), 3); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT( 9), 3); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT(10), 3); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT(11), 3); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT(12), 3); + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT(13), 3); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT(14), 3); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT(15), 3); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT( 0), 3); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT( 1), 3); + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT( 2), 3); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT( 3), 3); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT( 4), 3); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT( 5), 3); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT( 6), 3); + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT( 7), 3); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT( 8), 3); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT( 9), 3); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT(10), 3); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT(11), 3); + + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT(12), 4); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT(13), 4); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT(14), 4); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT(15), 4); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT( 0), 4); + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT( 1), 4); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT( 2), 4); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT( 3), 4); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT( 4), 4); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT( 5), 4); + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT( 6), 4); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT( 7), 4); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT( 8), 4); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT( 9), 4); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT(10), 4); + SHA0_PRC(0, 1, 2, 3, 4, SHA0_EXT(11), 4); + SHA0_PRC(4, 0, 1, 2, 3, SHA0_EXT(12), 4); + SHA0_PRC(3, 4, 0, 1, 2, SHA0_EXT(13), 4); + SHA0_PRC(2, 3, 4, 0, 1, SHA0_EXT(14), 4); + SHA0_PRC(1, 2, 3, 4, 0, SHA0_EXT(15), 4); + + ctx->h[0] += wv[0]; + ctx->h[1] += wv[1]; + ctx->h[2] += wv[2]; + ctx->h[3] += wv[3]; + ctx->h[4] += wv[4]; + } +} + +static void ampheck_sha0_update(struct ampheck_sha0 *ctx, const UCHAR *data, UINT size) +{ + UINT tmp = size; + + if (size >= 64 - ctx->length % 64) + { + memcpy(&ctx->buffer[ctx->length % 64], data, 64 - ctx->length % 64); + + data += 64 - ctx->length % 64; + size -= 64 - ctx->length % 64; + + ampheck_sha0_transform(ctx, ctx->buffer, 1); + ampheck_sha0_transform(ctx, data, size / 64); + + data += size & ~63; + size %= 64; + + memcpy(ctx->buffer, data, size); + } + else + { + memcpy(&ctx->buffer[ctx->length % 64], data, size); + } + + ctx->length += tmp; +} + +static void ampheck_sha0_finish(const struct ampheck_sha0 *ctx, UCHAR *digest) +{ + struct ampheck_sha0 tmp; + + memcpy(tmp.h, ctx->h, 5 * sizeof(UINT)); + memcpy(tmp.buffer, ctx->buffer, ctx->length % 64); + + tmp.buffer[ctx->length % 64] = 0x80; + + if (ctx->length % 64 < 56) + { + memset(&tmp.buffer[ctx->length % 64 + 1], 0x00, 55 - ctx->length % 64); + } + else + { + memset(&tmp.buffer[ctx->length % 64 + 1], 0x00, 63 - ctx->length % 64); + ampheck_sha0_transform(&tmp, tmp.buffer, 1); + + memset(tmp.buffer, 0x00, 56); + } + + UNPACK_64_BE(ctx->length * 8, &tmp.buffer[56]); + ampheck_sha0_transform(&tmp, tmp.buffer, 1); + + UNPACK_32_BE(tmp.h[0], &digest[ 0]); + UNPACK_32_BE(tmp.h[1], &digest[ 4]); + UNPACK_32_BE(tmp.h[2], &digest[ 8]); + UNPACK_32_BE(tmp.h[3], &digest[12]); + UNPACK_32_BE(tmp.h[4], &digest[16]); +} +static unsigned char *Internal_SHA0(const unsigned char *d, size_t n, unsigned char *md) +{ + struct ampheck_sha0 c; + static unsigned char m[SHA_DIGEST_LENGTH]; + + if (md == NULL) md=m; + + ampheck_sha0_init(&c); + ampheck_sha0_update(&c, d, (UINT)n); + ampheck_sha0_finish(&c, md); + + return md; +} + + + + + + // 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/Mayaqua/Encrypt.h b/src/Mayaqua/Encrypt.h index 06f9729b..f82b83c3 100644 --- a/src/Mayaqua/Encrypt.h +++ b/src/Mayaqua/Encrypt.h @@ -503,6 +503,9 @@ void Enc_tls1_PRF(unsigned char *label, int label_len, const unsigned char *sec, void HMacSha1(void *dst, void *key, UINT key_size, void *data, UINT data_size); void HMacMd5(void *dst, void *key, UINT key_size, void *data, UINT data_size); +BUF *EasyEncrypt(BUF *src_buf); +BUF *EasyDecrypt(BUF *src_buf); + void DisableIntelAesAccel(); #ifdef ENCRYPT_C diff --git a/src/Mayaqua/MayaType.h b/src/Mayaqua/MayaType.h index a98025d4..a6c71356 100644 --- a/src/Mayaqua/MayaType.h +++ b/src/Mayaqua/MayaType.h @@ -521,6 +521,7 @@ typedef struct SAFE_QUOTA2 SAFE_QUOTA2; typedef struct SAFE_BLOCK SAFE_BLOCK; typedef struct SAFE_REQUEST_LOG SAFE_REQUEST_LOG; typedef struct DYN_VALUE DYN_VALUE; +typedef struct RELAY_PARAMETER RELAY_PARAMETER; // Tick64.h typedef struct ADJUST_TIME ADJUST_TIME; diff --git a/src/Mayaqua/Microsoft.c b/src/Mayaqua/Microsoft.c index dbbaa158..09f2f671 100644 --- a/src/Mayaqua/Microsoft.c +++ b/src/Mayaqua/Microsoft.c @@ -3670,10 +3670,6 @@ void MsRegistWindowsFirewallEx(char *title, char *exe) { return; } - if (MsIsVista() == false && (GET_KETA(ostype, 100) != 3 && GET_KETA(ostype, 100) != 4 && GET_KETA(ostype, 100) != 5 && GET_KETA(ostype, 100) != 6 && GET_KETA(ostype, 100) != 7)) - { - return; - } if (MsIsAdmin() == false) { return; diff --git a/src/Mayaqua/Network.c b/src/Mayaqua/Network.c index 26dfd11e..4027d975 100644 --- a/src/Mayaqua/Network.c +++ b/src/Mayaqua/Network.c @@ -1647,6 +1647,7 @@ void RUDPDo_NatT_Interrupt(RUDP_STACK *r) { if (IsZeroIp(&r->NatT_IP_Safe) == false) { + if (g_no_rudp_register == false) { if (r->NatT_GetTokenNextTick == 0 || r->Now >= r->NatT_GetTokenNextTick) @@ -1674,25 +1675,28 @@ void RUDPDo_NatT_Interrupt(RUDP_STACK *r) } } - if (r->NatT_NextNatStatusCheckTick == 0 || r->Now >= r->NatT_NextNatStatusCheckTick) { - UCHAR a = 'A'; - UINT ddns_hash; - // Check of the NAT state - RUDPSendPacket(r, &r->NatT_IP_Safe, UDP_NAT_T_PORT, &a, 1, 0); - - // Execution time of the next - r->NatT_NextNatStatusCheckTick = r->Now + (UINT64)GenRandInterval(UDP_NAT_T_NAT_STATUS_CHECK_INTERVAL_MIN, UDP_NAT_T_NAT_STATUS_CHECK_INTERVAL_MAX); - AddInterrupt(r->Interrupt, r->NatT_NextNatStatusCheckTick); - - // Check whether the DDNS host name changing have not occurred - ddns_hash = GetCurrentDDnsFqdnHash(); - - if (r->LastDDnsFqdnHash != ddns_hash) + // Normal servers: Send request packets to the NAT-T server + if (r->NatT_NextNatStatusCheckTick == 0 || r->Now >= r->NatT_NextNatStatusCheckTick) { - r->LastDDnsFqdnHash = ddns_hash; - // Do the Register immediately if there is a change in the DDNS host name - r->NatT_RegisterNextTick = 0; + UCHAR a = 'A'; + UINT ddns_hash; + // Check of the NAT state + RUDPSendPacket(r, &r->NatT_IP_Safe, UDP_NAT_T_PORT, &a, 1, 0); + + // Execution time of the next + r->NatT_NextNatStatusCheckTick = r->Now + (UINT64)GenRandInterval(UDP_NAT_T_NAT_STATUS_CHECK_INTERVAL_MIN, UDP_NAT_T_NAT_STATUS_CHECK_INTERVAL_MAX); + AddInterrupt(r->Interrupt, r->NatT_NextNatStatusCheckTick); + + // Check whether the DDNS host name changing have not occurred + ddns_hash = GetCurrentDDnsFqdnHash(); + + if (r->LastDDnsFqdnHash != ddns_hash) + { + r->LastDDnsFqdnHash = ddns_hash; + // Do the Register immediately if there is a change in the DDNS host name + r->NatT_RegisterNextTick = 0; + } } } @@ -1775,8 +1779,17 @@ void RUDPRecvProc(RUDP_STACK *r, UDPPACKET *p) return; } + if (r->ServerMode) + { + if (g_no_rudp_server) + { + return; + } + } + if (r->ServerMode && r->NoNatTRegister == false) { + if (p->SrcPort == UDP_NAT_T_PORT && CmpIpAddr(&p->SrcIP, &r->NatT_IP_Safe) == 0) { // There was a response from the NAT-T server @@ -4472,7 +4485,7 @@ void RUDPIpQueryThread(THREAD *thread, void *param) { IP ip; - if (GetMyPrivateIP(&ip)) + if (GetMyPrivateIP(&ip, false)) { Lock(r->Lock); { @@ -4521,7 +4534,7 @@ UINT GenRandInterval(UINT min, UINT max) } // Identify the private IP of the interface which is used to connect to the Internet currently -bool GetMyPrivateIP(IP *ip) +bool GetMyPrivateIP(IP *ip, bool from_vg) { SOCK *s; IP t; @@ -4532,11 +4545,6 @@ bool GetMyPrivateIP(IP *ip) return false; } - if (IsUseAlternativeHostname()) - { - hostname = UDP_NAT_T_GET_PRIVATE_IP_TCP_SERVER_ALT; - } - s = ConnectEx(hostname, UDP_NAT_T_PORT_FOR_TCP_1, UDP_NAT_T_GET_PRIVATE_IP_CONNECT_TIMEOUT); if (s == NULL) @@ -4545,7 +4553,7 @@ bool GetMyPrivateIP(IP *ip) if (s == NULL) { - s = ConnectEx(hostname, UDP_NAT_T_PORT_FOR_TCP_3, UDP_NAT_T_GET_PRIVATE_IP_CONNECT_TIMEOUT); + s = ConnectEx(GetRandHostNameForGetMyPrivateIP(), UDP_NAT_T_PORT_FOR_TCP_1, UDP_NAT_T_GET_PRIVATE_IP_CONNECT_TIMEOUT); if (s == NULL) { @@ -5462,7 +5470,11 @@ RUDP_STACK *NewRUDP(bool server_mode, char *svc_name, RUDP_STACK_INTERRUPTS_PROC } } - RUDPGetRegisterHostNameByIP(r->CurrentRegisterHostname, sizeof(r->CurrentRegisterHostname), NULL); + if (true + ) + { + RUDPGetRegisterHostNameByIP(r->CurrentRegisterHostname, sizeof(r->CurrentRegisterHostname), NULL); + } if (r->ServerMode) { @@ -5470,7 +5482,8 @@ RUDP_STACK *NewRUDP(bool server_mode, char *svc_name, RUDP_STACK_INTERRUPTS_PROC r->ProcRpcRecv = proc_rpc_recv; } - if (r->ServerMode && r->NoNatTRegister == false) + if (r->ServerMode && r->NoNatTRegister == false + ) { r->IpQueryThread = NewThread(RUDPIpQueryThread, r); } @@ -5543,8 +5556,11 @@ void FreeRUDP(RUDP_STACK *r) if (r->ServerMode && r->NoNatTRegister == false) { - WaitThread(r->IpQueryThread, INFINITE); - ReleaseThread(r->IpQueryThread); + if (r->IpQueryThread != NULL) + { + WaitThread(r->IpQueryThread, INFINITE); + ReleaseThread(r->IpQueryThread); + } } WaitThread(r->Thread, INFINITE); @@ -12122,6 +12138,37 @@ void InitAsyncSocket(SOCK *sock) #endif // OS_WIN32 } +// Get a new available UDP port number +UINT GetNewAvailableUdpPortRand() +{ + UINT num_retry = 8; + UINT i; + UINT ret = 0; + UCHAR seed[SHA1_SIZE]; + + Rand(seed, sizeof(seed)); + + for (i = 0;i < num_retry;i++) + { + SOCK *s = NewUDPEx2Rand(false, NULL, seed, sizeof(seed), RAND_UDP_PORT_DEFAULT_NUM_RETRY); + + if (s != NULL) + { + ret = s->LocalPort; + + Disconnect(s); + ReleaseSock(s); + } + + if (ret != 0) + { + break; + } + } + + return ret; +} + // Open a UDP port (port number is random, but determine the randomness in the seed) SOCK *NewUDPEx2Rand(bool ipv6, IP *ip, void *rand_seed, UINT rand_seed_size, UINT num_retry) { @@ -17862,6 +17909,33 @@ bool IsIPPrivate(IP *ip) return false; } +// Is the IP address either local or private? +bool IsIPLocalOrPrivate(IP *ip) +{ + // Validate arguments + if (ip == NULL) + { + return false; + } + + if (IsIPPrivate(ip)) + { + return true; + } + + if (IsLocalHostIP(ip)) + { + return true; + } + + if (IsIPMyHost(ip)) + { + return true; + } + + return false; +} + // Read a private IP list file void LoadPrivateIPFile() { @@ -19841,8 +19915,10 @@ void UdpListenerThread(THREAD *thread, void *param) UINT interval; bool stage_changed = false; IP nat_t_ip; + Zero(&nat_t_ip, sizeof(nat_t_ip)); + if (u->LastCheckTick == 0 || (now >= (u->LastCheckTick + UDPLISTENER_CHECK_INTERVAL))) { LIST *iplist; @@ -20011,17 +20087,19 @@ LABEL_RESTART: if (u->PollMyIpAndPort) { - // Create a thread to get a NAT-T IP address if necessary - if (u->GetNatTIpThread == NULL) { - char natt_hostname[MAX_SIZE]; + // Create a thread to get a NAT-T IP address if necessary + if (u->GetNatTIpThread == NULL) + { + char natt_hostname[MAX_SIZE]; - RUDPGetRegisterHostNameByIP(natt_hostname, sizeof(natt_hostname), NULL); + RUDPGetRegisterHostNameByIP(natt_hostname, sizeof(natt_hostname), NULL); - u->GetNatTIpThread = NewQueryIpThread(natt_hostname, QUERYIPTHREAD_INTERVAL_LAST_OK, QUERYIPTHREAD_INTERVAL_LAST_NG); + u->GetNatTIpThread = NewQueryIpThread(natt_hostname, QUERYIPTHREAD_INTERVAL_LAST_OK, QUERYIPTHREAD_INTERVAL_LAST_NG); + } + + GetQueryIpThreadResult(u->GetNatTIpThread, &nat_t_ip); } - - GetQueryIpThreadResult(u->GetNatTIpThread, &nat_t_ip); } // Receive the data that is arriving at the socket @@ -20033,16 +20111,20 @@ LABEL_RESTART: { UINT num_ignore_errors = 0; - if (u->PollMyIpAndPort && IsZeroIP(&nat_t_ip) == false && IsIP4(&us->IpAddress)) + if (u->PollMyIpAndPort && IsIP4(&us->IpAddress)) { if (us->NextMyIpAndPortPollTick == 0 || us->NextMyIpAndPortPollTick <= now) { - UCHAR c = 'A'; - // Examine the self IP address and the self port number by using NAT-T server us->NextMyIpAndPortPollTick = now + (UINT64)GenRandInterval(UDP_NAT_T_NAT_STATUS_CHECK_INTERVAL_MIN, UDP_NAT_T_NAT_STATUS_CHECK_INTERVAL_MAX); - SendTo(us->Sock, &nat_t_ip, UDP_NAT_T_PORT, &c, 1); + if (IsZeroIP(&nat_t_ip) == false + ) + { + UCHAR c = 'A'; + + SendTo(us->Sock, &nat_t_ip, UDP_NAT_T_PORT, &c, 1); + } } } diff --git a/src/Mayaqua/Network.h b/src/Mayaqua/Network.h index e33c64ce..0e4f91e5 100644 --- a/src/Mayaqua/Network.h +++ b/src/Mayaqua/Network.h @@ -759,12 +759,10 @@ struct RUDP_SESSION #define UDP_NAT_T_GET_IP_INTERVAL_AFTER DYN32(UDP_NAT_T_GET_IP_INTERVAL_AFTER, (5 * 60 * 1000)) // IP address acquisition interval of NAT-T server (after success) // Related to process to get the private IP address of itself with making a TCP connection to the NAT-T server -#define UDP_NAT_T_GET_PRIVATE_IP_TCP_SERVER "get-my-ip.nat-traversal.softether-network.net." -#define UDP_NAT_T_GET_PRIVATE_IP_TCP_SERVER_ALT "get-my-ip.nat-traversal.uxcom.jp." +#define UDP_NAT_T_GET_PRIVATE_IP_TCP_SERVER "www.msftncsi.com." -#define UDP_NAT_T_PORT_FOR_TCP_1 992 -#define UDP_NAT_T_PORT_FOR_TCP_2 80 -#define UDP_NAT_T_PORT_FOR_TCP_3 443 +#define UDP_NAT_T_PORT_FOR_TCP_1 80 +#define UDP_NAT_T_PORT_FOR_TCP_2 443 #define UDP_NAT_TRAVERSAL_VERSION 1 @@ -1102,7 +1100,8 @@ void *InitWaitUntilHostIPAddressChanged(); void FreeWaitUntilHostIPAddressChanged(void *p); void WaitUntilHostIPAddressChanged(void *p, EVENT *event, UINT timeout, UINT ip_check_interval); UINT GetHostIPAddressHash32(); -bool GetMyPrivateIP(IP *ip); +bool GetMyPrivateIP(IP *ip, bool from_vg); +char *GetRandHostNameForGetMyPrivateIP(); UINT GenRandInterval(UINT min, UINT max); void RUDPProcess_NatT_Recv(RUDP_STACK *r, UDPPACKET *udp); void RUDPDo_NatT_Interrupt(RUDP_STACK *r); @@ -1324,6 +1323,7 @@ SOCK *NewUDP4(UINT port, IP *ip); SOCK *NewUDP6(UINT port, IP *ip); SOCK *NewUDPEx2Rand(bool ipv6, IP *ip, void *rand_seed, UINT rand_seed_size, UINT num_retry); SOCK *NewUDPEx2RandMachineAndExePath(bool ipv6, IP *ip, UINT num_retry, UCHAR rand_port_id); +UINT GetNewAvailableUdpPortRand(); UINT NewRandPortByMachineAndExePath(UINT start_port, UINT end_port, UINT additional_int); void DisableUDPChecksum(SOCK *s); UINT SendTo(SOCK *sock, IP *dest_addr, UINT dest_port, void *data, UINT size); @@ -1614,6 +1614,7 @@ void GetCurrentGlobalIPGuess(IP *ip, bool ipv6); bool IsIPAddressInSameLocalNetwork(IP *a); bool IsIPPrivate(IP *ip); +bool IsIPLocalOrPrivate(IP *ip); bool IsIPMyHost(IP *ip); void LoadPrivateIPFile(); bool IsOnPrivateIPFile(UINT ip); diff --git a/src/Mayaqua/Win32.c b/src/Mayaqua/Win32.c index eefcc772..b8970f0a 100644 --- a/src/Mayaqua/Win32.c +++ b/src/Mayaqua/Win32.c @@ -1075,7 +1075,7 @@ bool Win32GetVersionExInternal(void *info) if (os.dwPlatformId == VER_PLATFORM_WIN32_NT) { if ((os.dwMajorVersion == 6 && os.dwMinorVersion >= 2) || - (os.dwMajorVersion == 7)) + (os.dwMajorVersion >= 7)) { // Windows 8 later return Win32GetVersionExInternalForWindows81orLater(info); @@ -1091,6 +1091,9 @@ bool Win32GetVersionExInternalForWindows81orLater(void *info) { OSVERSIONINFOEXA *ex = (OSVERSIONINFOEXA *)info; char *str; + UINT major1 = 0, major2 = 0; + UINT minor1 = 0, minor2 = 0; + UINT major = 0, minor = 0; // Validate arguments if (info == NULL) { @@ -1120,15 +1123,8 @@ bool Win32GetVersionExInternalForWindows81orLater(void *info) if (t != NULL && t->NumTokens == 2) { - UINT major = ToInt(t->Token[0]); - UINT minor = ToInt(t->Token[1]); - - if (major >= 6) - { - // Version number acquisition success - ex->dwMajorVersion = major; - ex->dwMinorVersion = minor; - } + major1 = ToInt(t->Token[0]); + minor1 = ToInt(t->Token[1]); } FreeToken(t); @@ -1136,6 +1132,32 @@ bool Win32GetVersionExInternalForWindows81orLater(void *info) Free(str); + major2 = MsRegReadIntEx2(REG_LOCAL_MACHINE, + "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", + "CurrentMajorVersionNumber", false, true); + + minor2 = MsRegReadIntEx2(REG_LOCAL_MACHINE, + "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", + "CurrentMinorVersionNumber", false, true); + + if ((major1 * 10000 + minor1) > (major2 * 10000 + minor2)) + { + major = major1; + minor = minor1; + } + else + { + major = major2; + minor = minor2; + } + + if (major >= 6) + { + // Version number acquisition success + ex->dwMajorVersion = major; + ex->dwMinorVersion = minor; + } + return true; } @@ -1407,7 +1429,7 @@ UINT Win32GetOsType() return OSTYPE_WINDOWS_SERVER_81; } } - else if (os.dwMajorVersion == 6 && os.dwMinorVersion == 4) + else if ((os.dwMajorVersion == 6 && os.dwMinorVersion == 4) || (os.dwMajorVersion == 10 && os.dwMinorVersion == 0)) { if (os.wProductType == VER_NT_WORKSTATION) { diff --git a/src/README.TXT b/src/README.TXT index e12a777f..9e4efff0 100644 --- a/src/README.TXT +++ b/src/README.TXT @@ -10,7 +10,7 @@ http://www.softether-download.com/ We accept your patches by the acceptance policy: http://www.softether.org/5-download/src/9.patch -Copyright (c) 2012-2014 SoftEther Project at University of Tsukuba, Japan. +Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 diff --git a/src/WARNING.TXT b/src/WARNING.TXT index ac8ca580..ebb373a7 100644 --- a/src/WARNING.TXT +++ b/src/WARNING.TXT @@ -521,3 +521,45 @@ parts of VPN Gate are not developed by SoftEther Corporation. The VPN Gate Research Project is not a subject to be led, operated, promoted nor guaranteed by SoftEther Corporation. +5.13. The P2P Relay Function in the VPN Gate Client to strengthen the +capability of circumvention of censorship firewalls +VPN Gate Clients, which are published since January 2015, include the P2P +Relay Function. The P2P Relay Function is implemented in order to strengthen +the capability of circumvention of censorship firewalls. If the P2P Relay +Function in your VPN Gate Client is enabled, then the P2P Relay Function will +accept the incoming VPN connections from the VPN Gate users, which are located +on mainly same regions around you, and will provide the relay function to the +external remote VPN Gate Servers, which are hosted by third parties in the +free Internet environment. This P2P Relay Function never provides the shared +NAT functions nor replaces the outgoing IP address of the VPN Gate users to +your IP addresses because this P2P Relay Function only provides the +"reflection service" (hair-pin relaying), relaying from incoming VPN Gate +users to an external VPN Gate Server. In this situation, VPN tunnels via your +P2P Relay Function will be finally terminated on the external VPN Gate Server, +not your VPN Gate Client. However, the VPN Gate Server as the final +destination will record your IP address as the source IP address of VPN +tunnels which will be initiated by your P2P Relay Function. Additionally, user +packets which are transmitted via your P2P Relay Function will be recorded on +your computer as packet logs as described on the section 5.8. After you +installed the VPN Gate Client, and if the P2P Relay Function will be enabled +automatically, then all matters on the 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, +5.10, 5.11 and 5.12 sections will be applied to you and your computer, as same +to the situation when you enabled the VPN Gate Service (the VPN Gate Server +function). If your P2P Function is enabled, then your computer's IP address +and the default operator's name which is described on the section 5.5 will be +listed on the VPN Gate Server List which is provided by the VPN Gate Project. +You can change these strings by editing the "vpn_gate_relay.config" file +manually. Note that you need to stop the VPN Client service before editing it. +The VPN Gate Client will automatically enable the P2P Relay Function on your +computer if the VPN Gate Client detects that your computer might be located in +regions where there are existing censorship firewalls. If you want to disable +the P2P Relay Function, you must set the "DisableRelayServer" flag to "true" +on the "vpn_client.config" file which is the configuration file of the VPN +Client. Note that you need to stop the VPN Client service before editing it. +The VPN Gate Client does not recognize the particular regulation of your +country or your region. The VPN Gate Client activates the P2P Relay Function +even if your country or your region has the law to restrict running P2P relay +functions. Therefore, in such a case, you must disable the P2P Relay Function +on the VPN Gate Client manually by setting the "DisableRelayServer" flag if +you reside in such a restricted area, in your own responsibility. + diff --git a/src/bin/hamcore/SeLow_x64.sys b/src/bin/hamcore/SeLow_x64.sys index 5cb5d02b91dc9878ffcd2aeef05b9d880815388b..60373c02fb1fb7d83fabc92c0c49f9b4b97aaf34 100644 GIT binary patch delta 869 zcmaE`n(4u6rUgt9hYMbWw+pthz;ItCBTFNY-)e-!q%~z%r##qnTk%tx zR()9Gt>9v5KbA`V3C0uOIOi;8-jsM{(bHu&?=QA4DpZwNHGAfgX&nAGCWqdfm?ZN5 z$&M<$+dgZ{B5%H1S0ATyx9%n1^@BNI)&Cm&|H6M~UbW3;qeD0R4+&W3%L!=x2E`TXS5^`-`f#s-E4rUoV! zQ3lFvoLX%jZQpqrIav(FSVUAxnRsWHO+MnHD7t&L=Vu#5&-2d=c;Si|8Ce-vniv^) zR=6iMbD!G$$8;laC-mJg-y|~Hx+1Xbe-ZNcJdOoW+o%UX3yT^lqo}RQHRfZ?M6(@Im{i?oY z)9M3PHlI_y*7`4cPDR1;Oor^e7k2kPsyyu6aN={JYlrpZ(zuhnt=YTOt>Pceg%Vn!D?;Sr!jxirn9=5f*RFrGFpN{dh#j S?`~ei*Yw0CdZ*4XFaQ8xiG3>o delta 869 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 diff --git a/src/bin/hamcore/eula.txt b/src/bin/hamcore/eula.txt index ad9a8d33..fa5d1717 100644 --- a/src/bin/hamcore/eula.txt +++ b/src/bin/hamcore/eula.txt @@ -1,8 +1,8 @@ SoftEther VPN Server, Client and Bridge are free software, and released as open-source. You can redistribute them and/or modify them under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. -Copyright (c) 2012-2014 Daiyuu Nobori. -Copyright (c) 2012-2014 SoftEther Project at University of Tsukuba, Japan. -Copyright (c) 2012-2014 SoftEther Corporation. +Copyright (c) 2012-2015 Daiyuu Nobori. +Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. +Copyright (c) 2012-2015 SoftEther Corporation. All Rights Reserved. http://www.softether.org/ @@ -437,6 +437,17 @@ Issue Date: Aug 6, 2010 ------------------- +SHA0 implementation: + +Copyright (C) 2009 Gabriel A. Petursson +This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with this program. If not, see . + +------------------- + NOTES SoftEther provides source codes of some GPL/LGPL/other libraries listed above on its web server. Anyone can download, use and re-distribute them under individual licenses which are contained on each archive file, available from the following URL: diff --git a/src/bin/hamcore/inf/selow_x64/SeLow_x64.inf b/src/bin/hamcore/inf/selow_x64/SeLow_x64.inf index d5279ad7..d80654fa 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 CatalogFile.NT = inf_selow.cat @@ -66,5 +66,5 @@ SeLow_Description = "A lightweight helper kernel-mode module for PacketiX VPN -; Auto Generated 20141117_222152.555 +; Auto Generated 20150130_195049.510 diff --git a/src/bin/hamcore/inf/selow_x64/inf.cat b/src/bin/hamcore/inf/selow_x64/inf.cat index d0eebd131e7125eef0a4eb38219d7953c14190a9..ab0d4ee7e73cefea3d1346b407e8a81be7806fe0 100644 GIT binary patch delta 899 zcmZoRY&M+WC%4&JvP(mV(P>F;gPd%j$^>yQOEkCM7vrYd(Y0T6Kl3PobTuAh}mo`W{~F-BT*Z+-q*NK?}xp6 z@`?Q9D^I?+U*?jF;Llwk@AvV-*SitMrZI32MrQ$5!1v*I2J$omLXjy=acktfbo~FLR{?Ywj(n&rJ8fKXXRM z+t0lJ4t&r1H`gc1<6*MMmDaEz@zp_pdQNV5D!Xa~mHO~?mdp1O zhYC5PRr~gAbg)va-K?Klq}!DC=6cB?n>#9}zP(o8wj%UJ1-EJ4ktd=De{}v4X+Fc= z+BRE2XV0nnef5`|tmjQ?zVSx&Rd5T_sl>@8Vy6)a#@I5-K$(qGtIebBJ1-+Ai=h~c z2CVkUoF2+QfMtzXB4p{ftQ}={h`p26J zTWt^5y*%MKNr0_+itWFG{@^D;rhCOLJWu{fIx4TQ#XawZca%n)q{rmMR`On^b|6Xammy}@a)jdWs^IiQ-a*qfdf3CLhqR=}&L*ud9p8L^ zbMcCQ@Q=b67V=)T)YR#g3f5J@Gg+0>g9X%FIH*^6ipkAQ> delta 867 zcmZoRY&M+WCwKmu_0t164}EupQPfubOB3kD|!V+Kp0j5&iD5E=sIjDcciK$S*773K_XKsiew zZNcEo;53OTRAhTV>D%Q@PXoFwucrxFXQ|fTtT;V6lPM+Cpovk9CCCM+8)TmgP`@+K z6iXoA4QL;TWe%j>fF@Z2O?GB50je+nn-8+d4QRI+$PTdGu0YxnsKRvOwSywJ*)N@% z{cmO6kEur#{;Gb=*|u({>*ljeK|&&B&tJ4E%yK`h*FUQuA%ykQ!Rb@}PBs>GtY=s8 z-JRU-Y~2~M;@{^s6%+mUIfZlXKX`D`{LydcYch*oa915OeWELQGhq3TJNnm~&WdS& zlkiIXH1El*?hk&6dsj%QoZeTWtetg!W(|kW1>0qBl-v$K@yq}9@`k?hRpyEFE0*e< z?`{Ne@^-b3o?)9*l^|aE?#&g%JFykd#*WP#< z{Q6c+r?cEG^=qMfZ>Ow&WVCuk%zeYeKEAi$m@{NP-Bo!wGuFH#lsi_%ih$h`}1zg4)t`uTaY8E@V9WiT$^B@n@W zB_n35LfV6=Q?G*li+`+EMtsv bRAy?mWtu_n)&;RmbIvHO+VIw$>Bdz6i1=xT diff --git a/src/bin/hamcore/inf/selow_x86/SeLow_x86.inf b/src/bin/hamcore/inf/selow_x86/SeLow_x86.inf index 93e2d919..cbe96a3f 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 CatalogFile.NT = inf_selow.cat @@ -66,5 +66,5 @@ SeLow_Description = "A lightweight helper kernel-mode module for PacketiX VPN -; Auto Generated 20141117_221645.757 +; Auto Generated 20150130_194759.090 diff --git a/src/bin/hamcore/inf/selow_x86/inf.cat b/src/bin/hamcore/inf/selow_x86/inf.cat index a3af2929bc0b02ac7090667ff880aad56786462a..0c5aad0bf5dfee1fd73ec27aa6c0b642622722d2 100644 GIT binary patch delta 867 zcmZoRY&M+WC-+V6SxM8q)jpeEy#5}ztn|A$uc4`dp|OFXfr+`P<-{Cme{%*$24e;n z1}6q126F}r1~&#*AT|L)10dfLC~6GE7C;OVaR!RH07YDZGL}G{AiX9)>i=Yi&mPZnibA~Lu2aek&om(sT- zHGC#(`FAbcvx|T8S*9Q%5pAZ)jSrQ#HKiNcn}@QMt*sAGMGcAwJ!FV5@N zUORu*XK(TyiB*vo(&t%d?~AnTuJHS{C~1-_-}&|D>2^}#lT19dZrYBCzcx+VAuGX^)>SG}Y_)39|8=jHF-ZKFR3Fc=rp1{;RY1_VB$CZ~HUFjGv32+8ir>!X+grbyKS4;&rE1 zUlvVFDdF=A&X4f2cquVuiu$vnOZ#6;JFYcfiu>ZM*RnEUUk{mn*^*UgykSz;(z^eT zvY96MPc9KVjYtqC7EuPuY@Awc9&O)w897-D#aKlC8GO!2ntABN^hJV4PJZ24>FV-r z_2fiR;d(y9p6N4VuRdAPbB;?^C*`Ed)HO>V6>~eT+i_R)jcOzN?@Xl_KGh@h>mzDoW+urLA7C=JZ@49! zxVG8%#rBMzSLQHe-Nd8`!oIVMPd*Ybp)r`pn3#5Elj%)Q4nYff+3PE&@@ z%AXdw+`qv8!{pQkX}QfGtY-Y?6SNc3Nslr+?_oP-f{1&T+r?MBiQ5vSAHQV#c&2DV W!~HkOu}*LPh0M(qYMRD$UIPFPRb9dW delta 867 zcmZoRY&M+WCzqOUb6#RuiQl9@jUCGzeR9Ql4NVLU4b2UW4b4nUC+0}|TQFEKI5C(4 zp*e#YkaT7+U@!)fE`}0LwT5MVuL& zCteE`>DU^cdcfxLM6PWoAB!g4|5Pw<@0rQ=j5)!^K$8rC=2-wqGa$48nqUajWeOB? z2Ab{+w#yJ`sv{5^Fqi;Um;u?QK%Ns=jU(7iPGFS`42F&8f#!-&7G+u@GI`?)v5b#L z*SuLRw1}l`srH(c(x*0`WeO4!;bfZ1lleAlk50s{ySHw-y0rBMI!rbeb*y)bh_e14 z*BqX9{L)v^{)sm?z8AbGD3da+On-UM(`&p_c<$SU-G62ES%D}2@2mBZnTyZla?QDR z;Qe!r8S9KU?`{{lmUG%F&%*ajOW1<=v=i~G$_)I2{)Ya@7wVONz@NmTxmaNOR@JRm z_hz5ziJlW78LuQIb!&n(i)&_W@S+Fo^&Vd>r~VBNceY!z!aXR)i$%>aq26-Cv&}np zyDYo^^=iJ8TWm(x>+gcAX055r-lI47RL|@;FQ=u--jZ5=KSRD|K>DJ@$hyVQRa1U*Sk;7 zi6=#cI_`Zst;UvvguZbqf?I+c@X|&AtJhmu4AhE2>O8MkW!>=jF3ND#RXV2rd zl-@COo%HXCGww@&*t5fhXY>61oB_-$V^qvt+;t+C`#*B~RNqki`rx*cVu`If#Q*>R diff --git a/src/bin/hamcore/inf/x64/INF_VPN.inf b/src/bin/hamcore/inf/x64/INF_VPN.inf index b1130ef6..53134dd3 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 7c3562c3..ddd867a4 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 0a0f31bb..74ae6221 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 64679117..e17eeed6 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 73a87e99..28533982 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 12544449..bbe3fccf 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 973a11e2..4d44f3f8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b2ae855d..9a8ed055 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 330cbf98..5ccb7bc8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 eebcda8f..010f2024 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 9b1b71e7..5f5c0fb0 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 42f25bbf..ed923cbb 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 407bca96..9bf5c230 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 182328bc..6204b413 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 fb206660..fbaa0637 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 de433dc4..5e7809b7 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 0f52ed82..5d5df4c6 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 582dd363..662c1cda 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 08cde77b..e8963f95 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 3253bfa0..fd93b115 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 83a2fc80..aeae818c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 7ea1e18c..9948877f 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ac9b4f75..a6d55db7 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b7556f21..ac697838 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 fd811f0c..a4bfe2ed 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 75cc630b..d86c8cb4 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 17906631..f801c065 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 288d90ed..d405c86b 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 58132e4b..ce97f483 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 6c7b1cb0..90a35da4 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 91f0d8fe..4bac2e58 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 4033dd5e..25274f86 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 a570c84d..3c2039fa 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 0f51aaab..eb2ece53 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 d4cbd6de..3c1410d3 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 c87c55ec..18ff8627 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 9455f5b3..1a84fb9a 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 d3938074..6a763377 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ff0e7575..aa277bf3 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 e1e35a27..10f56fb9 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f087dcf6..07c22832 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f020ab70..0f62a90b 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 24c4b7da..6a2c25e1 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b587e1d7..9b62583e 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b95903fa..4fcb0a28 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 1b0b7a6d..a0fedaac 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 21e4e3ce..58ba8082 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 7ae414dd..8ab06d62 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 2b964a0a..bf2b70a8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5b6b00d7..046be021 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 e64e61f7..73799e3c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 2b75c948..59b022b8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 664b74cb..608515e5 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 11d05b7b..4dab0426 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 1619acc2..6d453ede 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b2794004..2554ae34 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 fb2b7317..f3123ade 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 e74ccd67..9d8d55aa 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b2dd917f..16934e4c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 27090b46..9583694e 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 17fea9d1..f3c0d5c3 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 2f6765f9..c53e4a28 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 324493e3..cb401923 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 66439667..9f4a17ec 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 78f74b42..e98ab967 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 199e20c0..814c5dfc 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f874f898..e14b0d64 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 94454328..09fdb4b7 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 a4a2e0c8..b0a98412 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ecaa47fc..6de1bfa8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5aff03b9..0f4753b0 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 fa08620c..eefd0b11 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 bb1f5bd3..fc1a0ce8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 9d83257d..f7920a40 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 67278f1f..0a4a0480 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f78ef80f..d2d91adb 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 223be0d8..38689887 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 3b6ca85e..01cbef60 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 0d98b98b..2ffae017 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 727b0403..5900ccce 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 65260c5b..a6ed8d02 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 d54a3f02..fd833527 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b9cbd359..452c91d9 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 04843a39..a6972a5a 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 2d6fe614..7ebb7c41 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5ae9dba4..c5bdeb57 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 df63af0b..b4aaa42a 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 28601029..6b910ace 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 7b22f82a..773792ba 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 769353b5..1485f53c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 040c367f..a2cb3d9c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 658b383e..40618905 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 8ce43683..294ccc35 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 9eb768cd..e254be7b 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 7cce183d..0f21bd9e 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 afeee1d6..16fdf9c9 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 e4700ef7..99dd4b01 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 22db8ceb..9703be50 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b7ca129b..5a86ef64 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b18e04a7..e0c727db 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 a1e5e848..21d88ab0 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 d9868b4e..92df872a 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5cd0c14a..ddefc462 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 6f906ced..960ce708 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5eb6f03d..7e033e15 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f76beed6..2aa9dc05 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 0ea0cf32..867dd604 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 8f6acddd..63bf4d99 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 57a3a1eb..b61ec298 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 cf48556c..01d5b53c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b94b8cc5..c5e6d2da 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 089b9e16..9524cf91 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b24ec863..043897d4 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 dbdc8706..3df44c81 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 19809f9d..356ff54c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 4ac11b2f..c01b2de6 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ad30a5c0..630f1233 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5f8de0c9..98b875a8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 8d791a2c..644f039d 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 277fe160..a4624276 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 dbd463bd..8d3fdd34 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5e1e07c6..75521f6e 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 1ac4d9f3..49f8601d 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 56d543ba..aa963dd4 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 7730cd3c..54dff05a 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 957d0cd4..d62a3aa2 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 16fa3938..21c00b40 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 CatalogFile.NT = inf_VPN99.cat diff --git a/src/bin/hamcore/inf/x64/inf.cat b/src/bin/hamcore/inf/x64/inf.cat index 963f6c7aa775823b0e42d2cd5f929903d39d1260..05623dca834eeb9c6b7d6f3621d306443a705d27 100644 GIT binary patch literal 43113 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 zΠ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 diff --git a/src/bin/hamcore/inf/x86/INF_VPN.inf b/src/bin/hamcore/inf/x86/INF_VPN.inf index a3df7ad3..c4db3e36 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5f262d20..33f09b59 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f2fcdf7d..3e92f736 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 7fca9e1e..b89f2ab6 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 debe4245..f91f511a 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 72d2d41e..ed40d870 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 389f40e3..cab38989 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ab2aba5e..885729f5 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 542b63ac..a2201037 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 d150218a..3fee138f 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 806ec019..eddf4036 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 83083cf1..877a57e3 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 67bffe2c..a939e608 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 530ef457..0c8c3c26 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 6553389d..7b2a62b3 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 2091407a..db87d4f1 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ccb2fe31..04a89664 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 247674ef..dbbc6349 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 599cc42d..faa75e29 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ee80a098..9ec54d98 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 e96f8e4f..458d20bd 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 d6f53891..d7d9556c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 9c720423..71aadcad 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 e401e44c..1253f2e2 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 d8f76ec0..7d344940 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 7f92537e..341e1501 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 d2ee30e8..e40bda2a 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5188d3ec..fe829f6c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 774d80a8..e9deb72b 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 027b69e1..f8f667fe 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 8c03d3b2..ae0e47be 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 18f0f481..8e9c5ff0 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 961eef05..17e193db 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b875f3d8..72ca2f36 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 9e34bf52..865abba1 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 deccdca3..11e91f75 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 a0e73d8f..7f5b4bc2 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 98334b4d..fbee1996 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 dc7a302d..71397ff4 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 8e04c75e..90b4049a 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 1bd88d7b..c1ebb377 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 527608ef..fd56bbad 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f542d744..3f80992d 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 0a309687..12cc0f4a 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 a5946a91..35041563 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 07b550e5..129a342b 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 891edabd..2b21ba4e 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 1cd35206..805578d8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 61287314..06626dbb 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 e0c58d16..5c847c6e 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 69d2fb68..90be89b1 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 6da2fd81..0aa5b8e8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f5664c1c..d50de9d0 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 3a97fa57..c44d712c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5be55e09..8eab54c0 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 2d43175b..b69c1132 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 1f619949..cad2ce91 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 25a2e17f..6e2e64c5 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 3c2cdad8..2f61bcb8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f9c60965..a6c99827 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ea476151..85628095 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5080a027..2c9a8d3d 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 edf004e3..e9e32d18 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 a3634104..ee1009ad 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 c8701bfe..26474299 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 741f7a4d..1c6c99ee 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 8c5af969..d6c5a0a6 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 37ce58aa..85c54f51 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 9851f86e..a498bda7 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 bb03c533..c35859ad 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 420654d0..b38ebb37 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 99fe895d..c6abeb8d 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 7a760ee1..d593c278 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 513bc615..4a50e58c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 2a7a20a6..1b462c9c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 1279471a..7e0dc2e6 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f2d370ef..2a0fdc30 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 cdf0b17b..89edffe9 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 dce775f3..a446b34f 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ee5acf66..3f8e3dd9 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 2b62eaea..52576c78 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 4831fdca..956f5213 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 77ad17ad..24cf707c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5bcf906c..8612259c 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 f334aa2a..f9843a51 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 42a2f539..910be087 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ae5e05b8..7f9b60b4 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 2a611e4d..dc2aab48 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 058d5e68..ab6241ad 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 4f0d42a4..79d54830 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 6223b2d3..9d556b0a 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 a9f166b3..92f56a20 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 4347644d..885b3f04 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 784d2192..d04aa598 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 4ea50105..ce5424b2 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ef8b1751..64789cc4 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 8e14ed67..4157c4d8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ee839362..93eaf6f2 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 558596f4..dfe48b09 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 7ef8df3b..d2782123 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 c925f8b4..1ddd5d01 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 0272ba5f..96d34ec7 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 3ed6592f..aa8b50e1 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5a7f1c7b..239dd7fc 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 76745e30..f8c9c7b8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 ca142674..becaee3f 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 5fe6c872..bbb64917 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 c5a6b803..a1153880 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 0f855f7a..c1440564 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 3db31c1b..cac15a09 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 3f990fde..a1369113 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 356e8899..419fdb25 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 6ac19ece..b80b1933 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 8f3aa208..e93f7c52 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 0da364a1..8c101bf3 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 70400794..ec65ee7f 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 df777336..fe34c9f1 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 3051eab5..1b685976 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 478716e3..01f54523 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 90f525e0..bf15148b 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 2fbbe828..ce74470d 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 e85d3914..15e8983b 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 26099c54..7df228e1 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 b2aa80fc..91142a3e 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 0d5bde78..f69e5ca8 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 a1cb7620..763df58e 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 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 76877e2c..5037524f 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 = 11/17/2014, 4.12.0.9514 +DriverVer = 01/30/2015, 4.13.0.9522 CatalogFile.NT = inf_VPN99.cat diff --git a/src/bin/hamcore/inf/x86/inf.cat b/src/bin/hamcore/inf/x86/inf.cat index d2292a047bd742e2cc8df2ee4f2218c313a9a462..292efaf71ea8fb6bfe1304c985e81e08c051e709 100644 GIT binary patch literal 43113 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 a!d)X;xsG%=+~QHgNUKt14cEInkNZD4hlw`; literal 43113 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 diff --git a/src/bin/hamcore/pxwfp_x64.sys b/src/bin/hamcore/pxwfp_x64.sys index 5cddf9c80a1b9c46b24e50a8771815e7d7e6ad28..29fd3ab658fe36b0d3cff2a1202de664af26053f 100644 GIT binary patch delta 910 zcmaE`mhr(_#tAlz2^(z>GuB78FP|^_?Bp33wo=$~MjptwQrL7x3M_u&j0KPundfyz z21qk+i3QWL&*H$e$h-(J9h8}z0WyOD4FtF{Fr>7xG4Lmy4uMI1U{F%vX5wUE&|;X} z&Sc5d6ukKm(>}(D1{|9kSdOSN1J!PJ*9v45c)qw;3uo6j+aUjHuoG54wcwFb$ko$=*=PVmax^E6IA`?bec(LE~j2UFGz$=Tdm z^?@6>?uaXHFF!n!r8IuR6zA^qKOOz~{@xd5xwgSun5!)gJhQ#(5EpP%(HD!1(4 z`QBT>cWT=oi?crZzxiWL=#Hpmull2JUhK~KQqT80c*^qAT3^s|B{21nl+w!&F8_`7QbLy=wD`ACZu_*wJpr68srz1X2s$6WFX^ILTWc0TZ<>34>?_LYG7z=U}#`!U}73&pv=ap)#lOmotKf5#ZZhzL{YNdURLVv zM>_*)S69&(*Gb%EWd^)(MU0HB3@lBI49@2Aay&_Yt}K}>-f`*7p>vE&?4vr2t9x>; zI>=2dy_=zwC}nYU>J}zH=2}y~oT-8~!TWYkYtXcrv4*W)_s7HUSN}5H(0C}dnyI-_ zpM9lT(WW06q3&%BB{5rKl9t*kpX58Xf=y%5e%=p)oA~O}!yX*s{1K*e;`;f#@c;8K zJUp=@?!;T4`8&S&&nk({mw9f!VcnbES|LYvJMH?_TRGKpx8A4u-fjo3>scB3PYu_4 z#Q8&2b+U!?)7S3z(iDRJebtkab)iu}3r~wdcj#n+yy9Z{&pc delta 871 zcmaE`mhr(_#tAlz85?a6GX`uASTg^!;i)q)eC7N0GarHcE8jPs`2rR{edZdF{^jX; z<`bBX1Jj=kW1;+LFddYcoB=XpqN2p)1SSsV%5RyIvzdIE9IZC*V%o>Jxq;<~DoAj% zyH+5hfaAQiznWD=U3SmfF2x|Q-fi;=?F=qn9tIW$EmZ~vFuhsUESyo;h(U)zfx!Sw zS~8e27&4elZa42_G}$a@ahwUO^lPhsBC^M4@=7#b*V&c(`Ss$bzqF26@@H)RYh5cY zqS5$1C^BmD%bG<#4>zBEr`b1yyK8b^uw#AZ{LFPp&3)^u=HL8$QkDDG%*`M7MIBhx zxFx{CUunbSy?hhwxHb1%wR#I@yzdpV?K!^a5R>M*rcJHawZ!6T1@xAL`z+Hpt6F%X zj3X@czkX0}%b!zc_T5|%Z(w=lFQ2UFiY<4;MR$K{R%GDb(4WT>a4s}_%2Y}HvZ`#2 zGaGI@*6#>9w?R4?O^HvJR{4e)09e6hRe8}l~6GKBob3u85J5m4T&+ zk)h^$Ss>p*$4lF+ROTzZnAke?_-|RhmuJ+!9@eit-IRMeODOAn_Ma7N)8%y~lFYtI ze_1VV9PKag>u!ftz2aW0HnYMLXUjL+KG4_WYhY1Nk`wZ|T&sF1SKYm2L;jx&(F7>y4*Lzic9yl5N z;m$3v`6|QrV7txf`IalDoHNP#dNV4H>G6m6HJhJsgle1GCH79KI=sPyd(x-4PiYM^ z^>TUUxX6plC~Z6F{`&}LN1{(L+k(G6F;};4>ZubdYwt^tVPEPMujLbQH)prHhgwgD Tgkjg#ssx6czQtRAGcW)ErYnNE diff --git a/src/bin/hamcore/pxwfp_x86.sys b/src/bin/hamcore/pxwfp_x86.sys index 833c7732ad039ae3b5baab663481124cabbeb197..4d8e012820c21803876f099855a0d7173f60030c 100644 GIT binary patch delta 912 zcmaFR!}y?wae@tF!baP}jP=}KcV6?Ka=jISueD|X`58fLTHV0(s#ZTB?e-=FOa~rw z2Gjmi9H8QEU^*x>IRj({0~!c$Wnl1OWMfE8JRJg)dceS>$j!*fz#zjgxt+<9dHH#U z&4-!xGEOw$*xbOfMVuL^c(b{TE2F^NAH`pud%`ywE_kWX*?nK!WX&iR$?i{AkFMue-SK(uew%|6jh}@q z$vSA_QaX+Cn8Mi-_7w_3OD2frO#J@Cn7zLE`TgnVO4glHxGHy8+ zS+gWtHvQkZ`otZ-9<{9K6BAZE<1xM0d2!#7@X20QRx9kLdz+qT*l?veQHf7Px$5Ur z%UMF1akg0)=V#v21*#LdOSfEKd}fCJ_M5A8wRIBCbo|=(f1C2umLGr0ISUvQ z+rI6b{W5A@nL(E5V#3T)OTyd3XaZh3IIQ{77fiJb{P5d*bP5z#JU}4nF z>h=liQ+t0JEYUr6#G~Vt^P&E$oZ*_63y;O8Om{M=Z|HE!IDhPVhj{EGxssPr3)mc_ pF2?Ni{d~Aq?(wSDE8Qm_>+hdbbh!N0&(&fIkI(BLuU!Sq5&$fhiZ%cM delta 873 zcmaFR!}y?wae@tF#zx!2i~)&_JFlrexZaAu*IJo?d?vLutvXH`NT-wjL$WhQ5U%$TSsF*$*WgW3IS=HzT9U*^B+jGK2e?Pc8Dz_LXgB)ZvL#+6ZE zg*N}5)^F~SZDHf(VPIjnR7|6K04ZE6&J^{bu~t-7Zqi%-<@s#>w^dPtc(A(l8-su?|lC&G+*IhompR5 zYdSOM)CfPlzdhFMj2EOT-M%zjYF*c0u2igd&wFM}<0kgTYdbt9MNgdApM2(cVz@Om!R+76@OKkSeO}5+n4e;f%oMoBGwEx{FJ^Zq;9A>!J3{cFC_|rIXWUcwWwk;0s&#=HD!46|ZU+HHm#1 zMjv*~w{~UQ{ql9l8VfC3of}Tmqhl?5T2*9z^sYU}RMkA$-{o|@iJ_sPxuLP4nTchT zfifGXR+~rLcV0$L7DF)>5w(VS`|4_CtwTKeYYR=|3}1+^KW@MaSH#H3%D~dZ$WWpa z^C!gZ>Caf3m4CKQsLP6!X>Ce+|M2D1)M=bk-KSZu{Ap-3`CLD5bmXB#&E}|rjXhr~ zll&fDKYn~_edoiLH*;oK-4Q8nx8JSL=~sI4)6e?~=bvybS4i39euIDAt^mtRizGMy zIxD`~|N5l|!MBSqu+*&--f&~@h3)TbWzW2>jc!&q+IiuNiQ`oH-+p+e0s9v>BwHj0o8@SOec QhQ#6al;#j?Lr) zt2+v&*(MzZ(?OZZ86dqA6(zU>Tp1XA7}*%26HiaP?aS0~eX|zhF~&{ICI!quq0Q#S zuFL{OPyNjo1paW`HhI0n>p-UN%{^r;T)eytEDT1f3=Cj;vutBHqp&f94ub-N0hqL8 zFl8`eFq+)nRLgA2pfFj#NqVzV^E@VOiZ)+voyIN_%y(#x(D_Vn{(iydem8&4N^7`$ zc5`iSt+j? zdF_vxjJKQ|*>%Fo*&7a>+59B6;OOI!ncKf_asMVfRpfE?@p*x2b$!z5|7QkX`zmSD zaH`;v_iAh3BVTmu-vqY37L_%-Sk-DPh;8_H6+i z>wW~xySw$f$G2OzMXS5?MS0^d-@CmhdOlBBX?Xe6-y1W6)NE$B-)=vAZ@Kz>mG*Q` z#XUFPY}Gxh;Fr21$!T4o?-(-3zqAiHDjM~3XYbWte7w&RxUKjV zzH9LAvY08x#{I7Ep4?umEfZH|>bdO=o%*}ytpDy~+x*ycx43MP(>AM6D9NpgJTlMY z&|SBQck~J@-^L!$ikCK*FH1YXmU)u-*_tC?^B5QaJg|P& delta 879 zcmaEGf$6~orU^ET7be;|M=uPqJ@wQycqRe|&0GuQt6A~Qd<3N5_+FU#8cZLb`2?)) z2$+83dk9PiWhQ5U^fEv}fGY!o43<{I=o1`}@HP2(hrfBo!)@ke_M>f96z2BzWtRTe^uPm%5^;2;5 z=gqafwc;ZFJA;LPEB7dfsw|qbl+EYTr@8q@Ci5+Itk(_azQ^vKbhEjsMr5g>9#69I z&6>Ff9<-+4iYY0q+I+qJSl%k8Pbxc-)oQ05u5g@H>c203qyyB^*D5@h*6R*R>l zRQ}|zu1nJ&sLRY07n~kbQPBFx` zw@rS3y*=IV>dE~2rT+G(nRnTr6;$7GK~HR14U5$LPz|1X16^0d0UQIC4&Nr%_lWe$t8N)y0Pu6U{ zOlyS&qQ33ErC(UP3S1G zLql^zV?#4z<0u1VHcqWJkGAi;jGQcnVk{!A8@l`V2ut(5uMuHeIdgln;2LTFtx?W*oA=&0R&LpK*=-Kj?(;!%;merJw<&f% zQ=GTsM#+-*GxFwMGGUW&yysExTw9Z5X1|ZaZ{Kc~o8BA#Je=76WswBy%3Tb3Q$3zP zwo-{!OYJKAXm7tkamCpngPVK@lNM&Pi7Zq4AnC#KsjRT{`OwItA!2ksTt_%z*ZR`xJNvA_#Vjmck6u6l<85-gk7#bwNq7(lc zGHtxF*@&?yiW#VM^YZ9IW&sVW?@H}z30_-H9+k3iTJ?6bM*IsAUS0+k1|wAl1~9!@ zwj`WU*qA|wL4m;lOjQr3Wi*}quuOdNni8?iR%O$euqoU8xT1|wWX-lO z*+p|Z`zCHzojm9JjeCLKnPHo2t7^qXW@w*%9N*esV-R5|{r8H6u^o%+!O47+9P3lE zcyCwcEl(1z*btg~t*YXp_ttgwM)i5}&Th}Y?|uG0t?K1PDc_H?8fW~u-r@D3FpRbA ze%d>w&Fw2@R7L*kOTWFZH|4!d-}z&I*>*LbzL5}f_eg(TOx4V{N4ASBFIliPEW>%j zfrcg0-KH+B(<9zYGeV_;(|dW6&SxuuIPGx=wQa z%~R0v5%2Q0dsj8Rb4H}j?{^Ct8BPBRbEXu14Cxk7c8=(s@%`eep9{NAAKX;v>Fu}J zb;$ykg>{#hVm3_npM1LB)WFc#z|g?dz}Pg(K$(qGtIebBJ1-+Ai=h~cNL}ab{el7< zXBx63Zb{vEwqp9k`bP%5a7B!atPCtoj11+5Q_ht074Lu2bnk~UYvaPjSI=$iJRyB~ z=Z~4!W{PMos1g%%w4dsG)joCS(t|OpzjD9hiO=KNsMp!Dt^V2H8MzZJ%>uNUBj!d# zyb;+}svjMkGilSmlZ?~W_)MR_Yr%|Z8+IHuQJ$`Hm{D}=(I?Bi*M74<`$0~3=9BXjGuD= delta 904 zcmaE`is`{BrU?!8l4{KRW8HJ#AaKqbSs-8gme`vpFfH&V9!Q7Szk3r6rhmSP0n)MV zzrb{e{U0zLl$o3XGJ^pM0$dpwQrg%VvcF}9z{EZ{IE=X@|qH{%~oa8n6N3^{J5fxQN(Pg?$&&Z zHJm4cKVskwN(U7*;QTN zw^vm^kg;pq{*ABx-dSyVvtG~GVfW>^Ki0l5^bR+#o^QOFak6*7!Qclg_xap^$i7$4 zSU4y5&w&dnN{#{!3m$Rv-Fmv&KDWl8;O*q6TkCc{{@9)Re_@Q^dYPp2tV{j~u||mh zs=TFqLhtUWy~o>9O3#zM7a zJg*vj8>6OQIi1YVvPSh!Pj1@N@7=zO>}B$npYQ*)i8Chl^8QEdks5zLO}}>WS8CIo z3k9s1#$P%U=Ivl~xO?d5Yon7Jw;OHni>Wx;y!x}tr#&y-e3o;bk@TJ=7W6Thm+@TJ zsr|~rEKKLmPWGRCy57Xl(9qn_*vQbtBFaFSjZ>@5qwPB{BPWZY7>mfE6{ke4uAkiF zQ4px*lFlsgV!!Pr175fyMn+Z!mL^7qW}b)dE!F>WO`c?K`6|uq>zQ3HY1LKt<8Gea zvx#LXM>F5omG8H`K2r8-^IRe0%M(9-^;DYq;>f}G3s>B)FKnHAw#_%9aMy&bH6}+y z*K#Gh-j1!B?YWY_XtI*eO))Pgty3?*&)BkWYJ2Fex7&RKUiodG>oTvqV5`8(lWQ|1 zWVx)SXWfM0A?EnIQFPu0!C>r=q*=Sn?Wy>@)tw sXkLBy)#fYy#TyhKRldJ_&E7fq$DCIebxb|9-u{~t`zia~jZ6jx016Oz8IBIqm$yzkl6tY!=XJ5aZ=#U|}#)Wnci)o98-&GYT6s z=rAZS7=TGj22%zj2BXRBPQA>g3<{IiJ4$cflqIPSRm z``aF;CCm)rrknqI){2XqoppcLVyTT!6q0nxJ--~9VA$pxJh?B?u|8yZ-|6pSRYAv9 z1-*nXu9wIY3R!T%IZ(V+C8@|)B5Fa1<`a!t9?q*1xa9r`?{&MBT;yZ3-}jY1e5gCP+%0smjHcE3zt<0J>9}ZnC?j-@{)~hx&T;14rzd?2 zG*aDkI(Ey&X{Y9he?K`jB0o;P{%zOvo;!Vyjn@}$k(s(ecmBD1kG&loLzcDcv^9Qq zTa;JAcA76~&#aQjdcUJu9?6Z8yn<2r{<-T9JeIf=JbT;9zw>^-sTQh|3OPN^bVs=h z`vT6DOQii+T(|sb-*%Sy`@%!(>~@}<$vnS6$L+u7&kMeGF;hKjwYsDBiJGH}K?yBX1Af-(k3s&F;*duieM{coyu@ ze#gT%Cv3U5RS}!RKEa@4t9^Kk>X;=J&6w@ETq6P`Wj^NqU#zRYqwI9mi@j6ra^ymj z0%#wVP4qqZ*Ilk_u4v79^XBB-u#)}<`@t8 k=tnAZUve${_;cAC8Sc7xmK!UY7JX`J<$P^k5XQg&0N);mr2qf` delta 913 zcmaEGlJUVw#tAlz2^(z>GuEHHc4%(z_BH2VxaGY4xqdKz?YV_O+Hc3lb6r5X<-9&v zyyd*bxgM~*HJENWZwsb_GLthvW-y?E09OVEA4WC?5 zESVI}ZQjImjB#@V%Mlf3pu)-SnmYyFu%};BPF>)*_OR>T6)N)6HVbGqi1G3;urO$; zGBAMY&2t^X8HJ4)bQlyE48Wu%gDHa{gUMuer(R|g28GG%9i=yKa$3iPP0{9J*D@9n ztD*=+&)c5L9ZYARt(;#!bKQ&Tshj_L){2YN6#aj~BC#Ow!NnXVjw#D$Zdcr1HMuX* zvA!<7<792^v#Z@(EWcXCKN0vV85kHIzUocFKQp(rtD9e~4(ZQXs3Ee=|JGgO5`Dn~ z>~B8Dr_Gq3aQyx2sP|8=tXQNyd*$JX>x?msEoCAZ0rj(NriUHa_v5zFk%sym?Dbk| z3#YP%>P8BGnpL;rvch3M>CbU_OD81U;FAm4@oSA$yp+`M84d8mk2_%Fbl(Ne<*vG2vicSYfj4Z&&5{QZezHEh2(4 zk-~{uo*ik^Cb6ZRQrYwIfq~Yg{k#8Wb9~cTp4W8Yi~J(xrB5IG?)|N@|8c<7@M!1W z2(?3LeTS0QP5StbsWW8q`J~hJCWeNF=7z?GW=0lK2Fh%lT5TR}-+381Sq#NkL_C_O ztO=0*dj4Hul;|_TApWV-Vjmgs!WA(xvNEtVF)~OwRmGNZrPPWoT=&c8pVTuwAMJM) zV$)0)>)s3#WQt<{Q+oP#|El!kJu>_1U#Lc{ax!o#3oUtkwB+i?dIMWMRvTXjuM<~` zyL-~M1qP_hU`tbB`@dPY#%MEaWLf5+QiqM8^See(l%aX zw5-|wv@gxX{F^|-QpUS$EW=DoE-%2MU#^lP4Cv0X|{-_}pcS$uxGR?4nP z8QCwnxC@jHEIcao>4t5T`Or%31cX(#kLXuiR(Oz?46`i;G{_y#B*9|*kXM+cC<=9%7)MPORv#}Y7Y_hUJb-hDM(eFrArpplRjN&9&aO;v#pFcRqKCT|M!4 z81vyQ#>c`*9pPIh^Cdgh2fbv_)61~(oKdyV0p` z%>4bnW!iEvY}YOeE}gXQ0?#c?ov9C_C9{5VhOhl8%U&+^@q6;211^><50WOf|5htq z*gxTTN9PIq*S!THQ7N;onti(0x#!aQ>$}5e$5zZNnzVIqbe-Vt2^ZI2{Qaca-ng@7jb_qBy_vh# zo!IpF_5N#mKbKv)z!b%AKd{FZBHg)7OiW{ZmfYn;IAz8yFgxSQuDF87Q-H zYPET^edlH5WHA(D5m{p}pIa)p(dT3EyXOnbYkX(_>P|A?g)3rYWMyD!Vq}mp?t6EA z*1rRRdTwu?#0Cbat8DN1`l?FB^V;*C)mOEgXUvn)=lS?yrj+ZA_QxtWbidTcPBGsm z^Mn24yL$6Idl%20KW&Cyjq(0q(dTScwRd7m7A>Eamr-<8)8bX_?tovHILjS6D&8?4 zxBkt-e`a312JeQ+r{9Tx%%6YUWW%<=nOW%~i{^?gxqIxPy3$jHBP)*-8)xnG)7pK~ zDDU)Vu7tnuxsTXsbks#|nqE_Kq5PN-!}ce?_Wdr8Za%xA*CXNVB(J8LvU|V$*B&!F z8?yh?tIZe8*IMY7toW(+^6dGoGI5@tM4dkCM9)-6d-5^lP~}Da%c_1h>gSivziW8- OweVxUfII%83=9AP?4RQR delta 861 zcmaEGhVj7}#sy4%_T86PSHIf(1A+Ja2m|tqCh7gC0n-{ks=&0}k4iAD3FcS7(t?WX zfa##jan0>xxPR?fXWjYzXc^4CxHkf~0cc*}RhJf&qCj}0x?q?TVZ+-A^ z^8~#HVO|~v76vU<1_m&_S=K3>QP_wL-3w|6* zxqj@}wZ;Oy%^Tk=IdSUgg_OoOvWyY2cW1kuyD_Uj?%_B4pu&Hf{*)w@9cX!>`%}B^ zyl0ixjlW^{1yAyPT>ao%{q4&Q)e~wqFW7aD|L``)T(yS%|Mcgk`pR$NJ?`66Ij6@k zJe1L){-(OfI(u(XL%SQ>d!2q;c&^o95?(*qKjn12iJ_sPxuLP4xq)GnfifGXR+~rL zcV0$L7DF)>k=B684LXK%<(9nO^6|90amNeB8hry^xFSYIRtA(x0V1`%g)xH&ziMlif6hX+hZa(d9#W~P29@Y8E1>$KC;&jW^`G7;&j5n z`fk%SuJ(hR->hG%_5}J=s4e()Lr%Sd9N1 zFBvb*jn5CXJKOyrO=KeL0Hl85S<;Y z1zl(F<@zr(nb~iZHBJ0L`+;Ng4&Jx)Yq+`R=gik0GwTY!Xq#ADn;ibr5ZKdLBXmDS z^Sw^P(TlkU*fma^(0;yuVfC!UZ7!R&MMm#*A$OKqR#bbHn2pgpHsS(|0gZ>}}l+y3_a zv^MYBXY6^kopZWXc4igKTg1ko-(8tgi1OFDkBrNxN23TLX09x z5~_v-N`)?J6&s0$qg*bna|uzgPEi3xN&8(w+$j#>08~g{xrD0N(1dz%vee6JF|){K zOp+qxsKo*Zw~~}54;{>=713aHz7mNh9&){FJi9-j*CCw{iKL~rXS zp4SC)sRxk-+Rb$YJPqB1u5q=3OoQ<25}_7|)y)Q3zQ&7a186~e1GE%M^CX%H&4*rw zN})2SiC;-&v%{51W!7Puw!!AjDUOAgq&b+)Y2@_fyqD_ew{d>LS;x7NvxIXl=S0p3 zPBmwbV_q{|<_kE(nZP-lb0udTr(+pJ{=BW^{5jdtbDi@dXA|cE&Mlnl?Zly4%oB4t zpXD6O8Nun#spQ<5hU4Yicc^8UeKu4R!z8^Jb4c^3%AyYc;N#?mv3|LCTql=FQL)bk z+i;fLaDc*NiH0a;q%01k$2n<7tWSW+jpz#W3ah|~EdCKHmYQRO%#T~F*HuQY*`DNl zhoF#=Vxz2)-I=K(Du9{{yw)i1pJOMvBMd{MI$ujR)OvdmX>^X6SW|ICG0#X@Sg>8UTVJ_!IH%| z>_!YYkZ2#&&c+?7ppnSC=6nCX&&Tn6``sYT(vKV^`Vmz^_PIRe>Srb4M11;BMYA-o?<-21Cl;oVZ|Ew&Tj{U5zK%xP7KkZ@lN;!6WJ;{w#{qllJ zMk?Vo`(CGn;9UY;X7vU+8H&S6X^bGAAL-~I9Jc&nlo?F)Aw+C@*->)NNu`D`cP(D5 zrBJ4{*AV2?YBq$%bcGZ7{=s>76x1)rmXH2k=!`)Mj0;gcX<8@7EfIuF>p^3N#@vX< zcL`$8(*{1|F}cE}5X)=9@z6ckBM~(5JmU%;i=dUqjbIy(ZD5~e7#koBjwEA_8<~mF zaQ1++N0@W|?v6)*8pb*(5iz3z=UsnhtVs{;3F={!4&)QT z5~vgL6H7R3WUfQUa6JYC1O4$h5i_Ph_izK_KX@#H%q$70aW)Mzl?a)TXY7D+CL?w> z5Hr#cocBuP8B-xqkNtNx0y6}2ODBq)-Nan=LMVPA@{Czpq63Ic-~d=e$qs3sT@W+d zG~?A6g_toi9RFD$)`6#>*@zu>!Tz&19P?5Vv>Y9FB3^`81dl>&&lq5MAXS$zMm*Hzop1w==U&~yw*UEG|t5z-Bm{Tz589{$*|H(BaVGjlm?bdf6 z3LZFqjI}hU)NjynKObY#u-~rFD99Z>>^q+y8jPodC9l8y$?R5tvii*piM778W?$P; zmp#!BiyE?LotaSd(c1QDY2)kFyYu`io_{Z^LwvQUqG`p9zxnS7D)lHYsPMM7w#00? zS-rSyz!cN{pZsGprQpv?iYLds8CX#{wn$N)yzQyV2lFnZTbAw!Ti^A^`YXAvpDCXE z?%D_I^IA^4^R!ynr@Q;D`No2mrd_4&opqjPzI;Qy*L1AoVaiK8(=3awzB7f!9gi!z z7`eS#(zfOm>pd0*uL#_~ds~Y6Mr!2qam|gEc@r+xnBJC;*>iK@?!p}zcS9Cv{w*Av zfBnVg`12R#)^{r!LWFD4Mpys5KOfCbaEZ)1uwYb5{gvY_w=>G8E^R#AF3LufNf}Gd znd5c(IGtV>uh;2j>B1E5BiALZyXz^q%k{qUK?NT_cUd@@S27_dZ&&?!Yl3Cl*>s)f z<03(DCHZQBMud6I``)U5VblFdnvD2>g%PV#^5b%U7`5$cb@_C!o!ZWv355efECB}# zdcWQL>(=C#rM7M7n&$uJ`^{mqSL%D;%!rZ7v(7mDk1JQuGvjNUW&)!nNV0ZpCl z1=XqdZzX46_L{#{-8O2@>7JQuRpW%v;O4|}-#?mqsi^3UuU7_b=_uZ%j;jw^u<7%p z+hcmph@SpR c=*9CLrv@r(Yg&GKy0iV-vUjJ9k>eBj9|KevO8@`> delta 3590 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 delta 891 zcmaFxjPb!U#tAlz1siP-Ge$g|o$zt#FTO=EyryaHqUB&d|Dq-!eL1~!(E>1C3>IJ0 z)C;9&Em{IrHxo>+X_^nFgEEsdKxR!;l;93|jGzlvM9#9qlJ-ygUpn3|guT3}AY*Y*09(un~g} zg93vAn6zXtWiVtgncN;cmCuoo>!uD9?3f zN%j1QM&WMB$Bmn7BWlG({!F+&rF-YGH%XW4mwJdii>{FO*gcuAz_Gq2xbE)DgpLIU zYn%+$Oz*j{=;)T2Ql9af($!-!-|UK1(tmiba1me4YL6V3lDSVG+_>TQR^aN2MgITx zZ8k0c%$^WaI$8IWw}fGB=QWe*r}AH|7K{4HcEc&eg*Wd_YueSlQ+`XbiHoz`+O2T% z$+Zht)YgceUl62ry7N=rkBcvqlIvNU*B`y2ynC9+)~d+TDU){ZEPOlp@u%bt18=be z(f9vLFV(K!&pV5K)w1HJ2NSu!K9@e2x9Y1`u%enBpP}ew`zh&-(_bI)oSXTs|0g@s zy08@q*6bl?y6-90e(!7jP{Vbs zfNA~D$^M0>>rD&|4b2UWjSP*=qYRYUIJMe5+P?ELaB-FCRwp8a&E#izSd-|NP1GEkD8 zy5-RH89Vjni`P2%+wg`t=+4<8HN*Q=UwzaB9>#h(w~w#&lQLu_cefoBQ#WT}_E5HdGB{q452Pq*ID@&sumr>7d{+aJ!Uo4D-fk9ps{c^y9J>1ygKKXP>X z_ioRP_RW5r9)ekFi~T?BIBMK;p+Q0X*~~A!&&A9)JlvATv#@ubgUnC2Pey*aUkwZP m*eczhqWjLE`pEXg*}Y}APAzynBm3dYF#mgU+ln7BFaQ84E0Sga diff --git a/src/bin/hamcore/warning_cn.txt b/src/bin/hamcore/warning_cn.txt index 433ca635..6e5f9cda 100644 --- a/src/bin/hamcore/warning_cn.txt +++ b/src/bin/hamcore/warning_cn.txt @@ -135,3 +135,6 @@ VPN Gate 学术实验服务是作为日本筑波大学研究生院的一个研 如果你不同意也不理解上述警告,不要使用任何 VPN Gate 学术实验服务功能。 VPN Gate 仅仅是学术目的的一个研究项目。VPN Gate 是作为 SoftEtherVPN 和 UT-VPN 的一个插件被开发的。然而, VPN Gate 的每一部分都是在筑波大学的这一研究项目被开发的。VPN Gate 的任何部分都不是 SoftEther 公司开发的。VPN Gate 研究项目不是由 SoftEther 公司引导、经营,推广和保证的。 +5.13. The P2P Relay Function in the VPN Gate Client to strengthen the capability of circumvention of censorship firewalls +VPN Gate Clients, which are published since January 2015, include the P2P Relay Function. The P2P Relay Function is implemented in order to strengthen the capability of circumvention of censorship firewalls. If the P2P Relay Function in your VPN Gate Client is enabled, then the P2P Relay Function will accept the incoming VPN connections from the VPN Gate users, which are located on mainly same regions around you, and will provide the relay function to the external remote VPN Gate Servers, which are hosted by third parties in the free Internet environment. This P2P Relay Function never provides the shared NAT functions nor replaces the outgoing IP address of the VPN Gate users to your IP addresses because this P2P Relay Function only provides the "reflection service" (hair-pin relaying), relaying from incoming VPN Gate users to an external VPN Gate Server. In this situation, VPN tunnels via your P2P Relay Function will be finally terminated on the external VPN Gate Server, not your VPN Gate Client. However, the VPN Gate Server as the final destination will record your IP address as the source IP address of VPN tunnels which will be initiated by your P2P Relay Function. Additionally, user packets which are transmitted via your P2P Relay Function will be recorded on your computer as packet logs as described on the section 5.8. After you installed the VPN Gate Client, and if the P2P Relay Function will be enabled automatically, then all matters on the 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.10, 5.11 and 5.12 sections will be applied to you and your computer, as same to the situation when you enabled the VPN Gate Service (the VPN Gate Server function). If your P2P Function is enabled, then your computer's IP address and the default operator's name which is described on the section 5.5 will be listed on the VPN Gate Server List which is provided by the VPN Gate Project. You can change these strings by editing the "vpn_gate_relay.config" file manually. Note that you need to stop the VPN Client service before editing it. The VPN Gate Client will automatically enable the P2P Relay Function on your computer if the VPN Gate Client detects that your computer might be located in regions where there are existing censorship firewalls. If you want to disable the P2P Relay Function, you must set the "DisableRelayServer" flag to "true" on the "vpn_client.config" file which is the configuration file of the VPN Client. Note that you need to stop the VPN Client service before editing it. The VPN Gate Client does not recognize the particular regulation of your country or your region. The VPN Gate Client activates the P2P Relay Function even if your country or your region has the law to restrict running P2P relay functions. Therefore, in such a case, you must disable the P2P Relay Function on the VPN Gate Client manually by setting the "DisableRelayServer" flag if you reside in such a restricted area, in your own responsibility. + diff --git a/src/bin/hamcore/warning_en.txt b/src/bin/hamcore/warning_en.txt index 527c2ac1..4717e799 100644 --- a/src/bin/hamcore/warning_en.txt +++ b/src/bin/hamcore/warning_en.txt @@ -134,3 +134,6 @@ By using this software and service, the user must observe all concerned laws and If you don't agree nor understand the above warnings, do not use any of VPN Gate Academic Experiment Service functions. VPN Gate is a research project for just academic purpose only. VPN Gate was developed as a plug-in for SoftEther VPN and UT-VPN. However, all parts of VPN Gate were developed on this research project at University of Tsukuba. Any parts of VPN Gate are not developed by SoftEther Corporation. The VPN Gate Research Project is not a subject to be led, operated, promoted nor guaranteed by SoftEther Corporation. +5.13. The P2P Relay Function in the VPN Gate Client to strengthen the capability of circumvention of censorship firewalls +VPN Gate Clients, which are published since January 2015, include the P2P Relay Function. The P2P Relay Function is implemented in order to strengthen the capability of circumvention of censorship firewalls. If the P2P Relay Function in your VPN Gate Client is enabled, then the P2P Relay Function will accept the incoming VPN connections from the VPN Gate users, which are located on mainly same regions around you, and will provide the relay function to the external remote VPN Gate Servers, which are hosted by third parties in the free Internet environment. This P2P Relay Function never provides the shared NAT functions nor replaces the outgoing IP address of the VPN Gate users to your IP addresses because this P2P Relay Function only provides the "reflection service" (hair-pin relaying), relaying from incoming VPN Gate users to an external VPN Gate Server. In this situation, VPN tunnels via your P2P Relay Function will be finally terminated on the external VPN Gate Server, not your VPN Gate Client. However, the VPN Gate Server as the final destination will record your IP address as the source IP address of VPN tunnels which will be initiated by your P2P Relay Function. Additionally, user packets which are transmitted via your P2P Relay Function will be recorded on your computer as packet logs as described on the section 5.8. After you installed the VPN Gate Client, and if the P2P Relay Function will be enabled automatically, then all matters on the 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.10, 5.11 and 5.12 sections will be applied to you and your computer, as same to the situation when you enabled the VPN Gate Service (the VPN Gate Server function). If your P2P Function is enabled, then your computer's IP address and the default operator's name which is described on the section 5.5 will be listed on the VPN Gate Server List which is provided by the VPN Gate Project. You can change these strings by editing the "vpn_gate_relay.config" file manually. Note that you need to stop the VPN Client service before editing it. The VPN Gate Client will automatically enable the P2P Relay Function on your computer if the VPN Gate Client detects that your computer might be located in regions where there are existing censorship firewalls. If you want to disable the P2P Relay Function, you must set the "DisableRelayServer" flag to "true" on the "vpn_client.config" file which is the configuration file of the VPN Client. Note that you need to stop the VPN Client service before editing it. The VPN Gate Client does not recognize the particular regulation of your country or your region. The VPN Gate Client activates the P2P Relay Function even if your country or your region has the law to restrict running P2P relay functions. Therefore, in such a case, you must disable the P2P Relay Function on the VPN Gate Client manually by setting the "DisableRelayServer" flag if you reside in such a restricted area, in your own responsibility. + diff --git a/src/bin/hamcore/warning_ja.txt b/src/bin/hamcore/warning_ja.txt index a9b334d4..9ed7e2c2 100644 --- a/src/bin/hamcore/warning_ja.txt +++ b/src/bin/hamcore/warning_ja.txt @@ -136,4 +136,6 @@ VPN Gate 学術実験サービスは、日本国に所在する筑波大学大 VPN Gate は筑波大学大学院における学術目的の研究プロジェクトです。VPN Gate ソフトウェアはフリーウェアである SoftEther VPN およびオープンソースである UT-VPN を拡張するプラグインの形で開発されていますが、これは本研究プロジェクトにおいて開発されたものであり、ソフトイーサ株式会社によって開発されたものではありません。本研究はソフトイーサ株式会社が主宰、推進または保証するものではありません。 VPN 通信が禁止されている国・地域では VPN Gate を使用しないでください。 +5.13. VPN Gate Client に組み込まれている検閲用ファイアウォールの回避のための P2P 中継機能について +2015 年 1 月以降にリリースされた VPN Gate Client には P2P 中継機能が搭載されています。この P2P 中継機能は検閲用ファイアウォールの回避の強化を目的としています。あなたの VPN Gate Client で P2P 中継機能が有効となっている場合は、P2P 中継機能は、専らあなたと同じ地域に居住する他の VPN Gate のユーザーからの VPN 接続を受け付け、当該 VPN 通信を、検閲用ファイアウォールの外側にある、自由な (検閲のない) インターネット接続環境にある他人が遠隔地に設置した VPN Gate Server に対して中継します。この中継機能においては、あなたの VPN Gate Client の P2P 中継機能に接続した VPN Gate ユーザーの VPN Gate 使用中における NAT の出口 IP アドレスはあなたのコンピュータに置き換わることはありません。なぜならば、当該中継機能は VPN トンネルを反射状に中継するものであり、VPN トンネルの最終的な終端点は当該他人が設置した VPN Gate Server となるためです。しかしながら、当該他人が設置した VPN Gate Server における VPN トンネルの接続元 IP アドレスとしては、あなたのコンピュータの IP アドレスが記録されます。また、あなたのコンピュータの P2P 中継機能を経由して行われたパケットは、5.8 に準じてあなたのコンピュータに記録されます。P2P 中継機能を有する VPN Gate Client をインストールした後に当該 P2P 中継機能が動作する状態となった場合には、5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 5.10, 5.11 および 5.12 において VPN Gate サービス (VPN サーバー機能) を明示的に有効にした場合と同じ注意事項が適用されます。P2P 中継機能が有効な場合、あなたのコンピュータの IP アドレスおよび 5.5 で述べられているデフォルトの運営者名は、VPN Gate Project が配布する VPN Gate のサーバーリストに自動的に追加されます。5.5 で述べられている情報は、"vpn_gate_relay.config" ファイルを編集することで変更することができます。設定を変更する際には、最初に VPN Client サービスを停止する必要があります。VPN Gate Client は、あなたのコンピュータの P2P 中継機能を、あなたのコンピュータが検閲用ファイアウォールが存在する地域に存在している可能性を検出した場合に自動的に有効にします。もし P2P 中継機能を無効にしたい場合は、VPN Client の設定ファイルである "vpn_client.config" ファイル内の "DisableRelayServer" フラグを "true" に設定しなければなりません。設定を変更する際には、最初に VPN Client サービスを停止する必要があります。P2P 中継機能は、法令によって検閲用ファイアウォールの回避のための P2P 中継機能の提供が禁止されている国または地域であっても、自動的に有効になる可能性があります。そのため、法令によって検閲用ファイアウォールの回避のための P2P 中継機能の提供が禁止されている国または地域のユーザーは手動で "DisableRelayServer" フラグを変更し、P2P 中継機能を自己の責任で直ちに無効にしなければなりません。 diff --git a/src/bin/vpnweb.cab b/src/bin/vpnweb.cab index 311e127a600c2656b2552c964540f5f85ffa3d15..ddc06af0ae182324f7e2962a9e684dde8d4b8af1 100644 GIT binary patch delta 45192 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 N^0M1*&Pm_xgaGI%m%0D| diff --git a/src/bin/vpnweb.ocx b/src/bin/vpnweb.ocx index d7346e0069f8b10f67e591f32dc87d83d36586d2..c0411d22bed4df905c9e1fb4dc84639f39690102 100644 GIT binary patch delta 989 zcmdn7L1f1UkqHg;jIn$hTx}8_!|UoA}M+)uVoe=Vz@#{*FPc{$0-dBL{(hj}kP zmI!y%mgs3Yz3gqVZL!R~AIEpiH}ig|^h{yH&zrr?v-FldZtQa?PIHOsyfpn_5_hMb zoA;Cd-2a7|;@KAT-M+CqtZtT{QdVugHowiesZ8s3Hk5Mj2-9S|JJruo&NJ9&{Tp|^ zCs!Lc)ld20mi?=I&Ci$@kzYG~-r4+MTJR}@!y|A)YKZaP{k^M<%;rC`blkJRp|qw& zo>64Q9fdHVfVWdVZ&I9cs3eN5?&15Jw`MclySeVC6YKT0-==N5tDtU>{ib+}-R&<9 zx0l>2|L~whT-wdqD#y|B<=)a&FQqR2TWFqRpLT2NkF2PzOjlW^tBSFnHZ(ObG&V3a zFfli_h%!)SX+&6iW!$P8& zn9fSOxFS)D`B!k`XMSV(4&F^kZww1~PE4*hddNIuf9rHEl(5)0pL+@4(d%>e zDjlz|Ickzp`NUUwvDJ;ag%e+2nl5PH@>!wq*q+@gnO?uWzpv3uI-sp;!oh#~!Q$Y> zD<5f3d!Wr>ab9p;iOI~Tb52ed+Ix{Dg4bwjee1G?oo`yQD(oKySrxGsDT^d+pZIKj z>8BazES)u#SO5N(^7c#2Ua^>>6G=yNo495QXV_h&U`vh zp%0%Qi-Y;Lk0pS#bVuUjUtsYkk7dC0W2m}MVDp4Nd;!za9p9n+k04s+aZqM*2FP*- zCnTwc#65FpYX8LL@a4P1~i%C46 ze78-~=$zWNUuyfE>r6WwzzU{IFlU&``R3;-_~n-=7@8{>8Ce;cSs9rq7#SFva0xSL ze9df^^<&;H>&N0>&dbBV!l0$fzyPMVR~}^vXB0MK&|y$uFaVR545kc*3?|bbA7g1{ zG?{LDf<=6L!*P~1OxRRyw?D1%4r3@ksF3pPAn5eDk~<&e4yk*usgxiBqH$n(j}jiTg<`> z7zLLpekjjV{q4S!t1&qB?(qbb@Fq>yIhy}JPQLQfK8tB8`*c+?*3*V2hK7dbhQ@|w z#)eS_%50okZ60mkc^Nrb48>SP?)zF@h_jm=svR?_p>NnaV-{^wZwn`gS4Sjz;x3Xh*CyYY5=xZJ15`9DvnuY7E{*y^-Fxd;Htex?=x diff --git a/src/makefiles/freebsd_32bit.mak b/src/makefiles/freebsd_32bit.mak index 7c416313..1530df9d 100644 --- a/src/makefiles/freebsd_32bit.mak +++ b/src/makefiles/freebsd_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/makefiles/freebsd_64bit.mak b/src/makefiles/freebsd_64bit.mak index 44794953..588492a0 100644 --- a/src/makefiles/freebsd_64bit.mak +++ b/src/makefiles/freebsd_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/makefiles/linux_32bit.mak b/src/makefiles/linux_32bit.mak index 6587cdb7..cd247139 100644 --- a/src/makefiles/linux_32bit.mak +++ b/src/makefiles/linux_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/makefiles/linux_64bit.mak b/src/makefiles/linux_64bit.mak index 7071cc45..544ea2d5 100644 --- a/src/makefiles/linux_64bit.mak +++ b/src/makefiles/linux_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/makefiles/macos_32bit.mak b/src/makefiles/macos_32bit.mak index 579a4233..96307390 100644 --- a/src/makefiles/macos_32bit.mak +++ b/src/makefiles/macos_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/makefiles/macos_64bit.mak b/src/makefiles/macos_64bit.mak index e1855ccd..26cec628 100644 --- a/src/makefiles/macos_64bit.mak +++ b/src/makefiles/macos_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/makefiles/openbsd_32bit.mak b/src/makefiles/openbsd_32bit.mak index 53bb261c..c687192b 100644 --- a/src/makefiles/openbsd_32bit.mak +++ b/src/makefiles/openbsd_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/makefiles/openbsd_64bit.mak b/src/makefiles/openbsd_64bit.mak index 2ad52064..73e9e4be 100644 --- a/src/makefiles/openbsd_64bit.mak +++ b/src/makefiles/openbsd_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/makefiles/solaris_32bit.mak b/src/makefiles/solaris_32bit.mak index a1b988c5..1ddd1082 100644 --- a/src/makefiles/solaris_32bit.mak +++ b/src/makefiles/solaris_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/makefiles/solaris_64bit.mak b/src/makefiles/solaris_64bit.mak index 93ab2b2d..f50a5a8d 100644 --- a/src/makefiles/solaris_64bit.mak +++ b/src/makefiles/solaris_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2014 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2014 Daiyuu Nobori. +# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2015 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ diff --git a/src/vpnweb/vpnweb.h b/src/vpnweb/vpnweb.h index 7a4a0b3b..1030f585 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 Mon Nov 17 21:41:35 2014 +/* at Fri Jan 30 19:27:28 2015 */ /* 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 b7b3059b..60330c83 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 Mon Nov 17 21:41:35 2014 +/* at Fri Jan 30 19:27:28 2015 */ /* 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 87dd62fd..5c14aa39 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 Mon Nov 17 21:41:35 2014 +/* at Fri Jan 30 19:27:28 2015 */ /* Compiler settings for .\vpnweb.idl: Oicf, W1, Zp8, env=Win32 (32b run)