diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..e3737dc --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,10 @@ +Changes proposed in this pull request: + +Your great patch is much appreciated. We are considering to apply your patch into the SoftEther VPN main tree. + +SoftEther VPN Patch Acceptance Policy: +http://www.softether.org/5-download/src/9.patch + +You have two options which are described on the above policy. +Could you please choose either option 1 or 2, and specify it clearly on the reply? + diff --git a/AUTHORS.TXT b/AUTHORS.TXT index f84f9e3..44fdbcf 100644 --- a/AUTHORS.TXT +++ b/AUTHORS.TXT @@ -6,7 +6,7 @@ AUTHORS OF SOFTETHER VPN CORE DEVELOPERS: - - Daiyuu Nobori + - Daiyuu Nobori, Ph.D. Computer Science, Graduate School of University of Tsukuba SoftEther Corporation E-mail: daiyuu-nobori [at] softether.org @@ -18,16 +18,16 @@ CORE DEVELOPERS: Risk Engineering, Graduate School of University of Tsukuba SoftEther Corporation - - Takao Ito + - Takao Ito, Ph.D. Computer Science, Graduate School of University of Tsukuba SoftEther Corporation + - Mei Sharie Ann Yamaguchi, Ph.D. + Life and Environmental Sciences, Graduate School of University of Tsukuba + - Christopher Smith College of Information Science, University of Tsukuba - - Mei Sharie Ann Yamaguchi - Life and Environmental Sciences, Graduate School of University of Tsukuba - WEB-SITE DESIGNER: @@ -67,6 +67,77 @@ CONTRIBUTORS on GitHub: - ygrek https://github.com/ygrek + - ajee cai + https://github.com/ajeecai + + - NOKUBI Takatsugu + https://github.com/knok + + - Den Lesnov + https://github.com/Leden + + - Ilya Shipitsin + https://github.com/chipitsine + + - Matt Lewandowsky + https://github.com/lewellyn + + - Raymond Tau + https://github.com/rtau + + - Luiz Eduardo Gava + https://github.com/LegDog + + - Charles Surett + https://github.com/scj643 + + - Jeff Tang + https://github.com/mrjefftang + + - Victor Salgado + https://github.com/mcsalgado + + - micsell + https://github.com/micsell + + - yehorov + https://github.com/yehorov + + - dglushenok + https://github.com/dglushenok + + - NoNameA 774 + https://github.com/nna774 + + - Alexandre De Oliveira + https://github.com/yodresh + + - Bernhard Rosenkraenzer + https://github.com/berolinux + + - Sacha Bernstein + https://github.com/sacha + + - cm0x4D + https://github.com/cm0x4D + + - DDGo + https://github.com/DDGo + + - Noah O'Donoghue + https://github.com/NoahO + + - Moataz Elmasry + https://github.com/moatazelmasry2 + + - Zulyandri Zardi + https://github.com/zulzardi + + - rel22 + https://github.com/rel22 + + - Guanzhong Chen + https://github.com/quantum5 JOIN THE SOFTETHER VPN DEVELOPMENT ---------------------------------- @@ -76,8 +147,3 @@ Want to become a contributor? Please send us a patch. See also: SoftEther VPN Patch Acceptance Policy http://www.softether.org/5-download/src/9.patch - -Developed by SoftEther VPN Project at University of Tsukuba in Japan. -Department of Computer Science has dozens of overly-enthusiastic geeks. -Join us: http://www.tsukuba.ac.jp/english/admission/ - diff --git a/LICENSE b/LICENSE index a919c97..a93edd0 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-2015 Daiyuu Nobori. -Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. -Copyright (c) 2012-2015 SoftEther Corporation. +Copyright (c) Daiyuu Nobori. +Copyright (c) SoftEther Project at University of Tsukuba, Japan. +Copyright (c) SoftEther Corporation. All Rights Reserved. http://www.softether.org/ diff --git a/LICENSE.TXT b/LICENSE.TXT index a919c97..a93edd0 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-2015 Daiyuu Nobori. -Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. -Copyright (c) 2012-2015 SoftEther Corporation. +Copyright (c) Daiyuu Nobori. +Copyright (c) SoftEther Project at University of Tsukuba, Japan. +Copyright (c) SoftEther Corporation. All Rights Reserved. http://www.softether.org/ diff --git a/README b/README index 9e4efff..050e40d 100644 --- a/README +++ b/README @@ -1,8 +1,14 @@ -SoftEther VPN - An Open-Source Cross-platform Multi-protocol VPN Program +SoftEther VPN (Stable Edition Repository) +- An Open-Source Cross-platform Multi-protocol VPN Program http://www.softether.org/ We use GitHub as the primary official SoftEther VPN repository: -https://github.com/SoftEtherVPN/SoftEtherVPN/ +https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/ + +This branch is officially managed by Daiyuu Nobori, the owner of +SoftEther VPN Project. Pull requests should be sent to the +Developer Edition Master Repository on +https://github.com/SoftEtherVPN/SoftEtherVPN Source code packages (.zip and .tar.gz) and binary files are also available: http://www.softether-download.com/ @@ -10,7 +16,13 @@ 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-2015 SoftEther Project at University of Tsukuba, Japan. +Copyright (c) SoftEther Project at University of Tsukuba, Japan. + +The development of SoftEther VPN was supported by the MITOH Project, +a research and development project by Japanese Government, +subsidized by METI (Ministry of Economy, Trade and Industry of Japan), +administrated by IPA (Information Promotion Agency, Japan). +https://www.ipa.go.jp/english/humandev/ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 @@ -95,14 +107,14 @@ HOW TO GET THE LATEST SOURCE CODE TREE FOR DEVELOPERS ----------------------------------------------------- If you are an open-source developer, visit our GitHub repository: -https://github.com/SoftEtherVPN/SoftEtherVPN/ +https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/ You can download the up-to-date source-code tree of SoftEther VPN from GitHub. You may make your own fork project from our project. The download and build instruction is following: -$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git +$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git $ cd SoftEtherVPN $ ./configure $ make @@ -121,25 +133,10 @@ SoftEther VPN Project distributes the up-to-date source-code on all the following open-source repositories: - GitHub - https://github.com/SoftEtherVPN/SoftEtherVPN/ - - - SourceForge - https://sourceforge.net/p/softethervpn/code/ci/master/tree/ - - - Google Code - https://code.google.com/p/softether/source/browse/ - + https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/ To fetch the source code from GitHub: -$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git - -To fetch the source code from SourceForge: -$ git clone http://git.code.sf.net/p/softethervpn/code - - or - -$ git clone git://git.code.sf.net/p/softethervpn/code - -To fetch the source code from Google Code: -$ git clone https://code.google.com/p/softether/ +$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git We hope that you can reach one of the above URLs at least! @@ -218,10 +215,3 @@ SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'THIRD_PARTY.TXT' FILE. -ADVERTISEMENT -------------- - -SoftEther VPN is developed by SoftEther VPN Project at University of Tsukuba. -Department of Computer Science has dozens of overly-enthusiastic geeks. -Join us: http://www.tsukuba.ac.jp/english/admission/ - diff --git a/README.TXT b/README.TXT index 9e4efff..050e40d 100644 --- a/README.TXT +++ b/README.TXT @@ -1,8 +1,14 @@ -SoftEther VPN - An Open-Source Cross-platform Multi-protocol VPN Program +SoftEther VPN (Stable Edition Repository) +- An Open-Source Cross-platform Multi-protocol VPN Program http://www.softether.org/ We use GitHub as the primary official SoftEther VPN repository: -https://github.com/SoftEtherVPN/SoftEtherVPN/ +https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/ + +This branch is officially managed by Daiyuu Nobori, the owner of +SoftEther VPN Project. Pull requests should be sent to the +Developer Edition Master Repository on +https://github.com/SoftEtherVPN/SoftEtherVPN Source code packages (.zip and .tar.gz) and binary files are also available: http://www.softether-download.com/ @@ -10,7 +16,13 @@ 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-2015 SoftEther Project at University of Tsukuba, Japan. +Copyright (c) SoftEther Project at University of Tsukuba, Japan. + +The development of SoftEther VPN was supported by the MITOH Project, +a research and development project by Japanese Government, +subsidized by METI (Ministry of Economy, Trade and Industry of Japan), +administrated by IPA (Information Promotion Agency, Japan). +https://www.ipa.go.jp/english/humandev/ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 @@ -95,14 +107,14 @@ HOW TO GET THE LATEST SOURCE CODE TREE FOR DEVELOPERS ----------------------------------------------------- If you are an open-source developer, visit our GitHub repository: -https://github.com/SoftEtherVPN/SoftEtherVPN/ +https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/ You can download the up-to-date source-code tree of SoftEther VPN from GitHub. You may make your own fork project from our project. The download and build instruction is following: -$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git +$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git $ cd SoftEtherVPN $ ./configure $ make @@ -121,25 +133,10 @@ SoftEther VPN Project distributes the up-to-date source-code on all the following open-source repositories: - GitHub - https://github.com/SoftEtherVPN/SoftEtherVPN/ - - - SourceForge - https://sourceforge.net/p/softethervpn/code/ci/master/tree/ - - - Google Code - https://code.google.com/p/softether/source/browse/ - + https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/ To fetch the source code from GitHub: -$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git - -To fetch the source code from SourceForge: -$ git clone http://git.code.sf.net/p/softethervpn/code - - or - -$ git clone git://git.code.sf.net/p/softethervpn/code - -To fetch the source code from Google Code: -$ git clone https://code.google.com/p/softether/ +$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git We hope that you can reach one of the above URLs at least! @@ -218,10 +215,3 @@ SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'THIRD_PARTY.TXT' FILE. -ADVERTISEMENT -------------- - -SoftEther VPN is developed by SoftEther VPN Project at University of Tsukuba. -Department of Computer Science has dozens of overly-enthusiastic geeks. -Join us: http://www.tsukuba.ac.jp/english/admission/ - diff --git a/WARNING.TXT b/WARNING.TXT index ebb373a..01c37e0 100644 --- a/WARNING.TXT +++ b/WARNING.TXT @@ -2,7 +2,7 @@ THE IMPORTANT NOTICES ABOUT SOFTETHER VPN FUNCTIONS OF VPN COMMUNICATIONS EMBEDDED ON THIS SOFTWARE ARE VERY POWERFUL THAN EVER. THIS STRONG VPN ABILITY WILL BRING YOU HUGE BENEFITS. HOWEVER, IF -YOU MISUSE THIS SOFTWARE, IT MIGHT DAMAGES YOURSELF. IN ORDER TO AVOID SUCH +YOU MISUSE THIS SOFTWARE, IT MIGHT DAMAGE YOURSELF. IN ORDER TO AVOID SUCH RISKS, THIS DOCUMENT ACCOUNTS IMPORTANT NOTICES FOR CUSTOMERS WHO ARE WILLING TO USE THIS SOFTWARE. THE FOLLOWING INSTRUCTIONS ARE VERY IMPORTANT. READ AND UNDERSTAND IT CAREFULLY. ADDITIONALLY, IF YOU ARE PLANNING TO USE THE DYNAMIC diff --git a/centos/SOURCES/linux_32bit.mak b/centos/SOURCES/linux_32bit.mak index cfcb41d..684b8ab 100644 --- a/centos/SOURCES/linux_32bit.mak +++ b/centos/SOURCES/linux_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2015 Daiyuu Nobori. +# Copyright (c) SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/centos/SOURCES/linux_64bit.mak b/centos/SOURCES/linux_64bit.mak index 43b7940..f655071 100644 --- a/centos/SOURCES/linux_64bit.mak +++ b/centos/SOURCES/linux_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2015 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2015 Daiyuu Nobori. +# Copyright (c) SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -51,7 +51,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/centos/SPECS/softethervpn.spec b/centos/SPECS/softethervpn.spec index 30ee02a..ba8e1f7 100644 --- a/centos/SPECS/softethervpn.spec +++ b/centos/SPECS/softethervpn.spec @@ -1,16 +1,18 @@ -%define majorversion 4.04 -%define minorversion 9412 -%define dateversion 2014.01.15 +%define majorversion 4 +%define minorversion 19 +%define buildversion 9582 +%define dateversion 2015.10.06 +%define buildrelease beta Name: softethervpn -Version: %{majorversion}.%{minorversion} -Release: 2%{?dist} +Version: %{majorversion}.%{minorversion}.%{buildversion} +Release: 1%{?dist} Summary: An Open-Source Free Cross-platform Multi-protocol VPN Program Group: Applications/Internet License: GPLv2 URL: http://www.softether.org/ -Source0: http://www.softether-download.com/files/softether/v%{majorversion}-%{minorversion}-rtm-%{dateversion}-tree/Source%20Code/softether-src-v%{majorversion}-%{minorversion}-rtm.tar.gz +Source0: http://www.softether-download.com/files/softether/v%{majorversion}.%{minorversion}-%{buildversion}-%{buildrelease}-%{dateversion}-tree/Source_Code/softether-src-v%{majorversion}.%{minorversion}-%{buildversion}-%{buildrelease}.tar.gz BuildRequires: ncurses-devel BuildRequires: openssl-devel @@ -25,7 +27,7 @@ Requires(preun): initscripts SoftEther VPN is one of the world's most powerful and easy-to-use multi-protocol VPN software. It runs on Windows, Linux, Mac, FreeBSD, and Solaris. %prep -%setup -q -n v%{majorversion}-%{minorversion} +%setup -q -n v%{majorversion}.%{minorversion}-%{buildversion} %build %ifarch i386 i686 @@ -85,6 +87,12 @@ if [ $1 -eq 0 ]; then fi %changelog +* Wed Sep 30 2015 Jeff Tang - 4.19.9582-1 +- Update upstream to 4.19.9582-beta + +* Wed Sep 30 2015 Jeff Tang - 4.19.9577-1 +- Update upstream to 4.19.9577 + * Wed Jan 29 2014 Dexter Ang - 4.04.9412-2 - Made initscript more Fedora/RH-like. - initscript currently using killall. Need to fix this. @@ -92,4 +100,3 @@ fi * Tue Jan 21 2014 Dexter Ang - Initial release - diff --git a/configure b/configure index 9dba653..db9e81f 100755 --- a/configure +++ b/configure @@ -16,68 +16,97 @@ echo echo 'Welcome to the corner-cutting configure script !' echo -echo 'Select your operating system below:' -echo ' 1: Linux' -echo ' 2: FreeBSD' -echo ' 3: Solaris' -echo ' 4: Mac OS X' -echo ' 5: OpenBSD' -echo -echo -n 'Which is your operating system (1 - 5) ? : ' -read TMP -echo + OS="" -if test "$TMP" = "1" -then +case "`uname -s`" in +Linux) OS="linux" -fi -if test "$TMP" = "2" -then + ;; +FreeBSD) OS="freebsd" -fi -if test "$TMP" = "3" -then + ;; +SunOS) OS="solaris" -fi -if test "$TMP" = "4" -then + ;; +Darwin) OS="macos" -fi -if test "$TMP" = "5" -then + ;; +OpenBSD) OS="openbsd" -fi + ;; +*) + echo 'Select your operating system below:' + echo ' 1: Linux' + echo ' 2: FreeBSD' + echo ' 3: Solaris' + echo ' 4: Mac OS X' + echo ' 5: OpenBSD' + echo + echo -n 'Which is your operating system (1 - 5) ? : ' + read TMP + echo + if test "$TMP" = "1" + then + OS="linux" + fi + if test "$TMP" = "2" + then + OS="freebsd" + fi + if test "$TMP" = "3" + then + OS="solaris" + fi + if test "$TMP" = "4" + then + OS="macos" + fi + if test "$TMP" = "5" + then + OS="openbsd" + fi -if test "$OS" = "" -then - echo "Wrong number." - exit 1 -fi + if test "$OS" = "" + then + echo "Wrong number." + exit 1 + fi + ;; +esac -echo 'Select your CPU bits below:' -echo ' 1: 32-bit' -echo ' 2: 64-bit' -echo -echo -n 'Which is the type of your CPU (1 - 2) ? : ' -read TMP -echo CPU="" -if test "$TMP" = "1" -then - CPU="32bit" -fi -if test "$TMP" = "2" -then - CPU="64bit" -fi +case "`uname -m`" in +x86_64|amd64|aarch64|arm64|armv8*|mips64|ppc64|sparc64|alpha|ia64) + CPU=64bit + ;; +i?86|x86pc|i86pc|armv4*|armv5*|armv6*|armv7*) + CPU=32bit + ;; +*) + echo 'Select your CPU bits below:' + echo ' 1: 32-bit' + echo ' 2: 64-bit' + echo + echo -n 'Which is the type of your CPU (1 - 2) ? : ' + read TMP + echo + if test "$TMP" = "1" + then + CPU="32bit" + fi + if test "$TMP" = "2" + then + CPU="64bit" + fi -if test "$CPU" = "" -then - echo "Wrong number." - exit 1 -fi + if test "$CPU" = "" + then + echo "Wrong number." + exit 1 + fi + ;; +esac cp src/makefiles/${OS}_${CPU}.mak Makefile echo "The Makefile is generated. Run 'make' to build SoftEther VPN." - diff --git a/debian/rules b/debian/rules index ee5d2b2..bb94508 100755 --- a/debian/rules +++ b/debian/rules @@ -18,7 +18,10 @@ override_dh_auto_install: make install configure_config: - if [ $(shell uname -m) = 'x86_64' ]; then echo "1\n2\n" | ./configure; fi - if [ $(shell uname -m) = 'i686' ]; then echo "1\n1\n" | ./configure; fi - if [ $(shell uname -m) = 'armv6l' ]; then echo "1\n1\n" | ./configure; fi + if [ $(shell uname -m) = 'x86_64' ]; then echo -e "1\n2\n" | ./configure; fi + if [ $(shell uname -m) = 'i686' ]; then echo -e "1\n1\n" | ./configure; fi + if [ $(shell uname -m) = 'armv6l' ]; then echo -e "1\n1\n" | ./configure; fi + if [ $(shell uname -m) = 'armv5tel' ]; then echo -e "1\n1\n" | ./configure; fi + if [ $(shell uname -m) = 'aarch64' ]; then echo -e "1\n2\n" | ./configure; fi + if [ $(shell uname -m) = 'armv7l' ]; then echo -e "1\n1\n" | ./configure; fi diff --git a/debian/softether-vpnserver.init b/debian/softether-vpnserver.init index 3a146ae..8b81557 100644 --- a/debian/softether-vpnserver.init +++ b/debian/softether-vpnserver.init @@ -1,4 +1,18 @@ #! /bin/sh + +### BEGIN INIT INFO +# Provides: softether-vpnserver +# Required-Start: $network $remote_fs $syslog +# Required-Stop: $network $remote_fs $syslog +# Should-Start: network-manager +# Should-Stop: network-manager +# X-Start-Before: $x-display-manager gdm kdm xdm wdm ldm sdm nodm +# X-Interactive: true +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: SoftEther VPN service +### END INIT INFO + # # Author: Dmitry Orlov # From Debian skeleton (Tom deLombarde) diff --git a/src/BuildFiles/Library/Win32_Debug/libeay32.lib b/src/BuildFiles/Library/Win32_Debug/libeay32.lib index 9576fe0..cf20371 100644 Binary files a/src/BuildFiles/Library/Win32_Debug/libeay32.lib and b/src/BuildFiles/Library/Win32_Debug/libeay32.lib differ diff --git a/src/BuildFiles/Library/Win32_Debug/ssleay32.lib b/src/BuildFiles/Library/Win32_Debug/ssleay32.lib index b5df202..7ebbc49 100644 Binary files a/src/BuildFiles/Library/Win32_Debug/ssleay32.lib and b/src/BuildFiles/Library/Win32_Debug/ssleay32.lib differ diff --git a/src/BuildFiles/Library/Win32_Release/libeay32.lib b/src/BuildFiles/Library/Win32_Release/libeay32.lib index 463f9fb..84e322d 100644 Binary files a/src/BuildFiles/Library/Win32_Release/libeay32.lib and b/src/BuildFiles/Library/Win32_Release/libeay32.lib differ diff --git a/src/BuildFiles/Library/Win32_Release/ssleay32.lib b/src/BuildFiles/Library/Win32_Release/ssleay32.lib index 6d17dd1..53b98f4 100644 Binary files a/src/BuildFiles/Library/Win32_Release/ssleay32.lib and b/src/BuildFiles/Library/Win32_Release/ssleay32.lib differ diff --git a/src/BuildFiles/Library/x64_Debug/libeay32.lib b/src/BuildFiles/Library/x64_Debug/libeay32.lib index ad436d4..ccc2f69 100644 Binary files a/src/BuildFiles/Library/x64_Debug/libeay32.lib and b/src/BuildFiles/Library/x64_Debug/libeay32.lib differ diff --git a/src/BuildFiles/Library/x64_Debug/ssleay32.lib b/src/BuildFiles/Library/x64_Debug/ssleay32.lib index 7e5ee82..1327f4e 100644 Binary files a/src/BuildFiles/Library/x64_Debug/ssleay32.lib and b/src/BuildFiles/Library/x64_Debug/ssleay32.lib differ diff --git a/src/BuildFiles/Library/x64_Release/libeay32.lib b/src/BuildFiles/Library/x64_Release/libeay32.lib index 34a37f1..a3c712b 100644 Binary files a/src/BuildFiles/Library/x64_Release/libeay32.lib and b/src/BuildFiles/Library/x64_Release/libeay32.lib differ diff --git a/src/BuildFiles/Library/x64_Release/ssleay32.lib b/src/BuildFiles/Library/x64_Release/ssleay32.lib index a2800d9..5451fbe 100644 Binary files a/src/BuildFiles/Library/x64_Release/ssleay32.lib and b/src/BuildFiles/Library/x64_Release/ssleay32.lib differ diff --git a/src/BuildUtil/BuildUtilCommands.cs b/src/BuildUtil/BuildUtilCommands.cs index 578f7f0..66f6c1e 100644 --- a/src/BuildUtil/BuildUtilCommands.cs +++ b/src/BuildUtil/BuildUtilCommands.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1346,7 +1346,3 @@ namespace BuildUtil } } - -// 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/BuildUtil/BuildUtilMain.cs b/src/BuildUtil/BuildUtilMain.cs index 6a72fa7..a4284f0 100644 --- a/src/BuildUtil/BuildUtilMain.cs +++ b/src/BuildUtil/BuildUtilMain.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -217,7 +217,3 @@ namespace BuildUtil } - -// 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/BuildUtil/CodeSign.cs b/src/BuildUtil/CodeSign.cs index 76a8c7b..f304c5e 100644 --- a/src/BuildUtil/CodeSign.cs +++ b/src/BuildUtil/CodeSign.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -299,7 +299,3 @@ namespace BuildUtil } } - -// 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/BuildUtil/CoreUtil/Bmp.cs b/src/BuildUtil/CoreUtil/Bmp.cs index c188c0e..4afcd2e 100644 --- a/src/BuildUtil/CoreUtil/Bmp.cs +++ b/src/BuildUtil/CoreUtil/Bmp.cs @@ -212,7 +212,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Buf.cs b/src/BuildUtil/CoreUtil/Buf.cs index a14da44..8aa4e4f 100644 --- a/src/BuildUtil/CoreUtil/Buf.cs +++ b/src/BuildUtil/CoreUtil/Buf.cs @@ -697,7 +697,3 @@ namespace CoreUtil } } - -// 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/BuildUtil/CoreUtil/Cache.cs b/src/BuildUtil/CoreUtil/Cache.cs index 85d653a..d8a5c37 100644 --- a/src/BuildUtil/CoreUtil/Cache.cs +++ b/src/BuildUtil/CoreUtil/Cache.cs @@ -344,7 +344,3 @@ namespace CoreUtil } } - -// 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/BuildUtil/CoreUtil/Compress.cs b/src/BuildUtil/CoreUtil/Compress.cs index f3bdf87..8ba48f3 100644 --- a/src/BuildUtil/CoreUtil/Compress.cs +++ b/src/BuildUtil/CoreUtil/Compress.cs @@ -206,7 +206,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Console.cs b/src/BuildUtil/CoreUtil/Console.cs index 2997266..07204d1 100644 --- a/src/BuildUtil/CoreUtil/Console.cs +++ b/src/BuildUtil/CoreUtil/Console.cs @@ -2204,7 +2204,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Csv.cs b/src/BuildUtil/CoreUtil/Csv.cs index a67fc8c..8147cd4 100644 --- a/src/BuildUtil/CoreUtil/Csv.cs +++ b/src/BuildUtil/CoreUtil/Csv.cs @@ -521,7 +521,3 @@ namespace CoreUtil } } - -// 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/BuildUtil/CoreUtil/Env.cs b/src/BuildUtil/CoreUtil/Env.cs index a75611d..38be470 100644 --- a/src/BuildUtil/CoreUtil/Env.cs +++ b/src/BuildUtil/CoreUtil/Env.cs @@ -596,7 +596,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/FileIO.cs b/src/BuildUtil/CoreUtil/FileIO.cs index d5d47a6..52787a5 100644 --- a/src/BuildUtil/CoreUtil/FileIO.cs +++ b/src/BuildUtil/CoreUtil/FileIO.cs @@ -1726,7 +1726,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/GZip.cs b/src/BuildUtil/CoreUtil/GZip.cs index f775a75..e3eecd4 100644 --- a/src/BuildUtil/CoreUtil/GZip.cs +++ b/src/BuildUtil/CoreUtil/GZip.cs @@ -257,7 +257,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Kernel.cs b/src/BuildUtil/CoreUtil/Kernel.cs index a52c501..19dbaf8 100644 --- a/src/BuildUtil/CoreUtil/Kernel.cs +++ b/src/BuildUtil/CoreUtil/Kernel.cs @@ -194,7 +194,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/MultiLang.cs b/src/BuildUtil/CoreUtil/MultiLang.cs index b45abc4..e938e5f 100644 --- a/src/BuildUtil/CoreUtil/MultiLang.cs +++ b/src/BuildUtil/CoreUtil/MultiLang.cs @@ -963,7 +963,3 @@ public class MultiLanguageFilterStream : Stream } } - -// 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/BuildUtil/CoreUtil/Packer.cs b/src/BuildUtil/CoreUtil/Packer.cs index 4ea38ea..7818df1 100644 --- a/src/BuildUtil/CoreUtil/Packer.cs +++ b/src/BuildUtil/CoreUtil/Packer.cs @@ -226,7 +226,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/RC4.cs b/src/BuildUtil/CoreUtil/RC4.cs index 824f9be..c14b18c 100644 --- a/src/BuildUtil/CoreUtil/RC4.cs +++ b/src/BuildUtil/CoreUtil/RC4.cs @@ -249,7 +249,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/ReadIni.cs b/src/BuildUtil/CoreUtil/ReadIni.cs index f8d27ca..b50a224 100644 --- a/src/BuildUtil/CoreUtil/ReadIni.cs +++ b/src/BuildUtil/CoreUtil/ReadIni.cs @@ -330,7 +330,3 @@ namespace CoreUtil } } - -// 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/BuildUtil/CoreUtil/Reg.cs b/src/BuildUtil/CoreUtil/Reg.cs index a98ca71..85df9fb 100644 --- a/src/BuildUtil/CoreUtil/Reg.cs +++ b/src/BuildUtil/CoreUtil/Reg.cs @@ -561,7 +561,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Secure.cs b/src/BuildUtil/CoreUtil/Secure.cs index 087d9c0..457ce1f 100644 --- a/src/BuildUtil/CoreUtil/Secure.cs +++ b/src/BuildUtil/CoreUtil/Secure.cs @@ -1053,7 +1053,3 @@ namespace CoreUtil } - -// 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/BuildUtil/CoreUtil/Stb.cs b/src/BuildUtil/CoreUtil/Stb.cs index 32ccc06..3c4c88a 100644 --- a/src/BuildUtil/CoreUtil/Stb.cs +++ b/src/BuildUtil/CoreUtil/Stb.cs @@ -376,7 +376,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Str.cs b/src/BuildUtil/CoreUtil/Str.cs index 3f5d56e..8d1f16b 100644 --- a/src/BuildUtil/CoreUtil/Str.cs +++ b/src/BuildUtil/CoreUtil/Str.cs @@ -4401,7 +4401,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Tar.cs b/src/BuildUtil/CoreUtil/Tar.cs index 3b64fa4..0c4dd87 100644 --- a/src/BuildUtil/CoreUtil/Tar.cs +++ b/src/BuildUtil/CoreUtil/Tar.cs @@ -454,7 +454,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Thread.cs b/src/BuildUtil/CoreUtil/Thread.cs index e8dd1a1..19c1ffb 100644 --- a/src/BuildUtil/CoreUtil/Thread.cs +++ b/src/BuildUtil/CoreUtil/Thread.cs @@ -566,7 +566,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Time.cs b/src/BuildUtil/CoreUtil/Time.cs index 7aa28cd..d1d5b0a 100644 --- a/src/BuildUtil/CoreUtil/Time.cs +++ b/src/BuildUtil/CoreUtil/Time.cs @@ -198,7 +198,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Util.cs b/src/BuildUtil/CoreUtil/Util.cs index a1c2c64..19c094f 100644 --- a/src/BuildUtil/CoreUtil/Util.cs +++ b/src/BuildUtil/CoreUtil/Util.cs @@ -1058,7 +1058,3 @@ namespace CoreUtil public string XsdFileName; } } - -// 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/BuildUtil/CoreUtil/Win32.cs b/src/BuildUtil/CoreUtil/Win32.cs index 32afefc..f8727a4 100644 --- a/src/BuildUtil/CoreUtil/Win32.cs +++ b/src/BuildUtil/CoreUtil/Win32.cs @@ -327,7 +327,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/CoreUtil/Zip.cs b/src/BuildUtil/CoreUtil/Zip.cs index 71e1e61..4c60584 100644 --- a/src/BuildUtil/CoreUtil/Zip.cs +++ b/src/BuildUtil/CoreUtil/Zip.cs @@ -506,7 +506,3 @@ namespace CoreUtil } } } - -// 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/BuildUtil/PEUtil.cs b/src/BuildUtil/PEUtil.cs index 3d0f202..5789b76 100644 --- a/src/BuildUtil/PEUtil.cs +++ b/src/BuildUtil/PEUtil.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -255,7 +255,3 @@ namespace BuildUtil } } } - -// 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/BuildUtil/Properties/Resources.Designer.cs b/src/BuildUtil/Properties/Resources.Designer.cs index 06e2fc3..13dc1f9 100644 --- a/src/BuildUtil/Properties/Resources.Designer.cs +++ b/src/BuildUtil/Properties/Resources.Designer.cs @@ -1073,7 +1073,3 @@ namespace BuildUtil.Properties { } } } - -// 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/BuildUtil/Properties/Settings.Designer.cs b/src/BuildUtil/Properties/Settings.Designer.cs index eb98cd2..e17f472 100644 --- a/src/BuildUtil/Properties/Settings.Designer.cs +++ b/src/BuildUtil/Properties/Settings.Designer.cs @@ -139,7 +139,3 @@ namespace BuildUtil.Properties { } } } - -// 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/BuildUtil/Test.cs b/src/BuildUtil/Test.cs index a5a9b7c..2c6dde6 100644 --- a/src/BuildUtil/Test.cs +++ b/src/BuildUtil/Test.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -143,7 +143,3 @@ namespace BuildUtil } } } - -// 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/BuildUtil/UnixBuildSoftwares.cs b/src/BuildUtil/UnixBuildSoftwares.cs index 6a7edd1..c4d5dde 100644 --- a/src/BuildUtil/UnixBuildSoftwares.cs +++ b/src/BuildUtil/UnixBuildSoftwares.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -690,7 +690,30 @@ namespace BuildUtil #else sr.WriteLine("\t@echo \"And please execute './vpncmd' to run the SoftEther VPN Command-Line Utility to configure {0}.\"", BuildHelper.GetSoftwareTitle(this.Software)); #endif + sr.WriteLine("\t@echo"); +#if !BU_SOFTETHER sr.WriteLine("\t@echo \"Of course, you can use the VPN Server Manager GUI Application for Windows on the other Windows PC in order to configure the {0} remotely.\"", BuildHelper.GetSoftwareTitle(this.Software)); +#else + sr.WriteLine("\t@echo \"Of course, you can use the VPN Server Manager GUI Application for Windows / Mac OS X on the other Windows / Mac OS X computers in order to configure the {0} remotely.\"", BuildHelper.GetSoftwareTitle(this.Software)); +#endif + +#if !BU_SOFTETHER +#else + sr.WriteLine("\t@echo"); + sr.WriteLine("\t@echo"); + sr.WriteLine("\t@echo \"*** For Windows users ***\""); + sr.WriteLine("\t@echo \"You can download the SoftEther VPN Server Manager for Windows\""); + sr.WriteLine("\t@echo \"from the http://www.softether-download.com/ web site.\""); + sr.WriteLine("\t@echo \"This manager application helps you to completely and easily manage the VPN server services running in remote hosts.\""); + sr.WriteLine("\t@echo"); + sr.WriteLine("\t@echo"); + sr.WriteLine("\t@echo \"*** For Mac OS X users ***\""); + sr.WriteLine("\t@echo \"In April 2016 we released the SoftEther VPN Server Manager for Mac OS X.\""); + sr.WriteLine("\t@echo \"You can download it from the http://www.softether-download.com/ web site.\""); + sr.WriteLine("\t@echo \"VPN Server Manager for Mac OS X works perfectly as same as the traditional Windows versions. It helps you to completely and easily manage the VPN server services running in remote hosts.\""); + sr.WriteLine("\t@echo"); +#endif + sr.WriteLine("\t@echo \"--------------------------------------------------------------------\""); sr.WriteLine("\t@echo"); @@ -1059,7 +1082,3 @@ namespace BuildUtil } } - -// 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/BuildUtil/VpnBuilder.cs b/src/BuildUtil/VpnBuilder.cs index b9817bf..482d1d8 100644 --- a/src/BuildUtil/VpnBuilder.cs +++ b/src/BuildUtil/VpnBuilder.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -689,7 +689,3 @@ namespace BuildUtil } - -// 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/BuildUtil/VpnBuilderConfig.cs b/src/BuildUtil/VpnBuilderConfig.cs index 18d0e98..a83d56f 100644 --- a/src/BuildUtil/VpnBuilderConfig.cs +++ b/src/BuildUtil/VpnBuilderConfig.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -430,7 +430,7 @@ namespace BuildUtil { // Windows public static readonly OS Windows = new OS("windows", "Windows", - "Windows 98 / 98 SE / ME / NT 4.0 SP6a / 2000 SP4 / XP SP2, SP3 / Vista SP1, SP2 / 7 SP1 / 8 / 8.1 / 10 / Server 2003 SP2 / Server 2008 SP1, SP2 / Hyper-V Server 2008 / Server 2008 R2 SP1 / Hyper-V Server 2008 R2 / Server 2012 / Hyper-V Server 2012 / Server 2012 R2 / Hyper-V Server 2012 R2", + "Windows 98 / 98 SE / ME / NT 4.0 SP6a / 2000 SP4 / XP SP2, SP3 / Vista SP1, SP2 / 7 SP1 / 8 / 8.1 / 10 / Server 2003 SP2 / Server 2008 SP1, SP2 / Hyper-V Server 2008 / Server 2008 R2 SP1 / Hyper-V Server 2008 R2 / Server 2012 / Hyper-V Server 2012 / Server 2012 R2 / Hyper-V Server 2012 R2 / Server 2016", new Cpu[] { CpuList.intel, @@ -438,7 +438,7 @@ namespace BuildUtil // Linux public static readonly OS Linux = new OS("linux", "Linux", - "Linux Kernel 2.4 / 2.6 / 3.x", + "Linux Kernel 2.4 / 2.6 / 3.x / 4.x", new Cpu[] { CpuList.x86, @@ -564,7 +564,3 @@ namespace BuildUtil } } - -// 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/BuildUtil/VpnBuilderConfigTypes.cs b/src/BuildUtil/VpnBuilderConfigTypes.cs index ecaa90e..68b8eeb 100644 --- a/src/BuildUtil/VpnBuilderConfigTypes.cs +++ b/src/BuildUtil/VpnBuilderConfigTypes.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -327,7 +327,3 @@ namespace BuildUtil } } } - -// 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/BuildUtil/Web References/HvSignService/Reference.cs b/src/BuildUtil/Web References/HvSignService/Reference.cs index 2d5056c..3392197 100644 --- a/src/BuildUtil/Web References/HvSignService/Reference.cs +++ b/src/BuildUtil/Web References/HvSignService/Reference.cs @@ -374,7 +374,4 @@ namespace BuildUtil.HvSignService { } } -#pragma warning restore 1591 -// 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/ +#pragma warning restore 1591 \ No newline at end of file diff --git a/src/BuildUtil/Web References/SignService/Reference.cs b/src/BuildUtil/Web References/SignService/Reference.cs index 24e3918..fe838f4 100644 --- a/src/BuildUtil/Web References/SignService/Reference.cs +++ b/src/BuildUtil/Web References/SignService/Reference.cs @@ -305,7 +305,4 @@ namespace BuildUtil.SignService { } } -#pragma warning restore 1591 -// 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/ +#pragma warning restore 1591 \ No newline at end of file diff --git a/src/BuildUtil/Win32BuildSoftware.cs b/src/BuildUtil/Win32BuildSoftware.cs index 7e8446b..f781c0c 100644 --- a/src/BuildUtil/Win32BuildSoftware.cs +++ b/src/BuildUtil/Win32BuildSoftware.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -184,7 +184,3 @@ namespace BuildUtil } } - -// 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/BuildUtil/Win32BuildUtil.cs b/src/BuildUtil/Win32BuildUtil.cs index 508d1b1..bbfdefd 100644 --- a/src/BuildUtil/Win32BuildUtil.cs +++ b/src/BuildUtil/Win32BuildUtil.cs @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Build Utility // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1448,7 +1448,3 @@ namespace BuildUtil } } } - -// 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/Cedar/Account.c b/src/Cedar/Account.c index 5c59baf..1127d4b 100644 --- a/src/Cedar/Account.c +++ b/src/Cedar/Account.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1448,7 +1448,3 @@ int CompareUserName(void *p1, void *p2) return StrCmpi(u1->Name, u2->Name); } - -// 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/Cedar/Account.h b/src/Cedar/Account.h index 84fa5f1..ad15460 100644 --- a/src/Cedar/Account.h +++ b/src/Cedar/Account.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -317,7 +317,3 @@ char *NormalizePolicyName(char *name); #endif // ACCOUNT_H - -// 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/Cedar/Admin.c b/src/Cedar/Admin.c index 5e2ea80..fcba505 100644 --- a/src/Cedar/Admin.c +++ b/src/Cedar/Admin.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Contributors: // - ELIN (https://github.com/el1n) // Comments: Tetsuo Sugiyama, Ph.D. @@ -1166,7 +1166,7 @@ UINT StMakeOpenVpnConfigFile(ADMIN *a, RPC_READ_LOG_FILE *t) name = NewName(cn, cn, cn, L"US", NULL, NULL); - dummy_x = NewRootX(dummy_public_k, dummy_private_k, name, MAX(GetDaysUntil2038(), SERVER_DEFAULT_CERT_DAYS), NULL); + dummy_x = NewRootX(dummy_public_k, dummy_private_k, name, GetDaysUntil2038Ex(), NULL); FreeName(name); @@ -6739,7 +6739,7 @@ UINT StAddCa(ADMIN *a, RPC_HUB_ADD_CA *t) if (t->Cert == NULL) { - ERR_INVALID_PARAMETER; + return ERR_INVALID_PARAMETER; } if (t->Cert->is_compatible_bit == false) @@ -11840,12 +11840,12 @@ void InRpcHubEnumCa(RPC_HUB_ENUM_CA *t, PACK *p) void OutRpcHubEnumCa(PACK *p, RPC_HUB_ENUM_CA *t) { UINT i; - PackAddStr(p, "HubName", t->HubName); // Validate arguments if (t == NULL || p == NULL) { return; } + PackAddStr(p, "HubName", t->HubName); for (i = 0;i < t->NumCa;i++) { @@ -12313,12 +12313,12 @@ void InRpcEnumAccessList(RPC_ENUM_ACCESS_LIST *a, PACK *p) void OutRpcEnumAccessList(PACK *p, RPC_ENUM_ACCESS_LIST *a) { UINT i; - PackAddStr(p, "HubName", a->HubName); // Validate arguments if (a == NULL || p == NULL) { return; } + PackAddStr(p, "HubName", a->HubName); for (i = 0;i < a->NumAccess;i++) { @@ -12573,12 +12573,12 @@ void InRpcEnumUser(RPC_ENUM_USER *t, PACK *p) void OutRpcEnumUser(PACK *p, RPC_ENUM_USER *t) { UINT i; - PackAddStr(p, "HubName", t->HubName); // Validate arguments if (t == NULL || p == NULL) { return; } + PackAddStr(p, "HubName", t->HubName); for (i = 0;i < t->NumUser;i++) { @@ -12787,12 +12787,12 @@ void InRpcEnumSession(RPC_ENUM_SESSION *t, PACK *p) void OutRpcEnumSession(PACK *p, RPC_ENUM_SESSION *t) { UINT i; - PackAddStr(p, "HubName", t->HubName); // Validate arguments if (t == NULL || p == NULL) { return; } + PackAddStr(p, "HubName", t->HubName); for (i = 0;i < t->NumSession;i++) { @@ -13907,7 +13907,3 @@ bool SiIsEmptyPassword(void *hash_password) return false; } - -// 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/Cedar/Admin.h b/src/Cedar/Admin.h index 56bb707..e6aed5d 100644 --- a/src/Cedar/Admin.h +++ b/src/Cedar/Admin.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1533,7 +1533,3 @@ void OutRpcInternetSetting(PACK *p, INTERNET_SETTING *t); #endif // ADMIN_H - -// 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/Cedar/AzureClient.c b/src/Cedar/AzureClient.c index 0daa4f1..c293893 100644 --- a/src/Cedar/AzureClient.c +++ b/src/Cedar/AzureClient.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -683,7 +683,3 @@ AZURE_CLIENT *NewAzureClient(CEDAR *cedar, SERVER *server) return ac; } - -// 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/Cedar/AzureClient.h b/src/Cedar/AzureClient.h index e68ddff..4cb8d45 100644 --- a/src/Cedar/AzureClient.h +++ b/src/Cedar/AzureClient.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -173,7 +173,3 @@ void AcWaitForRequest(AZURE_CLIENT *ac, SOCK *s, AZURE_PARAM *param); #endif // AZURE_CLIENT_H - -// 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/Cedar/AzureServer.c b/src/Cedar/AzureServer.c index 2f2d7e5..027de70 100644 --- a/src/Cedar/AzureServer.c +++ b/src/Cedar/AzureServer.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -114,7 +114,3 @@ #include "CedarPch.h" - -// 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/Cedar/AzureServer.h b/src/Cedar/AzureServer.h index b0afe5f..89631b1 100644 --- a/src/Cedar/AzureServer.h +++ b/src/Cedar/AzureServer.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -118,7 +118,3 @@ #endif // AZURE_SERVER_H - -// 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/Cedar/Bridge.c b/src/Cedar/Bridge.c index cc19bdc..ebc8984 100644 --- a/src/Cedar/Bridge.c +++ b/src/Cedar/Bridge.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -566,7 +566,3 @@ bool IsRawIpBridgeSupported() #endif // UNIX_LINUX } - -// 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/Cedar/Bridge.h b/src/Cedar/Bridge.h index a08b8b7..d84fc04 100644 --- a/src/Cedar/Bridge.h +++ b/src/Cedar/Bridge.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -180,7 +180,3 @@ bool IsRawIpBridgeSupported(); - -// 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/Cedar/BridgeUnix.c b/src/Cedar/BridgeUnix.c index 74d36d9..f0925e1 100644 --- a/src/Cedar/BridgeUnix.c +++ b/src/Cedar/BridgeUnix.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -2808,7 +2808,3 @@ void EthPutPacketLinuxIpRaw(ETH *e, void *data, UINT size) #endif // BRIDGE_C - -// 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/Cedar/BridgeUnix.h b/src/Cedar/BridgeUnix.h index f82fe00..664c274 100644 --- a/src/Cedar/BridgeUnix.h +++ b/src/Cedar/BridgeUnix.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -238,7 +238,3 @@ int UnixEthOpenRawSocket(); #endif // BRIDGEUNIX_H - -// 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/Cedar/BridgeWin32.c b/src/Cedar/BridgeWin32.c index 74dd2ab..7bdd977 100644 --- a/src/Cedar/BridgeWin32.c +++ b/src/Cedar/BridgeWin32.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -2243,7 +2243,3 @@ void GetEthNetworkConnectionName(wchar_t *dst, UINT size, char *device_name) #endif // BRIDGE_C - -// 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/Cedar/BridgeWin32.h b/src/Cedar/BridgeWin32.h index 6c776a2..bccb795 100644 --- a/src/Cedar/BridgeWin32.h +++ b/src/Cedar/BridgeWin32.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -266,7 +266,3 @@ bool Win32GetEnableSeLow(); #endif // BRIDGEWIN32_H - -// 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/Cedar/CM.c b/src/Cedar/CM.c index e238619..cd3d2d6 100644 --- a/src/Cedar/CM.c +++ b/src/Cedar/CM.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Contributors: // - ELIN (https://github.com/el1n) // Comments: Tetsuo Sugiyama, Ph.D. @@ -12526,7 +12526,3 @@ void *CmUpdateJumpList(UINT start_id) #endif // WIN32 - -// 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/Cedar/CM.h b/src/Cedar/CM.h index c48b58e..d764c3a 100644 --- a/src/Cedar/CM.h +++ b/src/Cedar/CM.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -156,7 +156,3 @@ UINT CmGetSecureBitmapId(char *dest_hostname); #endif // CM_H - -// 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/Cedar/CMInner.h b/src/Cedar/CMInner.h index 8fecdce..8ac763f 100644 --- a/src/Cedar/CMInner.h +++ b/src/Cedar/CMInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Contributors: // - ELIN (https://github.com/el1n) // Comments: Tetsuo Sugiyama, Ph.D. @@ -639,7 +639,3 @@ bool CmGetProxyServerNameAndPortFromIeProxyRegStr(char *name, UINT name_size, UI void *CmUpdateJumpList(UINT start_id); - -// 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/Cedar/Cedar.c b/src/Cedar/Cedar.c index 790e801..cf4859c 100644 --- a/src/Cedar/Cedar.c +++ b/src/Cedar/Cedar.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -274,6 +274,15 @@ bool IsSupportedWinVer(RPC_WINVER *v) return true; } } + else + { + // Windows Server 2016 + if (v->ServicePack <= 0) + { + // SP0 only + return true; + } + } } return false; @@ -1750,7 +1759,7 @@ CEDAR *NewCedar(X *server_x, K *server_k) c->TrafficDiffList = NewList(NULL); - SetCedarCipherList(c, "RC4-MD5"); + SetCedarCipherList(c, SERVER_DEFAULT_CIPHER_NAME); c->ClientId = _II("CLIENT_ID"); @@ -1905,7 +1914,3 @@ void FreeCedar() FreeProtocol(); } - -// 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/Cedar/Cedar.h b/src/Cedar/Cedar.h index ae21fc1..083770c 100644 --- a/src/Cedar/Cedar.h +++ b/src/Cedar/Cedar.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -135,10 +135,10 @@ // Version number -#define CEDAR_VER 420 +#define CEDAR_VER 425 // Build Number -#define CEDAR_BUILD 9608 +#define CEDAR_BUILD 9656 // Beta number //#define BETA_NUMBER 3 @@ -153,16 +153,16 @@ // Specify the location to build #ifndef BUILD_PLACE -#define BUILD_PLACE "pc30" +#define BUILD_PLACE "pc33" #endif // BUILD_PLACE // Specifies the build date -#define BUILD_DATE_Y 2016 -#define BUILD_DATE_M 4 -#define BUILD_DATE_D 17 -#define BUILD_DATE_HO 20 -#define BUILD_DATE_MI 58 -#define BUILD_DATE_SE 26 +#define BUILD_DATE_Y 2018 +#define BUILD_DATE_M 1 +#define BUILD_DATE_D 15 +#define BUILD_DATE_HO 9 +#define BUILD_DATE_MI 33 +#define BUILD_DATE_SE 22 // Tolerable time difference #define ALLOW_TIMESTAMP_DIFF (UINT64)(3 * 24 * 60 * 60 * 1000) @@ -670,7 +670,7 @@ #define ARP_ENTRY_EXPIRES (30 * 1000) // ARP table expiration date #define ARP_ENTRY_POLLING_TIME (1 * 1000) // ARP table cleaning timer -#define ARP_REQUEST_TIMEOUT (200) // ARP request time-out period +#define ARP_REQUEST_TIMEOUT (1000) // ARP request time-out period #define ARP_REQUEST_GIVEUP (5 * 1000) // Time to give up sending the ARP request #define IP_WAIT_FOR_ARP_TIMEOUT (5 * 1000) // Total time that an IP packet waiting for ARP table #define IP_COMBINE_TIMEOUT (10 * 1000) // Time-out of IP packet combining @@ -1052,7 +1052,7 @@ typedef struct CEDAR UINT QueueBudget; // Queue budget LOCK *FifoBudgetLock; // Fifo budget lock UINT FifoBudget; // Fifo budget - bool AcceptOnlyTls; // Accept only TLS (Disable SSL) + SSL_ACCEPT_SETTINGS SslAcceptSettings; // SSL Accept Settings char OpenVPNDefaultClientOption[MAX_SIZE]; // OpenVPN Default Client Option String } CEDAR; @@ -1265,7 +1265,3 @@ bool CedarIsThereAnyEapEnabledRadiusConfig(CEDAR *c); #endif // CEDAR_H - -// 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/Cedar/Cedar.vcproj b/src/Cedar/Cedar.vcproj index c84d737..6a306a9 100644 --- a/src/Cedar/Cedar.vcproj +++ b/src/Cedar/Cedar.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir);WinPcap" - PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -188,7 +188,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir);WinPcap" - PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/Cedar/CedarPch.c b/src/Cedar/CedarPch.c index 7c6085c..48c5583 100644 --- a/src/Cedar/CedarPch.c +++ b/src/Cedar/CedarPch.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -113,7 +113,3 @@ #include "CedarPch.h" - -// 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/Cedar/CedarPch.h b/src/Cedar/CedarPch.h index a26e2a9..ff66c0d 100644 --- a/src/Cedar/CedarPch.h +++ b/src/Cedar/CedarPch.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -124,7 +124,3 @@ #include #include - -// 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/Cedar/CedarType.h b/src/Cedar/CedarType.h index e27c564..612dc88 100644 --- a/src/Cedar/CedarType.h +++ b/src/Cedar/CedarType.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -538,6 +538,8 @@ typedef struct CTC CTC; typedef struct CTR CTR; typedef struct TTC TTC; typedef struct TTS TTS; +typedef struct TTS_WORKER TTS_WORKER; +typedef struct TTC_WORKER TTC_WORKER; typedef struct TT_RESULT TT_RESULT; typedef struct TTS_SOCK TTS_SOCK; typedef struct TTC_SOCK TTC_SOCK; @@ -763,7 +765,3 @@ typedef struct SU_ADAPTER_LIST SU_ADAPTER_LIST; #endif // CEDARTYPE_H - -// 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/Cedar/Client.c b/src/Cedar/Client.c index d4dd39b..3af48a4 100644 --- a/src/Cedar/Client.c +++ b/src/Cedar/Client.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Contributors: // - nattoheaven (https://github.com/nattoheaven) // Comments: Tetsuo Sugiyama, Ph.D. @@ -2181,13 +2181,14 @@ BUF *CiAccountToCfg(RPC_CLIENT_CREATE_ACCOUNT *t) // RPC dispatch routine PACK *CiRpcDispatch(RPC *rpc, char *name, PACK *p) { - CLIENT *c = rpc->Param; PACK *ret; + CLIENT *c; // Validate arguments if (rpc == NULL || name == NULL || p == NULL) { return NULL; } + c = rpc->Param; ret = NewPack(); @@ -6029,12 +6030,13 @@ L_TRY: ReleaseSock(s); ret = ZeroMalloc(sizeof(REMOTE_CLIENT)); - ret->Rpc = rpc; rpc->Param = ret; if (ret != NULL) { RPC_CLIENT_VERSION t; + + ret->Rpc = rpc; Zero(&t, sizeof(t)); CcGetClientVersion(ret, &t); ret->OsType = t.OsType; @@ -6487,7 +6489,7 @@ bool Win32CiSecureSign(SECURE_SIGN *sign) // Success ret = true; sign->ClientCert = batch[0].OutputX; - Copy(sign->Signature, batch[1].OutputSign, 128); + Copy(sign->Signature, batch[1].OutputSign, MIN(sizeof(sign->Signature),sizeof(batch[1].OutputSign))); } } @@ -6661,7 +6663,7 @@ bool CtConnect(CLIENT *c, RPC_CLIENT_CONNECT *connect) CiSetError(c, ERR_ACCOUNT_ACTIVE); } else if (r->ClientAuth->AuthType == CLIENT_AUTHTYPE_SECURE && - client->UseSecureDeviceId == 0) + c->UseSecureDeviceId == 0) { // Secure device is not specified CiSetError(c, ERR_NO_SECURE_DEVICE_SPECIFIED); @@ -11110,7 +11112,3 @@ void CiClientStatusPrinter(SESSION *s, wchar_t *status) } - -// 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/Cedar/Client.h b/src/Cedar/Client.h index dc45078..a423ebd 100644 --- a/src/Cedar/Client.h +++ b/src/Cedar/Client.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -878,7 +878,3 @@ void CiInitDriverVerStruct(MS_DRIVER_VER *ver); #endif // CLIENT_H - -// 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/Cedar/Command.c b/src/Cedar/Command.c index 241bef3..31bf8a2 100644 --- a/src/Cedar/Command.c +++ b/src/Cedar/Command.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1166,6 +1166,7 @@ void TtGenerateRandomData(UCHAR **buf, UINT *size) void TtsWorkerThread(THREAD *thread, void *param) { TTS *tts; + TTS_WORKER *w; UINT buf_size; UCHAR *send_buf_data, *recv_buf_data; bool all_sockets_blocked = false; @@ -1185,14 +1186,15 @@ void TtsWorkerThread(THREAD *thread, void *param) TtGenerateRandomData(&send_buf_data, &buf_size); TtGenerateRandomData(&recv_buf_data, &buf_size); - tts = (TTS *)param; + w = (TTS_WORKER *)param; + tts = (TTS *)w->Tts; // Preparation of socket events - tts->SockEvent = NewSockEvent(); - AddRef(tts->SockEvent->ref); + w->SockEvent = NewSockEvent(); + AddRef(w->SockEvent->ref); // Preparing the Server socket list - tts->TtsSockList = NewList(NULL); + w->TtsSockList = NewList(NULL); // Notify completion of preparation to parent thread NoticeThreadInit(thread); @@ -1206,12 +1208,12 @@ void TtsWorkerThread(THREAD *thread, void *param) // Wait for all sockets if (dont_block_next_time == false) { - WaitSockEvent(tts->SockEvent, 50); + WaitSockEvent(w->SockEvent, 50); } dont_block_next_time = false; // Process for sockets that are currently registered - LockList(tts->TtsSockList); + LockList(w->TtsSockList); { UINT i; @@ -1223,17 +1225,17 @@ void TtsWorkerThread(THREAD *thread, void *param) { all_sockets_blocked = true; - for (i = 0;i < LIST_NUM(tts->TtsSockList);i++) + for (i = 0;i < LIST_NUM(w->TtsSockList);i++) { UINT ret = SOCK_LATER; UCHAR *send_data = NULL, *recv_data = NULL; UINT send_size = 0, recv_size = 0; - TTS_SOCK *ts = LIST_DATA(tts->TtsSockList, i); + TTS_SOCK *ts = LIST_DATA(w->TtsSockList, i); bool blocked_for_this_socket = false; if (ts->SockJoined == false) { - JoinSockToSockEvent(ts->Sock, tts->SockEvent); + JoinSockToSockEvent(ts->Sock, w->SockEvent); ts->SockJoined = true; } @@ -1245,6 +1247,7 @@ void TtsWorkerThread(THREAD *thread, void *param) if (ret != 0 && ret != SOCK_LATER) { ts->State = 5; + ts->LastCommTime = now; } break; @@ -1255,6 +1258,8 @@ void TtsWorkerThread(THREAD *thread, void *param) { UCHAR c; + ts->LastCommTime = now; + // Direction of the data is in the first byte that is received c = recv_buf_data[0]; @@ -1276,6 +1281,8 @@ void TtsWorkerThread(THREAD *thread, void *param) // Span ts->Span = READ_UINT64(recv_buf_data + sizeof(UINT64) + 1); + + ts->GiveupSpan = ts->Span * 3ULL + 180000ULL; } } break; @@ -1289,6 +1296,8 @@ void TtsWorkerThread(THREAD *thread, void *param) // Checking the first byte of received UCHAR c = recv_buf_data[0]; + ts->LastCommTime = now; + if (ts->FirstRecvTick == 0) { // Record the time at which the data has been received for the first @@ -1326,11 +1335,42 @@ void TtsWorkerThread(THREAD *thread, void *param) if (ts->NoMoreSendData == false) { ret = Send(ts->Sock, send_buf_data, buf_size, false); + + if (ret != 0 && ret != SOCK_LATER) + { + ts->LastCommTime = now; + } } else { ret = Recv(ts->Sock, recv_buf_data, buf_size, false); + + if (ret != 0 && ret != SOCK_LATER) + { + ts->LastCommTime = now; + } } + + if (ts->FirstSendTick == 0) + { + ts->FirstSendTick = now; + } + else + { + if (ts->FirstSendTick <= now) + { + if (ts->Span != 0) + { + UINT64 giveup_tick = ts->FirstSendTick + ts->Span * 3ULL + 180000ULL; + + if (now > giveup_tick) + { + ret = 0; + } + } + } + } + break; case 3: @@ -1343,6 +1383,11 @@ void TtsWorkerThread(THREAD *thread, void *param) { ret = Send(ts->Sock, &tmp64, sizeof(tmp64), false); + if (ret != 0 && ret != SOCK_LATER) + { + ts->LastCommTime = now; + } + if (ret != SOCK_LATER) { UINT j; @@ -1353,9 +1398,9 @@ void TtsWorkerThread(THREAD *thread, void *param) { // Not to send more data to the socket of the // transmission direction in the same session ID - for (j = 0;j < LIST_NUM(tts->TtsSockList);j++) + for (j = 0;j < LIST_NUM(w->TtsSockList);j++) { - TTS_SOCK *ts2 = LIST_DATA(tts->TtsSockList, j); + TTS_SOCK *ts2 = LIST_DATA(w->TtsSockList, j); if (ts2->SessionId == ts->SessionId && ts2 != ts) @@ -1369,6 +1414,12 @@ void TtsWorkerThread(THREAD *thread, void *param) break; } + if (now > (ts->LastCommTime + ts->GiveupSpan)) + { + // Timeout: disconnect orphan sessions + ret = 0; + } + if (ret == 0) { // Mark as deleting the socket because it is disconnected @@ -1408,7 +1459,7 @@ void TtsWorkerThread(THREAD *thread, void *param) Disconnect(ts->Sock); ReleaseSock(ts->Sock); - Delete(tts->TtsSockList, ts); + Delete(w->TtsSockList, ts); Free(ts); } @@ -1416,23 +1467,23 @@ void TtsWorkerThread(THREAD *thread, void *param) DeleteAll(o); } - if (tts->NewSocketArrived || tts->Halt) + if (w->NewSocketArrived || tts->Halt) { - tts->NewSocketArrived = false; + w->NewSocketArrived = false; all_sockets_blocked = true; dont_block_next_time = true; } } } - UnlockList(tts->TtsSockList); + UnlockList(w->TtsSockList); } - LockList(tts->TtsSockList); + LockList(w->TtsSockList); { // Release the sockets of all remaining - for (i = 0;i < LIST_NUM(tts->TtsSockList);i++) + for (i = 0;i < LIST_NUM(w->TtsSockList);i++) { - TTS_SOCK *ts = LIST_DATA(tts->TtsSockList, i); + TTS_SOCK *ts = LIST_DATA(w->TtsSockList, i); UniFormat(tmp, sizeof(tmp), _UU("TTS_DISCONNECT"), ts->Id, ts->Sock->RemoteHostname); TtPrint(tts->Param, tts->Print, tmp); @@ -1443,12 +1494,12 @@ void TtsWorkerThread(THREAD *thread, void *param) Free(ts); } } - UnlockList(tts->TtsSockList); + UnlockList(w->TtsSockList); // Cleanup ReleaseList(o); - ReleaseList(tts->TtsSockList); - ReleaseSockEvent(tts->SockEvent); + ReleaseList(w->TtsSockList); + ReleaseSockEvent(w->SockEvent); Free(send_buf_data); Free(recv_buf_data); } @@ -1470,6 +1521,7 @@ void TtsIPv6AcceptThread(THREAD *thread, void *param) void TtsAcceptProc(TTS *tts, SOCK *listen_socket) { wchar_t tmp[MAX_SIZE]; + UINT seed = 0; // Validate arguments if (tts == NULL || listen_socket == NULL) { @@ -1492,26 +1544,42 @@ void TtsAcceptProc(TTS *tts, SOCK *listen_socket) } else { + UINT num, i; + TTS_WORKER *w; + // Connected from the client - AcceptInit(s); - tts->NewSocketArrived = true; - LockList(tts->TtsSockList); + AcceptInitEx(s, true); + + // Choose a worker thread + num = LIST_NUM(tts->WorkerList); + + i = seed % num; + + seed++; + + w = LIST_DATA(tts->WorkerList, i); + + w->NewSocketArrived = true; + LockList(w->TtsSockList); { TTS_SOCK *ts = ZeroMalloc(sizeof(TTS_SOCK)); ts->Id = (++tts->IdSeed); ts->Sock = s; + ts->GiveupSpan = (UINT64)(10 * 60 * 1000); + ts->LastCommTime = Tick64(); + UniFormat(tmp, sizeof(tmp), _UU("TTS_ACCEPTED"), ts->Id, s->RemoteHostname, s->RemotePort); TtPrint(tts->Param, tts->Print, tmp); - Insert(tts->TtsSockList, ts); - tts->NewSocketArrived = true; + Insert(w->TtsSockList, ts); + w->NewSocketArrived = true; } - UnlockList(tts->TtsSockList); + UnlockList(w->TtsSockList); - SetSockEvent(tts->SockEvent); + SetSockEvent(w->SockEvent); } } } @@ -1546,6 +1614,8 @@ void TtsListenThread(THREAD *thread, void *param) } else { + UINT i, num_worker_threads; + UniFormat(tmp, sizeof(tmp), _UU("TTS_LISTEN_STARTED"), tts->Port); TtPrint(tts->Param, tts->Print, tmp); @@ -1569,9 +1639,19 @@ void TtsListenThread(THREAD *thread, void *param) AddRef(tts->ListenSocketV6->ref); } - // Start the worker thread - tts->WorkThread = NewThread(TtsWorkerThread, tts); - WaitThreadInit(tts->WorkThread); + num_worker_threads = GetNumberOfCpu(); + + // Start the worker threads + for (i = 0;i < num_worker_threads;i++) + { + TTS_WORKER *w = ZeroMalloc(sizeof(TTS_WORKER)); + + w->Tts = tts; + w->WorkThread = NewThread(TtsWorkerThread, w); + WaitThreadInit(w->WorkThread); + + Add(tts->WorkerList, w); + } // Notify completion of preparation to parent thread NoticeThreadInit(thread); @@ -1595,12 +1675,20 @@ void TtsListenThread(THREAD *thread, void *param) ReleaseSock(tts->ListenSocket); ReleaseSock(tts->ListenSocketV6); - SetSockEvent(tts->SockEvent); - // Wait for stopping the worker thread - WaitThread(tts->WorkThread, INFINITE); - ReleaseThread(tts->WorkThread); - ReleaseSockEvent(tts->SockEvent); + for (i = 0;i < LIST_NUM(tts->WorkerList);i++) + { + TTS_WORKER *w = LIST_DATA(tts->WorkerList, i); + + SetSockEvent(w->SockEvent); + + // Wait for stopping the worker thread + WaitThread(w->WorkThread, INFINITE); + ReleaseThread(w->WorkThread); + ReleaseSockEvent(w->SockEvent); + + Free(w); + } } } @@ -1685,7 +1773,6 @@ void StopTtc(TTC *ttc) TtPrint(ttc->Param, ttc->Print, _UU("TTC_STOPPING")); ttc->Halt = true; - SetSockEvent(ttc->SockEvent); } // Generate a result @@ -1748,6 +1835,301 @@ void TtcGenerateResult(TTC *ttc) res->BpsTotal = res->BpsUpload + res->BpsDownload; } +// Client worker thread +void TtcWorkerThread(THREAD *thread, void *param) +{ + TTC_WORKER *w; + TTC *ttc; + bool dont_block_next_time = false; + bool halting = false; + UINT64 halt_timeout = 0; + bool all_sockets_blocked; + wchar_t tmp[MAX_SIZE]; + UCHAR *send_buf_data, *recv_buf_data; + UINT buf_size; + UINT64 tmp64; + + if (thread == NULL || param == NULL) + { + return; + } + + w = (TTC_WORKER *)param; + ttc = w->Ttc; + + // Allocate the data area + TtGenerateRandomData(&send_buf_data, &buf_size); + TtGenerateRandomData(&recv_buf_data, &buf_size); + + NoticeThreadInit(thread); + + // Wait for start + Wait(w->StartEvent, INFINITE); + + // Main loop + while (true) + { + UINT i; + + if (dont_block_next_time == false) + { + WaitSockEvent(w->SockEvent, 50); + } + + dont_block_next_time = false; + + if (ttc->AbnormalTerminated) + { + // Abnormal termination occured + break; + } + + if (ttc->Halt || ttc->end_tick <= Tick64() || (ttc->Cancel != NULL && (*ttc->Cancel))) + { + // End measurement + if (halting == false) + { + if (ttc->Halt || (ttc->Cancel != NULL && (*ttc->Cancel))) + { + if ((ttc->flag1++) == 0) + { + // User cancel + TtPrint(ttc->Param, ttc->Print, _UU("TTC_COMM_USER_CANCEL")); + } + } + else + { + // Time elapsed + if ((ttc->flag2++) == 0) + { + UniFormat(tmp, sizeof(tmp), _UU("TTC_COMM_END"), + (double)ttc->Span / 1000.0); + TtPrint(ttc->Param, ttc->Print, tmp); + } + } + + if (ttc->RealSpan == 0) + { + ttc->RealSpan = Tick64() - ttc->start_tick; + } + + halting = true; + + // Wait for reporting data from the server + halt_timeout = Tick64() + 60000ULL; + } + } + + if (halt_timeout != 0) + { + bool ok = true; + + // Wait that all TCP connections to finish processing + for (i = 0;i < LIST_NUM(w->SockList);i++) + { + TTC_SOCK *ts = LIST_DATA(w->SockList, i); + + if (ts->Download == false) + { + if (ts->ServerUploadReportReceived == false) + { + ok = false; + } + } + } + + if (ok) + { + // Measurement completed + w->Ok = true; + break; + } + else + { + if (halt_timeout <= Tick64()) + { + // An error occured + ttc->AbnormalTerminated = true; + ttc->ErrorCode = ERR_PROTOCOL_ERROR; + break; + } + } + } + + all_sockets_blocked = false; + + // Continue to send and receive data + // until all sockets become block state + while (all_sockets_blocked == false) + { + all_sockets_blocked = true; + + for (i = 0;i < LIST_NUM(w->SockList);i++) + { + UINT ret = SOCK_LATER; + TTC_SOCK *ts = LIST_DATA(w->SockList, i); + bool blocked_for_this_socket = false; + UCHAR c = 0; + UCHAR c_and_session_id[1 + sizeof(UINT64) + sizeof(UINT64)]; + + if (halt_timeout != 0) + { + if (ts->State != 3 && ts->State != 4) + { + if (ts->Download == false) + { + if (ts->State != 0) + { + ts->State = 3; + } + else + { + ts->ServerUploadReportReceived = true; + ts->State = 4; + } + } + else + { + ts->State = 4; + } + } + } + + switch (ts->State) + { + case 0: + // Initial state: Specify the direction of + // the data flow between client-server + if (ts->Download) + { + c = 1; + } + else + { + c = 0; + } + + c_and_session_id[0] = c; + WRITE_UINT64(c_and_session_id + 1, ttc->session_id); + WRITE_UINT64(c_and_session_id + sizeof(UINT64) + 1, ttc->Span); + + ret = Send(ts->Sock, c_and_session_id, 1 + sizeof(UINT64) + sizeof(UINT64), false); + + if (ret != 0 && ret != SOCK_LATER) + { + if (ts->Download) + { + ts->State = 1; + } + else + { + ts->State = 2; + } + } + break; + + case 1: + // Server -> Client (download) + ret = Recv(ts->Sock, recv_buf_data, buf_size, false); + break; + + case 2: + // Client -> Server (upload) + ret = Send(ts->Sock, send_buf_data, buf_size, false); + break; + + case 3: + // Transmission completion client -> server (upload) + // Request the data size + if (ts->NextSendRequestReportTick == 0 || + (Tick64() >= ts->NextSendRequestReportTick)) + { + UCHAR suprise[MAX_SIZE]; + UINT i; + + ts->NextSendRequestReportTick = Tick64() + 200ULL; + + for (i = 0;i < sizeof(suprise);i++) + { + suprise[i] = '!'; + } + + ret = Send(ts->Sock, suprise, sizeof(suprise), false); + } + + ret = Recv(ts->Sock, &tmp64, sizeof(tmp64), false); + if (ret != 0 && ret != SOCK_LATER && ret == sizeof(tmp64)) + { + ts->NumBytes = Endian64(tmp64); + + ts->ServerUploadReportReceived = true; + + ts->State = 4; + } + break; + + case 4: + // Do Nothing + if (Recv(ts->Sock, recv_buf_data, buf_size, false) == SOCK_LATER) + { + ret = SOCK_LATER; + } + break; + } + + if (ret == 0) + { + // The socket is disconnected + ttc->AbnormalTerminated = true; + ttc->ErrorCode = ERR_PROTOCOL_ERROR; + blocked_for_this_socket = true; + dont_block_next_time = false; + + if (ts->HideErrMsg == false) + { + UniFormat(tmp, sizeof(tmp), _UU("TTC_COMM_DISCONNECTED"), ts->Id); + TtPrint(ttc->Param, ttc->Print, tmp); + ts->HideErrMsg = true; + } + } + else if (ret == SOCK_LATER) + { + // Delay has occurred + blocked_for_this_socket = true; + dont_block_next_time = false; + } + else + { + if (ts->Download) + { + ts->NumBytes += (UINT64)ret; + } + } + + if (blocked_for_this_socket == false) + { + all_sockets_blocked = false; + } + } + + if (ttc->Halt || (ttc->Cancel != NULL && (*ttc->Cancel))) + { + all_sockets_blocked = true; + dont_block_next_time = true; + } + + if (ttc->end_tick <= Tick64()) + { + all_sockets_blocked = true; + dont_block_next_time = true; + } + } + } + + Free(send_buf_data); + Free(recv_buf_data); +} + // Client thread void TtcThread(THREAD *thread, void *param) { @@ -1755,23 +2137,15 @@ void TtcThread(THREAD *thread, void *param) UINT i; wchar_t tmp[MAX_SIZE]; bool ok = false; - UINT buf_size; - UCHAR *send_buf_data, *recv_buf_data; + IP ip_ret; // Validate arguments if (thread == NULL || param == NULL) { return; } - // Allocate the data area - TtGenerateRandomData(&send_buf_data, &buf_size); - TtGenerateRandomData(&recv_buf_data, &buf_size); - ttc = (TTC *)param; - ttc->SockEvent = NewSockEvent(); - AddRef(ttc->SockEvent->ref); - // Ready NoticeThreadInit(thread); @@ -1786,10 +2160,13 @@ void TtcThread(THREAD *thread, void *param) ok = true; + Zero(&ip_ret, sizeof(ip_ret)); + for (i = 0;i < ttc->NumTcp;i++) { SOCK *s; TTC_SOCK *ts = ZeroMalloc(sizeof(TTC_SOCK)); + char target_host[MAX_SIZE]; ts->Id = i + 1; @@ -1806,7 +2183,14 @@ void TtcThread(THREAD *thread, void *param) ts->Download = ((i % 2) == 0) ? true : false; } - s = ConnectEx2(ttc->Host, ttc->Port, 0, ttc->Cancel); + StrCpy(target_host, sizeof(target_host), ttc->Host); + + if (IsZeroIp(&ip_ret) == false) + { + IPToStr(target_host, sizeof(target_host), &ip_ret); + } + + s = ConnectEx4(target_host, ttc->Port, 0, ttc->Cancel, NULL, NULL, false, false, true, &ip_ret); if (s == NULL) { @@ -1841,8 +2225,6 @@ void TtcThread(THREAD *thread, void *param) ts->Sock = s; SetTimeout(s, TIMEOUT_INFINITE); - - JoinSockToSockEvent(s, ttc->SockEvent); } Insert(ttc->ItcSockList, ts); @@ -1858,278 +2240,109 @@ void TtcThread(THREAD *thread, void *param) if (ok) { - bool all_sockets_blocked; - bool dont_block_next_time = false; - bool halt_flag = false; UINT64 start_tick, end_tick; UINT64 halt_timeout = 0; wchar_t tmp1[MAX_SIZE], tmp2[MAX_SIZE]; UINT check_clock_seed = 0; bool halting = false; - UINT64 tmp64; UINT64 session_id = Rand64(); + UINT i, num_cpu; + bool all_ok = false; + + ttc->session_id = session_id; + + num_cpu = GetNumberOfCpu(); + + ttc->WorkerThreadList = NewList(NULL); + + for (i = 0;i < num_cpu;i++) + { + TTC_WORKER *w = ZeroMalloc(sizeof(TTC_WORKER)); + + w->Ttc = ttc; + w->SockList = NewList(NULL); + w->StartEvent = NewEvent(); + w->SockEvent = NewSockEvent(); + + w->WorkerThread = NewThread(TtcWorkerThread, w); + + WaitThreadInit(w->WorkerThread); + + Add(ttc->WorkerThreadList, w); + } + + // Assign each of sockets to each of worker threads + for (i = 0;i < LIST_NUM(ttc->ItcSockList);i++) + { + TTC_SOCK *ts = LIST_DATA(ttc->ItcSockList, i); + UINT num = LIST_NUM(ttc->WorkerThreadList); + UINT j = i % num; + TTC_WORKER *w = LIST_DATA(ttc->WorkerThreadList, j); + + Add(w->SockList, ts); + + JoinSockToSockEvent(ts->Sock, w->SockEvent); + } // Record the current time start_tick = Tick64(); end_tick = start_tick + ttc->Span; + ttc->start_tick = start_tick; + ttc->end_tick = end_tick; + + // Set the start event for all worker threads + for (i = 0;i < LIST_NUM(ttc->WorkerThreadList);i++) + { + TTC_WORKER *w = LIST_DATA(ttc->WorkerThreadList, i); + + Set(w->StartEvent); + } + // Show start message GetDateTimeStrEx64(tmp1, sizeof(tmp1), SystemToLocal64(TickToTime(start_tick)), NULL); GetDateTimeStrEx64(tmp2, sizeof(tmp2), SystemToLocal64(TickToTime(end_tick)), NULL); UniFormat(tmp, sizeof(tmp), _UU("TTC_COMM_START"), tmp1, tmp2); TtPrint(ttc->Param, ttc->Print, tmp); - // Main loop - while (true) + // Wait for all worker threads finish + all_ok = true; + for (i = 0;i < LIST_NUM(ttc->WorkerThreadList);i++) { - UINT i; + TTC_WORKER *w = LIST_DATA(ttc->WorkerThreadList, i); - if (dont_block_next_time == false) + WaitThread(w->WorkerThread, INFINITE); + + if (w->Ok == false) { - WaitSockEvent(ttc->SockEvent, 50); - } - - dont_block_next_time = false; - - if (ttc->AbnormalTerminated) - { - // Abnormal termination occured - break; - } - - if (ttc->Halt || end_tick <= Tick64() || (ttc->Cancel != NULL && (*ttc->Cancel))) - { - // End measurement - if (halting == false) - { - if (ttc->Halt || (ttc->Cancel != NULL && (*ttc->Cancel))) - { - // User cancel - TtPrint(ttc->Param, ttc->Print, _UU("TTC_COMM_USER_CANCEL")); - } - else - { - // Time elapsed - UniFormat(tmp, sizeof(tmp), _UU("TTC_COMM_END"), - (double)ttc->Span / 1000.0); - TtPrint(ttc->Param, ttc->Print, tmp); - } - - ttc->RealSpan = Tick64() - start_tick; - - halting = true; - - // Wait for reporting data from the server - halt_timeout = Tick64() + 60000ULL; - } - } - - if (halt_timeout != 0) - { - bool ok = true; - - // Wait that all TCP connections to finish processing - for (i = 0;i < LIST_NUM(ttc->ItcSockList);i++) - { - TTC_SOCK *ts = LIST_DATA(ttc->ItcSockList, i); - - if (ts->Download == false) - { - if (ts->ServerUploadReportReceived == false) - { - ok = false; - } - } - } - - if (ok) - { - // Measurement completed - // Show the result - TtcGenerateResult(ttc); - break; - } - else - { - if (halt_timeout <= Tick64()) - { - // An error occured - ttc->AbnormalTerminated = true; - ttc->ErrorCode = ERR_PROTOCOL_ERROR; - break; - } - } - } - - all_sockets_blocked = false; - - // Continue to send and receive data - // until all sockets become block state - while (all_sockets_blocked == false) - { - all_sockets_blocked = true; - - for (i = 0;i < LIST_NUM(ttc->ItcSockList);i++) - { - UINT ret = SOCK_LATER; - TTC_SOCK *ts = LIST_DATA(ttc->ItcSockList, i); - bool blocked_for_this_socket = false; - UCHAR c = 0; - UCHAR c_and_session_id[1 + sizeof(UINT64) + sizeof(UINT64)]; - - if (halt_timeout != 0) - { - if (ts->State != 3 && ts->State != 4) - { - if (ts->Download == false) - { - if (ts->State != 0) - { - ts->State = 3; - } - else - { - ts->ServerUploadReportReceived = true; - ts->State = 4; - } - } - else - { - ts->State = 4; - } - } - } - - switch (ts->State) - { - case 0: - // Initial state: Specify the direction of - // the data flow between client-server - if (ts->Download) - { - c = 1; - } - else - { - c = 0; - } - - c_and_session_id[0] = c; - WRITE_UINT64(c_and_session_id + 1, session_id); - WRITE_UINT64(c_and_session_id + sizeof(UINT64) + 1, ttc->Span); - - ret = Send(ts->Sock, c_and_session_id, 1 + sizeof(UINT64) + sizeof(UINT64), false); - - if (ret != 0 && ret != SOCK_LATER) - { - if (ts->Download) - { - ts->State = 1; - } - else - { - ts->State = 2; - } - } - break; - - case 1: - // Server -> Client (download) - ret = Recv(ts->Sock, recv_buf_data, buf_size, false); - break; - - case 2: - // Client -> Server (upload) - ret = Send(ts->Sock, send_buf_data, buf_size, false); - break; - - case 3: - // Transmission completion client -> server (upload) - // Request the data size - if (ts->NextSendRequestReportTick == 0 || - (Tick64() >= ts->NextSendRequestReportTick)) - { - UCHAR suprise[MAX_SIZE]; - UINT i; - - ts->NextSendRequestReportTick = Tick64() + 200ULL; - - for (i = 0;i < sizeof(suprise);i++) - { - suprise[i] = '!'; - } - - ret = Send(ts->Sock, suprise, sizeof(suprise), false); - } - - ret = Recv(ts->Sock, &tmp64, sizeof(tmp64), false); - if (ret != 0 && ret != SOCK_LATER && ret == sizeof(tmp64)) - { - ts->NumBytes = Endian64(tmp64); - - ts->ServerUploadReportReceived = true; - - ts->State = 4; - } - break; - - case 4: - // Do Nothing - if (Recv(ts->Sock, recv_buf_data, buf_size, false) == SOCK_LATER) - { - ret = SOCK_LATER; - } - break; - } - - if (ret == 0) - { - // The socket is disconnected - ttc->AbnormalTerminated = true; - ttc->ErrorCode = ERR_PROTOCOL_ERROR; - blocked_for_this_socket = true; - dont_block_next_time = false; - - if (ts->HideErrMsg == false) - { - UniFormat(tmp, sizeof(tmp), _UU("TTC_COMM_DISCONNECTED"), ts->Id); - TtPrint(ttc->Param, ttc->Print, tmp); - ts->HideErrMsg = true; - } - } - else if (ret == SOCK_LATER) - { - // Delay has occurred - blocked_for_this_socket = true; - dont_block_next_time = false; - } - else - { - if (ts->Download) - { - ts->NumBytes += (UINT64)ret; - } - } - - if (blocked_for_this_socket == false) - { - all_sockets_blocked = false; - } - } - - if (ttc->Halt || (ttc->Cancel != NULL && (*ttc->Cancel))) - { - all_sockets_blocked = true; - dont_block_next_time = true; - } - - if (end_tick <= Tick64()) - { - all_sockets_blocked = true; - dont_block_next_time = true; - } + all_ok = false; } } + + if (all_ok) + { + // Measurement completed + // Show the result + TtcGenerateResult(ttc); + } + + // Release worker threads + for (i = 0;i < LIST_NUM(ttc->WorkerThreadList);i++) + { + TTC_WORKER *w = LIST_DATA(ttc->WorkerThreadList, i); + + ReleaseThread(w->WorkerThread); + + ReleaseEvent(w->StartEvent); + ReleaseList(w->SockList); + + ReleaseSockEvent(w->SockEvent); + + Free(w); + } + + ReleaseList(ttc->WorkerThreadList); + ttc->WorkerThreadList = NULL; } else { @@ -2148,10 +2361,7 @@ void TtcThread(THREAD *thread, void *param) Free(ts); } - ReleaseSockEvent(ttc->SockEvent); ReleaseList(ttc->ItcSockList); - Free(send_buf_data); - Free(recv_buf_data); } // Start the communication throughput measurement client @@ -2217,7 +2427,6 @@ UINT FreeTtc(TTC *ttc, TT_RESULT *result) } } - ReleaseSockEvent(ttc->SockEvent); ReleaseEvent(ttc->InitedEvent); Free(ttc); @@ -2238,6 +2447,8 @@ TTS *NewTts(UINT port, void *param, TT_PRINT_PROC *print_proc) TtPrint(param, print_proc, _UU("TTS_INIT")); + tts->WorkerList = NewList(NULL); + // Creating a thread t = NewThread(TtsListenThread, tts); WaitThreadInit(t); @@ -2274,6 +2485,8 @@ UINT FreeTts(TTS *tts) ret = tts->ErrorCode; + ReleaseList(tts->WorkerList); + Free(tts); return ret; @@ -2293,16 +2506,20 @@ void PtTrafficPrintProc(void *param, wchar_t *str) if (c->ConsoleType == CONSOLE_LOCAL) { - wchar_t tmp[MAX_SIZE]; - - // Display only if the local console - // (Can not be displayed because threads aren't synchronized otherwise?) - UniStrCpy(tmp, sizeof(tmp), str); - if (UniEndWith(str, L"\n") == false) + Lock(c->OutputLock); { - UniStrCat(tmp, sizeof(tmp), L"\n"); + wchar_t tmp[MAX_SIZE]; + + // Display only if the local console + // (Can not be displayed because threads aren't synchronized otherwise?) + UniStrCpy(tmp, sizeof(tmp), str); + if (UniEndWith(str, L"\n") == false) + { + UniStrCat(tmp, sizeof(tmp), L"\n"); + } + UniPrint(L"%s", tmp); } - UniPrint(L"%s", tmp); + Unlock(c->OutputLock); } } @@ -8047,7 +8264,7 @@ UINT PsServerCipherGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param) RPC_STR t; TOKEN_LIST *ciphers; UINT i; - wchar_t tmp[MAX_SIZE]; + wchar_t tmp[4096]; o = ParseCommandList(c, cmd_name, str, NULL, 0); if (o == NULL) @@ -10008,6 +10225,10 @@ UINT PsLogFileGet(CONSOLE *c, char *cmd_name, wchar_t *str, void *param) } filename = GetParamStr(o, "SAVE"); + if (IsEmptyStr(filename)) + { + filename = GetParamStr(o, "SAVEPATH"); + } c->Write(c, _UU("CMD_LogFileGet_START")); @@ -23783,7 +24004,3 @@ LABEL_CLEANUP: #endif // OS_WIN32 - -// 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/Cedar/Command.h b/src/Cedar/Command.h index 61e5586..b86595f 100644 --- a/src/Cedar/Command.h +++ b/src/Cedar/Command.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -181,13 +181,30 @@ struct TTC THREAD *Thread; // Thread volatile bool Halt; // Halting flag bool *Cancel; // Halting flag 2 - SOCK_EVENT *SockEvent; // Socket event LIST *ItcSockList; // Client socket list TT_RESULT Result; // Result UINT ErrorCode; // Error code bool AbnormalTerminated; // Abnormal termination EVENT *StartEvent; // Start event EVENT *InitedEvent; // Initialize completion notification event + LIST *WorkerThreadList; // List of worker threads + + UINT flag1, flag2; + + UINT64 session_id; + UINT64 end_tick; + UINT64 start_tick; +}; + +// Traffic test worker thread +struct TTC_WORKER +{ + THREAD *WorkerThread; + TTC *Ttc; + LIST *SockList; // Client socket list + SOCK_EVENT *SockEvent; // Socket event + EVENT *StartEvent; // Start event + bool Ok; // The result }; // Server side socket @@ -202,7 +219,10 @@ struct TTS_SOCK UINT64 SessionId; // Session ID bool NoMoreSendData; // Flag not to send more data UINT64 FirstRecvTick; // Time which the data has been received last + UINT64 FirstSendTick; // Time which the data has been sent last UINT64 Span; // Period + UINT64 GiveupSpan; + UINT64 LastCommTime; }; // Traffic test server @@ -213,15 +233,22 @@ struct TTS volatile bool Halt; // Halting flag UINT Port; // Port number THREAD *Thread; // Thread - THREAD *WorkThread; // Worker thread THREAD *IPv6AcceptThread; // IPv6 Accept thread SOCK *ListenSocket; // Socket to wait SOCK *ListenSocketV6; // Socket to wait (IPv6) UINT ErrorCode; // Error code + UINT IdSeed; // ID value + LIST *WorkerList; // Worker threads list +}; + +// Traffic test worker thread +struct TTS_WORKER +{ + TTS *Tts; // TTS + THREAD *WorkThread; // Worker thread SOCK_EVENT *SockEvent; // Socket event LIST *TtsSockList; // Server socket list bool NewSocketArrived; // New socket has arrived - UINT IdSeed; // ID value }; // VPN Tools context @@ -673,7 +700,3 @@ UINT PsVpnAzureGetStatus(CONSOLE *c, char *cmd_name, wchar_t *str, void *param); #endif // COMMAND_H - -// 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/Cedar/Connection.c b/src/Cedar/Connection.c index ada6ecc..eb6dfa3 100644 --- a/src/Cedar/Connection.c +++ b/src/Cedar/Connection.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1030,7 +1030,7 @@ void ConnectionSend(CONNECTION *c, UINT64 now) UINT size; SESSION *s; HUB *hub = NULL; - bool use_qos; + bool use_qos = false; // Validate arguments if (c == NULL) { @@ -1038,11 +1038,11 @@ void ConnectionSend(CONNECTION *c, UINT64 now) } s = c->Session; - use_qos = s->QoS; if (s != NULL) { hub = s->Hub; + use_qos = s->QoS; } // Protocol @@ -3137,10 +3137,7 @@ void ConnectionAccept(CONNECTION *c) // Start the SSL communication Debug("StartSSL()\n"); - if (c->Cedar->AcceptOnlyTls) - { - s->AcceptOnlyTls = true; - } + Copy(&s->SslAcceptSettings, &c->Cedar->SslAcceptSettings, sizeof(SSL_ACCEPT_SETTINGS)); if (StartSSL(s, x, k) == false) { // Failed @@ -3672,6 +3669,3 @@ CONNECTION *NewClientConnectionEx(SESSION *s, char *client_str, UINT client_ver, return c; } -// 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/Cedar/Connection.h b/src/Cedar/Connection.h index 6861bbb..441d02f 100644 --- a/src/Cedar/Connection.h +++ b/src/Cedar/Connection.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -144,7 +144,7 @@ struct SECURE_SIGN char SecurePrivateKeyName[MAX_SECURE_DEVICE_FILE_LEN + 1]; // Secure device secret key name X *ClientCert; // Client certificate UCHAR Random[SHA1_SIZE]; // Random value for signature - UCHAR Signature[128]; // Signed data + UCHAR Signature[4096 / 8]; // Signed data UINT UseSecureDeviceId; UINT BitmapId; // Bitmap ID }; @@ -372,7 +372,3 @@ UINT GetMachineRand(); #endif // CONNECTION_H - -// 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/Cedar/Console.c b/src/Cedar/Console.c index 55b33fe..aeebb35 100644 --- a/src/Cedar/Console.c +++ b/src/Cedar/Console.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -2237,6 +2237,7 @@ CONSOLE *NewLocalConsole(wchar_t *infile, wchar_t *outfile) c->ReadPassword = ConsoleLocalReadPassword; c->Write = ConsoleLocalWrite; c->GetWidth = ConsoleLocalGetWidth; + c->OutputLock = NewLock(); if (UniIsEmptyStr(infile) == false) { @@ -2348,6 +2349,8 @@ void ConsoleLocalFree(CONSOLE *c) Free(p); } + DeleteLock(c->OutputLock); + // Memory release Free(c); } @@ -2558,7 +2561,3 @@ void ConsoleWriteOutFile(CONSOLE *c, wchar_t *str, bool add_last_crlf) } - -// 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/Cedar/Console.h b/src/Cedar/Console.h index ca195ee..0cc75ff 100644 --- a/src/Cedar/Console.h +++ b/src/Cedar/Console.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -161,6 +161,7 @@ struct CONSOLE bool (*Write)(CONSOLE *c, wchar_t *str); // Function to write a string UINT (*GetWidth)(CONSOLE *c); // Get the width of the screen bool ProgrammingMode; // Programming Mode + LOCK *OutputLock; // Output Lock }; // Local console parameters @@ -247,7 +248,3 @@ UINT ConsoleLocalGetWidth(CONSOLE *c); - -// 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/Cedar/DDNS.c b/src/Cedar/DDNS.c index b6281ee..fddfe17 100644 --- a/src/Cedar/DDNS.c +++ b/src/Cedar/DDNS.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -670,9 +670,12 @@ UINT DCRegister(DDNS_CLIENT *c, bool ipv6, DDNS_REGISTER_PARAM *p, char *replace 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); + ret = WpcCallEx2(url3, &t, DDNS_CONNECT_TIMEOUT, DDNS_COMM_TIMEOUT, "register", req, + NULL, NULL, ((cert_hash != NULL && ((cert_hash->Size % SHA1_SIZE) == 0)) ? cert_hash->Buf : NULL), + (cert_hash != NULL ? cert_hash->Size / SHA1_SIZE : 0), + NULL, DDNS_RPC_MAX_RECV_SIZE, + add_header_name, add_header_value, + DDNS_SNI_VER_STRING); Debug("WpcCall Ret: %u\n", ret); } @@ -874,8 +877,11 @@ UINT DCGetMyIpMain(DDNS_CLIENT *c, bool ipv6, char *dst, UINT dst_size, bool use } - 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)); + StrCpy(data.SniString, sizeof(data.SniString), DDNS_SNI_VER_STRING); + + recv = HttpRequestEx3(&data, (ipv6 ? NULL : &c->InternetSetting), DDNS_CONNECT_TIMEOUT, DDNS_COMM_TIMEOUT, &ret, false, NULL, NULL, + NULL, ((cert_hash != NULL && (cert_hash->Size % SHA1_SIZE) == 0) ? cert_hash->Buf : NULL), + (cert_hash != NULL ? cert_hash->Size / SHA1_SIZE : 0), NULL, 0, NULL, NULL); FreeBuf(cert_hash); @@ -1040,7 +1046,3 @@ void DCGenNewKey(UCHAR *key) } - -// 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/Cedar/DDNS.h b/src/Cedar/DDNS.h index fe0d905..cb71885 100644 --- a/src/Cedar/DDNS.h +++ b/src/Cedar/DDNS.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -115,7 +115,14 @@ #define DDNS_H // Certificate hash -#define DDNS_CERT_HASH "EFAC5FA0CDD14E0F864EED58A73C35D7E33B62F3" +#define DDNS_CERT_HASH "78BF0499A99396907C9F49DD13571C81FE26E6F5" \ + "439BAFA75A6EE5671FC9F9A02D34FF29881761A0" \ + "EFAC5FA0CDD14E0F864EED58A73C35D7E33B62F3" \ + "74DF99D4B1B5F0488A388B50D347D26013DC67A5" \ + "6EBB39AFCA8C900635CFC11218CF293A612457E4" + +#define DDNS_SNI_VER_STRING "DDNS" + // Destination URL #define DDNS_URL_V4_GLOBAL "https://x%c.x%c.servers.ddns.softether-network.net/ddns/ddns.aspx" @@ -241,7 +248,3 @@ void DCGetInternetSetting(DDNS_CLIENT *c, INTERNET_SETTING *t); #endif // DDNS_H - -// 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/Cedar/Database.c b/src/Cedar/Database.c index df1e793..b6d0fed 100644 --- a/src/Cedar/Database.c +++ b/src/Cedar/Database.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -263,7 +263,3 @@ bool LiIsLicenseKey(char *str) return true; } - -// 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/Cedar/Database.h b/src/Cedar/Database.h index 2b621fb..4c149db 100644 --- a/src/Cedar/Database.h +++ b/src/Cedar/Database.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -122,7 +122,3 @@ bool LiStrToKeyBit(UCHAR *keybit, char *keystr); #endif // DATABASE_H - -// 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/Cedar/EM.c b/src/Cedar/EM.c index 5bdf634..ebc88c2 100644 --- a/src/Cedar/EM.c +++ b/src/Cedar/EM.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1500,7 +1500,3 @@ RETRY: } #endif // WIN32 - -// 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/Cedar/EM.h b/src/Cedar/EM.h index 9154a52..2e163be 100644 --- a/src/Cedar/EM.h +++ b/src/Cedar/EM.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -120,7 +120,3 @@ void EMExec(); #endif // EM_H - -// 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/Cedar/EMInner.h b/src/Cedar/EMInner.h index 43e87c2..3458ca8 100644 --- a/src/Cedar/EMInner.h +++ b/src/Cedar/EMInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -147,6 +147,3 @@ void EmLicenseAddDlgUpdate(HWND hWnd, RPC *s); void EmLicenseAddDlgShiftTextItem(HWND hWnd, UINT id1, UINT id2, UINT *next_focus); void EmLicenseAddDlgGetText(HWND hWnd, char *str, UINT size); void EmLicenseAddDlgOnOk(HWND hWnd, RPC *s); -// 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/Cedar/EtherLog.c b/src/Cedar/EtherLog.c index e6eed58..1b4aba8 100644 --- a/src/Cedar/EtherLog.c +++ b/src/Cedar/EtherLog.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1380,7 +1380,3 @@ void ElFree() el_lock = NULL; } - -// 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/Cedar/EtherLog.h b/src/Cedar/EtherLog.h index d6611ea..59191ea 100644 --- a/src/Cedar/EtherLog.h +++ b/src/Cedar/EtherLog.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -279,7 +279,3 @@ void OutRpcElLicenseStatus(PACK *p, RPC_EL_LICENSE_STATUS *t); #endif // ETHERLOG_H - -// 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/Cedar/Hub.c b/src/Cedar/Hub.c index 1f827a9..54d1d18 100644 --- a/src/Cedar/Hub.c +++ b/src/Cedar/Hub.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -214,7 +214,7 @@ EAP_CLIENT *HubNewEapClient(CEDAR *cedar, char *hubname, char *client_ip_str, ch if (GetIP(&ip, radius_servers_list->Token[i])) { eap = NewEapClient(&ip, radius_port, radius_secret, radius_retry_interval, - RADIUS_INITIAL_EAP_TIMEOUT, client_ip_str, username); + RADIUS_INITIAL_EAP_TIMEOUT, client_ip_str, username, hubname); if (eap != NULL) { @@ -700,6 +700,8 @@ void DataToHubOptionStruct(HUB_OPTION *o, RPC_ADMIN_OPTION *ao) GetHubAdminOptionDataAndSet(ao, "SecureNAT_RandomizeAssignIp", &o->SecureNAT_RandomizeAssignIp); GetHubAdminOptionDataAndSet(ao, "DetectDormantSessionInterval", &o->DetectDormantSessionInterval); GetHubAdminOptionDataAndSet(ao, "NoPhysicalIPOnPacketLog", &o->NoPhysicalIPOnPacketLog); + GetHubAdminOptionDataAndSet(ao, "UseHubNameAsDhcpUserClassOption", &o->UseHubNameAsDhcpUserClassOption); + GetHubAdminOptionDataAndSet(ao, "UseHubNameAsRadiusNasId", &o->UseHubNameAsRadiusNasId); } // Convert the contents of the HUB_OPTION to data @@ -771,6 +773,8 @@ void HubOptionStructToData(RPC_ADMIN_OPTION *ao, HUB_OPTION *o, char *hub_name) Add(aol, NewAdminOption("SecureNAT_RandomizeAssignIp", o->SecureNAT_RandomizeAssignIp)); Add(aol, NewAdminOption("DetectDormantSessionInterval", o->DetectDormantSessionInterval)); Add(aol, NewAdminOption("NoPhysicalIPOnPacketLog", o->NoPhysicalIPOnPacketLog)); + Add(aol, NewAdminOption("UseHubNameAsDhcpUserClassOption", o->UseHubNameAsDhcpUserClassOption)); + Add(aol, NewAdminOption("UseHubNameAsRadiusNasId", o->UseHubNameAsRadiusNasId)); Zero(ao, sizeof(RPC_ADMIN_OPTION)); @@ -1223,12 +1227,6 @@ bool IsValidCertInHub(HUB *h, X *x) return false; } - if (IsXRevoked(x)) - { - // Disabled by the CRL stored in the file - return false; - } - LockList(h->HubDb->CrlList); { ret = IsCertMatchCrlList(x, h->HubDb->CrlList); @@ -7436,7 +7434,3 @@ HUBDB *NewHubDb() } - -// 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/Cedar/Hub.h b/src/Cedar/Hub.h index 56656b3..5833df8 100644 --- a/src/Cedar/Hub.h +++ b/src/Cedar/Hub.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -281,6 +281,8 @@ struct HUB_OPTION bool SecureNAT_RandomizeAssignIp; // Randomize the assignment IP address for new DHCP client UINT DetectDormantSessionInterval; // Interval (seconds) threshold to detect a dormant VPN session bool NoPhysicalIPOnPacketLog; // Disable saving physical IP address on the packet log + bool UseHubNameAsDhcpUserClassOption; // Add HubName to DHCP request as User-Class option + bool UseHubNameAsRadiusNasId; // Add HubName to Radius request as NAS-Identifier attrioption }; // MAC table entry @@ -436,6 +438,7 @@ struct HUB UINT RadiusRetryInterval; // Radius retry interval BUF *RadiusSecret; // Radius shared key char RadiusSuffixFilter[MAX_SIZE]; // Radius suffix filter + char RadiusRealm[MAX_SIZE]; // Radius realm (optional) bool RadiusConvertAllMsChapv2AuthRequestToEap; // Convert all MS-CHAPv2 auth request to EAP bool RadiusUsePeapInsteadOfEap; // Use PEAP instead of EAP volatile bool Halt; // Halting flag @@ -645,7 +648,3 @@ EAP_CLIENT *HubNewEapClient(CEDAR *cedar, char *hubname, char *client_ip_str, ch #endif // HUB_H - -// 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/Cedar/IPsec.c b/src/Cedar/IPsec.c index ce48c43..3d1402d 100644 --- a/src/Cedar/IPsec.c +++ b/src/Cedar/IPsec.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -793,7 +793,3 @@ IPSEC_SERVER *NewIPsecServer(CEDAR *cedar) return s; } - -// 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/Cedar/IPsec.h b/src/Cedar/IPsec.h index ae3bc6c..2a9acfb 100644 --- a/src/Cedar/IPsec.h +++ b/src/Cedar/IPsec.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -203,7 +203,3 @@ void IPSecSetDisable(bool b); #endif // IPSEC_H - -// 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/Cedar/IPsec_EtherIP.c b/src/Cedar/IPsec_EtherIP.c index 82dd6d9..0ef617f 100644 --- a/src/Cedar/IPsec_EtherIP.c +++ b/src/Cedar/IPsec_EtherIP.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -563,7 +563,3 @@ UINT CalcEtherIPTcpMss(ETHERIP_SERVER *s) return ret; } - -// 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/Cedar/IPsec_EtherIP.h b/src/Cedar/IPsec_EtherIP.h index 78bc9f0..f5ffe55 100644 --- a/src/Cedar/IPsec_EtherIP.h +++ b/src/Cedar/IPsec_EtherIP.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -174,7 +174,3 @@ UINT CalcEtherIPTcpMss(ETHERIP_SERVER *s); #endif // IPSEC_ETHERIP_H - -// 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/Cedar/IPsec_IKE.c b/src/Cedar/IPsec_IKE.c index 9cc84a6..f9384d6 100644 --- a/src/Cedar/IPsec_IKE.c +++ b/src/Cedar/IPsec_IKE.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -4725,6 +4725,8 @@ bool GetBestTransformSettingForIPsecSa(IKE_SERVER *ike, IKE_PACKET *pr, IPSEC_SA IKE_PACKET_TRANSFORM_PAYLOAD *transform = &transform_payload->Payload.Transform; IPSEC_SA_TRANSFORM_SETTING set; + Zero(&set, sizeof(set)); + if (TransformPayloadToTransformSettingForIPsecSa(ike, transform, &set, server_ip)) { Copy(setting, &set, sizeof(IPSEC_SA_TRANSFORM_SETTING)); @@ -5985,7 +5987,3 @@ IKE_SERVER *NewIKEServer(CEDAR *cedar, IPSEC_SERVER *ipsec) - -// 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/Cedar/IPsec_IKE.h b/src/Cedar/IPsec_IKE.h index 4186d84..076f54e 100644 --- a/src/Cedar/IPsec_IKE.h +++ b/src/Cedar/IPsec_IKE.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -474,7 +474,3 @@ IKE_SA *SearchIkeSaByCookie(IKE_SERVER *ike, UINT64 init_cookie, UINT64 resp_coo #endif // IPSEC_IKE_H - -// 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/Cedar/IPsec_IPC.c b/src/Cedar/IPsec_IPC.c index 6d5759b..ae9b345 100644 --- a/src/Cedar/IPsec_IPC.c +++ b/src/Cedar/IPsec_IPC.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -426,7 +426,6 @@ IPC *NewIPC(CEDAR *cedar, char *client_name, char *postfix, char *hubname, char // Upload the authentication data p = PackLoginWithPlainPassword(hubname, username, password); - PackAddInt64(p, "timestamp", SystemTime64()); PackAddStr(p, "hello", client_name); PackAddInt(p, "client_ver", cedar->Version); PackAddInt(p, "client_build", cedar->Build); @@ -679,6 +678,24 @@ void FreeIPC(IPC *ipc) Free(ipc); } +// Set User Class option if corresponding Virtual Hub optin is set +void IPCDhcpSetConditionalUserClass(IPC *ipc, DHCP_OPTION_LIST *req) +{ + HUB *hub; + + hub = GetHub(ipc->Cedar, ipc->HubName); + if (hub == NULL) + { + return; + } + + if (hub->Option && hub->Option->UseHubNameAsDhcpUserClassOption) + { + StrCpy(req->UserClass, sizeof(req->UserClass), ipc->HubName); + } + ReleaseHub(hub); +} + // Release the IP address from the DHCP server void IPCDhcpFreeIP(IPC *ipc, IP *dhcp_server) { @@ -693,6 +710,7 @@ void IPCDhcpFreeIP(IPC *ipc, IP *dhcp_server) Zero(&req, sizeof(req)); req.Opcode = DHCP_RELEASE; req.ServerAddress = IPToUINT(dhcp_server); + IPCDhcpSetConditionalUserClass(ipc, &req); FreeDHCPv4Data(IPCSendDhcpRequest(ipc, NULL, tran_id, &req, 0, 0, NULL)); } @@ -713,6 +731,7 @@ void IPCDhcpRenewIP(IPC *ipc, IP *dhcp_server) req.Opcode = DHCP_REQUEST; StrCpy(req.Hostname, sizeof(req.Hostname), ipc->ClientHostname); req.RequestedIp = IPToUINT(&ipc->ClientIPAddress); + IPCDhcpSetConditionalUserClass(ipc, &req); FreeDHCPv4Data(IPCSendDhcpRequest(ipc, dhcp_server, tran_id, &req, 0, 0, NULL)); } @@ -735,6 +754,7 @@ bool IPCDhcpRequestInformIP(IPC *ipc, DHCP_OPTION_LIST *opt, TUBE *discon_poll_t req.Opcode = DHCP_INFORM; req.ClientAddress = IPToUINT(client_ip); StrCpy(req.Hostname, sizeof(req.Hostname), ipc->ClientHostname); + IPCDhcpSetConditionalUserClass(ipc, &req); d = IPCSendDhcpRequest(ipc, NULL, tran_id, &req, DHCP_ACK, IPC_DHCP_TIMEOUT, discon_poll_tube); if (d == NULL) @@ -799,6 +819,7 @@ LABEL_RETRY_FOR_OPENVPN: req.RequestedIp = request_ip; req.Opcode = DHCP_DISCOVER; StrCpy(req.Hostname, sizeof(req.Hostname), ipc->ClientHostname); + IPCDhcpSetConditionalUserClass(ipc, &req); d = IPCSendDhcpRequest(ipc, NULL, tran_id, &req, DHCP_OFFER, IPC_DHCP_TIMEOUT, discon_poll_tube); if (d == NULL) @@ -909,6 +930,7 @@ LABEL_RETRY_FOR_OPENVPN: StrCpy(req.Hostname, sizeof(req.Hostname), ipc->ClientHostname); req.ServerAddress = d->ParsedOptionList->ServerAddress; req.RequestedIp = d->ParsedOptionList->ClientAddress; + IPCDhcpSetConditionalUserClass(ipc, &req); d2 = IPCSendDhcpRequest(ipc, NULL, tran_id, &req, DHCP_ACK, IPC_DHCP_TIMEOUT, discon_poll_tube); if (d2 == NULL) @@ -1243,6 +1265,12 @@ BUF *IPCBuildDhcpRequestOptions(IPC *ipc, DHCP_OPTION_LIST *opt) Add(o, NewDhcpOption(DHCP_ID_HOST_NAME, opt->Hostname, StrLen(opt->Hostname))); } + // User Class + if (IsEmptyStr(opt->UserClass) == false) + { + Add(o, NewDhcpOption(DHCP_ID_USER_CLASS, opt->UserClass, StrLen(opt->UserClass))); + } + // Vendor Add(o, NewDhcpOption(DHCP_ID_VENDOR_ID, IPC_DHCP_VENDOR_ID, StrLen(IPC_DHCP_VENDOR_ID))); @@ -2089,7 +2117,3 @@ BLOCK *IPCRecvL2(IPC *ipc) - -// 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/Cedar/IPsec_IPC.h b/src/Cedar/IPsec_IPC.h index 260fcb6..32b9079 100644 --- a/src/Cedar/IPsec_IPC.h +++ b/src/Cedar/IPsec_IPC.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -269,7 +269,3 @@ bool ParseAndExtractMsChapV2InfoFromPassword(IPC_MSCHAP_V2_AUTHINFO *d, char *pa - -// 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/Cedar/IPsec_IkePacket.c b/src/Cedar/IPsec_IkePacket.c index 6068397..c02e3c0 100644 --- a/src/Cedar/IPsec_IkePacket.c +++ b/src/Cedar/IPsec_IkePacket.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -2558,8 +2558,8 @@ IKE_ENGINE *NewIkeEngine() { IKE_ENGINE *e = ZeroMalloc(sizeof(IKE_ENGINE)); IKE_CRYPTO *des, *des3, *aes; - IKE_HASH *sha1, *md5; - IKE_DH *dh1, *dh2, *dh5; + IKE_HASH *sha1, *md5, *sha2_256, *sha2_384, *sha2_512; + IKE_DH *dh1, *dh2, *dh5, *dh2048, *dh3072, *dh4096; UINT des_key_sizes[] = { 8, @@ -2594,6 +2594,14 @@ IKE_ENGINE *NewIkeEngine() // SHA-1 sha1 = NewIkeHash(e, IKE_HASH_SHA1_ID, IKE_HASH_SHA1_STRING, 20); + // SHA-2 + // sha2-256 + sha2_256 = NewIkeHash(e, IKE_HASH_SHA2_256_ID, IKE_HASH_SHA2_256_STRING, 32); + // sha2-384 + sha2_384 = NewIkeHash(e, IKE_HASH_SHA2_384_ID, IKE_HASH_SHA2_384_STRING, 48); + // sha2-512 + sha2_512 = NewIkeHash(e, IKE_HASH_SHA2_512_ID, IKE_HASH_SHA2_512_STRING, 64); + // MD5 md5 = NewIkeHash(e, IKE_HASH_MD5_ID, IKE_HASH_MD5_STRING, 16); @@ -2601,6 +2609,9 @@ IKE_ENGINE *NewIkeEngine() dh1 = NewIkeDh(e, IKE_DH_1_ID, IKE_DH_1_STRING, 96); dh2 = NewIkeDh(e, IKE_DH_2_ID, IKE_DH_2_STRING, 128); dh5 = NewIkeDh(e, IKE_DH_5_ID, IKE_DH_5_STRING, 192); + dh2048 = NewIkeDh(e, IKE_DH_2048_ID, IKE_DH_2048_STRING, 256); + dh3072 = NewIkeDh(e, IKE_DH_3072_ID, IKE_DH_3072_STRING, 384); + dh4096 = NewIkeDh(e, IKE_DH_4096_ID, IKE_DH_4096_STRING, 512); // Define the IKE algorithm e->IkeCryptos[IKE_P1_CRYPTO_DES_CBC] = des; @@ -2608,6 +2619,10 @@ IKE_ENGINE *NewIkeEngine() e->IkeCryptos[IKE_P1_CRYPTO_AES_CBC] = aes; e->IkeHashes[IKE_P1_HASH_MD5] = md5; e->IkeHashes[IKE_P1_HASH_SHA1] = sha1; + e->IkeHashes[IKE_P1_HASH_SHA2_256] = sha2_256; + e->IkeHashes[IKE_P1_HASH_SHA2_384] = sha2_384; + e->IkeHashes[IKE_P1_HASH_SHA2_512] = sha2_512; + // Definition of ESP algorithm e->EspCryptos[IKE_TRANSFORM_ID_P2_ESP_DES] = des; @@ -2620,6 +2635,9 @@ IKE_ENGINE *NewIkeEngine() e->IkeDhs[IKE_P1_DH_GROUP_768_MODP] = e->EspDhs[IKE_P2_DH_GROUP_768_MODP] = dh1; e->IkeDhs[IKE_P1_DH_GROUP_1024_MODP] = e->EspDhs[IKE_P2_DH_GROUP_1024_MODP] = dh2; e->IkeDhs[IKE_P1_DH_GROUP_1536_MODP] = e->EspDhs[IKE_P2_DH_GROUP_1536_MODP] = dh5; + e->IkeDhs[IKE_P1_DH_GROUP_2048_MODP] = e->EspDhs[IKE_P2_DH_GROUP_2048_MODP] = dh2048; + e->IkeDhs[IKE_P1_DH_GROUP_3072_MODP] = e->EspDhs[IKE_P2_DH_GROUP_3072_MODP] = dh3072; + e->IkeDhs[IKE_P1_DH_GROUP_4096_MODP] = e->EspDhs[IKE_P2_DH_GROUP_4096_MODP] = dh4096; return e; } @@ -2925,6 +2943,15 @@ void IkeHash(IKE_HASH *h, void *dst, void *src, UINT size) // SHA-1 Sha1(dst, src, size); break; + case IKE_HASH_SHA2_256_ID: + Sha2_256(dst, src, size); + break; + case IKE_HASH_SHA2_384_ID: + Sha2_384(dst, src, size); + break; + case IKE_HASH_SHA2_512_ID: + Sha2_512(dst, src, size); + break; default: // Unknown @@ -2936,11 +2963,12 @@ void IkeHash(IKE_HASH *h, void *dst, void *src, UINT size) // Calculation of HMAC void IkeHMac(IKE_HASH *h, void *dst, void *key, UINT key_size, void *data, UINT data_size) { - UCHAR k[HMAC_BLOCK_SIZE]; + UINT hmac_block_size = HMAC_BLOCK_SIZE; + UCHAR k[HMAC_BLOCK_SIZE_MAX]; UCHAR *data1; UCHAR hash1[IKE_MAX_HASH_SIZE]; UINT data1_size; - UCHAR data2[IKE_MAX_HASH_SIZE + HMAC_BLOCK_SIZE]; + UCHAR data2[IKE_MAX_HASH_SIZE + HMAC_BLOCK_SIZE_MAX]; UINT data2_size; UCHAR tmp1600[1600]; bool no_free = false; @@ -2951,6 +2979,27 @@ void IkeHMac(IKE_HASH *h, void *dst, void *key, UINT key_size, void *data, UINT return; } + switch (h->HashId) + { + case IKE_HASH_SHA1_ID: + case IKE_HASH_SHA2_256_ID: + hmac_block_size = HMAC_BLOCK_SIZE; + break; + + case IKE_HASH_SHA2_384_ID: + case IKE_HASH_SHA2_512_ID: + hmac_block_size = HMAC_BLOCK_SIZE_1024; + break; + + default: + return; + } + + if (hmac_block_size > HMAC_BLOCK_SIZE_MAX) + { + return; + } + if (h->HashId == IKE_HASH_SHA1_ID) { // Use special function (fast) in the case of SHA-1 @@ -2966,7 +3015,7 @@ void IkeHMac(IKE_HASH *h, void *dst, void *key, UINT key_size, void *data, UINT // Creating a K Zero(k, sizeof(k)); - if (key_size <= HMAC_BLOCK_SIZE) + if (key_size <= hmac_block_size) { Copy(k, key, key_size); } @@ -2976,7 +3025,7 @@ void IkeHMac(IKE_HASH *h, void *dst, void *key, UINT key_size, void *data, UINT } // Generation of data 1 - data1_size = data_size + HMAC_BLOCK_SIZE; + data1_size = data_size + hmac_block_size; if (data1_size > sizeof(tmp1600)) { @@ -2988,12 +3037,12 @@ void IkeHMac(IKE_HASH *h, void *dst, void *key, UINT key_size, void *data, UINT no_free = true; } - for (i = 0;i < HMAC_BLOCK_SIZE;i++) + for (i = 0;i < hmac_block_size;i++) { data1[i] = k[i] ^ 0x36; } - Copy(data1 + HMAC_BLOCK_SIZE, data, data_size); + Copy(data1 + hmac_block_size, data, data_size); // Calculate the hash value IkeHash(h, hash1, data1, data1_size); @@ -3004,14 +3053,14 @@ void IkeHMac(IKE_HASH *h, void *dst, void *key, UINT key_size, void *data, UINT } // Generation of data 2 - data2_size = h->HashSize + HMAC_BLOCK_SIZE; + data2_size = h->HashSize + hmac_block_size; - for (i = 0;i < HMAC_BLOCK_SIZE;i++) + for (i = 0;i < hmac_block_size;i++) { data2[i] = k[i] ^ 0x5c; } - Copy(data2 + HMAC_BLOCK_SIZE, hash1, h->HashSize); + Copy(data2 + hmac_block_size, hash1, h->HashSize); // Calculate the hash value IkeHash(h, dst, data2, data2_size); @@ -3132,6 +3181,15 @@ DH_CTX *IkeDhNewCtx(IKE_DH *d) case IKE_DH_5_ID: return DhNewGroup5(); + + case IKE_DH_2048_ID: + return DhNew2048(); + + case IKE_DH_3072_ID: + return DhNew3072(); + + case IKE_DH_4096_ID: + return DhNew4096(); } return NULL; @@ -3153,7 +3211,3 @@ void IkeDhFreeCtx(DH_CTX *dh) - -// 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/Cedar/IPsec_IkePacket.h b/src/Cedar/IPsec_IkePacket.h index c34864c..06e3434 100644 --- a/src/Cedar/IPsec_IkePacket.h +++ b/src/Cedar/IPsec_IkePacket.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -120,7 +120,7 @@ #endif // OS_WIN32 // Maximum hash size -#define IKE_MAX_HASH_SIZE 20 // Size of SHA-1 is the maximum for now +#define IKE_MAX_HASH_SIZE 64 // Size of SHA-2-512 is the maximum for now // Maximum block size #define IKE_MAX_BLOCK_SIZE 16 // Size of AES is maximum at the moment @@ -224,6 +224,7 @@ struct IKE_TRANSFORM_VALUE } GCC_PACKED; // The Type value in IKE transform value (Phase 1) +// MUST BE LESS THAN "MAX_IKE_ENGINE_ELEMENTS" !!! #define IKE_TRANSFORM_VALUE_P1_CRYPTO 1 // Encryption algorithm #define IKE_TRANSFORM_VALUE_P1_HASH 2 // Hash algorithm #define IKE_TRANSFORM_VALUE_P1_AUTH_METHOD 3 // Authentication method @@ -233,6 +234,7 @@ struct IKE_TRANSFORM_VALUE #define IKE_TRANSFORM_VALUE_P1_KET_SIZE 14 // Key size // The Type value in IKE transform values (Phase 2) +// MUST BE LESS THAN "MAX_IKE_ENGINE_ELEMENTS" !!! #define IKE_TRANSFORM_VALUE_P2_LIFE_TYPE 1 // Expiration date type #define IKE_TRANSFORM_VALUE_P2_LIFE_VALUE 2 // Expiration date #define IKE_TRANSFORM_VALUE_P2_DH_GROUP 3 // DH group number @@ -241,6 +243,7 @@ struct IKE_TRANSFORM_VALUE #define IKE_TRANSFORM_VALUE_P2_KEY_SIZE 6 // Key size // Phase 1: The encryption algorithm in the IKE transform value +// MUST BE LESS THAN "MAX_IKE_ENGINE_ELEMENTS" !!! #define IKE_P1_CRYPTO_DES_CBC 1 #define IKE_P1_CRYPTO_BLOWFISH 3 #define IKE_P1_CRYPTO_3DES_CBC 5 @@ -248,30 +251,45 @@ struct IKE_TRANSFORM_VALUE #define IKE_P1_CRYPTO_AES_CBC 7 // Phase 1: The hash algorithm in IKE transform value +// MUST BE LESS THAN "MAX_IKE_ENGINE_ELEMENTS" !!! #define IKE_P1_HASH_MD5 1 #define IKE_P1_HASH_SHA1 2 +#define IKE_P1_HASH_SHA2_256 4 +#define IKE_P1_HASH_SHA2_384 5 +#define IKE_P1_HASH_SHA2_512 6 // Phase 1: The authentication method in the IKE transform value +// MUST BE LESS THAN "MAX_IKE_ENGINE_ELEMENTS" !!! #define IKE_P1_AUTH_METHOD_PRESHAREDKEY 1 #define IKE_P1_AUTH_METHOD_RSA_SIGN 3 // Phase 1: The DH group number in the IKE transform value +// MUST BE LESS THAN "MAX_IKE_ENGINE_ELEMENTS" !!! #define IKE_P1_DH_GROUP_768_MODP 1 #define IKE_P1_DH_GROUP_1024_MODP 2 #define IKE_P1_DH_GROUP_1536_MODP 5 +#define IKE_P1_DH_GROUP_2048_MODP 14 +#define IKE_P1_DH_GROUP_3072_MODP 15 +#define IKE_P1_DH_GROUP_4096_MODP 16 // Phase 1: The expiration date type in IKE transform value +// MUST BE LESS THAN "MAX_IKE_ENGINE_ELEMENTS" !!! #define IKE_P1_LIFE_TYPE_SECONDS 1 #define IKE_P1_LIFE_TYPE_KILOBYTES 2 // Phase 2: The HMAC algorithm in IPsec transform value +// MUST BE LESS THAN "MAX_IKE_ENGINE_ELEMENTS" !!! #define IKE_P2_HMAC_MD5_96 1 #define IKE_P2_HMAC_SHA1_96 2 // Phase 2: The DH group number in the IPsec transform value +// MUST BE LESS THAN "MAX_IKE_ENGINE_ELEMENTS" !!! #define IKE_P2_DH_GROUP_768_MODP 1 #define IKE_P2_DH_GROUP_1024_MODP 2 #define IKE_P2_DH_GROUP_1536_MODP 5 +#define IKE_P2_DH_GROUP_2048_MODP 14 +#define IKE_P2_DH_GROUP_3072_MODP 15 +#define IKE_P2_DH_GROUP_4096_MODP 16 // Phase 2: The encapsulation mode in IPsec transform value #define IKE_P2_CAPSULE_TUNNEL 1 @@ -530,6 +548,15 @@ struct IKE_P1_KEYSET #define IKE_HASH_SHA1_ID 1 #define IKE_HASH_SHA1_STRING "SHA-1" +#define IKE_HASH_SHA2_256_ID 2 +#define IKE_HASH_SHA2_256_STRING "SHA-2-256" + +#define IKE_HASH_SHA2_384_ID 3 +#define IKE_HASH_SHA2_384_STRING "SHA-2-384" + +#define IKE_HASH_SHA2_512_ID 4 +#define IKE_HASH_SHA2_512_STRING "SHA-2-512" + // Number and name of DH algorithm for IKE #define IKE_DH_1_ID 0 #define IKE_DH_1_STRING "MODP 768 (Group 1)" @@ -540,6 +567,15 @@ struct IKE_P1_KEYSET #define IKE_DH_5_ID 2 #define IKE_DH_5_STRING "MODP 1536 (Group 5)" +#define IKE_DH_2048_ID 14 +#define IKE_DH_2048_STRING "MODP 2048 (Group 14)" + +#define IKE_DH_3072_ID 15 +#define IKE_DH_3072_STRING "MODP 3072 (Group 15)" + +#define IKE_DH_4096_ID 16 +#define IKE_DH_4096_STRING "MODP 4096 (Group 16)" + // Encryption algorithm for IKE struct IKE_CRYPTO @@ -578,7 +614,7 @@ struct IKE_DH UINT KeySize; // Key size }; -#define MAX_IKE_ENGINE_ELEMENTS 16 +#define MAX_IKE_ENGINE_ELEMENTS 64 // Encryption engine for IKE struct IKE_ENGINE @@ -735,7 +771,3 @@ void IkeDhFreeCtx(DH_CTX *dh); #endif // IPSEC_PACKET_H - -// 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/Cedar/IPsec_L2TP.c b/src/Cedar/IPsec_L2TP.c index 4876c53..e036e1a 100644 --- a/src/Cedar/IPsec_L2TP.c +++ b/src/Cedar/IPsec_L2TP.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -792,6 +792,12 @@ L2TP_PACKET *ParseL2TPPacket(UDPPACKET *p) size -= 2; a.DataSize = a.Length - 6; + + if (a.DataSize > size) + { + goto LABEL_ERROR; + } + a.Data = Clone(buf, a.DataSize); buf += a.DataSize; @@ -2709,7 +2715,3 @@ void SetL2TPServerSockEvent(L2TP_SERVER *l2tp, SOCK_EVENT *e) l2tp->SockEvent = e; } - -// 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/Cedar/IPsec_L2TP.h b/src/Cedar/IPsec_L2TP.h index 7ae52e1..320a6c6 100644 --- a/src/Cedar/IPsec_L2TP.h +++ b/src/Cedar/IPsec_L2TP.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -381,7 +381,3 @@ void L2TPSessionManageEtherIPServer(L2TP_SERVER *l2tp, L2TP_SESSION *s); #endif // IPSEC_L2TP_H - -// 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/Cedar/IPsec_PPP.c b/src/Cedar/IPsec_PPP.c index 562b187..10a07e7 100644 --- a/src/Cedar/IPsec_PPP.c +++ b/src/Cedar/IPsec_PPP.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -291,7 +291,7 @@ void PPPThread(THREAD *thread, void *param) ReadBuf(b, client_response_buffer, 49); Zero(username_tmp, sizeof(username_tmp)); - ReadBuf(b, username_tmp, sizeof(username_tmp)); + ReadBuf(b, username_tmp, sizeof(username_tmp) - 1); Debug("First MS-CHAPv2: id=%s\n", username_tmp); @@ -977,7 +977,7 @@ PPP_PACKET *PPPProcessRequestPacket(PPP_SESSION *p, PPP_PACKET *req) ReadBuf(b, client_response_buffer, 49); Zero(username_tmp, sizeof(username_tmp)); - ReadBuf(b, username_tmp, sizeof(username_tmp)); + ReadBuf(b, username_tmp, sizeof(username_tmp) - 1); client_challenge_16 = client_response_buffer + 0; client_response_24 = client_response_buffer + 16 + 8; @@ -1749,8 +1749,15 @@ PPP_PACKET *PPPRecvResponsePacket(PPP_SESSION *p, PPP_PACKET *req, USHORT expect if (pp->IsControl && PPP_CODE_IS_REQUEST(pp->Protocol, pp->Lcp->Code)) { + // Record current resend because next steps may take a while + UINT64 currentresend = next_resend - now; + // Process when the received packet is a request packet response = PPPProcessRequestPacket(p, pp); + + // Increase next resend because this may have taken a while + next_resend = Tick64() + currentresend; + FreePPPPacket(pp); if (response == NULL) @@ -2835,7 +2842,3 @@ char *MsChapV2DoBruteForce(IPC_MSCHAP_V2_AUTHINFO *d, LIST *password_list) - -// 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/Cedar/IPsec_PPP.h b/src/Cedar/IPsec_PPP.h index 61e5609..2ef52b8 100644 --- a/src/Cedar/IPsec_PPP.h +++ b/src/Cedar/IPsec_PPP.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -340,7 +340,3 @@ void PPPFreeEapClient(PPP_SESSION *p); #endif // IPSEC_PPP_H - -// 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/Cedar/IPsec_Win7.c b/src/Cedar/IPsec_Win7.c index 94a00df..7b8d8f1 100644 --- a/src/Cedar/IPsec_Win7.c +++ b/src/Cedar/IPsec_Win7.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -385,10 +385,17 @@ bool IPsecWin7InitDriverInner() // Copy the driver if (FileCopy(src_filename, sys_filename) == false) { - Debug("%s copy failed.\n", sys_filename); - return false; + Debug("%s copy failed. %u\n", sys_filename, GetLastError()); + if (IsFileExists(sys_filename) == false) + { + Debug("%s failed. Abort.\n", sys_filename); + return false; + } + } + else + { + Debug("%s copied.\n", sys_filename); } - Debug("%s copied.\n", sys_filename); // Set the build number SetCurrentIPsecWin7DriverBuild(); @@ -566,7 +573,3 @@ bool IPsecWin7InitApi() #endif // WIN32 - -// 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/Cedar/IPsec_Win7.h b/src/Cedar/IPsec_Win7.h index d33e344..b7b43fc 100644 --- a/src/Cedar/IPsec_Win7.h +++ b/src/Cedar/IPsec_Win7.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -146,7 +146,3 @@ bool IPsecWin7InitApi(); - -// 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/Cedar/IPsec_Win7Inner.h b/src/Cedar/IPsec_Win7Inner.h index a0a44b8..a760f97 100644 --- a/src/Cedar/IPsec_Win7Inner.h +++ b/src/Cedar/IPsec_Win7Inner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -184,7 +184,3 @@ struct IPSEC_WIN7 - -// 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/Cedar/Interop_OpenVPN.c b/src/Cedar/Interop_OpenVPN.c index 801f48b..11e86a9 100644 --- a/src/Cedar/Interop_OpenVPN.c +++ b/src/Cedar/Interop_OpenVPN.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -2840,7 +2840,7 @@ bool OvsPerformTcpServer(CEDAR *cedar, SOCK *sock) { void *ptr = FifoPtr(tcp_recv_fifo); USHORT packet_size = READ_USHORT(ptr); - if (packet_size <= OPENVPN_TCP_MAX_PACKET_SIZE) + if (packet_size != 0 && packet_size <= OPENVPN_TCP_MAX_PACKET_SIZE) { UINT total_len = (UINT)packet_size + sizeof(USHORT); if (r >= total_len) @@ -3016,7 +3016,3 @@ bool OvsPerformTcpServer(CEDAR *cedar, SOCK *sock) - -// 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/Cedar/Interop_OpenVPN.h b/src/Cedar/Interop_OpenVPN.h index 20e53bb..c678eec 100644 --- a/src/Cedar/Interop_OpenVPN.h +++ b/src/Cedar/Interop_OpenVPN.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -152,10 +152,10 @@ #define OPENVPN_IPC_POSTFIX_L3 "OPENVPN_L3" // List of supported encryption algorithms -#define OPENVPN_CIPHER_LIST "[NULL-CIPHER] NULL AES-128-CBC AES-192-CBC AES-256-CBC BF-CBC CAST-CBC CAST5-CBC DES-CBC DES-EDE-CBC DES-EDE3-CBC DESX-CBC RC2-40-CBC RC2-64-CBC RC2-CBC" +#define OPENVPN_CIPHER_LIST "[NULL-CIPHER] NULL AES-128-CBC AES-192-CBC AES-256-CBC BF-CBC CAST-CBC CAST5-CBC DES-CBC DES-EDE-CBC DES-EDE3-CBC DESX-CBC RC2-40-CBC RC2-64-CBC RC2-CBC CAMELLIA-128-CBC CAMELLIA-192-CBC CAMELLIA-256-CBC" // List of the supported hash algorithm -#define OPENVPN_MD_LIST "SHA SHA1 MD5 MD4 RMD160" +#define OPENVPN_MD_LIST "SHA SHA1 SHA256 SHA384 SHA512 MD5 MD4 RMD160" // MTU #define OPENVPN_MTU_LINK 1514 // Ethernet MTU @@ -389,7 +389,3 @@ void OvsSetNoOpenVpnUdp(bool b); #endif // INTEROP_OPENVPN_H - -// 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/Cedar/Interop_SSTP.c b/src/Cedar/Interop_SSTP.c index 6ea6047..9047bab 100644 --- a/src/Cedar/Interop_SSTP.c +++ b/src/Cedar/Interop_SSTP.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1248,7 +1248,3 @@ bool AcceptSstp(CONNECTION *c) return ret2; } - -// 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/Cedar/Interop_SSTP.h b/src/Cedar/Interop_SSTP.h index 39cf327..39f5f43 100644 --- a/src/Cedar/Interop_SSTP.h +++ b/src/Cedar/Interop_SSTP.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -262,7 +262,3 @@ void SetNoSstp(bool b); #endif // INTEROP_SSTP_H - -// 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/Cedar/Layer3.c b/src/Cedar/Layer3.c index ebae0b2..177a0c3 100644 --- a/src/Cedar/Layer3.c +++ b/src/Cedar/Layer3.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -540,6 +540,12 @@ void L3KnownArp(L3IF *f, UINT ip, UCHAR *mac) return; } + if (!((f->IpAddress & f->SubnetMask) == (ip & f->SubnetMask))) + { + // Outside the subnet + return; + } + // Delete an ARP query entry to this IP address Zero(&t, sizeof(t)); t.IpAddress = ip; @@ -2197,7 +2203,3 @@ int CmpL3ArpEntry(void *p1, void *p2) } } - -// 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/Cedar/Layer3.h b/src/Cedar/Layer3.h index f916383..3fb5dc8 100644 --- a/src/Cedar/Layer3.h +++ b/src/Cedar/Layer3.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -253,7 +253,3 @@ void L3PollingIpQueue(L3IF *f); - -// 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/Cedar/Link.c b/src/Cedar/Link.c index 96982dd..9c1b479 100644 --- a/src/Cedar/Link.c +++ b/src/Cedar/Link.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -782,7 +782,3 @@ LINK *NewLink(CEDAR *cedar, HUB *hub, CLIENT_OPTION *option, CLIENT_AUTH *auth, return k; } - -// 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/Cedar/Link.h b/src/Cedar/Link.h index 6170d25..f8d6e08 100644 --- a/src/Cedar/Link.h +++ b/src/Cedar/Link.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -169,7 +169,3 @@ void NormalizeLinkPolicy(POLICY *p); - -// 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/Cedar/Listener.c b/src/Cedar/Listener.c index b628320..f63d3c9 100644 --- a/src/Cedar/Listener.c +++ b/src/Cedar/Listener.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1103,7 +1103,3 @@ void ApplyDynamicListener(DYNAMIC_LISTENER *d) } - -// 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/Cedar/Listener.h b/src/Cedar/Listener.h index 6917283..cb386e8 100644 --- a/src/Cedar/Listener.h +++ b/src/Cedar/Listener.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -212,7 +212,3 @@ void ListenerSetProcRecvRpcEnable(bool b); #endif // LISTENER_H - -// 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/Cedar/Logging.c b/src/Cedar/Logging.c index e0fceaa..58d6d50 100644 --- a/src/Cedar/Logging.c +++ b/src/Cedar/Logging.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1307,6 +1307,11 @@ UINT CalcPacketLoggingLevelEx(HUB_LOG *g, PKT *packet) // OpenVPN connection request ret = MAX(ret, g->PacketLogConfig[PACKET_LOG_TCP_CONN]); break; + + case L7_DNS: + // DNS request + ret = MAX(ret, g->PacketLogConfig[PACKET_LOG_TCP_CONN]); + break; } break; @@ -1354,6 +1359,11 @@ UINT CalcPacketLoggingLevelEx(HUB_LOG *g, PKT *packet) // OpenVPN connection request ret = MAX(ret, g->PacketLogConfig[PACKET_LOG_TCP_CONN]); break; + + case L7_DNS: + // DNS request + ret = MAX(ret, g->PacketLogConfig[PACKET_LOG_TCP_CONN]); + break; } break; @@ -1396,22 +1406,38 @@ char *BuildHttpLogStr(HTTPLOG *h) b = NewBuf(); - if (StartWith(h->Path, "http://")) + if (StartWith(h->Path, "http://") || StartWith(h->Path, "https://")) { StrCpy(url, sizeof(url), h->Path); } else { // URL generation - if (h->Port == 80) + if (h->IsSsl == false) { - Format(url, sizeof(url), "http://%s%s", - h->Hostname, h->Path); + if (h->Port == 80) + { + Format(url, sizeof(url), "http://%s%s", + h->Hostname, h->Path); + } + else + { + Format(url, sizeof(url), "http://%s:%u%s", + h->Hostname, h->Port, h->Path); + } } else { - Format(url, sizeof(url), "http://%s:%u%s", - h->Hostname, h->Port, h->Path); + if (h->Port == 443) + { + Format(url, sizeof(url), "https://%s/", + h->Hostname); + } + else + { + Format(url, sizeof(url), "https://%s:%u/", + h->Hostname, h->Port); + } } } @@ -1743,6 +1769,13 @@ char *PacketLogParseProc(RECORD *rec) } break; + case L7_DNS: + // DNS query + t->Token[6] = CopyStr("DNSv4"); + t->Token[7] = CopyStr("DNS_Query"); + t->Token[14] = CopyStr(p->DnsQueryHost); + break; + default: // Unknown Packet t->Token[6] = CopyStr("UDPv4"); @@ -2008,6 +2041,13 @@ char *PacketLogParseProc(RECORD *rec) } break; + case L7_DNS: + // DNS query + t->Token[6] = CopyStr("DNSv6"); + t->Token[7] = CopyStr("DNS_Query"); + t->Token[14] = CopyStr(p->DnsQueryHost); + break; + default: t->Token[6] = CopyStr("UDPv6"); break; @@ -3001,7 +3041,3 @@ LOG *NewLog(char *dir, char *prefix, UINT switch_type) } - -// 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/Cedar/Logging.h b/src/Cedar/Logging.h index 5457e51..ee43f37 100644 --- a/src/Cedar/Logging.h +++ b/src/Cedar/Logging.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -278,7 +278,3 @@ UINT64 GetMaxLogSize(); #endif // LOGGING_G - -// 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/Cedar/NM.c b/src/Cedar/NM.c index ac1b284..ab6df6b 100644 --- a/src/Cedar/NM.c +++ b/src/Cedar/NM.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1641,7 +1641,3 @@ void NMExec() #endif - -// 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/Cedar/NM.h b/src/Cedar/NM.h index f378a59..dce9ebe 100644 --- a/src/Cedar/NM.h +++ b/src/Cedar/NM.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -120,7 +120,3 @@ void NMExec(); #endif // NM_H - -// 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/Cedar/NMInner.h b/src/Cedar/NMInner.h index fdea5ed..d8d4801 100644 --- a/src/Cedar/NMInner.h +++ b/src/Cedar/NMInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -176,7 +176,3 @@ bool NmEditPushRoute(HWND hWnd, SM_HUB *r); UINT NmEditPushRouteProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param); - -// Developed by SoftEther VPN Project at University of Tsukuba in Japan. -// Department of Computer Science has dozens of overly-enthusiastic geeks. -// Join us: http://www.tsukuba.ac.jp/english/admission/ diff --git a/src/Cedar/Nat.c b/src/Cedar/Nat.c index 13df95c..c8583c9 100644 --- a/src/Cedar/Nat.c +++ b/src/Cedar/Nat.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1916,7 +1916,3 @@ void NtFree() nat_lock = NULL; } - -// 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/Cedar/Nat.h b/src/Cedar/Nat.h index 5e03047..e5e7e75 100644 --- a/src/Cedar/Nat.h +++ b/src/Cedar/Nat.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -316,7 +316,3 @@ void OutRpcDummy(PACK *p, RPC_DUMMY *t); #endif // NAT_H - -// 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/Cedar/NativeStack.c b/src/Cedar/NativeStack.c index b906018..f73bb3d 100644 --- a/src/Cedar/NativeStack.c +++ b/src/Cedar/NativeStack.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -999,7 +999,3 @@ bool IsIpTablesSupported() - -// 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/Cedar/NativeStack.h b/src/Cedar/NativeStack.h index a6a2657..b5b75f2 100644 --- a/src/Cedar/NativeStack.h +++ b/src/Cedar/NativeStack.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -193,7 +193,3 @@ void GenerateDummyIp(PRAND *p, IP *ip); #endif // NATIVESTACK_H - -// 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/Cedar/NullLan.c b/src/Cedar/NullLan.c index cf48e71..6fbe3a6 100644 --- a/src/Cedar/NullLan.c +++ b/src/Cedar/NullLan.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -331,7 +331,3 @@ void NullPaFree(SESSION *s) } - -// 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/Cedar/NullLan.h b/src/Cedar/NullLan.h index 50f6866..e136cc3 100644 --- a/src/Cedar/NullLan.h +++ b/src/Cedar/NullLan.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -143,7 +143,3 @@ void NullGenerateMacAddress(UCHAR *mac, UINT id, UINT seq); - -// 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/Cedar/Protocol.c b/src/Cedar/Protocol.c index 6d23e5c..d2d974e 100644 --- a/src/Cedar/Protocol.c +++ b/src/Cedar/Protocol.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -690,8 +690,11 @@ void UpdateClientThreadMain(UPDATE_CLIENT *c) cert_hash = StrToBin(UPDATE_SERVER_CERT_HASH); - recv = HttpRequestEx2(&data, NULL, UPDATE_CONNECT_TIMEOUT, UPDATE_COMM_TIMEOUT, &ret, false, NULL, NULL, - NULL, ((cert_hash != NULL && cert_hash->Size == SHA1_SIZE) ? cert_hash->Buf : NULL), + StrCpy(data.SniString, sizeof(data.SniString), DDNS_SNI_VER_STRING); + + recv = HttpRequestEx3(&data, NULL, UPDATE_CONNECT_TIMEOUT, UPDATE_COMM_TIMEOUT, &ret, false, NULL, NULL, + NULL, ((cert_hash != NULL && (cert_hash->Size % SHA1_SIZE) == 0) ? cert_hash->Buf : NULL), + (cert_hash != NULL ? (cert_hash->Size / SHA1_SIZE) : 0), (bool *)&c->HaltFlag, 0, NULL, NULL); FreeBuf(cert_hash); @@ -1312,7 +1315,6 @@ bool ServerAccept(CONNECTION *c) FARM_MEMBER *f = NULL; SERVER *server = NULL; POLICY ticketed_policy; - UINT64 timestamp; UCHAR unique[SHA1_SIZE], unique2[SHA1_SIZE]; CEDAR *cedar; RPC_WINVER winver; @@ -1450,31 +1452,6 @@ bool ServerAccept(CONNECTION *c) } } - // Time inspection - timestamp = PackGetInt64(p, "timestamp"); - if (timestamp != 0) - { - UINT64 now = SystemTime64(); - UINT64 abs; - if (now >= timestamp) - { - abs = now - timestamp; - } - else - { - abs = timestamp - now; - } - - if (abs > ALLOW_TIMESTAMP_DIFF) - { - // Time difference is too large - FreePack(p); - c->Err = ERR_BAD_CLOCK; - error_detail = "ERR_BAD_CLOCK"; - goto CLEANUP; - } - } - // Get the client version PackGetStr(p, "client_str", c->ClientStr, sizeof(c->ClientStr)); c->ClientVer = PackGetInt(p, "client_ver"); @@ -1655,6 +1632,10 @@ bool ServerAccept(CONNECTION *c) { radius_login_opt.In_CheckVLanId = hub->Option->AssignVLanIdByRadiusAttribute; radius_login_opt.In_DenyNoVlanId = hub->Option->DenyAllRadiusLoginWithNoVlanAssign; + if (hub->Option->UseHubNameAsRadiusNasId) + { + StrCpy(radius_login_opt.NasId, sizeof(radius_login_opt.NasId), hubname); + } } // Get the various flags @@ -4574,7 +4555,7 @@ bool ClientSecureSign(CONNECTION *c, UCHAR *sign, UCHAR *random, X **x) if (ret) { - Copy(sign, ss->Signature, 128); + Copy(sign, ss->Signature, sizeof(ss->Signature)); *x = ss->ClientCert; } @@ -5853,7 +5834,7 @@ bool ClientUploadAuth(CONNECTION *c) // Authentication by secure device if (ClientSecureSign(c, sign, c->Random, &x)) { - p = PackLoginWithCert(o->HubName, a->Username, x, sign, 128); + p = PackLoginWithCert(o->HubName, a->Username, x, sign, x->bits / 8); c->ClientX = CloneX(x); FreeX(x); } @@ -5876,9 +5857,6 @@ bool ClientUploadAuth(CONNECTION *c) PackAddData(p, "ticket", c->Ticket, SHA1_SIZE); } - // Current time - PackAddInt64(p, "timestamp", SystemTime64()); - if (p == NULL) { // Error @@ -7333,7 +7311,3 @@ void GenerateRC4KeyPair(RC4_KEY_PAIR *k) Rand(k->ServerToClientKey, sizeof(k->ServerToClientKey)); } - -// 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/Cedar/Protocol.h b/src/Cedar/Protocol.h index 033c181..8179c68 100644 --- a/src/Cedar/Protocol.h +++ b/src/Cedar/Protocol.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -180,7 +180,7 @@ struct UPDATE_CLIENT #define UPDATE_FAMILY_NAME _SS("PRODUCT_FAMILY_NAME") // Software update server certificate hash -#define UPDATE_SERVER_CERT_HASH "EFAC5FA0CDD14E0F864EED58A73C35D7E33B62F3" +#define UPDATE_SERVER_CERT_HASH DDNS_CERT_HASH // URL #define UPDATE_SERVER_URL_GLOBAL "https://update-check.softether-network.net/update/update.aspx?family=%s&software=%s&mybuild=%u&lang=%s" @@ -314,7 +314,3 @@ bool DownloadAndSaveIntermediateCertificatesIfNecessary(X *x); #endif // PROTOCOL_H - -// 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/Cedar/Radius.c b/src/Cedar/Radius.c index 131fa47..8740e75 100644 --- a/src/Cedar/Radius.c +++ b/src/Cedar/Radius.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -686,6 +686,11 @@ void EapSetRadiusGeneralAttributes(RADIUS_PACKET *r, EAP_CLIENT *e) ui = Endian32(5); Add(r->AvpList, NewRadiusAvp(RADIUS_ATTRIBUTE_NAS_PORT_TYPE, 0, 0, &ui, sizeof(UINT))); + if (IsEmptyStr(e->CalledStationStr) == false) + { + Add(r->AvpList, NewRadiusAvp(RADIUS_ATTRIBUTE_CALLED_STATION_ID, 0, 0, e->CalledStationStr, StrLen(e->CalledStationStr))); + } + Add(r->AvpList, NewRadiusAvp(RADIUS_ATTRIBUTE_CALLING_STATION_ID, 0, 0, e->ClientIpStr, StrLen(e->ClientIpStr))); Add(r->AvpList, NewRadiusAvp(RADIUS_ATTRIBUTE_TUNNEL_CLIENT_ENDPOINT, 0, 0, e->ClientIpStr, StrLen(e->ClientIpStr))); @@ -1237,7 +1242,7 @@ bool EapSendPacket(EAP_CLIENT *e, RADIUS_PACKET *r) } // New EAP client -EAP_CLIENT *NewEapClient(IP *server_ip, UINT server_port, char *shared_secret, UINT resend_timeout, UINT giveup_timeout, char *client_ip_str, char *username) +EAP_CLIENT *NewEapClient(IP *server_ip, UINT server_port, char *shared_secret, UINT resend_timeout, UINT giveup_timeout, char *client_ip_str, char *username, char *hubname) { EAP_CLIENT *e; if (server_ip == NULL) @@ -1266,6 +1271,7 @@ EAP_CLIENT *NewEapClient(IP *server_ip, UINT server_port, char *shared_secret, U e->GiveupTimeout = giveup_timeout; StrCpy(e->SharedSecret, sizeof(e->SharedSecret), shared_secret); + StrCpy(e->CalledStationStr, sizeof(e->CalledStationStr), hubname); StrCpy(e->ClientIpStr, sizeof(e->ClientIpStr), client_ip_str); StrCpy(e->Username, sizeof(e->Username), username); e->LastRecvEapId = 0; @@ -1703,7 +1709,7 @@ LABEL_ERROR: // Attempts Radius authentication (with specifying retry interval and multiple server) bool RadiusLogin(CONNECTION *c, char *server, UINT port, UCHAR *secret, UINT secret_size, wchar_t *username, char *password, UINT interval, UCHAR *mschap_v2_server_response_20, - RADIUS_LOGIN_OPTION *opt) + RADIUS_LOGIN_OPTION *opt, char *hubname) { UCHAR random[MD5_SIZE]; UCHAR id; @@ -1821,6 +1827,13 @@ bool RadiusLogin(CONNECTION *c, char *server, UINT port, UCHAR *secret, UINT sec if (encrypted_password == NULL) { // Encryption failure + + // Release the ip_list + for(i = 0; i < LIST_NUM(ip_list); i++) + { + IP *tmp_ip = LIST_DATA(ip_list, i); + Free(tmp_ip); + } ReleaseList(ip_list); return false; } @@ -1833,7 +1846,16 @@ bool RadiusLogin(CONNECTION *c, char *server, UINT port, UCHAR *secret, UINT sec { // Generate a password packet BUF *user_password = (is_mschap ? NULL : RadiusCreateUserPassword(encrypted_password->Buf, encrypted_password->Size)); - BUF *nas_id = RadiusCreateNasId(CEDAR_SERVER_STR); + BUF *nas_id; + + if (IsEmptyStr(opt->NasId)) + { + nas_id = RadiusCreateNasId(CEDAR_SERVER_STR); + } + else + { + nas_id = RadiusCreateNasId(opt->NasId); + } if (is_mschap || user_password != NULL) { @@ -1881,6 +1903,12 @@ bool RadiusLogin(CONNECTION *c, char *server, UINT port, UCHAR *secret, UINT sec ui = Endian32(1); RadiusAddValue(p, 65, 0, 0, &ui, sizeof(ui)); + // Called-Station-ID - VPN Hub Name + if (IsEmptyStr(hubname) == false) + { + RadiusAddValue(p, 30, 0, 0, hubname, StrLen(hubname)); + } + // Calling-Station-Id RadiusAddValue(p, 31, 0, 0, client_ip_str, StrLen(client_ip_str)); @@ -1931,6 +1959,12 @@ bool RadiusLogin(CONNECTION *c, char *server, UINT port, UCHAR *secret, UINT sec ui = Endian32(1); RadiusAddValue(p, 65, 0, 0, &ui, sizeof(ui)); + // Called-Station-ID - VPN Hub Name + if (IsEmptyStr(hubname) == false) + { + RadiusAddValue(p, 30, 0, 0, hubname, StrLen(hubname)); + } + // Calling-Station-Id RadiusAddValue(p, 31, 0, 0, client_ip_str, StrLen(client_ip_str)); @@ -2385,7 +2419,3 @@ BUF *RadiusEncryptPassword(char *password, UCHAR *random, UCHAR *secret, UINT se return buf; } - -// 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/Cedar/Radius.h b/src/Cedar/Radius.h index fd98405..e315323 100644 --- a/src/Cedar/Radius.h +++ b/src/Cedar/Radius.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -142,6 +142,7 @@ #define RADIUS_ATTRIBUTE_EAP_MESSAGE 79 #define RADIUS_ATTRIBUTE_EAP_AUTHENTICATOR 80 #define RADIUS_ATTRIBUTE_VLAN_ID 81 +#define RADIUS_MAX_NAS_ID_LEN 253 // RADIUS codes #define RADIUS_CODE_ACCESS_REQUEST 1 @@ -310,6 +311,7 @@ struct EAP_CLIENT UINT ServerPort; char SharedSecret[MAX_SIZE]; char ClientIpStr[256]; + char CalledStationStr[256]; char Username[MAX_USERNAME_LEN + 1]; UINT ResendTimeout; UINT GiveupTimeout; @@ -345,7 +347,7 @@ RADIUS_AVP *GetRadiusAvp(RADIUS_PACKET *p, UCHAR type); void RadiusTest(); -EAP_CLIENT *NewEapClient(IP *server_ip, UINT server_port, char *shared_secret, UINT resend_timeout, UINT giveup_timeout, char *client_ip_str, char *username); +EAP_CLIENT *NewEapClient(IP *server_ip, UINT server_port, char *shared_secret, UINT resend_timeout, UINT giveup_timeout, char *client_ip_str, char *username, char *hubname); void ReleaseEapClient(EAP_CLIENT *e); void CleanupEapClient(EAP_CLIENT *e); bool EapClientSendMsChapv2AuthRequest(EAP_CLIENT *e); @@ -371,11 +373,12 @@ struct RADIUS_LOGIN_OPTION bool In_DenyNoVlanId; UINT Out_VLanId; bool Out_IsRadiusLogin; + char NasId[RADIUS_MAX_NAS_ID_LEN + 1]; // NAS-Identifier }; // Function prototype bool RadiusLogin(CONNECTION *c, char *server, UINT port, UCHAR *secret, UINT secret_size, wchar_t *username, char *password, UINT interval, UCHAR *mschap_v2_server_response_20, - RADIUS_LOGIN_OPTION *opt); + RADIUS_LOGIN_OPTION *opt, char *hubname); BUF *RadiusEncryptPassword(char *password, UCHAR *random, UCHAR *secret, UINT secret_size); BUF *RadiusCreateUserName(wchar_t *username); BUF *RadiusCreateUserPassword(void *data, UINT size); @@ -387,7 +390,3 @@ LIST *RadiusParseOptions(BUF *b); - -// 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/Cedar/Remote.c b/src/Cedar/Remote.c index 46d2552..cd09432 100644 --- a/src/Cedar/Remote.c +++ b/src/Cedar/Remote.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -472,7 +472,3 @@ RPC *StartRpcClient(SOCK *s, void *param) return r; } - -// 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/Cedar/Remote.h b/src/Cedar/Remote.h index 7023b60..e014429 100644 --- a/src/Cedar/Remote.h +++ b/src/Cedar/Remote.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -151,7 +151,3 @@ void RpcFree(RPC *rpc); #endif // REMOTE_H - -// 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/Cedar/SM.c b/src/Cedar/SM.c index 405ef50..c842bd9 100644 --- a/src/Cedar/SM.c +++ b/src/Cedar/SM.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -872,17 +872,19 @@ UINT SmDDnsDlg(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, void *param) // Get the ddns key from the server configuration file static UINT SmDdnsGetKey(char *key, SM_DDNS *d){ - RPC *rpc = d->s->Rpc; RPC_CONFIG config; UINT err; BUF *buf; FOLDER *root, *ddnsfolder; + RPC *rpc; // Validate arguments if(d == NULL || d->s == NULL || key == NULL){ return ERR_INTERNAL_ERROR; } + rpc = d->s->Rpc; + Zero(&config, sizeof(config)); err = ScGetConfig(d->s->Rpc, &config); if(err != ERR_NO_ERROR){ @@ -16557,6 +16559,11 @@ void SmSaveKeyPairDlgInit(HWND hWnd, SM_SAVE_KEY_PAIR *s) Check(hWnd, R_X509_AND_KEY, true); } + if (MsIsWine()) + { + Disable(hWnd, R_SECURE); + } + SmSaveKeyPairDlgUpdate(hWnd, s); } @@ -17006,6 +17013,7 @@ void SmSslDlgInit(HWND hWnd, SM_SSL *s) // Set the encryption algorithm list cipher_list = GetCipherList(); + SetFont(hWnd, C_CIPHER, GetFont("Tahoma", 8, false, false, false, false)); CbSetHeight(hWnd, C_CIPHER, 18); for (i = 0;i < cipher_list->NumTokens;i++) { @@ -19350,8 +19358,13 @@ ENTER_PASSWORD: Enable(hWnd, IDOK); Enable(hWnd, B_ABOUT); Enable(hWnd, IDCANCEL); - Enable(hWnd, B_SECURE_MANAGER); - Enable(hWnd, B_SELECT_SECURE); + + if (MsIsWine() == false) + { + Enable(hWnd, B_SECURE_MANAGER); + Enable(hWnd, B_SELECT_SECURE); + } + Enable(hWnd, B_CERT_TOOL); } @@ -20150,6 +20163,12 @@ void SmMainDlgInit(HWND hWnd) DlgFont(hWnd, IDOK, 10, true); + if (MsIsWine()) + { + Disable(hWnd, B_SECURE_MANAGER); + Disable(hWnd, B_SELECT_SECURE); + } + Focus(hWnd, L_SETTING); SmMainDlgUpdate(hWnd); @@ -20479,6 +20498,8 @@ void SmMainDlg() // Server Manager main process void MainSM() { +// MsgBoxEx(NULL, 0, L"MsIsWine: %u\n", MsIsWine()); + if (sm->TempSetting == NULL) { // Open the main window @@ -20677,7 +20698,3 @@ void SMExec() #endif // WIN32 - -// 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/Cedar/SM.h b/src/Cedar/SM.h index 62f35af..6bc333d 100644 --- a/src/Cedar/SM.h +++ b/src/Cedar/SM.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -119,7 +119,3 @@ void SMExec(); #endif // SM_H - -// 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/Cedar/SMInner.h b/src/Cedar/SMInner.h index 7b103cf..93e6ce1 100644 --- a/src/Cedar/SMInner.h +++ b/src/Cedar/SMInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -828,7 +828,3 @@ void SmProxyDlgInit(HWND hWnd, INTERNET_SETTING *t); void SmProxyDlgUpdate(HWND hWnd, INTERNET_SETTING *t); - -// 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/Cedar/SW.c b/src/Cedar/SW.c index 9ed2a10..dcbaf49 100644 --- a/src/Cedar/SW.c +++ b/src/Cedar/SW.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -6677,7 +6677,3 @@ UINT SWExecMain() - -// 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/Cedar/SW.h b/src/Cedar/SW.h index afdc59c..00fe6ca 100644 --- a/src/Cedar/SW.h +++ b/src/Cedar/SW.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -129,7 +129,3 @@ bool SwWaitForVpnClientPortReady(UINT timeout); #endif // SW_H - -// 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/Cedar/SWInner.h b/src/Cedar/SWInner.h index 13db4bb..eea7726 100644 --- a/src/Cedar/SWInner.h +++ b/src/Cedar/SWInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -450,7 +450,3 @@ bool SwSfxCopyVgFiles(HWND hWnd, wchar_t *src, wchar_t *dst); #endif // SW_INNER_H - -// 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/Cedar/Sam.c b/src/Cedar/Sam.c index 7e6e04f..740938e 100644 --- a/src/Cedar/Sam.c +++ b/src/Cedar/Sam.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -211,7 +211,18 @@ bool SamAuthUserByPlainPassword(CONNECTION *c, HUB *hub, char *username, char *p AUTHRADIUS *auth = (AUTHRADIUS *)u->AuthData; if (ast || auth->RadiusUsername == NULL || UniStrLen(auth->RadiusUsername) == 0) { - name = CopyStrToUni(username); + if( IsEmptyStr(h->RadiusRealm) == false ) + { + char name_and_realm[MAX_SIZE]; + StrCpy(name_and_realm, sizeof(name_and_realm), username); + StrCat(name_and_realm, sizeof(name_and_realm), "@"); + StrCat(name_and_realm, sizeof(name_and_realm), h->RadiusRealm); + name = CopyStrToUni(name_and_realm); + } + else + { + name = CopyStrToUni(username); + } } else { @@ -267,7 +278,7 @@ bool SamAuthUserByPlainPassword(CONNECTION *c, HUB *hub, char *username, char *p // Attempt to login b = RadiusLogin(c, radius_server_addr, radius_server_port, radius_secret, StrLen(radius_secret), - name, password, interval, mschap_v2_server_response_20, opt); + name, password, interval, mschap_v2_server_response_20, opt, hub->Name); if (b) { @@ -697,7 +708,3 @@ UINT SamGetUserAuthType(HUB *h, char *username) return authtype; } - -// 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/Cedar/Sam.h b/src/Cedar/Sam.h index ca14cb2..bec4f0b 100644 --- a/src/Cedar/Sam.h +++ b/src/Cedar/Sam.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -130,7 +130,3 @@ X *GetIssuerFromList(LIST *cert_list, X *cert); #endif // SAM_H - -// 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/Cedar/SeLowUser.c b/src/Cedar/SeLowUser.c index 1088aff..3ad6dd0 100644 --- a/src/Cedar/SeLowUser.c +++ b/src/Cedar/SeLowUser.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // SeLow: SoftEther Lightweight Network Protocol // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1083,7 +1083,3 @@ void SuFree(SU *u) #endif // WIN32 - -// 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/Cedar/SeLowUser.h b/src/Cedar/SeLowUser.h index 3d677e9..9377508 100644 --- a/src/Cedar/SeLowUser.h +++ b/src/Cedar/SeLowUser.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // SeLow: SoftEther Lightweight Network Protocol // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -184,7 +184,3 @@ bool SuUnloadDriversHive(); - -// 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/Cedar/SecureInfo.c b/src/Cedar/SecureInfo.c index 1294ae5..3b8943c 100644 --- a/src/Cedar/SecureInfo.c +++ b/src/Cedar/SecureInfo.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -114,7 +114,3 @@ #include "CedarPch.h" - -// 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/Cedar/SecureInfo.h b/src/Cedar/SecureInfo.h index 2f9d755..8c89991 100644 --- a/src/Cedar/SecureInfo.h +++ b/src/Cedar/SecureInfo.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -118,7 +118,3 @@ #endif // SECUREINFO_H - -// 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/Cedar/SecureNAT.c b/src/Cedar/SecureNAT.c index fcef16c..5102124 100644 --- a/src/Cedar/SecureNAT.c +++ b/src/Cedar/SecureNAT.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -252,7 +252,3 @@ SNAT *SnNewSecureNAT(HUB *h, VH_OPTION *o) return s; } - -// 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/Cedar/SecureNAT.h b/src/Cedar/SecureNAT.h index 4f2d6f4..530b1bd 100644 --- a/src/Cedar/SecureNAT.h +++ b/src/Cedar/SecureNAT.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -132,7 +132,3 @@ void SnSecureNATThread(THREAD *t, void *param); #endif // SECURENAT_H - -// 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/Cedar/Server.c b/src/Cedar/Server.c index dcac885..2a100ec 100644 --- a/src/Cedar/Server.c +++ b/src/Cedar/Server.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -923,7 +923,11 @@ void SiWriteSysLog(SERVER *s, char *typestr, char *hubname, wchar_t *message) // Date and time LocalTime(&st); - GetDateTimeStrMilli(datetime, sizeof(datetime), &st); + if(s->StrictSyslogDatetimeFormat){ + GetDateTimeStrRFC3339(datetime, sizeof(datetime), &st, GetCurrentTimezone()); + }else{ + GetDateTimeStrMilli(datetime, sizeof(datetime), &st); + } if (IsEmptyStr(hubname) == false) { @@ -936,6 +940,8 @@ void SiWriteSysLog(SERVER *s, char *typestr, char *hubname, wchar_t *message) machinename, datetime, typestr, message); } + Debug("Syslog send: %S\n",tmp); + SendSysLog(s->Syslog, tmp); } @@ -2152,7 +2158,7 @@ void SiGenerateDefaultCertEx(X **server_x, K **server_k, char *common_name) name = NewName(cn, cn, cn, L"US", NULL, NULL); - x = NewRootX(public_key, private_key, name, MAX(GetDaysUntil2038(), SERVER_DEFAULT_CERT_DAYS), NULL); + x = NewRootX(public_key, private_key, name, GetDaysUntil2038Ex(), NULL); *server_x = x; *server_k = private_key; @@ -2577,6 +2583,9 @@ void SiLoadInitialConfiguration(SERVER *s) return; } + // Default to TLS only; mitigates CVE-2016-0800 + s->Cedar->SslAcceptSettings.AcceptOnlyTls = true; + // Auto saving interval related s->AutoSaveConfigSpan = SERVER_FILE_SAVE_INTERVAL_DEFAULT; s->BackupConfigOnlyWhenModified = true; @@ -4108,6 +4117,8 @@ void SiLoadHubOptionCfg(FOLDER *f, HUB_OPTION *o) o->SecureNAT_RandomizeAssignIp = CfgGetBool(f, "SecureNAT_RandomizeAssignIp"); o->DetectDormantSessionInterval = CfgGetInt(f, "DetectDormantSessionInterval"); o->NoPhysicalIPOnPacketLog = CfgGetBool(f, "NoPhysicalIPOnPacketLog"); + o->UseHubNameAsDhcpUserClassOption = CfgGetBool(f, "UseHubNameAsDhcpUserClassOption"); + o->UseHubNameAsRadiusNasId = CfgGetBool(f, "UseHubNameAsRadiusNasId"); // Enabled by default if (CfgIsItem(f, "ManageOnlyPrivateIP")) @@ -4208,6 +4219,8 @@ void SiWriteHubOptionCfg(FOLDER *f, HUB_OPTION *o) CfgAddBool(f, "DisableUserModeSecureNAT", o->DisableUserModeSecureNAT); CfgAddBool(f, "DisableCheckMacOnLocalBridge", o->DisableCheckMacOnLocalBridge); CfgAddBool(f, "DisableCorrectIpOffloadChecksum", o->DisableCorrectIpOffloadChecksum); + CfgAddBool(f, "UseHubNameAsDhcpUserClassOption", o->UseHubNameAsDhcpUserClassOption); + CfgAddBool(f, "UseHubNameAsRadiusNasId", o->UseHubNameAsRadiusNasId); } // Write the user @@ -5009,6 +5022,7 @@ void SiWriteHubCfg(FOLDER *f, HUB *h) CfgAddInt(f, "RadiusServerPort", h->RadiusServerPort); CfgAddInt(f, "RadiusRetryInterval", h->RadiusRetryInterval); CfgAddStr(f, "RadiusSuffixFilter", h->RadiusSuffixFilter); + CfgAddStr(f, "RadiusRealm", h->RadiusRealm); CfgAddBool(f, "RadiusConvertAllMsChapv2AuthRequestToEap", h->RadiusConvertAllMsChapv2AuthRequestToEap); CfgAddBool(f, "RadiusUsePeapInsteadOfEap", h->RadiusUsePeapInsteadOfEap); @@ -5177,6 +5191,7 @@ void SiLoadHubCfg(SERVER *s, FOLDER *f, char *name) interval = CfgGetInt(f, "RadiusRetryInterval"); CfgGetStr(f, "RadiusSuffixFilter", h->RadiusSuffixFilter, sizeof(h->RadiusSuffixFilter)); + CfgGetStr(f, "RadiusRealm", h->RadiusRealm, sizeof(h->RadiusRealm)); h->RadiusConvertAllMsChapv2AuthRequestToEap = CfgGetBool(f, "RadiusConvertAllMsChapv2AuthRequestToEap"); h->RadiusUsePeapInsteadOfEap = CfgGetBool(f, "RadiusUsePeapInsteadOfEap"); @@ -6156,7 +6171,20 @@ void SiLoadServerCfg(SERVER *s, FOLDER *f) SetGlobalServerFlag(GSF_DISABLE_SESSION_RECONNECT, CfgGetBool(f, "DisableSessionReconnect")); // AcceptOnlyTls - c->AcceptOnlyTls = CfgGetBool(f, "AcceptOnlyTls"); + if (CfgIsItem(f, "AcceptOnlyTls")) + { + c->SslAcceptSettings.AcceptOnlyTls = CfgGetBool(f, "AcceptOnlyTls"); + } + else + { + // Default to TLS only; mitigates CVE-2016-0800 + c->SslAcceptSettings.AcceptOnlyTls = true; + } + c->SslAcceptSettings.Tls_Disable1_0 = CfgGetBool(f, "Tls_Disable1_0"); + c->SslAcceptSettings.Tls_Disable1_1 = CfgGetBool(f, "Tls_Disable1_1"); + c->SslAcceptSettings.Tls_Disable1_2 = CfgGetBool(f, "Tls_Disable1_2"); + + s->StrictSyslogDatetimeFormat = CfgGetBool(f, "StrictSyslogDatetimeFormat"); } Unlock(c->lock); @@ -6465,10 +6493,15 @@ void SiWriteServerCfg(FOLDER *f, SERVER *s) CfgAddBool(f, "DisableGetHostNameWhenAcceptTcp", s->DisableGetHostNameWhenAcceptTcp); CfgAddBool(f, "DisableCoreDumpOnUnix", s->DisableCoreDumpOnUnix); - CfgAddBool(f, "AcceptOnlyTls", c->AcceptOnlyTls); + CfgAddBool(f, "AcceptOnlyTls", c->SslAcceptSettings.AcceptOnlyTls); + CfgAddBool(f, "Tls_Disable1_0", c->SslAcceptSettings.Tls_Disable1_0); + CfgAddBool(f, "Tls_Disable1_1", c->SslAcceptSettings.Tls_Disable1_1); + CfgAddBool(f, "Tls_Disable1_2", c->SslAcceptSettings.Tls_Disable1_2); // Disable session reconnect CfgAddBool(f, "DisableSessionReconnect", GetGlobalServerFlag(GSF_DISABLE_SESSION_RECONNECT)); + + CfgAddBool(f, "StrictSyslogDatetimeFormat", s->StrictSyslogDatetimeFormat); } Unlock(c->lock); } @@ -7542,6 +7575,8 @@ void SiCalledUpdateHub(SERVER *s, PACK *p) o.DisableUserModeSecureNAT = PackGetBool(p, "DisableUserModeSecureNAT"); o.DisableCheckMacOnLocalBridge = PackGetBool(p, "DisableCheckMacOnLocalBridge"); o.DisableCorrectIpOffloadChecksum = PackGetBool(p, "DisableCorrectIpOffloadChecksum"); + o.UseHubNameAsDhcpUserClassOption = PackGetBool(p, "UseHubNameAsDhcpUserClassOption"); + o.UseHubNameAsRadiusNasId = PackGetBool(p, "UseHubNameAsRadiusNasId"); save_packet_log = PackGetInt(p, "SavePacketLog"); packet_log_switch_type = PackGetInt(p, "PacketLogSwitchType"); @@ -9394,6 +9429,8 @@ void SiPackAddCreateHub(PACK *p, HUB *h) PackAddInt(p, "SecurityLogSwitchType", h->LogSetting.SecurityLogSwitchType); PackAddData(p, "HashedPassword", h->HashedPassword, SHA1_SIZE); PackAddData(p, "SecurePassword", h->SecurePassword, SHA1_SIZE); + PackAddBool(p, "UseHubNameAsDhcpUserClassOption", h->Option->UseHubNameAsDhcpUserClassOption); + PackAddBool(p, "UseHubNameAsRadiusNasId", h->Option->UseHubNameAsRadiusNasId); SiAccessListToPack(p, h->AccessList); @@ -11040,7 +11077,3 @@ SERVER *SiNewServerEx(bool bridge, bool in_client_inner_server, bool relay_serve return s; } - -// 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/Cedar/Server.h b/src/Cedar/Server.h index 547df58..bf04695 100644 --- a/src/Cedar/Server.h +++ b/src/Cedar/Server.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -129,7 +129,7 @@ #define SERVER_DEF_PORTS_INCLIENT_DYN_MAX 1999 extern char *SERVER_CONFIG_FILE_NAME; -#define SERVER_DEFAULT_CIPHER_NAME "RC4-MD5" +#define SERVER_DEFAULT_CIPHER_NAME "AES128-SHA" #define SERVER_DEFAULT_CERT_DAYS (365 * 10) #define SERVER_DEFAULT_HUB_NAME "DEFAULT" #define SERVER_DEFAULT_BRIDGE_NAME "BRIDGE" @@ -367,6 +367,8 @@ struct SERVER volatile UINT NatTGlobalUdpPort; // NAT-T global UDP port + + bool StrictSyslogDatetimeFormat; // Make syslog datetime format strict RFC3164 }; @@ -748,7 +750,3 @@ bool SiCheckCurrentRegion(CEDAR *c, char *r); - -// 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/Cedar/Session.c b/src/Cedar/Session.c index 580e67d..ed1d349 100644 --- a/src/Cedar/Session.c +++ b/src/Cedar/Session.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -2484,7 +2484,3 @@ void Notify(SESSION *s, UINT code) } - -// 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/Cedar/Session.h b/src/Cedar/Session.h index 87a2223..38163a7 100644 --- a/src/Cedar/Session.h +++ b/src/Cedar/Session.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -443,7 +443,3 @@ UINT GetNextDelayedPacketTickDiff(SESSION *s); - -// 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/Cedar/UT.c b/src/Cedar/UT.c index d9f7ab3..ede5d7f 100644 --- a/src/Cedar/UT.c +++ b/src/Cedar/UT.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -417,7 +417,3 @@ void UtSpeedMeterEx(void *hWnd) #endif // WIN32 - -// 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/Cedar/UT.h b/src/Cedar/UT.h index 91d6290..8440d2e 100644 --- a/src/Cedar/UT.h +++ b/src/Cedar/UT.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -136,7 +136,3 @@ void UtSpeedMeterEx(void *hWnd); #endif // UT_H - -// 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/Cedar/UdpAccel.c b/src/Cedar/UdpAccel.c index 8b5b595..757ce9b 100644 --- a/src/Cedar/UdpAccel.c +++ b/src/Cedar/UdpAccel.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -116,15 +116,17 @@ // Polling process void UdpAccelPoll(UDP_ACCEL *a) { - UCHAR *tmp = a->TmpBuf; IP nat_t_ip; UINT num_ignore_errors = 0; + UCHAR *tmp; // Validate arguments if (a == NULL) { return; } + tmp = a->TmpBuf; + Lock(a->NatT_Lock); { Copy(&nat_t_ip, &a->NatT_IP, sizeof(IP)); @@ -1198,7 +1200,3 @@ void FreeUdpAccel(UDP_ACCEL *a) Free(a); } - -// 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/Cedar/UdpAccel.h b/src/Cedar/UdpAccel.h index b22ccc9..e70dacd 100644 --- a/src/Cedar/UdpAccel.h +++ b/src/Cedar/UdpAccel.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -220,7 +220,3 @@ void NatT_GetIpThread(THREAD *thread, void *param); #endif // UDPACCEL_H - -// 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/Cedar/VG.c b/src/Cedar/VG.c index 77aa6c2..991be94 100644 --- a/src/Cedar/VG.c +++ b/src/Cedar/VG.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -129,7 +129,3 @@ void VgUseStaticLink() - -// 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/Cedar/VG.h b/src/Cedar/VG.h index 9595eee..cef84bf 100644 --- a/src/Cedar/VG.h +++ b/src/Cedar/VG.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -125,7 +125,3 @@ void VgUseStaticLink(); - -// 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/Cedar/VLan.c b/src/Cedar/VLan.c index 6e262b0..ae4ade2 100644 --- a/src/Cedar/VLan.c +++ b/src/Cedar/VLan.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -132,7 +132,3 @@ #endif // OS_WIN32 - -// 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/Cedar/VLan.h b/src/Cedar/VLan.h index 988f208..8e44a7f 100644 --- a/src/Cedar/VLan.h +++ b/src/Cedar/VLan.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -136,7 +136,3 @@ struct VLAN_PARAM #endif // VLAN_H - -// 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/Cedar/VLanUnix.c b/src/Cedar/VLanUnix.c index 0d38180..46a6c85 100644 --- a/src/Cedar/VLanUnix.c +++ b/src/Cedar/VLanUnix.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Contributors: // - nattoheaven (https://github.com/nattoheaven) // Comments: Tetsuo Sugiyama, Ph.D. @@ -857,7 +857,3 @@ void UnixVLanFree() #endif // VLAN_C - -// 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/Cedar/VLanUnix.h b/src/Cedar/VLanUnix.h index ab9b5d6..edbfe91 100644 --- a/src/Cedar/VLanUnix.h +++ b/src/Cedar/VLanUnix.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -168,7 +168,3 @@ int UnixCompareVLan(void *p1, void *p2); #endif // VLANUNIX_H - -// 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/Cedar/VLanWin32.c b/src/Cedar/VLanWin32.c index ac9eef7..dbb2b15 100644 --- a/src/Cedar/VLanWin32.c +++ b/src/Cedar/VLanWin32.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1618,7 +1618,3 @@ CLEANUP: #endif //VLAN_C - -// 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/Cedar/VLanWin32.h b/src/Cedar/VLanWin32.h index 9833dee..b752769 100644 --- a/src/Cedar/VLanWin32.h +++ b/src/Cedar/VLanWin32.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -198,7 +198,3 @@ void Win32ReleaseAllDhcp9x(bool wait); void Win32GetWinVer(RPC_WINVER *v); #endif // VLANWIN32_H - -// 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/Cedar/Virtual.c b/src/Cedar/Virtual.c index 2ce41b0..e28a773 100644 --- a/src/Cedar/Virtual.c +++ b/src/Cedar/Virtual.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1775,7 +1775,7 @@ void NnMainLoop(NATIVE_NAT *t, NATIVE_STACK *a) AddInterrupt(interrupt, next_poll_tick); tcp_last_recv_tick = Tick64(); - next_dhcp_renew_tick = Tick64() + (UINT64)dhcp_renew_interval; + next_dhcp_renew_tick = Tick64() + (UINT64)dhcp_renew_interval * 1000; AddInterrupt(interrupt, next_dhcp_renew_tick); while (t->Halt == false && t->v->UseNat) @@ -1833,7 +1833,7 @@ LABEL_RESTART: IPCDhcpRenewIP(ipc, &ip); - next_dhcp_renew_tick = now + (UINT64)dhcp_renew_interval; + next_dhcp_renew_tick = now + (UINT64)dhcp_renew_interval * 1000; AddInterrupt(interrupt, next_dhcp_renew_tick); } @@ -2250,6 +2250,7 @@ BUF *NnReadDnsRecord(BUF *buf, bool answer, USHORT *ret_type, USHORT *ret_class) data = Malloc(data_len); if (ReadBuf(buf, data, data_len) != data_len) { + Free(data); return false; } @@ -2386,7 +2387,6 @@ bool NnTestConnectivity(NATIVE_STACK *a, TUBE *halt_tube) UINT64 next_send_tick = 0; UINT64 giveup_time; IPC *ipc; - UINT src_port = NnGenSrcPort(a->IsIpRawMode); INTERRUPT_MANAGER *interrupt; TUBE *tubes[3]; UINT num_tubes = 0; @@ -2394,12 +2394,15 @@ bool NnTestConnectivity(NATIVE_STACK *a, TUBE *halt_tube) IP my_priv_ip; UINT num_send_dns = 0; IP using_dns; + UINT src_port = 0; // Validate arguments if (a == NULL) { return false; } + src_port = NnGenSrcPort(a->IsIpRawMode); + Copy(&using_dns, &a->DnsServerIP, sizeof(IP)); // Get my physical IP @@ -3997,15 +4000,17 @@ bool NatTransactIcmp(VH *v, NAT_ENTRY *n) void *buf; UINT recv_size; BLOCK *block; - UINT dest_port = n->DestPort; IP dest_ip; UINT num_ignore_errors = 0; + UINT dest_port = 0; // Validate arguments if (v == NULL || n == NULL) { return true; } + dest_port = n->DestPort; + if (n->DisconnectNow) { goto DISCONNECT; @@ -4200,15 +4205,17 @@ bool NatTransactUdp(VH *v, NAT_ENTRY *n) void *buf; UINT recv_size; BLOCK *block; - UINT dest_port = n->DestPort; IP dest_ip; UINT num_ignore_errors; + UINT dest_port = 0; // Validate arguments if (v == NULL || n == NULL) { return true; } + dest_port = n->DestPort; + if (n->DisconnectNow) { goto DISCONNECT; @@ -5429,7 +5436,7 @@ SCAN_FIRST: void ParseTcpOption(TCP_OPTION *o, void *data, UINT size) { UCHAR *buf = (UCHAR *)data; - UINT i; + UINT i = 0; UINT value_size = 0; UINT value_id = 0; UCHAR value[128]; @@ -5441,13 +5448,18 @@ void ParseTcpOption(TCP_OPTION *o, void *data, UINT size) Zero(o, sizeof(TCP_OPTION)); - for (i = 0;i < size;i++) + while(i < size) { if (buf[i] == 0) { return; } - if (buf[i] != 1) + else if (buf[i] == 1) + { + i++; + continue; + } + else { value_id = buf[i]; i++; @@ -5466,12 +5478,14 @@ void ParseTcpOption(TCP_OPTION *o, void *data, UINT size) return; } value_size -= 2; + Copy(value, &buf[i], value_size); i += value_size; - if (i >= size) + if (i > size) { return; } + switch (value_id) { case 2: // MSS @@ -5486,14 +5500,13 @@ void ParseTcpOption(TCP_OPTION *o, void *data, UINT size) if (value_size == 1) { UCHAR *wss = (UCHAR *)value; - o->WindowScaling = Endian16(*wss); + o->WindowScaling = *wss; } break; } } } - } // Create a new NAT TCP session @@ -6943,104 +6956,6 @@ NAT_ENTRY *CreateNatDns(VH *v, UINT src_ip, UINT src_port, UINT dest_ip, UINT de return n; } -// Get the next byte -UCHAR GetNextByte(BUF *b) -{ - UCHAR c = 0; - // Validate arguments - if (b == NULL) - { - return 0; - } - - if (ReadBuf(b, &c, 1) != 1) - { - return 0; - } - - return c; -} - -// Interpret the DNS query -bool ParseDnsQuery(char *name, UINT name_size, void *data, UINT data_size) -{ - BUF *b; - char tmp[257]; - bool ok = true; - USHORT val; - // Validate arguments - if (name == NULL || data == NULL || data_size == 0) - { - return false; - } - StrCpy(name, name_size, ""); - - b = NewBuf(); - WriteBuf(b, data, data_size); - SeekBuf(b, 0, 0); - - while (true) - { - UINT next_len = (UINT)GetNextByte(b); - if (next_len > 0) - { - // Read only the specified length - Zero(tmp, sizeof(tmp)); - if (ReadBuf(b, tmp, next_len) != next_len) - { - ok = false; - break; - } - // Append - if (StrLen(name) != 0) - { - StrCat(name, name_size, "."); - } - StrCat(name, name_size, tmp); - } - else - { - // Read all - break; - } - } - - if (ReadBuf(b, &val, sizeof(val)) != sizeof(val)) - { - ok = false; - } - else - { - if (Endian16(val) != 0x01 && Endian16(val) != 0x0c) - { - ok = false; - } - } - - if (ReadBuf(b, &val, sizeof(val)) != sizeof(val)) - { - ok = false; - } - else - { - if (Endian16(val) != 0x01) - { - ok = false; - } - } - - FreeBuf(b); - - if (ok == false || StrLen(name) == 0) - { - return false; - } - else - { - return true; - } -} - // Set the VGS host name void SetDnsProxyVgsHostname(char *hostname) { @@ -10409,7 +10324,3 @@ PACKET_ADAPTER *VirtualGetPacketAdapter() } - -// 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/Cedar/Virtual.h b/src/Cedar/Virtual.h index 5e3cbc4..780658a 100644 --- a/src/Cedar/Virtual.h +++ b/src/Cedar/Virtual.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -594,9 +594,7 @@ void SendTcp(VH *v, UINT src_ip, UINT src_port, UINT dest_ip, UINT dest_port, UI void DnsProxy(VH *v, UINT src_ip, UINT src_port, UINT dest_ip, UINT dest_port, void *data, UINT size); bool ParseDnsPacket(VH *v, UINT src_ip, UINT src_port, UINT dest_ip, UINT dest_port, void *data, UINT size); bool ParseDnsPacketEx(VH *v, UINT src_ip, UINT src_port, UINT dest_ip, UINT dest_port, void *data, UINT size, DNS_PARSED_PACKET *parsed_result); -bool ParseDnsQuery(char *name, UINT name_size, void *data, UINT data_size); void SetDnsProxyVgsHostname(char *hostname); -UCHAR GetNextByte(BUF *b); bool NatTransactDns(VH *v, NAT_ENTRY *n); void NatDnsThread(THREAD *t, void *param); bool NatGetIP(IP *ip, char *hostname); @@ -698,7 +696,3 @@ void NnSetSecureNatTargetHostname(char *name); #endif // VIRTUAL_H - -// 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/Cedar/WaterMark.c b/src/Cedar/WaterMark.c index be47182..9699dc7 100644 --- a/src/Cedar/WaterMark.c +++ b/src/Cedar/WaterMark.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -4410,7 +4410,3 @@ UINT SizeOfSaitama() - -// 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/Cedar/WaterMark.h b/src/Cedar/WaterMark.h index 40009d8..8989363 100644 --- a/src/Cedar/WaterMark.h +++ b/src/Cedar/WaterMark.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -134,7 +134,3 @@ UINT SizeOfSaitama(); #endif // WATERMARK_H - -// 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/Cedar/WebUI.c b/src/Cedar/WebUI.c index e488835..21e315c 100644 --- a/src/Cedar/WebUI.c +++ b/src/Cedar/WebUI.c @@ -1,11 +1,11 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // @@ -1725,13 +1725,15 @@ static wchar_t *WuUniReadFile(char *filename) static void WuUniReplace(wchar_t **buf, wchar_t *from, wchar_t *to) { UINT dstsize; - wchar_t *oldbuf = *buf; + wchar_t *oldbuf; if(buf == NULL || from == NULL || to == NULL) { return; } + oldbuf = *buf; + dstsize = (UniCalcReplaceStrEx(*buf, from, to, true) + 1) * sizeof(wchar_t); *buf = (wchar_t*)Malloc(dstsize); UniReplaceStr(*buf, dstsize, oldbuf, from, to); @@ -1985,7 +1987,3 @@ static WU_CONTEXT *WuGetContext(LIST *contexts, char *sessionkey) } return ret; } - -// 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/Cedar/WebUI.h b/src/Cedar/WebUI.h index 3d0e2e4..f866e57 100644 --- a/src/Cedar/WebUI.h +++ b/src/Cedar/WebUI.h @@ -1,11 +1,11 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // @@ -143,7 +143,3 @@ WEBUI *WuNewWebUI(CEDAR *cedar); WU_WEBPAGE *WuGetPage(char *target, WEBUI *wu); void WuFreeWebPage(WU_WEBPAGE *page); - -// 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/Cedar/Win32Com.cpp b/src/Cedar/Win32Com.cpp index bc691b7..1100854 100644 --- a/src/Cedar/Win32Com.cpp +++ b/src/Cedar/Win32Com.cpp @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1131,7 +1131,3 @@ void ShowHtml(HWND hWnd, char *url, wchar_t *option) } #endif - -// 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/Cedar/Win32Com.h b/src/Cedar/Win32Com.h index bc6f592..fdfa814 100644 --- a/src/Cedar/Win32Com.h +++ b/src/Cedar/Win32Com.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -426,7 +426,3 @@ public: #endif // WIN32COM_H - -// 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/Cedar/WinJumpList.cpp b/src/Cedar/WinJumpList.cpp index 3de29c1..876f3a1 100644 --- a/src/Cedar/WinJumpList.cpp +++ b/src/Cedar/WinJumpList.cpp @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -783,7 +783,3 @@ CT_ARGB32 CT_GetAAPix32(UCHAR* srcPtr, int width, int height, int xFix, int yFix // - -// 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/Cedar/WinUi.c b/src/Cedar/WinUi.c index 3c751a3..d6c7137 100644 --- a/src/Cedar/WinUi.c +++ b/src/Cedar/WinUi.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -462,6 +462,10 @@ WINUI_UPDATE *InitUpdateUi(wchar_t *title, char *name, char *family_name, UINT64 { return NULL; } + if (MsIsWine()) + { + return false; + } if (IsEmptyStr(family_name)) { family_name = UPDATE_FAMILY_NAME; @@ -3143,9 +3147,57 @@ void InitDialogInternational(HWND hWnd, void *pparam) if (hControl != NULL) { + bool set_font = true; HFONT hFont = GetDialogDefaultFontEx(param && ((DIALOG_PARAM *)param)->meiryo); - SetFont(hControl, 0, hFont); + if (MsIsWine()) + { + char classname[MAX_PATH]; + char parent_classname[MAX_PATH]; + HWND hParent = GetParent(hControl); + + Zero(classname, sizeof(classname)); + Zero(parent_classname, sizeof(parent_classname)); + + GetClassNameA(hControl, classname, sizeof(classname)); + + if (hParent != NULL) + { + GetClassNameA(hParent, parent_classname, sizeof(parent_classname)); + } + + if (StrCmpi(classname, "edit") == 0) + { + set_font = false; + } + + if (StrCmpi(classname, "combobox") == 0) + { + set_font = false; + } + + if (StrCmpi(classname, "syslistview32") == 0) + { + set_font = false; + } + + if (StrCmpi(classname, "sysheader32") == 0) + { + set_font = false; + } + + if (StrCmpi(parent_classname, "SysIPAddress32") == 0 || + StrCmpi(classname, "SysIPAddress32") == 0) + { + set_font = true; + hFont = GetFont("Tahoma", 8, false, false, false, false); + } + } + + if (set_font) + { + SetFont(hControl, 0, hFont); + } if (MsIsVista()) { @@ -3727,6 +3779,11 @@ void AboutDlgInit(HWND hWnd, WINUI_ABOUT *a) SetFont(hWnd, S_INFO3, GetFont("Arial", 7, false, false, false, false)); + if (MsIsWine()) + { + Disable(hWnd, B_LANGUAGE); + } + //DlgFont(hWnd, S_INFO4, 8, false); SetShow(hWnd, B_UPDATE_CONFIG, (a->Update != NULL)); @@ -11424,7 +11481,3 @@ void FreeWinUi() } #endif // WIN32 - -// 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/Cedar/WinUi.h b/src/Cedar/WinUi.h index 630e514..d0b39db 100644 --- a/src/Cedar/WinUi.h +++ b/src/Cedar/WinUi.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -204,7 +204,7 @@ typedef struct WINUI_SECURE_BATCH X *OutputX; // Output certificate K *InputK; // Input secret key LIST *EnumList; // Enumerated list - UCHAR OutputSign[128]; // Output signature + UCHAR OutputSign[4096 / 8]; // Output signature bool Succeed; // Success flag } WINUI_SECURE_BATCH; @@ -934,7 +934,3 @@ void ShowTextFile(HWND hWnd, char *filename, wchar_t *caption, UINT icon); #endif // OS_WIN32 - -// 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/Cedar/Wpc.c b/src/Cedar/Wpc.c index 17a337b..9a3e5be 100644 --- a/src/Cedar/Wpc.c +++ b/src/Cedar/Wpc.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -163,6 +163,14 @@ PACK *WpcCall(char *url, INTERNET_SETTING *setting, UINT timeout_connect, UINT t 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 *additional_header_name, char *additional_header_value) +{ + return WpcCallEx2(url, setting, timeout_connect, timeout_comm, function_name, pack, + cert, key, sha1_cert_hash, (sha1_cert_hash == NULL ? 0 : 1), + cancel, max_recv_size, additional_header_name, additional_header_value, NULL); +} +PACK *WpcCallEx2(char *url, INTERNET_SETTING *setting, UINT timeout_connect, UINT timeout_comm, + char *function_name, PACK *pack, X *cert, K *key, void *sha1_cert_hash, UINT num_hashes, bool *cancel, UINT max_recv_size, + char *additional_header_name, char *additional_header_value, char *sni_string) { URL_DATA data; BUF *b, *recv; @@ -197,8 +205,14 @@ PACK *WpcCallEx(char *url, INTERNET_SETTING *setting, UINT timeout_connect, UINT 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); + if (sni_string != NULL && IsEmptyStr(sni_string) == false) + { + StrCpy(data.SniString, sizeof(data.SniString), sni_string); + } + + recv = HttpRequestEx3(&data, setting, timeout_connect, timeout_comm, &error, + false, b->Buf, NULL, NULL, sha1_cert_hash, num_hashes, cancel, max_recv_size, + NULL, NULL); FreeBuf(b); @@ -693,6 +707,16 @@ BUF *HttpRequestEx2(URL_DATA *data, INTERNET_SETTING *setting, UINT *error_code, bool check_ssl_trust, char *post_data, WPC_RECV_CALLBACK *recv_callback, void *recv_callback_param, void *sha1_cert_hash, bool *cancel, UINT max_recv_size, char *header_name, char *header_value) +{ + return HttpRequestEx3(data, setting, timeout_connect, timeout_comm, error_code, check_ssl_trust, + post_data, recv_callback, recv_callback_param, sha1_cert_hash, (sha1_cert_hash == NULL ? 0 : 1), + cancel, max_recv_size, header_name, header_value); +} +BUF *HttpRequestEx3(URL_DATA *data, INTERNET_SETTING *setting, + UINT timeout_connect, UINT timeout_comm, + UINT *error_code, bool check_ssl_trust, char *post_data, + WPC_RECV_CALLBACK *recv_callback, void *recv_callback_param, void *sha1_cert_hash, UINT num_hashes, + bool *cancel, UINT max_recv_size, char *header_name, char *header_value) { WPC_CONNECT con; SOCK *s; @@ -728,6 +752,14 @@ BUF *HttpRequestEx2(URL_DATA *data, INTERNET_SETTING *setting, { timeout_comm = WPC_TIMEOUT; } + if (sha1_cert_hash == NULL) + { + num_hashes = 0; + } + if (num_hashes == 0) + { + sha1_cert_hash = NULL; + } // Connection Zero(&con, sizeof(con)); @@ -773,7 +805,7 @@ BUF *HttpRequestEx2(URL_DATA *data, INTERNET_SETTING *setting, if (data->Secure) { // Start the SSL communication - if (StartSSLEx(s, NULL, NULL, true, 0, NULL) == false) + if (StartSSLEx(s, NULL, NULL, true, 0, (IsEmptyStr(data->SniString) ? NULL : data->SniString)) == false) { // SSL connection failed *error_code = ERR_PROTOCOL_ERROR; @@ -782,13 +814,28 @@ BUF *HttpRequestEx2(URL_DATA *data, INTERNET_SETTING *setting, return NULL; } - if (sha1_cert_hash != NULL) + if (sha1_cert_hash != NULL && num_hashes >= 1) { UCHAR hash[SHA1_SIZE]; + UINT i; + bool ok = false; + Zero(hash, sizeof(hash)); GetXDigest(s->RemoteX, hash, true); - if (Cmp(hash, sha1_cert_hash, SHA1_SIZE) != 0) + for (i = 0;i < num_hashes;i++) + { + UCHAR *a = (UCHAR *)sha1_cert_hash; + a += (SHA1_SIZE * i); + + if (Cmp(hash, a, SHA1_SIZE) == 0) + { + ok = true; + break; + } + } + + if (ok == false) { // Destination certificate hash mismatch *error_code = ERR_CERT_NOT_TRUSTED; @@ -1362,7 +1409,3 @@ void EncodeSafe64(char *dst, void *src, UINT src_size) Base64ToSafe64(dst); } - -// 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/Cedar/Wpc.h b/src/Cedar/Wpc.h index 98a2a4a..6353d3b 100644 --- a/src/Cedar/Wpc.h +++ b/src/Cedar/Wpc.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -159,6 +159,7 @@ struct URL_DATA char Referer[MAX_SIZE * 3]; // Referer char AdditionalHeaderName[128]; // Additional header name char AdditionalHeaderValue[MAX_SIZE]; // Additional header value + char SniString[MAX_SIZE]; // SNI String }; // WPC entry @@ -204,6 +205,11 @@ BUF *HttpRequestEx2(URL_DATA *data, INTERNET_SETTING *setting, UINT *error_code, bool check_ssl_trust, char *post_data, WPC_RECV_CALLBACK *recv_callback, void *recv_callback_param, void *sha1_cert_hash, bool *cancel, UINT max_recv_size, char *header_name, char *header_value); +BUF *HttpRequestEx3(URL_DATA *data, INTERNET_SETTING *setting, + UINT timeout_connect, UINT timeout_comm, + UINT *error_code, bool check_ssl_trust, char *post_data, + WPC_RECV_CALLBACK *recv_callback, void *recv_callback_param, void *sha1_cert_hash, UINT num_hashes, + bool *cancel, UINT max_recv_size, char *header_name, char *header_value); SOCK *WpcSockConnect(WPC_CONNECT *param, UINT *error_code, UINT timeout); SOCK *WpcSockConnectEx(WPC_CONNECT *param, UINT *error_code, UINT timeout, bool *cancel); SOCK *WpcSockConnect2(char *hostname, UINT port, INTERNET_SETTING *t, UINT *error_code, UINT timeout); @@ -223,12 +229,11 @@ PACK *WpcCall(char *url, INTERNET_SETTING *setting, UINT timeout_connect, UINT t 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 *additional_header_name, char *additional_header_value); +PACK *WpcCallEx2(char *url, INTERNET_SETTING *setting, UINT timeout_connect, UINT timeout_comm, + char *function_name, PACK *pack, X *cert, K *key, void *sha1_cert_hash, UINT num_hashes, bool *cancel, UINT max_recv_size, + char *additional_header_name, char *additional_header_value, char *sni_string); bool IsProxyPrivateIp(INTERNET_SETTING *s); #endif // WPC_H - -// 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/CurrentBuild.txt b/src/CurrentBuild.txt index c42ca1b..33b6151 100644 --- a/src/CurrentBuild.txt +++ b/src/CurrentBuild.txt @@ -1,4 +1,4 @@ -BUILD_NUMBER 9608 -VERSION 420 +BUILD_NUMBER 9656 +VERSION 425 BUILD_NAME rtm -BUILD_DATE 20160417_205826 +BUILD_DATE 20180115_093322 diff --git a/src/GlobalConst.h b/src/GlobalConst.h index ff33640..24bb856 100644 --- a/src/GlobalConst.h +++ b/src/GlobalConst.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Global Constants Header // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -175,7 +175,3 @@ #endif // GLOBAL_CONST_H - -// 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/Ham/Ham.vcproj b/src/Ham/Ham.vcproj index 0cf4a04..c4529f7 100644 --- a/src/Ham/Ham.vcproj +++ b/src/Ham/Ham.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir);$(SolutionDir)Mayaqua" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -232,7 +232,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir);$(SolutionDir)Mayaqua" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/LICENSE.TXT b/src/LICENSE.TXT index a919c97..a93edd0 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-2015 Daiyuu Nobori. -Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. -Copyright (c) 2012-2015 SoftEther Corporation. +Copyright (c) Daiyuu Nobori. +Copyright (c) SoftEther Project at University of Tsukuba, Japan. +Copyright (c) SoftEther Corporation. All Rights Reserved. http://www.softether.org/ diff --git a/src/Mayaqua/Cfg.c b/src/Mayaqua/Cfg.c index 66a0f74..676a30b 100644 --- a/src/Mayaqua/Cfg.c +++ b/src/Mayaqua/Cfg.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -385,6 +385,34 @@ bool FileCopyExW(wchar_t *src, wchar_t *dst, bool read_lock) return ret; } +bool FileCopyExWithEofW(wchar_t *src, wchar_t *dst, bool read_lock) +{ + BUF *b; + bool ret = false; + // Validate arguments + if (src == NULL || dst == NULL) + { + return false; + } + + b = ReadDumpExW(src, false); + if (b == NULL) + { + return false; + } + + SeekBuf(b, b->Size, 0); + + WriteBufChar(b, 0x1A); + + SeekBuf(b, 0, 0); + + ret = DumpBufW(b, dst); + + FreeBuf(b); + + return ret; +} // Save the settings to a file void CfgSave(FOLDER *f, char *name) @@ -459,7 +487,8 @@ bool CfgSaveExW3(CFG_RW *rw, FOLDER *f, wchar_t *name, UINT *written_size, bool // Generate a temporary file name UniFormat(tmp, sizeof(tmp), L"%s.log", name); // Copy the file that currently exist to a temporary file - FileCopyW(name, tmp); + // with appending the EOF + FileCopyExWithEofW(name, tmp, true); // Save the new file o = FileCreateW(name); @@ -481,6 +510,7 @@ bool CfgSaveExW3(CFG_RW *rw, FOLDER *f, wchar_t *name, UINT *written_size, bool { // Successful saving file FileClose(o); + // Delete the temporary file FileDeleteW(tmp); } @@ -528,6 +558,7 @@ FOLDER *CfgReadW(wchar_t *name) bool binary_file = false; bool invalid_file = false; UCHAR header[8]; + bool has_eof = false; // Validate arguments if (name == NULL) { @@ -543,8 +574,31 @@ FOLDER *CfgReadW(wchar_t *name) o = FileOpenW(newfile, false); if (o == NULL) { + UINT size; // Read the temporary file o = FileOpenW(tmp, false); + + if (o != NULL) + { + // Check the EOF + size = FileSize(o); + if (size >= 2) + { + char c; + + if (FileSeek(o, FILE_BEGIN, size - 1) && FileRead(o, &c, 1) && c == 0x1A && FileSeek(o, FILE_BEGIN, 0)) + { + // EOF ok + has_eof = true; + } + else + { + // No EOF: file is corrupted + FileClose(o); + o = NULL; + } + } + } } else { @@ -577,6 +631,11 @@ FOLDER *CfgReadW(wchar_t *name) // Read into the buffer size = FileSize(o); + if (has_eof) + { + // Ignore EOF + size -= 1; + } buf = Malloc(size); FileRead(o, buf, size); b = NewBuf(); @@ -2368,7 +2427,3 @@ FOLDER *CfgCreateFolder(FOLDER *parent, char *name) } - -// 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/Cfg.h b/src/Mayaqua/Cfg.h index 793f111..21b0824 100644 --- a/src/Mayaqua/Cfg.h +++ b/src/Mayaqua/Cfg.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -275,7 +275,3 @@ ITEM *CfgAddIp(FOLDER *f, char *name, struct IP *ip); - -// 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.c b/src/Mayaqua/Encrypt.c index 91331b2..f3b3908 100644 --- a/src/Mayaqua/Encrypt.c +++ b/src/Mayaqua/Encrypt.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -165,52 +165,64 @@ typedef struct CB_PARAM } CB_PARAM; // Copied from t1_enc.c of OpenSSL -#define HMAC_Init_ex(ctx,sec,len,md,impl) HMAC_Init(ctx, sec, len, md) -#define HMAC_CTX_cleanup(ctx) HMAC_cleanup(ctx) void Enc_tls1_P_hash(const EVP_MD *md, const unsigned char *sec, int sec_len, const unsigned char *seed, int seed_len, unsigned char *out, int olen) { int chunk,n; unsigned int j; - HMAC_CTX ctx; - HMAC_CTX ctx_tmp; + HMAC_CTX *ctx; + HMAC_CTX *ctx_tmp; unsigned char A1[EVP_MAX_MD_SIZE]; unsigned int A1_len; +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + ctx = HMAC_CTX_new(); + ctx_tmp = HMAC_CTX_new(); +#else + HMAC_CTX ctx_; + HMAC_CTX ctx_tmp_; + ctx = &ctx_; + ctx_tmp = &ctx_tmp_; + Zero(ctx, sizeof(HMAC_CTX)); + Zero(ctx_tmp, sizeof(HMAC_CTX)); +#endif chunk=EVP_MD_size(md); - Zero(&ctx, sizeof(ctx)); - Zero(&ctx_tmp, sizeof(ctx_tmp)); - HMAC_Init_ex(&ctx,sec,sec_len,md, NULL); - HMAC_Init_ex(&ctx_tmp,sec,sec_len,md, NULL); - HMAC_Update(&ctx,seed,seed_len); - HMAC_Final(&ctx,A1,&A1_len); + HMAC_Init_ex(ctx,sec,sec_len,md, NULL); + HMAC_Init_ex(ctx_tmp,sec,sec_len,md, NULL); + HMAC_Update(ctx,seed,seed_len); + HMAC_Final(ctx,A1,&A1_len); n=0; for (;;) { - HMAC_Init_ex(&ctx,NULL,0,NULL,NULL); /* re-init */ - HMAC_Init_ex(&ctx_tmp,NULL,0,NULL,NULL); /* re-init */ - HMAC_Update(&ctx,A1,A1_len); - HMAC_Update(&ctx_tmp,A1,A1_len); - HMAC_Update(&ctx,seed,seed_len); + HMAC_Init_ex(ctx,NULL,0,NULL,NULL); /* re-init */ + HMAC_Init_ex(ctx_tmp,NULL,0,NULL,NULL); /* re-init */ + HMAC_Update(ctx,A1,A1_len); + HMAC_Update(ctx_tmp,A1,A1_len); + HMAC_Update(ctx,seed,seed_len); if (olen > chunk) { - HMAC_Final(&ctx,out,&j); + HMAC_Final(ctx,out,&j); out+=j; olen-=j; - HMAC_Final(&ctx_tmp,A1,&A1_len); /* calc the next A1 value */ + HMAC_Final(ctx_tmp,A1,&A1_len); /* calc the next A1 value */ } else /* last one */ { - HMAC_Final(&ctx,A1,&A1_len); + HMAC_Final(ctx,A1,&A1_len); memcpy(out,A1,olen); break; } } - HMAC_CTX_cleanup(&ctx); - HMAC_CTX_cleanup(&ctx_tmp); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + HMAC_CTX_free(ctx); + HMAC_CTX_free(ctx_tmp); +#else + HMAC_CTX_cleanup(ctx); + HMAC_CTX_cleanup(ctx_tmp); +#endif Zero (A1, sizeof(A1)); } @@ -457,7 +469,7 @@ void MdProcess(MD *md, void *dest, void *src, UINT size) return; } - HMAC_Init(md->Ctx, NULL, 0, NULL); + HMAC_Init_ex(md->Ctx, NULL, 0, NULL, NULL); HMAC_Update(md->Ctx, src, size); r = 0; @@ -473,7 +485,7 @@ void SetMdKey(MD *md, void *key, UINT key_size) return; } - HMAC_Init(md->Ctx, key, key_size, md->Md); + HMAC_Init_ex(md->Ctx, key, key_size, (const EVP_MD *)md->Md, NULL); } // Creating a message digest object @@ -489,17 +501,21 @@ MD *NewMd(char *name) m = ZeroMalloc(sizeof(MD)); StrCpy(m->Name, sizeof(m->Name), name); - m->Md = EVP_get_digestbyname(name); + m->Md = (const struct evp_md_st *)EVP_get_digestbyname(name); if (m->Md == NULL) { FreeMd(m); return NULL; } +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + m->Ctx = HMAC_CTX_new(); +#else m->Ctx = ZeroMalloc(sizeof(struct hmac_ctx_st)); HMAC_CTX_init(m->Ctx); +#endif - m->Size = EVP_MD_size(m->Md); + m->Size = EVP_MD_size((const EVP_MD *)m->Md); return m; } @@ -515,8 +531,12 @@ void FreeMd(MD *md) if (md->Ctx != NULL) { +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + HMAC_CTX_free(md->Ctx); +#else HMAC_CTX_cleanup(md->Ctx); Free(md->Ctx); +#endif } Free(md); @@ -551,8 +571,12 @@ CIPHER *NewCipher(char *name) return NULL; } +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + c->Ctx = EVP_CIPHER_CTX_new(); +#else c->Ctx = ZeroMalloc(sizeof(struct evp_cipher_ctx_st)); EVP_CIPHER_CTX_init(c->Ctx); +#endif c->BlockSize = EVP_CIPHER_block_size(c->Cipher); c->KeySize = EVP_CIPHER_key_length(c->Cipher); @@ -629,188 +653,26 @@ void FreeCipher(CIPHER *c) if (c->Ctx != NULL) { +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + EVP_CIPHER_CTX_free(c->Ctx); +#else EVP_CIPHER_CTX_cleanup(c->Ctx); Free(c->Ctx); +#endif } Free(c); } -// Verify whether the certificate is disabled by CRL in a particular directory -bool IsXRevoked(X *x) -{ - char dirname[MAX_PATH]; - UINT i; - bool ret = false; - DIRLIST *t; - // Validate arguments - if (x == NULL) - { - return false; - } - - GetExeDir(dirname, sizeof(dirname)); - - // Search the CRL file - t = EnumDir(dirname); - - for (i = 0;i < t->NumFiles;i++) - { - char *name = t->File[i]->FileName; - if (t->File[i]->Folder == false) - { - if (EndWith(name, ".crl")) - { - char filename[MAX_PATH]; - X_CRL *r; - - ConbinePath(filename, sizeof(filename), dirname, name); - - r = FileToXCrl(filename); - - if (r != NULL) - { - if (IsXRevokedByXCrl(x, r)) - { - ret = true; - } - - FreeXCrl(r); - } - } - } - } - - FreeDir(t); - - return ret; -} - -// Verify whether the certificate is disabled by the CRL -bool IsXRevokedByXCrl(X *x, X_CRL *r) -{ -#ifdef OS_WIN32 - X509_REVOKED tmp; - X509_CRL_INFO *info; - int index; - // Validate arguments - if (x == NULL || r == NULL) - { - return false; - } - - Zero(&tmp, sizeof(tmp)); - tmp.serialNumber = X509_get_serialNumber(x->x509); - - info = r->Crl->crl; - - if (sk_X509_REVOKED_is_sorted(info->revoked) == false) - { - sk_X509_REVOKED_sort(info->revoked); - } - - index = sk_X509_REVOKED_find(info->revoked, &tmp); - - if (index < 0) - { - return false; - } - else - { - return true; - } -#else // OS_WIN32 - return false; -#endif // OS_WIN32 -} - -// Release of the CRL -void FreeXCrl(X_CRL *r) -{ - // Validate arguments - if (r == NULL) - { - return; - } - - X509_CRL_free(r->Crl); - - Free(r); -} - -// Convert a file to a CRL -X_CRL *FileToXCrl(char *filename) -{ - wchar_t *filename_w = CopyStrToUni(filename); - X_CRL *ret = FileToXCrlW(filename_w); - - Free(filename_w); - - return ret; -} -X_CRL *FileToXCrlW(wchar_t *filename) -{ - BUF *b; - X_CRL *r; - // Validate arguments - if (filename == NULL) - { - return NULL; - } - - b = ReadDumpW(filename); - if (b == NULL) - { - return NULL; - } - - r = BufToXCrl(b); - - FreeBuf(b); - - return r; -} - -// Convert the buffer to the CRL -X_CRL *BufToXCrl(BUF *b) -{ - X_CRL *r; - X509_CRL *x509crl; - BIO *bio; - // Validate arguments - if (b == NULL) - { - return NULL; - } - - bio = BufToBio(b); - if (bio == NULL) - { - return NULL; - } - - x509crl = NULL; - - if (d2i_X509_CRL_bio(bio, &x509crl) == NULL || x509crl == NULL) - { - FreeBio(bio); - return NULL; - } - - r = ZeroMalloc(sizeof(X_CRL)); - r->Crl = x509crl; - - FreeBio(bio); - - return r; -} - // Convert the buffer to the public key K *RsaBinToPublic(void *data, UINT size) { RSA *rsa; K *k; BIO *bio; +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + BIGNUM *e, *n; +#endif // Validate arguments if (data == NULL || size < 4) { @@ -819,6 +681,14 @@ K *RsaBinToPublic(void *data, UINT size) rsa = RSA_new(); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + e = BN_new(); + BN_set_word(e, RSA_F4); + + n = BinToBigNum(data, size); + + RSA_set0_key(rsa, n, e, NULL); +#else if (rsa->e != NULL) { BN_free(rsa->e); @@ -833,6 +703,7 @@ K *RsaBinToPublic(void *data, UINT size) } rsa->n = BinToBigNum(data, size); +#endif bio = NewBio(); Lock(openssl_lock); @@ -853,14 +724,39 @@ K *RsaBinToPublic(void *data, UINT size) BUF *RsaPublicToBuf(K *k) { BUF *b; +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + RSA *rsa; + const BIGNUM *n; +#endif // Validate arguments - if (k == NULL || k->pkey == NULL || k->pkey->pkey.rsa == NULL - || k->pkey->pkey.rsa->n == NULL) + if (k == NULL || k->pkey == NULL) + { + return NULL; + } + +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + rsa = EVP_PKEY_get0_RSA(k->pkey); + if (rsa == NULL) + { + return NULL; + } + + RSA_get0_key(rsa, &n, NULL, NULL); + if (n == NULL) + { + return NULL; + } + + b = BigNumToBuf(n); +#else + if (k->pkey->pkey.rsa == NULL || k->pkey->pkey.rsa->n == NULL) { return NULL; } b = BigNumToBuf(k->pkey->pkey.rsa->n); +#endif + if (b == NULL) { return NULL; @@ -874,13 +770,12 @@ void RsaPublicToBin(K *k, void *data) { BUF *b; // Validate arguments - if (k == NULL || k->pkey == NULL || k->pkey->pkey.rsa == NULL - || k->pkey->pkey.rsa->n == NULL || data == NULL) + if (data == NULL) { return; } - b = BigNumToBuf(k->pkey->pkey.rsa->n); + b = RsaPublicToBuf(k); if (b == NULL) { return; @@ -896,14 +791,8 @@ UINT RsaPublicSize(K *k) { BUF *b; UINT ret; - // Validate arguments - if (k == NULL || k->pkey == NULL || k->pkey->pkey.rsa == NULL - || k->pkey->pkey.rsa->n == NULL) - { - return 0; - } - b = BigNumToBuf(k->pkey->pkey.rsa->n); + b = RsaPublicToBuf(k); if (b == NULL) { return 0; @@ -1017,7 +906,7 @@ BIGNUM *BufToBigNum(BUF *b) } // Convert a BIGNUM to a buffer -BUF *BigNumToBuf(BIGNUM *bn) +BUF *BigNumToBuf(const BIGNUM *bn) { UINT size; UCHAR *tmp; @@ -1818,6 +1707,40 @@ UINT GetDaysUntil2038() return (UINT)((target - now) / (UINT64)(1000 * 60 * 60 * 24)); } } +UINT GetDaysUntil2038Ex() +{ + SYSTEMTIME now; + + Zero(&now, sizeof(now)); + SystemTime(&now); + + if (now.wYear >= 2030) + { + UINT64 now = SystemTime64(); + UINT64 target; + SYSTEMTIME st; + + Zero(&st, sizeof(st)); + st.wYear = 2049; + st.wMonth = 12; + st.wDay = 30; + + target = SystemToUINT64(&st); + + if (now >= target) + { + return 0; + } + else + { + return (UINT)((target - now) / (UINT64)(1000 * 60 * 60 * 24)); + } + } + else + { + return GetDaysUntil2038(); + } +} // Issue an X509 certificate X *NewX(K *pub, K *priv, X *ca, NAME *name, UINT days, X_SERIAL *serial) @@ -1956,6 +1879,7 @@ X509 *NewX509(K *pub, K *priv, X *ca, NAME *name, UINT days, X_SERIAL *serial) X509_EXTENSION *ex = NULL; X509_EXTENSION *eku = NULL; X509_EXTENSION *busage = NULL; + ASN1_INTEGER *s; // Validate arguments if (pub == NULL || name == NULL || ca == NULL) { @@ -2018,19 +1942,17 @@ X509 *NewX509(K *pub, K *priv, X *ca, NAME *name, UINT days, X_SERIAL *serial) FreeX509Name(subject_name); // Set the Serial Number + s = X509_get_serialNumber(x509); + OPENSSL_free(s->data); if (serial == NULL) { char zero = 0; - ASN1_INTEGER *s = x509->cert_info->serialNumber; - OPENSSL_free(s->data); s->data = OPENSSL_malloc(sizeof(char)); Copy(s->data, &zero, sizeof(char)); s->length = sizeof(char); } else { - ASN1_INTEGER *s = x509->cert_info->serialNumber; - OPENSSL_free(s->data); s->data = OPENSSL_malloc(serial->size); Copy(s->data, serial->data, serial->size); s->length = serial->size; @@ -2059,6 +1981,18 @@ X509 *NewX509(K *pub, K *priv, X *ca, NAME *name, UINT days, X_SERIAL *serial) X509_EXTENSION_free(eku); } + // Alternative subject name + if (UniIsEmptyStr(name->CommonName) == false) + { + char alt_dns[MAX_PATH]; + + Format(alt_dns, sizeof(alt_dns), "DNS.1:%S", name->CommonName); + + ex = X509V3_EXT_conf_nid(NULL, NULL, NID_subject_alt_name, alt_dns); + X509_add_ext(x509, ex, -1); + X509_EXTENSION_free(ex); + } + Lock(openssl_lock); { // Set the public key @@ -2083,6 +2017,7 @@ X509 *NewRootX509(K *pub, K *priv, NAME *name, UINT days, X_SERIAL *serial) X509_EXTENSION *ex = NULL; X509_EXTENSION *eku = NULL; X509_EXTENSION *busage = NULL; + ASN1_INTEGER *s; // Validate arguments if (pub == NULL || name == NULL || priv == NULL) { @@ -2150,19 +2085,17 @@ X509 *NewRootX509(K *pub, K *priv, NAME *name, UINT days, X_SERIAL *serial) FreeX509Name(issuer_name); // Set a Serial Number + s = X509_get_serialNumber(x509); + OPENSSL_free(s->data); if (serial == NULL) { char zero = 0; - ASN1_INTEGER *s = x509->cert_info->serialNumber; - OPENSSL_free(s->data); s->data = OPENSSL_malloc(sizeof(char)); Copy(s->data, &zero, sizeof(char)); s->length = sizeof(char); } else { - ASN1_INTEGER *s = x509->cert_info->serialNumber; - OPENSSL_free(s->data); s->data = OPENSSL_malloc(serial->size); Copy(s->data, serial->data, serial->size); s->length = serial->size; @@ -2360,8 +2293,8 @@ void LoadXDates(X *x) return; } - x->notBefore = Asn1TimeToUINT64(x->x509->cert_info->validity->notBefore); - x->notAfter = Asn1TimeToUINT64(x->x509->cert_info->validity->notAfter); + x->notBefore = Asn1TimeToUINT64((ASN1_TIME *)X509_get0_notBefore(x->x509)); + x->notAfter = Asn1TimeToUINT64((ASN1_TIME *)X509_get0_notAfter(x->x509)); } // Convert the 64bit system time to ASN1 time @@ -2513,6 +2446,7 @@ bool RsaVerify(void *data, UINT data_size, void *sign, K *k) { return RsaVerifyEx(data, data_size, sign, k, 0); } + bool RsaVerifyEx(void *data, UINT data_size, void *sign, K *k, UINT bits) { UCHAR hash_data[SIGN_HASH_SIZE]; @@ -2534,7 +2468,7 @@ bool RsaVerifyEx(void *data, UINT data_size, void *sign, K *k, UINT bits) } // Decode the signature - if (RSA_public_decrypt(bits / 8, sign, decrypt_data, k->pkey->pkey.rsa, RSA_PKCS1_PADDING) <= 0) + if (RSA_public_decrypt(bits / 8, sign, decrypt_data, EVP_PKEY_get0_RSA(k->pkey), RSA_PKCS1_PADDING) <= 0) { return false; } @@ -2557,7 +2491,7 @@ bool RsaSignEx(void *dst, void *src, UINT size, K *k, UINT bits) { UCHAR hash[SIGN_HASH_SIZE]; // Validate arguments - if (dst == NULL || src == NULL || k == NULL || k->pkey->type != EVP_PKEY_RSA) + if (dst == NULL || src == NULL || k == NULL || EVP_PKEY_base_id(k->pkey) != EVP_PKEY_RSA) { return false; } @@ -2575,7 +2509,7 @@ bool RsaSignEx(void *dst, void *src, UINT size, K *k, UINT bits) } // Signature - if (RSA_private_encrypt(sizeof(hash), hash, dst, k->pkey->pkey.rsa, RSA_PKCS1_PADDING) <= 0) + if (RSA_private_encrypt(sizeof(hash), hash, dst, EVP_PKEY_get0_RSA(k->pkey), RSA_PKCS1_PADDING) <= 0) { return false; } @@ -2621,7 +2555,7 @@ bool RsaPublicDecrypt(void *dst, void *src, UINT size, K *k) tmp = ZeroMalloc(size); Lock(openssl_lock); { - ret = RSA_public_decrypt(size, src, tmp, k->pkey->pkey.rsa, RSA_NO_PADDING); + ret = RSA_public_decrypt(size, src, tmp, EVP_PKEY_get0_RSA(k->pkey), RSA_NO_PADDING); } Unlock(openssl_lock); if (ret <= 0) @@ -2652,7 +2586,7 @@ bool RsaPrivateEncrypt(void *dst, void *src, UINT size, K *k) tmp = ZeroMalloc(size); Lock(openssl_lock); { - ret = RSA_private_encrypt(size, src, tmp, k->pkey->pkey.rsa, RSA_NO_PADDING); + ret = RSA_private_encrypt(size, src, tmp, EVP_PKEY_get0_RSA(k->pkey), RSA_NO_PADDING); } Unlock(openssl_lock); if (ret <= 0) @@ -2683,7 +2617,7 @@ bool RsaPrivateDecrypt(void *dst, void *src, UINT size, K *k) tmp = ZeroMalloc(size); Lock(openssl_lock); { - ret = RSA_private_decrypt(size, src, tmp, k->pkey->pkey.rsa, RSA_NO_PADDING); + ret = RSA_private_decrypt(size, src, tmp, EVP_PKEY_get0_RSA(k->pkey), RSA_NO_PADDING); } Unlock(openssl_lock); if (ret <= 0) @@ -2711,7 +2645,7 @@ bool RsaPublicEncrypt(void *dst, void *src, UINT size, K *k) tmp = ZeroMalloc(size); Lock(openssl_lock); { - ret = RSA_public_encrypt(size, src, tmp, k->pkey->pkey.rsa, RSA_NO_PADDING); + ret = RSA_public_encrypt(size, src, tmp, EVP_PKEY_get0_RSA(k->pkey), RSA_NO_PADDING); } Unlock(openssl_lock); if (ret <= 0) @@ -3889,6 +3823,7 @@ X *X509ToX(X509 *x509) BUF *b; UINT size; UINT type; + ASN1_INTEGER *s; // Validate arguments if (x509 == NULL) { @@ -3956,8 +3891,8 @@ X *X509ToX(X509 *x509) } // Get the Serial Number - x->serial = NewXSerial(x509->cert_info->serialNumber->data, - x509->cert_info->serialNumber->length); + s = X509_get_serialNumber(x509); + x->serial = NewXSerial(s->data, s->length); if (x->serial == NULL) { char zero = 0; @@ -3974,17 +3909,29 @@ X *X509ToX(X509 *x509) b = KToBuf(k, false, NULL); size = b->Size; - type = k->pkey->type; + type = EVP_PKEY_base_id(k->pkey); FreeBuf(b); - + + //Fixed to get actual RSA key bits + x->bits = EVP_PKEY_bits(k->pkey); + FreeK(k); if (type == EVP_PKEY_RSA) { x->is_compatible_bit = true; - switch (size) + if(x->bits != 1024 && x->bits != 1536 && x->bits != 2048 && x->bits != 3072 && x->bits != 4096) + { + x->is_compatible_bit = false; + } + else + { + x->is_compatible_bit = true; + } + + /*switch (size) { case 162: x->bits = 1024; @@ -4009,7 +3956,7 @@ X *X509ToX(X509 *x509) default: x->is_compatible_bit = false; break; - } + }*/ } return x; @@ -4046,7 +3993,7 @@ BUF *BioToBuf(BIO *bio) } BIO_seek(bio, 0); - size = bio->num_write; + size = (UINT)BIO_number_written(bio); tmp = Malloc(size); BIO_read(bio, tmp, size); @@ -4166,7 +4113,7 @@ void InitCryptLibrary() SSL_library_init(); //OpenSSL_add_all_algorithms(); OpenSSL_add_all_ciphers(); - SSLeay_add_all_digests(); + OpenSSL_add_all_digests(); ERR_load_crypto_strings(); SSL_load_error_strings(); @@ -4323,6 +4270,33 @@ void Encrypt(CRYPT *c, void *dst, void *src, UINT size) RC4(c->Rc4Key, size, src, dst); } +// SHA-1 hash +void Sha(UINT sha_type, void *dst, void *src, UINT size) +{ + // Validate arguments + if (dst == NULL || src == NULL) + { + return; + } + + switch(sha_type) { + case SHA1_160: + SHA1(src, size, dst); + break; + case SHA2_256: + SHA256(src, size, dst); + break; + case SHA2_384: + SHA384(src, size, dst); + break; + case SHA2_512: + SHA512(src, size, dst); + break; + } + +} + + // SHA-1 hash void Sha1(void *dst, void *src, UINT size) { @@ -4335,6 +4309,20 @@ void Sha1(void *dst, void *src, UINT size) SHA1(src, size, dst); } +void Sha1__(void *dst, void *src, UINT size) { + Sha(SHA1_160, dst, src, size); +} + +void Sha2_256(void *dst, void *src, UINT size) { + Sha(SHA2_256, dst, src, size); +} +void Sha2_384(void *dst, void *src, UINT size) { + Sha(SHA2_384, dst, src, size); +} +void Sha2_512(void *dst, void *src, UINT size) { + Sha(SHA2_512, dst, src, size); +} + // MD5 hash void Md5(void *dst, void *src, UINT size) { @@ -4885,6 +4873,22 @@ bool DhCompute(DH_CTX *dh, void *dst_priv_key, void *src_pub_key, UINT key_size) return ret; } +// Creating a DH 2048bit +DH_CTX *DhNew2048() +{ + return DhNew(DH_SET_2048, 2); +} +// Creating a DH 3072bit +DH_CTX *DhNew3072() +{ + return DhNew(DH_SET_3072, 2); +} +// Creating a DH 4096bit +DH_CTX *DhNew4096() +{ + return DhNew(DH_SET_4096, 2); +} + // Creating a DH GROUP1 DH_CTX *DhNewGroup1() { @@ -4939,6 +4943,10 @@ DH_CTX *DhNew(char *prime, UINT g) { DH_CTX *dh; BUF *buf; +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + BIGNUM *dhp, *dhg; + const BIGNUM *pub, *priv; +#endif // Validate arguments if (prime == NULL || g == 0) { @@ -4950,14 +4958,27 @@ DH_CTX *DhNew(char *prime, UINT g) dh = ZeroMalloc(sizeof(DH_CTX)); dh->dh = DH_new(); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + dhp = BinToBigNum(buf->Buf, buf->Size); + dhg = BN_new(); + BN_set_word(dhg, g); + DH_set0_pqg(dh->dh, dhp, NULL, dhg); +#else dh->dh->p = BinToBigNum(buf->Buf, buf->Size); dh->dh->g = BN_new(); BN_set_word(dh->dh->g, g); +#endif DH_generate_key(dh->dh); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + DH_get0_key(dh->dh, &pub, &priv); + dh->MyPublicKey = BigNumToBuf(pub); + dh->MyPrivateKey = BigNumToBuf(priv); +#else dh->MyPublicKey = BigNumToBuf(dh->dh->pub_key); dh->MyPrivateKey = BigNumToBuf(dh->dh->priv_key); +#endif dh->Size = buf->Size; @@ -5299,8 +5320,3 @@ static unsigned char *Internal_SHA0(const unsigned char *d, size_t n, unsigned c - - -// 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 8458399..0720d41 100644 --- a/src/Mayaqua/Encrypt.h +++ b/src/Mayaqua/Encrypt.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -141,8 +141,17 @@ void RAND_Free_For_SoftEther(); #define AES_IV_SIZE 16 // AES IV size #define AES_MAX_KEY_SIZE 32 // Maximum AES key size +// IANA definitions taken from IKEv1 Phase 1 +#define SHA1_160 2 +#define SHA2_256 4 +#define SHA2_384 5 +#define SHA2_512 6 + // HMAC block size #define HMAC_BLOCK_SIZE 64 +// The block size for sha-384 and sha-512 as defined by rfc4868 +#define HMAC_BLOCK_SIZE_1024 128 +#define HMAC_BLOCK_SIZE_MAX 512 #define DH_GROUP1_PRIME_768 \ "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" \ @@ -170,10 +179,72 @@ void RAND_Free_For_SoftEther(); #define DH_SIMPLE_160 "AEE7561459353C95DDA966AE1FD25D95CD46E935" +#define DH_SET_2048 \ + "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" \ + "29024E088A67CC74020BBEA63B139B22514A08798E3404DD" \ + "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245" \ + "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED" \ + "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D" \ + "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F" \ + "83655D23DCA3AD961C62F356208552BB9ED529077096966D" \ + "670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B" \ + "E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9" \ + "DE2BCBF6955817183995497CEA956AE515D2261898FA0510" \ + "15728E5A8AACAA68FFFFFFFFFFFFFFFF" + +#define DH_SET_3072 \ + "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1"\ + "29024E088A67CC74020BBEA63B139B22514A08798E3404DD"\ + "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245"\ + "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED"\ + "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D"\ + "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F"\ + "83655D23DCA3AD961C62F356208552BB9ED529077096966D"\ + "670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B"\ + "E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9"\ + "DE2BCBF6955817183995497CEA956AE515D2261898FA0510"\ + "15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64"\ + "ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7"\ + "ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B"\ + "F12FFA06D98A0864D87602733EC86A64521F2B18177B200C"\ + "BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31"\ + "43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF" + +#define DH_SET_4096 \ + "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" \ + "29024E088A67CC74020BBEA63B139B22514A08798E3404DD" \ + "EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245" \ + "E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED" \ + "EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D" \ + "C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F" \ + "83655D23DCA3AD961C62F356208552BB9ED529077096966D" \ + "670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B" \ + "E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9" \ + "DE2BCBF6955817183995497CEA956AE515D2261898FA0510" \ + "15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64" \ + "ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7" \ + "ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B" \ + "F12FFA06D98A0864D87602733EC86A64521F2B18177B200C" \ + "BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31" \ + "43DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D7" \ + "88719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA" \ + "2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6" \ + "287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED" \ + "1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA9" \ + "93B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199" \ + "FFFFFFFFFFFFFFFF" + // Macro #define HASHED_DATA(p) (((UCHAR *)p) + 15) - +// OpenSSL <1.1 Shims +#if OPENSSL_VERSION_NUMBER < 0x10100000L +# define EVP_PKEY_get0_RSA(obj) ((obj)->pkey.rsa) +# define EVP_PKEY_base_id(pkey) ((pkey)->type) +# define X509_get0_notBefore(x509) ((x509)->cert_info->validity->notBefore) +# define X509_get0_notAfter(x509) ((x509)->cert_info->validity->notAfter) +# define X509_get_serialNumber(x509) ((x509)->cert_info->serialNumber) +#endif // Crypt context struct CRYPT @@ -239,6 +310,8 @@ struct X_CRL #define MD5_SIZE 16 #define SHA1_SIZE 20 #define SHA256_SIZE 32 +#define SHA384_SIZE 48 +#define SHA512_SIZE 64 // Key element of DES struct DES_KEY_VALUE @@ -286,7 +359,7 @@ struct CIPHER struct MD { char Name[MAX_PATH]; - const struct env_md_st *Md; + const struct evp_md_st *Md; struct hmac_ctx_st *Ctx; UINT Size; }; @@ -376,6 +449,7 @@ X *NewRootX(K *pub, K *priv, NAME *name, UINT days, X_SERIAL *serial); X509 *NewX509(K *pub, K *priv, X *ca, NAME *name, UINT days, X_SERIAL *serial); X *NewX(K *pub, K *priv, X *ca, NAME *name, UINT days, X_SERIAL *serial); UINT GetDaysUntil2038(); +UINT GetDaysUntil2038Ex(); X_SERIAL *NewXSerial(void *data, UINT size); void FreeXSerial(X_SERIAL *serial); char *ByteToStr(BYTE *src, UINT src_size); @@ -405,7 +479,7 @@ void GetAllNameFromName(wchar_t *str, UINT size, NAME *name); void GetAllNameFromNameEx(wchar_t *str, UINT size, NAME *name); void GetAllNameFromXEx(wchar_t *str, UINT size, X *x); void GetAllNameFromXExA(char *str, UINT size, X *x); -BUF *BigNumToBuf(BIGNUM *bn); +BUF *BigNumToBuf(const BIGNUM *bn); BIGNUM *BinToBigNum(void *data, UINT size); BIGNUM *BufToBigNum(BUF *b); char *BigNumToStr(BIGNUM *bn); @@ -432,13 +506,6 @@ void RsaPublicToBin(K *k, void *data); BUF *RsaPublicToBuf(K *k); K *RsaBinToPublic(void *data, UINT size); -X_CRL *FileToXCrl(char *filename); -X_CRL *FileToXCrlW(wchar_t *filename); -X_CRL *BufToXCrl(BUF *b); -void FreeXCrl(X_CRL *r); -bool IsXRevokedByXCrl(X *x, X_CRL *r); -bool IsXRevoked(X *x); - DES_KEY_VALUE *DesNewKeyValue(void *value); DES_KEY_VALUE *DesRandKeyValue(); void DesFreeKeyValue(DES_KEY_VALUE *v); @@ -452,7 +519,12 @@ void Des3Encrypt(void *dest, void *src, UINT size, DES_KEY *key, void *ivec); void Des3Encrypt2(void *dest, void *src, UINT size, DES_KEY_VALUE *k1, DES_KEY_VALUE *k2, DES_KEY_VALUE *k3, void *ivec); void Des3Decrypt(void *dest, void *src, UINT size, DES_KEY *key, void *ivec); void Des3Decrypt2(void *dest, void *src, UINT size, DES_KEY_VALUE *k1, DES_KEY_VALUE *k2, DES_KEY_VALUE *k3, void *ivec); +void Sha(UINT sha_type, void *dst, void *src, UINT size); void Sha1(void *dst, void *src, UINT size); +void Sha2_256(void *dst, void *src, UINT size); +void Sha2_384(void *dst, void *src, UINT size); +void Sha2_512(void *dst, void *src, UINT size); + void Md5(void *dst, void *src, UINT size); void MacSha1(void *dst, void *key, UINT key_size, void *data, UINT data_size); void MacSha196(void *dst, void *key, void *data, UINT data_size); @@ -465,6 +537,9 @@ DH_CTX *DhNewGroup1(); DH_CTX *DhNewGroup2(); DH_CTX *DhNewGroup5(); DH_CTX *DhNewSimple160(); +DH_CTX *DhNew2048(); +DH_CTX *DhNew3072(); +DH_CTX *DhNew4096(); DH_CTX *DhNew(char *prime, UINT g); void DhFree(DH_CTX *dh); BUF *DhToBuf(DH_CTX *dh); @@ -516,7 +591,3 @@ void DisableIntelAesAccel(); #endif // ENCRYPT_H - -// 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/FileIO.c b/src/Mayaqua/FileIO.c index 49fbec9..63f0fa1 100644 --- a/src/Mayaqua/FileIO.c +++ b/src/Mayaqua/FileIO.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -380,13 +380,16 @@ void ZipAddFileStart(ZIP_PACKER *p, char *name, UINT size, UINT64 dt, UINT attri // Add data to the file UINT ZipAddFileData(ZIP_PACKER *p, void *data, UINT pos, UINT len) { - UINT total_size = p->CurrentFile->CurrentSize + len; UINT ret; + UINT total_size; // Validate arguments if (p == NULL) { return 0; } + + total_size = p->CurrentFile->CurrentSize + len; + if (total_size > p->CurrentFile->Size) { return 0; @@ -2946,7 +2949,3 @@ IO *FileOpenExW(wchar_t *name, bool write_mode, bool read_lock) } - -// 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/FileIO.h b/src/Mayaqua/FileIO.h index 0ad0bf8..e68e1bf 100644 --- a/src/Mayaqua/FileIO.h +++ b/src/Mayaqua/FileIO.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -388,7 +388,3 @@ bool IsInLinesFile(wchar_t *filename, char *str, bool instr); - -// 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/Internat.c b/src/Mayaqua/Internat.c index fa7bad9..512674e 100644 --- a/src/Mayaqua/Internat.c +++ b/src/Mayaqua/Internat.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -3584,7 +3584,3 @@ UINT UniStrLen(wchar_t *str) return i; } - -// 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/Internat.h b/src/Mayaqua/Internat.h index 4f2383e..35c37e7 100644 --- a/src/Mayaqua/Internat.h +++ b/src/Mayaqua/Internat.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -252,7 +252,3 @@ int IconvFreeInternal(void *d); - -// 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/Kernel.c b/src/Mayaqua/Kernel.c index 94c2a62..7b97bad 100644 --- a/src/Mayaqua/Kernel.c +++ b/src/Mayaqua/Kernel.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Contributors: // - nattoheaven (https://github.com/nattoheaven) // Comments: Tetsuo Sugiyama, Ph.D. @@ -161,6 +161,7 @@ static int ydays[] = }; static UINT current_num_thread = 0; +static UINT cached_number_of_cpus = 0; @@ -172,6 +173,109 @@ static LOCALE current_locale; LOCK *tick_manual_lock = NULL; UINT g_zero = 0; +#define MONSPERYEAR 12 +#define DAYSPERNYEAR 365 +#define DAYSPERLYEAR 366 +#define SECSPERMIN 60 +#define SECSPERHOUR (60*60) +#define SECSPERDAY (24*60*60) +#define DAYSPERWEEK 7 +#define TM_SUNDAY 0 +#define TM_MONDAY 1 +#define TM_TUESDAY 2 +#define TM_WEDNESDAY 3 +#define TM_THURSDAY 4 +#define TM_FRIDAY 5 +#define TM_SATURDAY 6 + +#define TM_YEAR_BASE 1900 + +#define EPOCH_YEAR 1970 +#define EPOCH_WDAY TM_THURSDAY + +#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0)) + +static const int mon_lengths[2][MONSPERYEAR] = { + { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }, + { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } +}; + +static const int year_lengths[2] = { + DAYSPERNYEAR, DAYSPERLYEAR +}; + + +/* + * Taken from FreeBSD src / lib / libc / stdtime / localtime.c 1.43 revision. + * localtime.c 7.78. + * tzfile.h 1.8 + * adapted to be replacement gmtime_r. + */ +static void +c_timesub(timep, offset, tmp) +const time_64t * const timep; +const long offset; +struct tm * const tmp; +{ + INT64 days; + INT64 rem; + INT64 y; + int yleap; + const int * ip; + + days = *timep / SECSPERDAY; + rem = *timep % SECSPERDAY; + rem += (offset); + while (rem < 0) { + rem += SECSPERDAY; + --days; + } + while (rem >= SECSPERDAY) { + rem -= SECSPERDAY; + ++days; + } + tmp->tm_hour = (int) (rem / SECSPERHOUR); + rem = rem % SECSPERHOUR; + tmp->tm_min = (int) (rem / SECSPERMIN); + /* + ** A positive leap second requires a special + ** representation. This uses "... ??:59:60" et seq. + */ + tmp->tm_sec = (int) (rem % SECSPERMIN) ; + tmp->tm_wday = (int) ((EPOCH_WDAY + days) % DAYSPERWEEK); + if (tmp->tm_wday < 0) + tmp->tm_wday += DAYSPERWEEK; + y = EPOCH_YEAR; +#define LEAPS_THRU_END_OF(y) ((y) / 4 - (y) / 100 + (y) / 400) + while (days < 0 || days >= (long) year_lengths[yleap = isleap(y)]) { + INT64 newy; + + newy = y + days / DAYSPERNYEAR; + if (days < 0) + --newy; + days -= (newy - y) * DAYSPERNYEAR + + LEAPS_THRU_END_OF(newy - 1) - + LEAPS_THRU_END_OF(y - 1); + y = newy; + } + tmp->tm_year = (int)(y - TM_YEAR_BASE); + tmp->tm_yday = (int) days; + ip = mon_lengths[yleap]; + for (tmp->tm_mon = 0; days >= (INT64) ip[tmp->tm_mon]; ++(tmp->tm_mon)) + days = days - (INT64) ip[tmp->tm_mon]; + tmp->tm_mday = (int) (days + 1); + tmp->tm_isdst = 0; +} + +/* +* Re-entrant version of gmtime. +*/ +struct tm * c_gmtime_r(const time_64t* timep, struct tm *tm) +{ + c_timesub(timep, 0L, tm); + return tm; +} + // Get the real-time system timer UINT TickRealtime() { @@ -219,13 +323,57 @@ UINT64 TickGetRealtimeTickValue64() gettimeofday(&tv, &tz); - ret = (UINT64)tv.tv_sec * 1000ULL + (UINT64)tv.tv_usec / 1000ULL; + if (sizeof(tv.tv_sec) != 4) + { + ret = (UINT64)tv.tv_sec * 1000ULL + (UINT64)tv.tv_usec / 1000ULL; + } + else + { + ret = (UINT64)((UINT64)((UINT32)tv.tv_sec)) * 1000ULL + (UINT64)tv.tv_usec / 1000ULL; + } return ret; } #endif // OS_WIN32 +// Get the number of CPUs +UINT GetNumberOfCpu() +{ + UINT ret = 0; + + if (cached_number_of_cpus == 0) + { + UINT i = 0; + +#ifdef OS_WIN32 + i = Win32GetNumberOfCpuInner(); +#else // OS_WIN32 + i = UnixGetNumberOfCpuInner(); +#endif // OS_WIN32 + + if (i == 0) + { + i = 8; + } + + cached_number_of_cpus = i; + } + + ret = cached_number_of_cpus; + + if (ret == 0) + { + ret = 1; + } + if (ret > 128) + { + ret = 128; + } + + return ret; +} + // Creating a thread list LIST *NewThreadList() { @@ -815,7 +963,7 @@ void GetTimeStr64(char *str, UINT size, UINT64 sec64) // Convert to a time to be used safely in the current POSIX implementation UINT64 SafeTime64(UINT64 sec64) { - return MAKESURE(sec64, 0, 2115947647000ULL); + return MAKESURE(sec64, 0, 4102243323123ULL); } // Thread pool @@ -1483,6 +1631,27 @@ void GetDateTimeStrMilli(char *str, UINT size, SYSTEMTIME *st) st->wMilliseconds); } +// Get the date and time string in RFC3339 format (example: 2017-09-27T18:25:55.434-9:00) +void GetDateTimeStrRFC3339(char *str, UINT size, SYSTEMTIME *st, int timezone_min){ + // Validate arguments + if (str == NULL || st == NULL) + { + return; + } + + if(timezone_min == 0){ + Format(str, size, "%04u-%02u-%02uT%02u:%02u:%02u.%03uZ", + st->wYear, st->wMonth, st->wDay, + st->wHour, st->wMinute, st->wSecond, + st->wMilliseconds); + }else{ + Format(str, size, "%04u-%02u-%02uT%02u:%02u:%02u.%03u%+02d:%02d", + st->wYear, st->wMonth, st->wDay, + st->wHour, st->wMinute, st->wSecond, + st->wMilliseconds, timezone_min/60, timezone_min%60); + } +} + // Get the time string void GetSpanStr(char *str, UINT size, UINT64 sec64) { @@ -1694,7 +1863,7 @@ void TmToSystem(SYSTEMTIME *st, struct tm *t) NormalizeTm(&tmp); Zero(st, sizeof(SYSTEMTIME)); - st->wYear = MAKESURE(tmp.tm_year + 1900, 1970, 2037); + st->wYear = MAKESURE(tmp.tm_year + 1900, 1970, 2099); st->wMonth = MAKESURE(tmp.tm_mon + 1, 1, 12); st->wDay = MAKESURE(tmp.tm_mday, 1, 31); st->wDayOfWeek = MAKESURE(tmp.tm_wday, 0, 6); @@ -1714,7 +1883,7 @@ void SystemToTm(struct tm *t, SYSTEMTIME *st) } Zero(t, sizeof(struct tm)); - t->tm_year = MAKESURE(st->wYear, 1970, 2037) - 1900; + t->tm_year = MAKESURE(st->wYear, 1970, 2099) - 1900; t->tm_mon = MAKESURE(st->wMonth, 1, 12) - 1; t->tm_mday = MAKESURE(st->wDay, 1, 31); t->tm_hour = MAKESURE(st->wHour, 0, 23); @@ -1726,7 +1895,7 @@ void SystemToTm(struct tm *t, SYSTEMTIME *st) } // Convert the time_t to SYSTEMTIME -void TimeToSystem(SYSTEMTIME *st, time_t t) +void TimeToSystem(SYSTEMTIME *st, time_64t t) { struct tm tmp; // Validate arguments @@ -1740,7 +1909,7 @@ void TimeToSystem(SYSTEMTIME *st, time_t t) } // Convert the time_t to 64-bit SYSTEMTIME -UINT64 TimeToSystem64(time_t t) +UINT64 TimeToSystem64(time_64t t) { SYSTEMTIME st; @@ -1750,7 +1919,7 @@ UINT64 TimeToSystem64(time_t t) } // Convert the SYSTEMTIME to time_t -time_t SystemToTime(SYSTEMTIME *st) +time_64t SystemToTime(SYSTEMTIME *st) { struct tm t; // Validate arguments @@ -1764,7 +1933,7 @@ time_t SystemToTime(SYSTEMTIME *st) } // Convert a 64-bit SYSTEMTIME to a time_t -time_t System64ToTime(UINT64 i) +time_64t System64ToTime(UINT64 i) { SYSTEMTIME st; @@ -1774,9 +1943,9 @@ time_t System64ToTime(UINT64 i) } // Convert the tm to time_t -time_t TmToTime(struct tm *t) +time_64t TmToTime(struct tm *t) { - time_t tmp; + time_64t tmp; // Validate arguments if (t == NULL) { @@ -1784,7 +1953,7 @@ time_t TmToTime(struct tm *t) } tmp = c_mkgmtime(t); - if (tmp == (time_t)-1) + if (tmp == (time_64t)-1) { return 0; } @@ -1792,42 +1961,22 @@ time_t TmToTime(struct tm *t) } // Convert time_t to tm -void TimeToTm(struct tm *t, time_t time) +void TimeToTm(struct tm *t, time_64t time) { - struct tm *ret; // Validate arguments if (t == NULL) { return; } -#ifndef OS_UNIX - ret = gmtime(&time); -#else // OS_UNIX - ret = malloc(sizeof(struct tm)); - memset(ret, 0, sizeof(struct tm)); - gmtime_r(&time, ret); -#endif // OS_UNIX - - if (ret == NULL) - { - Zero(t, sizeof(struct tm)); - } - else - { - Copy(t, ret, sizeof(struct tm)); - } - -#ifdef OS_UNIX - free(ret); -#endif // OS_UNIX + Zero(t, sizeof(struct tm)); + c_gmtime_r(&time, t); } // Normalize the tm void NormalizeTm(struct tm *t) { - struct tm *ret; - time_t tmp; + time_64t tmp; // Validate arguments if (t == NULL) { @@ -1835,31 +1984,12 @@ void NormalizeTm(struct tm *t) } tmp = c_mkgmtime(t); - if (tmp == (time_t)-1) + if (tmp == (time_64t)-1) { return; } -#ifndef OS_UNIX - ret = gmtime(&tmp); -#else // OS_UNIX - ret = malloc(sizeof(struct tm)); - memset(ret, 0, sizeof(struct tm)); - gmtime_r(&tmp, ret); -#endif // OS_UNIX - - if (ret == NULL) - { - Zero(t, sizeof(struct tm)); - } - else - { - Copy(t, ret, sizeof(struct tm)); - } - -#ifdef OS_UNIX - free(ret); -#endif // OS_UNIX + c_gmtime_r(&tmp, t); } // Normalize the SYSTEMTIME @@ -1934,10 +2064,19 @@ INT64 GetTimeDiffEx(SYSTEMTIME *basetime, bool local_time) Copy(&snow, basetime, sizeof(SYSTEMTIME)); + if (sizeof(time_t) == 4) + { + if (snow.wYear >= 2038) + { + // For old systems: avoid the 2038-year problem + snow.wYear = 2037; + } + } + SystemToTm(&now, &snow); if (local_time == false) { - tmp = c_mkgmtime(&now); + tmp = (time_t)c_mkgmtime(&now); } else { @@ -1965,54 +2104,12 @@ INT64 GetTimeDiffEx(SYSTEMTIME *basetime, bool local_time) return ret; } -// Get the time difference between the local time and system time -INT64 GetTimeDiff() -{ - time_t tmp; - struct tm t1, t2; - SYSTEMTIME snow; - struct tm now; - SYSTEMTIME s1, s2; - INT64 ret; - - static INT64 cache = INFINITE; - - if (cache != INFINITE) - { - // Returns the cache data after measured once - return cache; - } - - SystemTime(&snow); - SystemToTm(&now, &snow); - tmp = c_mkgmtime(&now); - if (tmp == (time_t)-1) - { - return 0; - } - -#ifndef OS_UNIX - Copy(&t1, localtime(&tmp), sizeof(struct tm)); - Copy(&t2, gmtime(&tmp), sizeof(struct tm)); -#else // OS_UNIX - localtime_r(&tmp, &t1); - gmtime_r(&tmp, &t2); -#endif // OS_UNIX - - TmToSystem(&s1, &t1); - TmToSystem(&s2, &t2); - - cache = ret = (INT)SystemToUINT64(&s1) - (INT)SystemToUINT64(&s2); - - return ret; -} - // Convert UINT64 to the SYSTEMTIME void UINT64ToSystem(SYSTEMTIME *st, UINT64 sec64) { UINT64 tmp64; UINT sec, millisec; - time_t time; + time_64t time; // Validate arguments if (st == NULL) { @@ -2023,7 +2120,7 @@ void UINT64ToSystem(SYSTEMTIME *st, UINT64 sec64) tmp64 = sec64 / (UINT64)1000; millisec = (UINT)(sec64 - tmp64 * (UINT64)1000); sec = (UINT)tmp64; - time = (time_t)sec; + time = (time_64t)sec; TimeToSystem(st, time); st->wMilliseconds = (WORD)millisec; } @@ -2032,7 +2129,7 @@ void UINT64ToSystem(SYSTEMTIME *st, UINT64 sec64) UINT64 SystemToUINT64(SYSTEMTIME *st) { UINT64 sec64; - time_t time; + time_64t time; // Validate arguments if (st == NULL) { @@ -2091,7 +2188,7 @@ void SystemTime(SYSTEMTIME *st) KS_INC(KS_GETTIME_COUNT); } -time_t c_mkgmtime(struct tm *tm) +time_64t c_mkgmtime(struct tm *tm) { int years, months, days, hours, minutes, seconds; @@ -2142,7 +2239,7 @@ time_t c_mkgmtime(struct tm *tm) tm->tm_isdst = 0; if (years < 1970) - return (time_t)-1; + return (time_64t)-1; #if (defined(TM_YEAR_MAX) && defined(TM_MON_MAX) && defined(TM_MDAY_MAX)) #if (defined(TM_HOUR_MAX) && defined(TM_MIN_MAX) && defined(TM_SEC_MAX)) @@ -2156,11 +2253,11 @@ time_t c_mkgmtime(struct tm *tm) (hours == TM_HOUR_MAX && (minutes > TM_MIN_MAX || (minutes == TM_MIN_MAX && seconds > TM_SEC_MAX) ))))))) - return (time_t)-1; + return (time_64t)-1; #endif #endif - return (time_t)(86400L * (unsigned long)(unsigned)days + + return (time_64t)(86400L * (unsigned long)(unsigned)days + 3600L * (unsigned long)hours + (unsigned long)(60 * minutes + seconds)); } @@ -2236,7 +2333,3 @@ void AbortExitEx(char *msg) #endif // OS_WIN32 } - -// 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/Kernel.h b/src/Mayaqua/Kernel.h index a9b737f..2f12697 100644 --- a/src/Mayaqua/Kernel.h +++ b/src/Mayaqua/Kernel.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -194,15 +194,16 @@ void FreeThreading(); void ThreadPoolProc(THREAD *t, void *param); void SetThreadName(UINT thread_id, char *name, void *param); -time_t c_mkgmtime(struct tm *tm); -time_t System64ToTime(UINT64 i); +struct tm * c_gmtime_r(const time_64t* timep, struct tm *tm); +time_64t c_mkgmtime(struct tm *tm); +time_64t System64ToTime(UINT64 i); void TmToSystem(SYSTEMTIME *st, struct tm *t); void SystemToTm(struct tm *t, SYSTEMTIME *st); -void TimeToSystem(SYSTEMTIME *st, time_t t); -UINT64 TimeToSystem64(time_t t); -time_t SystemToTime(SYSTEMTIME *st); -time_t TmToTime(struct tm *t); -void TimeToTm(struct tm *t, time_t time); +void TimeToSystem(SYSTEMTIME *st, time_64t t); +UINT64 TimeToSystem64(time_64t t); +time_64t SystemToTime(SYSTEMTIME *st); +time_64t TmToTime(struct tm *t); +void TimeToTm(struct tm *t, time_64t time); void NormalizeTm(struct tm *t); void NormalizeSystem(SYSTEMTIME *st); void LocalToSystem(SYSTEMTIME *system, SYSTEMTIME *local); @@ -247,6 +248,7 @@ void GetTimeStrEx64(wchar_t *str, UINT size, UINT64 sec64, LOCALE *locale); void GetDateStrEx64(wchar_t *str, UINT size, UINT64 sec64, LOCALE *locale); void GetTimeStrMilli64(char *str, UINT size, UINT64 sec64); void GetTimeStr64(char *str, UINT size, UINT64 sec64); +void GetDateTimeStrRFC3339(char *str, UINT size, SYSTEMTIME *st, int timezone_min); UINT64 SafeTime64(UINT64 sec64); bool Run(char *filename, char *arg, bool hide, bool wait); bool RunW(wchar_t *filename, wchar_t *arg, bool hide, bool wait); @@ -276,10 +278,7 @@ void MainteThreadList(LIST *o); void FreeThreadList(LIST *o); void StopThreadList(LIST *o); void WaitAllThreadsWillBeStopped(LIST *o); +UINT GetNumberOfCpu(); #endif // KERNEL_H - -// 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/MayaType.h b/src/Mayaqua/MayaType.h index 941c976..7694414 100644 --- a/src/Mayaqua/MayaType.h +++ b/src/Mayaqua/MayaType.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -145,7 +145,7 @@ typedef struct x509_crl_st X509_CRL; #define BUF_SIZE 512 // Support Windows OS list -#define SUPPORTED_WINDOWS_LIST "Windows 98 / 98 SE / ME / NT 4.0 SP6a / 2000 SP4 / XP SP2, SP3 / Vista SP1, SP2 / 7 SP1 / 8 / 8.1 / 10 / Server 2003 SP2 / Server 2008 SP1, SP2 / Hyper-V Server 2008 / Server 2008 R2 SP1 / Hyper-V Server 2008 R2 / Server 2012 / Hyper-V Server 2012 / Server 2012 R2 / Hyper-V Server 2012 R2" +#define SUPPORTED_WINDOWS_LIST "Windows 98 / 98 SE / ME / NT 4.0 SP6a / 2000 SP4 / XP SP2, SP3 / Vista SP1, SP2 / 7 SP1 / 8 / 8.1 / 10 / Server 2003 SP2 / Server 2008 SP1, SP2 / Hyper-V Server 2008 / Server 2008 R2 SP1 / Hyper-V Server 2008 R2 / Server 2012 / Hyper-V Server 2012 / Server 2012 R2 / Hyper-V Server 2012 R2 / Server 2016" // Infinite #ifndef WINDOWS_H @@ -299,6 +299,8 @@ typedef signed char CHAR; typedef unsigned long long UINT64; typedef signed long long INT64; +typedef signed long long time_64t; + #ifdef OS_UNIX // Avoiding compile error #define __cdecl @@ -523,6 +525,7 @@ 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; +typedef struct SSL_ACCEPT_SETTINGS SSL_ACCEPT_SETTINGS; // Tick64.h typedef struct ADJUST_TIME ADJUST_TIME; @@ -585,7 +588,3 @@ typedef struct IKE_HEADER IKE_HEADER; #endif // MAYATYPE_H - -// 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/Mayaqua.c b/src/Mayaqua/Mayaqua.c index 220d4f8..3215243 100644 --- a/src/Mayaqua/Mayaqua.c +++ b/src/Mayaqua/Mayaqua.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1224,7 +1224,3 @@ void PrintDebugInformation() - -// 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/Mayaqua.h b/src/Mayaqua/Mayaqua.h index 17e6495..8e6260f 100644 --- a/src/Mayaqua/Mayaqua.h +++ b/src/Mayaqua/Mayaqua.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -614,6 +614,7 @@ USHORT CalcChecksum16(void *buf, UINT size); #pragma comment(lib, "version.lib") #pragma comment(lib, "Netapi32.lib") #pragma comment(lib, "shlwapi.lib") +#pragma comment(lib, "crypt32.lib") #pragma warning( disable : 4099 ) #endif // OS_WIN32 @@ -626,7 +627,3 @@ USHORT CalcChecksum16(void *buf, UINT size); #endif // MAYAQUA_H - -// 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/Mayaqua.vcproj b/src/Mayaqua/Mayaqua.vcproj index 246b4fb..26b33b7 100644 --- a/src/Mayaqua/Mayaqua.vcproj +++ b/src/Mayaqua/Mayaqua.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -188,7 +188,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/Mayaqua/Memory.c b/src/Mayaqua/Memory.c index 3f86ef4..9aff934 100644 --- a/src/Mayaqua/Memory.c +++ b/src/Mayaqua/Memory.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -4313,6 +4313,21 @@ void Copy(void *dst, void *src, UINT size) memcpy(dst, src, size); } +// Memory move +void Move(void *dst, void *src, UINT size) +{ + // Validate arguments + if (dst == NULL || src == NULL || size == 0 || dst == src) + { + return; + } + + // KS + KS_INC(KS_COPY_COUNT); + + memmove(dst, src, size); +} + // Memory comparison int Cmp(void *p1, void *p2, UINT size) { @@ -4427,7 +4442,3 @@ void XorData(void *dst, void *src1, void *src2, UINT size) c2++; } } - -// 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/Memory.h b/src/Mayaqua/Memory.h index d59eae1..630273c 100644 --- a/src/Mayaqua/Memory.h +++ b/src/Mayaqua/Memory.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -284,6 +284,7 @@ void *InternalReAlloc(void *addr, UINT size); void InternalFree(void *addr); void Copy(void *dst, void *src, UINT size); +void Move(void *dst, void *src, UINT size); int Cmp(void *p1, void *p2, UINT size); int CmpCaseIgnore(void *p1, void *p2, UINT size); void ZeroMem(void *addr, UINT size); @@ -479,7 +480,3 @@ void AppendBufStr(BUF *b, char *str); #endif // MEMORY_H - -// 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/Microsoft.c b/src/Mayaqua/Microsoft.c index cc623ad..2ec1ef2 100644 --- a/src/Mayaqua/Microsoft.c +++ b/src/Mayaqua/Microsoft.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -204,6 +204,7 @@ static SERVICE_FUNCTION *g_start, *g_stop; static bool exiting = false; static bool wnd_end; static bool is_usermode = false; +static bool wts_is_locked_flag = false; static HICON tray_icon; static NOTIFYICONDATA nid; static NOTIFYICONDATAW nid_nt; @@ -8774,6 +8775,7 @@ BOOL CALLBACK EnumChildWindowProc(HWND hWnd, LPARAM lParam) LIST *o; HWND hParent; char c1[MAX_SIZE], c2[MAX_SIZE]; + bool ok = false; // Validate arguments if (hWnd == NULL || p == NULL) { @@ -8795,6 +8797,19 @@ BOOL CALLBACK EnumChildWindowProc(HWND hWnd, LPARAM lParam) } if (p->include_ipcontrol || (StrCmpi(c1, "SysIPAddress32") != 0 && (IsEmptyStr(c2) || StrCmpi(c2, "SysIPAddress32") != 0))) + { + ok = true; + } + + if (MsIsWine()) + { + if (StrCmpi(c1, "SysIPAddress32") == 0 || StrCmpi(c2, "SysIPAddress32") == 0) + { + ok = true; + } + } + + if (ok) { AddWindow(o, hWnd); @@ -9179,6 +9194,11 @@ bool MsCloseWarningWindow(NO_WARNING *nw, UINT thread_id) for (i = 0;i < LIST_NUM(o);i++) { HWND hWnd; + + if (nw->Halt) + { + break; + } if (MsIsVista() == false) { @@ -12327,6 +12347,175 @@ bool MsIsPasswordEmpty(wchar_t *username) return false; } +// Determine if the workstation is locked by using WTS API +bool MsDetermineIsLockedByWtsApi() +{ + return wts_is_locked_flag; +} + +// IsLocked Window Proc +LRESULT CALLBACK MsIsLockedWindowHandlerWindowProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + MS_ISLOCKED *d = NULL; + CREATESTRUCT *cs; + // Validate arguments + if (hWnd == NULL) + { + return 0; + } + + d = (MS_ISLOCKED *)GetWindowLongPtrA(hWnd, GWLP_USERDATA); + if (d == NULL && msg != WM_CREATE) + { + goto LABEL_END; + } + + switch (msg) + { + case WM_CREATE: + cs = (CREATESTRUCT *)lParam; + d = (MS_ISLOCKED *)cs->lpCreateParams; + SetWindowLongPtrA(hWnd, GWLP_USERDATA, (LONG_PTR)d); + + ms->nt->WTSRegisterSessionNotification(hWnd, NOTIFY_FOR_THIS_SESSION); + + wts_is_locked_flag = false; + + break; + + case WM_WTSSESSION_CHANGE: + { + char tmp[MAX_SIZE]; + + GetDateTimeStr64(tmp, sizeof(tmp), LocalTime64()); + + switch (wParam) + { + case WTS_SESSION_LOCK: + Debug("%s: Enter Lock\n", tmp); + d->IsLockedFlag = true; + wts_is_locked_flag = true; + break; + + case WTS_SESSION_UNLOCK: + Debug("%s: Enter Unlock\n", tmp); + d->IsLockedFlag = false; + wts_is_locked_flag = false; + break; + } + } + + break; + + case WM_DESTROY: + Debug("Unregister\n"); + ms->nt->WTSUnRegisterSessionNotification(hWnd); + PostQuitMessage(0); + break; + } + +LABEL_END: + return DefWindowProc(hWnd, msg, wParam, lParam); +} + +// IsLocked thread proc +void MsIsLockedThreadProc(THREAD *thread, void *param) +{ + MS_ISLOCKED *d = (MS_ISLOCKED *)param; + char wndclass_name[MAX_PATH]; + WNDCLASS wc; + HWND hWnd; + MSG msg; + // Validate arguments + if (d == NULL || thread == NULL) + { + return; + } + + Format(wndclass_name, sizeof(wndclass_name), "WNDCLASS_%X", Rand32()); + + Zero(&wc, sizeof(wc)); + wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hIcon = NULL; + wc.hInstance = ms->hInst; + wc.lpfnWndProc = MsIsLockedWindowHandlerWindowProc; + wc.lpszClassName = wndclass_name; + if (RegisterClassA(&wc) == 0) + { + NoticeThreadInit(thread); + return; + } + + hWnd = CreateWindowA(wndclass_name, wndclass_name, WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, + NULL, NULL, ms->hInst, d); + + d->hWnd = hWnd; + + NoticeThreadInit(thread); + + if (hWnd == NULL) + { + UnregisterClassA(wndclass_name, ms->hInst); + return; + } + + while (GetMessage(&msg, NULL, 0, 0)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + DestroyWindow(hWnd); + + UnregisterClassA(wndclass_name, ms->hInst); +} + +// Create new IsLocked thread +MS_ISLOCKED *MsNewIsLocked() +{ + MS_ISLOCKED *d; + THREAD *t; + + SleepThread(5000); + + if (IsNt() == false || ms->nt->WTSRegisterSessionNotification == NULL || + ms->nt->WTSUnRegisterSessionNotification == NULL) + { + return NULL; + } + + d = ZeroMalloc(sizeof(MS_ISLOCKED)); + + t = NewThread(MsIsLockedThreadProc, d); + + WaitThreadInit(t); + + d->Thread = t; + + return d; +} + +// Stop and free the IsLocked thread +void MsFreeIsLocked(MS_ISLOCKED *d) +{ + if (d == NULL) + { + return; + } + + if (d->hWnd != NULL) + { + PostMessageA(d->hWnd, WM_CLOSE, 0, 0); + } + + WaitThread(d->Thread, INFINITE); + ReleaseThread(d->Thread); + + Free(d); +} + // Execution of shutdown (NT) bool MsShutdownEx(bool reboot, bool force, UINT time_limit, char *message) { @@ -12448,6 +12637,33 @@ bool MsIsNt() return ms->IsNt; } +// Get whether the current system is WINE +bool MsIsWine() +{ + bool ret = false; + + if (ms == NULL) + { + HINSTANCE h = LoadLibrary("kernel32.dll"); + + if (h != NULL) + { + if (GetProcAddress(h, "wine_get_unix_file_name") != NULL) + { + ret = true; + } + + FreeLibrary(h); + } + } + else + { + ret = ms->IsWine; + } + + return ret; +} + // Get whether the current user is an Admin bool MsIsAdmin() { @@ -12648,6 +12864,12 @@ NT_API *MsLoadNtApiFunctions() nt->WTSEnumerateSessionsA = (BOOL (__stdcall *)(HANDLE,DWORD,DWORD,PWTS_SESSION_INFOA *,DWORD *)) GetProcAddress(nt->hWtsApi32, "WTSEnumerateSessionsA"); + nt->WTSRegisterSessionNotification = + (BOOL (__stdcall *)(HWND,DWORD)) + GetProcAddress(nt->hWtsApi32, "WTSRegisterSessionNotification"); + nt->WTSUnRegisterSessionNotification = + (BOOL (__stdcall *)(HWND)) + GetProcAddress(nt->hWtsApi32, "WTSUnRegisterSessionNotification"); } // Service related API @@ -14624,6 +14846,11 @@ void MsInit() ms->IsAdmin = true; } + if (GetProcAddress(ms->hKernel32, "wine_get_unix_file_name") != NULL) + { + ms->IsWine = true; + } + // Get information about the current process ms->hCurrentProcess = GetCurrentProcess(); ms->CurrentProcessId = GetCurrentProcessId(); @@ -15313,7 +15540,3 @@ wchar_t *MsGetWinTempDirW() #endif // WIN32 - -// 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/Microsoft.h b/src/Mayaqua/Microsoft.h index 822c0a5..56c0032 100644 --- a/src/Mayaqua/Microsoft.h +++ b/src/Mayaqua/Microsoft.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -400,6 +400,7 @@ typedef struct MS wchar_t *UserNameExW; wchar_t *MinidumpBaseFileNameW; IO *LockFile; + bool IsWine; } MS; // For Windows NT API @@ -430,6 +431,8 @@ typedef struct NT_API void (WINAPI *WTSFreeMemory)(void *); BOOL (WINAPI *WTSDisconnectSession)(HANDLE, DWORD, BOOL); BOOL (WINAPI *WTSEnumerateSessions)(HANDLE, DWORD, DWORD, PWTS_SESSION_INFO *, DWORD *); + BOOL (WINAPI *WTSRegisterSessionNotification)(HWND, DWORD); + BOOL (WINAPI *WTSUnRegisterSessionNotification)(HWND); SC_HANDLE (WINAPI *OpenSCManager)(LPCTSTR, LPCTSTR, DWORD); SC_HANDLE (WINAPI *CreateServiceA)(SC_HANDLE, LPCTSTR, LPCTSTR, DWORD, DWORD, DWORD, DWORD, LPCTSTR, LPCTSTR, LPDWORD, LPCTSTR, LPCTSTR, LPCTSTR); SC_HANDLE (WINAPI *CreateServiceW)(SC_HANDLE, LPCWSTR, LPCWSTR, DWORD, DWORD, DWORD, DWORD, LPCWSTR, LPCWSTR, LPDWORD, LPCWSTR, LPCWSTR, LPCWSTR); @@ -589,6 +592,13 @@ typedef struct MS_ADAPTER_LIST MS_ADAPTER **Adapters; // Content } MS_ADAPTER_LIST; +typedef struct MS_ISLOCKED +{ + HWND hWnd; + THREAD *Thread; + volatile bool IsLockedFlag; +} MS_ISLOCKED; + // TCP setting typedef struct MS_TCP { @@ -732,6 +742,7 @@ bool MsRegUnloadHive(UINT root, wchar_t *keyname); bool MsIsNt(); bool MsIsAdmin(); +bool MsIsWine(); bool MsEnablePrivilege(char *name, bool enable); void *MsGetCurrentProcess(); UINT MsGetCurrentProcessId(); @@ -739,6 +750,14 @@ char *MsGetExeFileName(); char *MsGetExeDirName(); wchar_t *MsGetExeDirNameW(); +void MsIsLockedThreadProc(THREAD *thread, void *param); +MS_ISLOCKED *MsNewIsLocked(); +void MsFreeIsLocked(MS_ISLOCKED *d); +void MsStartIsLockedThread(); +void MsStopIsLockedThread(); +bool MsDetermineIsLockedByWtsApi(); + + bool MsShutdown(bool reboot, bool force); bool MsShutdownEx(bool reboot, bool force, UINT time_limit, char *message); bool MsCheckLogon(wchar_t *username, char *password); @@ -1198,7 +1217,3 @@ void MsSuspendHandlerThreadProc(THREAD *thread, void *param); #endif // OS_WIN32 - -// 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/Network.c b/src/Mayaqua/Network.c index d0df901..f5c1282 100644 --- a/src/Mayaqua/Network.c +++ b/src/Mayaqua/Network.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Contributors: // - nattoheaven (https://github.com/nattoheaven) // Comments: Tetsuo Sugiyama, Ph.D. @@ -233,7 +233,12 @@ static COUNTER *getip_thread_counter = NULL; static UINT max_getip_thread = 0; -static char *cipher_list = "RC4-MD5 RC4-SHA AES128-SHA AES256-SHA DES-CBC-SHA DES-CBC3-SHA DHE-RSA-AES128-SHA DHE-RSA-AES256-SHA"; +static char *cipher_list = "RC4-MD5 RC4-SHA AES128-SHA AES256-SHA DES-CBC-SHA DES-CBC3-SHA DHE-RSA-AES128-SHA DHE-RSA-AES256-SHA AES128-GCM-SHA256 AES128-SHA256 AES256-GCM-SHA384 AES256-SHA256 DHE-RSA-AES128-GCM-SHA256 DHE-RSA-AES128-SHA256 DHE-RSA-AES256-GCM-SHA384 DHE-RSA-AES256-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384" +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + " DHE-RSA-CHACHA20-POLY1305 ECDHE-RSA-CHACHA20-POLY1305"; +#endif +; + static LIST *ip_clients = NULL; static LIST *local_mac_list = NULL; @@ -245,7 +250,7 @@ static UINT rand_port_numbers[256] = {0}; static bool g_use_privateip_file = false; static bool g_source_ip_validation_force_disable = false; -static DH_CTX *dh_1024 = NULL; +static DH_CTX *dh_2048 = NULL; typedef struct PRIVATE_IP_SUBNET { @@ -5821,7 +5826,8 @@ SSL_PIPE *NewSslPipe(bool server_mode, X *x, K *k, DH_CTX *dh) { if (server_mode) { - SSL_CTX_set_ssl_version(ssl_ctx, TLSv1_server_method()); + SSL_CTX_set_ssl_version(ssl_ctx, SSLv23_method()); + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2); AddChainSslCertOnDirectory(ssl_ctx); @@ -5832,7 +5838,7 @@ SSL_PIPE *NewSslPipe(bool server_mode, X *x, K *k, DH_CTX *dh) } else { - SSL_CTX_set_ssl_version(ssl_ctx, TLSv1_client_method()); + SSL_CTX_set_ssl_version(ssl_ctx, SSLv23_client_method()); } //SSL_CTX_set_verify(ssl_ctx, SSL_VERIFY_PEER, cb_test); @@ -7367,7 +7373,7 @@ bool StrToIP6(IP *ip, char *str) if (StartWith(tmp, "[") && EndWith(tmp, "]")) { // If the string is enclosed in square brackets, remove brackets - StrCpy(tmp, sizeof(tmp), &tmp[1]); + StrCpyAllowOverlap(tmp, sizeof(tmp), &tmp[1]); if (StrLen(tmp) >= 1) { @@ -9157,12 +9163,23 @@ void UnixSetSockEvent(SOCK_EVENT *event) } } +// This is a helper function for select() +int safe_fd_set(int fd, fd_set* fds, int* max_fd) { + FD_SET(fd, fds); + if (fd > *max_fd) { + *max_fd = fd; + } + return 0; +} + // Execute 'select' for the socket void UnixSelectInner(UINT num_read, UINT *reads, UINT num_write, UINT *writes, UINT timeout) { #ifdef UNIX_MACOS - int kq; - struct kevent *kevents; + fd_set rfds; //read descriptors + fd_set wfds; //write descriptors + int max_fd = 0; //maximum descriptor id + struct timeval tv; //timeval for timeout #else // UNIX_MACOS struct pollfd *p; #endif // UNIX_MACOS @@ -9203,8 +9220,8 @@ void UnixSelectInner(UINT num_read, UINT *reads, UINT num_write, UINT *writes, U num = num_read_total + num_write_total; #ifdef UNIX_MACOS - kq = kqueue(); - kevents = ZeroMallocFast(sizeof(struct kevent) * (num + num_write_total)); + FD_ZERO(&rfds); //zero out descriptor set for read descriptors + FD_ZERO(&wfds); //same for write #else // UNIX_MACOS p = ZeroMallocFast(sizeof(struct pollfd) * num); #endif // UNIX_MACOS @@ -9216,7 +9233,7 @@ void UnixSelectInner(UINT num_read, UINT *reads, UINT num_write, UINT *writes, U if (reads[i] != INVALID_SOCKET) { #ifdef UNIX_MACOS - EV_SET(&kevents[n++], reads[i], EVFILT_READ, EV_ADD, 0, 0, NULL); + safe_fd_set(reads[i], &rfds, &max_fd); #else // UNIX_MACOS struct pollfd *pfd = &p[n++]; pfd->fd = reads[i]; @@ -9230,8 +9247,7 @@ void UnixSelectInner(UINT num_read, UINT *reads, UINT num_write, UINT *writes, U if (writes[i] != INVALID_SOCKET) { #ifdef UNIX_MACOS - EV_SET(&kevents[n++], reads[i], EVFILT_READ, EV_ADD, 0, 0, NULL); - EV_SET(&kevents[n++], reads[i], EVFILT_WRITE, EV_ADD, 0, 0, NULL); + safe_fd_set(writes[i], &wfds, &max_fd); #else // UNIX_MACOS struct pollfd *pfd = &p[n++]; pfd->fd = writes[i]; @@ -9243,15 +9259,9 @@ void UnixSelectInner(UINT num_read, UINT *reads, UINT num_write, UINT *writes, U if (num != 0) { #ifdef UNIX_MACOS - struct timespec kevent_timeout, *p_kevent_timeout; - if (timeout == INFINITE) { - p_kevent_timeout = NULL; - } else { - kevent_timeout.tv_sec = timeout / 1000; - kevent_timeout.tv_nsec = (timeout % 1000) * 1000000l; - p_kevent_timeout = &kevent_timeout; - } - kevent(kq, kevents, n, kevents, n, p_kevent_timeout); + tv.tv_sec = timeout / 1000; + tv.tv_usec = (timeout % 1000) * 1000l; + select(max_fd + 1, &rfds, &wfds, NULL, timeout == INFINITE ? NULL : &tv); #else // UNIX_MACOS poll(p, num, timeout == INFINITE ? -1 : (int)timeout); #endif // UNIX_MACOS @@ -9261,12 +9271,9 @@ void UnixSelectInner(UINT num_read, UINT *reads, UINT num_write, UINT *writes, U SleepThread(timeout); } -#ifdef UNIX_MACOS - Free(kevents); - close(kq); -#else // UNIX_MACOS +#ifndef UNIX_MACOS Free(p); -#endif // UNIX_MACOS +#endif // not UNIX_MACOS } // Clean-up of the socket event @@ -9422,11 +9429,13 @@ void UnixInitAsyncSocket(SOCK *sock) UnixSetSocketNonBlockingMode(sock->socket, true); } +#if OPENSSL_VERSION_NUMBER < 0x10100000L if (sock->ssl != NULL && sock->ssl->s3 != NULL) { sock->Ssl_Init_Async_SendAlert[0] = sock->ssl->s3->send_alert[0]; sock->Ssl_Init_Async_SendAlert[1] = sock->ssl->s3->send_alert[1]; } +#endif } // Initializing the socket library @@ -12682,6 +12691,14 @@ bool RecvAll(SOCK *sock, void *data, UINT size, bool secure) { return false; } + if (ret == SOCK_LATER) + { + // I suppose that this is safe because the RecvAll() function is used only + // if the sock->AsyncMode == true. And the Recv() function may return + // SOCK_LATER only if the sock->AsyncMode == false. Therefore the call of + // Recv() function in the RecvAll() function never returns SOCK_LATER. + return false; + } recv_size += ret; if (recv_size >= size) { @@ -12764,7 +12781,7 @@ bool SendAll(SOCK *sock, void *data, UINT size, bool secure) // Set the cipher algorithm name to want to use void SetWantToUseCipher(SOCK *sock, char *name) { - char tmp[254]; + char tmp[1024]; // Validate arguments if (sock == NULL || name == NULL) { @@ -12904,7 +12921,7 @@ bool AddChainSslCert(struct ssl_ctx_st *ctx, X *x) // Start a TCP-SSL communication bool StartSSL(SOCK *sock, X *x, K *priv) { - return StartSSLEx(sock, x, priv, false, 0, NULL); + return StartSSLEx(sock, x, priv, true, 0, NULL); } bool StartSSLEx(SOCK *sock, X *x, K *priv, bool client_tls, UINT ssl_timeout, char *sni_hostname) { @@ -12966,13 +12983,38 @@ bool StartSSLEx(SOCK *sock, X *x, K *priv, bool client_tls, UINT ssl_timeout, ch { if (sock->ServerMode) { - if (sock->AcceptOnlyTls == false) + SSL_CTX_set_ssl_version(ssl_ctx, SSLv23_method()); + +#ifdef SSL_OP_NO_SSLv2 + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2); +#endif // SSL_OP_NO_SSLv2 + + if (sock->SslAcceptSettings.AcceptOnlyTls) { - SSL_CTX_set_ssl_version(ssl_ctx, SSLv23_method()); +#ifdef SSL_OP_NO_SSLv3 + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv3); +#endif // SSL_OP_NO_SSLv3 } - else + + if (sock->SslAcceptSettings.Tls_Disable1_0) { - SSL_CTX_set_ssl_version(ssl_ctx, TLSv1_method()); +#ifdef SSL_OP_NO_TLSv1 + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_TLSv1); +#endif // SSL_OP_NO_TLSv1 + } + + if (sock->SslAcceptSettings.Tls_Disable1_1) + { +#ifdef SSL_OP_NO_TLSv1_1 + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_TLSv1_1); +#endif // SSL_OP_NO_TLSv1_1 + } + + if (sock->SslAcceptSettings.Tls_Disable1_2) + { +#ifdef SSL_OP_NO_TLSv1_2 + SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_TLSv1_2); +#endif // SSL_OP_NO_TLSv1_2 } Unlock(openssl_lock); @@ -12983,11 +13025,15 @@ bool StartSSLEx(SOCK *sock, X *x, K *priv, bool client_tls, UINT ssl_timeout, ch { if (client_tls == false) { +#if OPENSSL_VERSION_NUMBER < 0x10100000L SSL_CTX_set_ssl_version(ssl_ctx, SSLv3_method()); +#else + SSL_CTX_set_ssl_version(ssl_ctx, SSLv23_method()); +#endif } else { - SSL_CTX_set_ssl_version(ssl_ctx, TLSv1_client_method()); + SSL_CTX_set_ssl_version(ssl_ctx, SSLv23_client_method()); } } sock->ssl = SSL_new(ssl_ctx); @@ -13003,6 +13049,7 @@ bool StartSSLEx(SOCK *sock, X *x, K *priv, bool client_tls, UINT ssl_timeout, ch } } #endif // SSL_CTRL_SET_TLSEXT_HOSTNAME + } Unlock(openssl_lock); @@ -13188,6 +13235,8 @@ bool StartSSLEx(SOCK *sock, X *x, K *priv, bool client_tls, UINT ssl_timeout, ch return true; } + + #ifdef ENABLE_SSL_LOGGING // Enable SSL logging @@ -13346,10 +13395,14 @@ UINT SecureRecv(SOCK *sock, void *data, UINT size) e = SSL_get_error(ssl, ret); if (e == SSL_ERROR_WANT_READ || e == SSL_ERROR_WANT_WRITE || e == SSL_ERROR_SSL) { - if (e == SSL_ERROR_SSL && + if (e == SSL_ERROR_SSL +#if OPENSSL_VERSION_NUMBER < 0x10100000L + && sock->ssl->s3->send_alert[0] == SSL3_AL_FATAL && sock->ssl->s3->send_alert[0] != sock->Ssl_Init_Async_SendAlert[0] && - sock->ssl->s3->send_alert[1] != sock->Ssl_Init_Async_SendAlert[1]) + sock->ssl->s3->send_alert[1] != sock->Ssl_Init_Async_SendAlert[1] +#endif + ) { Debug("%s %u SSL Fatal Error on ASYNC socket !!!\n", __FILE__, __LINE__); Disconnect(sock); @@ -13432,10 +13485,14 @@ UINT SecureRecv(SOCK *sock, void *data, UINT size) { if (e == SSL_ERROR_WANT_READ || e == SSL_ERROR_WANT_WRITE || e == SSL_ERROR_SSL) { - if (e == SSL_ERROR_SSL && + if (e == SSL_ERROR_SSL +#if OPENSSL_VERSION_NUMBER < 0x10100000L + && sock->ssl->s3->send_alert[0] == SSL3_AL_FATAL && sock->ssl->s3->send_alert[0] != sock->Ssl_Init_Async_SendAlert[0] && - sock->ssl->s3->send_alert[1] != sock->Ssl_Init_Async_SendAlert[1]) + sock->ssl->s3->send_alert[1] != sock->Ssl_Init_Async_SendAlert[1] +#endif + ) { Debug("%s %u SSL Fatal Error on ASYNC socket !!!\n", __FILE__, __LINE__); Disconnect(sock); @@ -13820,6 +13877,10 @@ void DisableGetHostNameWhenAcceptInit() // Initialize the connection acceptance void AcceptInit(SOCK *s) +{ + AcceptInitEx(s, false); +} +void AcceptInitEx(SOCK *s, bool no_lookup_hostname) { char tmp[MAX_SIZE]; // Validate arguments @@ -13830,7 +13891,7 @@ void AcceptInit(SOCK *s) Zero(tmp, sizeof(tmp)); - if (disable_gethostname_by_accept == false) + if (disable_gethostname_by_accept == false && no_lookup_hostname == false) { if (GetHostName(tmp, sizeof(tmp), &s->RemoteIP) == false || IsEmptyStr(tmp)) @@ -15275,7 +15336,7 @@ SOCK *ConnectEx4(char *hostname, UINT port, UINT timeout, bool *cancel_flag, cha Copy(&ip4, ret_ip, sizeof(IP)); } - Debug("Using cached IP address: %s = %r\n", hostname_original, ret_ip); + //Debug("Using cached IP address: %s = %r\n", hostname_original, ret_ip); } else { @@ -17537,7 +17598,7 @@ void IPToInAddr6(struct in6_addr *addr, IP *ip) return; } - Zero(addr, sizeof(struct in_addr)); + Zero(addr, sizeof(struct in6_addr)); if (IsIP6(ip)) { @@ -17742,9 +17803,9 @@ DH *TmpDhCallback(SSL *ssl, int is_export, int keylength) { DH *ret = NULL; - if (dh_1024 != NULL) + if (dh_2048 != NULL) { - ret = dh_1024->dh; + ret = dh_2048->dh; } return ret; @@ -17768,6 +17829,10 @@ struct ssl_ctx_st *NewSSLCtx(bool server_mode) SSL_CTX_set_tmp_dh_callback(ctx, TmpDhCallback); +#ifdef SSL_CTX_set_ecdh_auto + SSL_CTX_set_ecdh_auto(ctx, 1); +#endif // SSL_CTX_set_ecdh_auto + return ctx; } @@ -17861,7 +17926,7 @@ void InitNetwork() disable_cache = false; - dh_1024 = DhNewGroup2(); + dh_2048 = DhNew2048(); Zero(rand_port_numbers, sizeof(rand_port_numbers)); @@ -18270,7 +18335,7 @@ void SetCurrentGlobalIP(IP *ip, bool ipv6) return; } - if (IsZeroIp(ip)); + if (IsZeroIp(ip)) { return; } @@ -18295,10 +18360,10 @@ void SetCurrentGlobalIP(IP *ip, bool ipv6) void FreeNetwork() { - if (dh_1024 != NULL) + if (dh_2048 != NULL) { - DhFree(dh_1024); - dh_1024 = NULL; + DhFree(dh_2048); + dh_2048 = NULL; } // Release of thread-related @@ -22663,7 +22728,14 @@ bool GetSniNameFromSslPacket(UCHAR *packet_buf, UINT packet_size, char *sni, UIN USHORT handshake_length; // Validate arguments - if (packet_buf == NULL || packet_size == 0) + if (packet_buf == NULL || packet_size <= 11) + { + return false; + } + + if (!(packet_buf[0] == 0x16 && packet_buf[1] >= 0x03 && + packet_buf[5] == 0x01 && packet_buf[6] == 0x00 && + packet_buf[9] >= 0x03)) { return false; } @@ -22677,7 +22749,7 @@ bool GetSniNameFromSslPacket(UCHAR *packet_buf, UINT packet_size, char *sni, UIN version = Endian16(version); handshake_length = Endian16(handshake_length); - if (version >= 0x0301) + if (content_type == 0x16 && version >= 0x0301) { UCHAR *handshake_data = Malloc(handshake_length); @@ -22794,9 +22866,12 @@ bool GetSniNameFromSslPacket(UCHAR *packet_buf, UINT packet_size, char *sni, UIN if (ReadBuf(dbuf, name_buf, name_len) == name_len) { - ret = true; + if (StrLen(name_buf) >= 1) + { + ret = true; - StrCpy(sni, sni_size, name_buf); + StrCpy(sni, sni_size, name_buf); + } } Free(name_buf); @@ -22849,7 +22924,3 @@ bool GetSniNameFromSslPacket(UCHAR *packet_buf, UINT packet_size, char *sni, UIN return ret; } - -// 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/Network.h b/src/Mayaqua/Network.h index bb4c69b..de934a3 100644 --- a/src/Mayaqua/Network.h +++ b/src/Mayaqua/Network.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -246,6 +246,15 @@ struct SOCK_EVENT #define SOCK_RUDP_LISTEN 5 #define SOCK_REVERSE_LISTEN 6 +// SSL Accept Settings +struct SSL_ACCEPT_SETTINGS +{ + bool AcceptOnlyTls; + bool Tls_Disable1_0; + bool Tls_Disable1_1; + bool Tls_Disable1_2; +}; + // Socket struct SOCK { @@ -312,7 +321,7 @@ struct SOCK IP Reverse_MyServerGlobalIp; // Self global IP address when using the reverse socket UINT Reverse_MyServerPort; // Self port number when using the reverse socket UCHAR Ssl_Init_Async_SendAlert[2]; // Initial state of SSL send_alert - bool AcceptOnlyTls; // Accept only TLS (disable SSLv3) + SSL_ACCEPT_SETTINGS SslAcceptSettings; // SSL Accept Settings bool RawIP_HeaderIncludeFlag; #ifdef ENABLE_SSL_LOGGING @@ -1368,6 +1377,7 @@ bool GetDomainName(char *name, UINT size); bool UnixGetDomainName(char *name, UINT size); void RenewDhcp(); void AcceptInit(SOCK *s); +void AcceptInitEx(SOCK *s, bool no_lookup_hostname); void DisableGetHostNameWhenAcceptInit(); bool CheckCipherListName(char *name); TOKEN_LIST *GetCipherList(); @@ -1676,7 +1686,3 @@ UINT64 GetDynValueOrDefaultSafe(char *name, UINT64 default_value); #endif // NETWORK_H - -// 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/OS.c b/src/Mayaqua/OS.c index aa14936..b884729 100644 --- a/src/Mayaqua/OS.c +++ b/src/Mayaqua/OS.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -555,7 +555,3 @@ void OSFreeEvent(EVENT *event) os->FreeEvent(event); } - -// 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/OS.h b/src/Mayaqua/OS.h index 372351c..132e639 100644 --- a/src/Mayaqua/OS.h +++ b/src/Mayaqua/OS.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -244,7 +244,3 @@ typedef struct OS_DISPATCH_TABLE #endif // OS_H - -// 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/Object.c b/src/Mayaqua/Object.c index 5838a2a..e07bbed 100644 --- a/src/Mayaqua/Object.c +++ b/src/Mayaqua/Object.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -620,7 +620,3 @@ bool WaitEx(EVENT *e, UINT timeout, volatile bool *cancel) - -// 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/Object.h b/src/Mayaqua/Object.h index fdfbfd3..ff8733d 100644 --- a/src/Mayaqua/Object.h +++ b/src/Mayaqua/Object.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -213,7 +213,3 @@ void CheckDeadLockThread(THREAD *t, void *param); #endif // OBJECT_H - -// 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/Pack.c b/src/Mayaqua/Pack.c index bcc9408..35a50a5 100644 --- a/src/Mayaqua/Pack.c +++ b/src/Mayaqua/Pack.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -354,7 +354,7 @@ VALUE *ReadValue(BUF *b, UINT type) break; case VALUE_STR: // ANSI string len = ReadBufInt(b); - if ((len + 1) > MAX_VALUE_SIZE) + if (len > (MAX_VALUE_SIZE - 1)) { // Size over break; @@ -1730,7 +1730,3 @@ void PackAddStr(PACK *p, char *name, char *str) } - -// 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/Pack.h b/src/Mayaqua/Pack.h index 378533e..49b8f70 100644 --- a/src/Mayaqua/Pack.h +++ b/src/Mayaqua/Pack.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -260,7 +260,3 @@ bool PackGetDataEx2(PACK *p, char *name, void *data, UINT size, UINT index); bool PackIsValueExists(PACK *p, char *name); #endif // PACK_H - -// 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/Secure.c b/src/Mayaqua/Secure.c index a6b646e..ffaf0f0 100644 --- a/src/Mayaqua/Secure.c +++ b/src/Mayaqua/Secure.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -424,12 +424,18 @@ bool SignSecByObject(SECURE *sec, SEC_OBJ *obj, void *dst, void *src, UINT size) // Perform Signing size = 128; + // First try with 1024 bit ret = sec->Api->C_Sign(sec->SessionId, hash, sizeof(hash), dst, &size); - if (ret != CKR_OK || size != 128) + if (ret != CKR_OK && 128 < size && size <= 4096/8) + { + // Retry with expanded bits + ret = sec->Api->C_Sign(sec->SessionId, hash, sizeof(hash), dst, &size); + } + if (ret != CKR_OK || size == 0 || size > 4096/8) { // Failure sec->Error = SEC_ERROR_HARDWARE_ERROR; - Debug("C_Sign Error: 0x%x\n", ret); + Debug("C_Sign Error: 0x%x size:%d\n", ret, size); return false; } @@ -482,6 +488,7 @@ bool WriteSecKey(SECURE *sec, bool private_obj, char *name, K *k) RSA *rsa; UCHAR modules[MAX_SIZE], pub[MAX_SIZE], pri[MAX_SIZE], prime1[MAX_SIZE], prime2[MAX_SIZE]; UCHAR exp1[MAX_SIZE], exp2[MAX_SIZE], coeff[MAX_SIZE]; + const BIGNUM *n, *e, *d, *p, *q, *dmp1, *dmq1, *iqmp; CK_ATTRIBUTE a[] = { {CKA_MODULUS, modules, 0}, // 0 @@ -530,48 +537,64 @@ bool WriteSecKey(SECURE *sec, bool private_obj, char *name, K *k) } // Numeric data generation - rsa = k->pkey->pkey.rsa; + rsa = EVP_PKEY_get0_RSA(k->pkey); if (rsa == NULL) { sec->Error = SEC_ERROR_BAD_PARAMETER; return false; } - b = BigNumToBuf(rsa->n); + +#if OPENSSL_VERSION_NUMBER >= 0x10100000L + RSA_get0_key(rsa, &n, &e, &d); + RSA_get0_factors(rsa, &p, &q); + RSA_get0_crt_params(rsa, &dmp1, &dmq1, &iqmp); +#else + n = rsa->n; + e = rsa->e; + d = rsa->d; + p = rsa->p; + q = rsa->q; + dmp1 = rsa->dmp1; + dmq1 = rsa->dmq1; + iqmp = rsa->iqmp; +#endif + + b = BigNumToBuf(n); ReadBuf(b, modules, sizeof(modules)); A_SIZE(a, 0) = b->Size; FreeBuf(b); - b = BigNumToBuf(rsa->e); + b = BigNumToBuf(e); ReadBuf(b, pub, sizeof(pub)); A_SIZE(a, 1) = b->Size; FreeBuf(b); - b = BigNumToBuf(rsa->d); + b = BigNumToBuf(d); ReadBuf(b, pri, sizeof(pri)); A_SIZE(a, 2) = b->Size; FreeBuf(b); - b = BigNumToBuf(rsa->p); + b = BigNumToBuf(p); ReadBuf(b, prime1, sizeof(prime1)); A_SIZE(a, 3) = b->Size; FreeBuf(b); - b = BigNumToBuf(rsa->q); + b = BigNumToBuf(q); ReadBuf(b, prime2, sizeof(prime2)); A_SIZE(a, 4) = b->Size; FreeBuf(b); - b = BigNumToBuf(rsa->dmp1); + b = BigNumToBuf(dmp1); ReadBuf(b, exp1, sizeof(exp1)); A_SIZE(a, 5) = b->Size; FreeBuf(b); - b = BigNumToBuf(rsa->dmq1); + b = BigNumToBuf(dmq1); ReadBuf(b, exp2, sizeof(exp2)); A_SIZE(a, 6) = b->Size; FreeBuf(b); - b = BigNumToBuf(rsa->iqmp); + b = BigNumToBuf(iqmp); ReadBuf(b, coeff, sizeof(coeff)); A_SIZE(a, 7) = b->Size; FreeBuf(b); @@ -2007,7 +2030,7 @@ void TestSecMain(SECURE *sec) } Print("Generating Key...\n"); - if (RsaGen(&private_key, &public_key, 1024) == false) + if (RsaGen(&private_key, &public_key, 2048) == false) { Print("RsaGen() Failed.\n"); } @@ -2077,9 +2100,10 @@ void TestSecMain(SECURE *sec) } else { - UCHAR sign_cpu[128]; - UCHAR sign_sec[128]; + UCHAR sign_cpu[512]; + UCHAR sign_sec[512]; K *pub = GetKFromX(cert); + UINT keybtytes = (cert->bits)/8; Print("Ok.\n"); Print("Signing Data by CPU...\n"); if (RsaSign(sign_cpu, test_str, StrLen(test_str), private_key) == false) @@ -2090,7 +2114,7 @@ void TestSecMain(SECURE *sec) { Print("Ok.\n"); Print("sign_cpu: "); - PrintBin(sign_cpu, sizeof(sign_cpu)); + PrintBin(sign_cpu, keybtytes); Print("Signing Data by %s..\n", sec->Dev->DeviceName); if (SignSec(sec, "test_key", sign_sec, test_str, StrLen(test_str)) == false) { @@ -2100,14 +2124,14 @@ void TestSecMain(SECURE *sec) { Print("Ok.\n"); Print("sign_sec: "); - PrintBin(sign_sec, sizeof(sign_sec)); + PrintBin(sign_sec, keybtytes); Print("Compare..."); - if (Cmp(sign_sec, sign_cpu, sizeof(sign_cpu)) == 0) + if (Cmp(sign_sec, sign_cpu, keybtytes) == 0) { Print("Ok.\n"); Print("Verify..."); - if (RsaVerify(test_str, StrLen(test_str), - sign_sec, pub) == false) + if (RsaVerifyEx(test_str, StrLen(test_str), + sign_sec, pub, cert->bits) == false) { Print("[FAILED]\n"); } @@ -2248,7 +2272,3 @@ void FreeSecure() } - -// 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/Secure.h b/src/Mayaqua/Secure.h index a0555bf..50a728b 100644 --- a/src/Mayaqua/Secure.h +++ b/src/Mayaqua/Secure.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -307,7 +307,9 @@ SECURE_DEVICE SupportedList[] = {18, SECURE_IC_CARD, "Gemalto .NET", "Gemalto", "gtop11dotnet.dll"}, {19, SECURE_IC_CARD, "Gemalto .NET 64bit", "Gemalto", "gtop11dotnet64.dll"}, {20, SECURE_USB_TOKEN, "ePass 2003", "Feitian Technologies", "eps2003csp11.dll"}, - {20, SECURE_USB_TOKEN, "ePass 1000ND/2000/3000", "Feitian Technologies", "ngp11v211.dll"}, + {21, SECURE_USB_TOKEN, "ePass 1000ND/2000/3000", "Feitian Technologies", "ngp11v211.dll"}, + {22, SECURE_USB_TOKEN, "CryptoID", "Longmai Technology", "cryptoide_pkcs11.dll"}, + {23, SECURE_USB_TOKEN, "RuToken", "Aktiv Co.", "rtPKCS11.dll"}, }; #ifdef OS_WIN32 @@ -323,7 +325,3 @@ typedef struct SEC_DATA_WIN32 #endif // SECURE_C #endif // SECURE_H - -// 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/Str.c b/src/Mayaqua/Str.c index ddc0d55..0e1783d 100644 --- a/src/Mayaqua/Str.c +++ b/src/Mayaqua/Str.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -3346,6 +3346,54 @@ UINT StrCpy(char *dst, UINT size, char *src) return len; } +UINT StrCpyAllowOverlap(char *dst, UINT size, char *src) +{ + UINT len; + // Validate arguments + if (dst == src) + { + return StrLen(src); + } + if (dst == NULL || src == NULL) + { + if (src == NULL && dst != NULL) + { + if (size >= 1) + { + dst[0] = '\0'; + } + } + return 0; + } + if (size == 1) + { + dst[0] = '\0'; + return 0; + } + if (size == 0) + { + // Ignore the length + size = 0x7fffffff; + } + + // Check the length + len = StrLen(src); + if (len <= (size - 1)) + { + Move(dst, src, len + 1); + } + else + { + len = size - 1; + Move(dst, src, len); + dst[len] = '\0'; + } + + // KS + KS_INC(KS_STRCPY_COUNT); + + return len; +} // Check whether the string buffer is within the specified size bool StrCheckSize(char *str, UINT size) @@ -3415,7 +3463,3 @@ UINT StrLen(char *str) } - -// 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/Str.h b/src/Mayaqua/Str.h index ed72ae1..a81f278 100644 --- a/src/Mayaqua/Str.h +++ b/src/Mayaqua/Str.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -135,6 +135,7 @@ UINT StrSize(char *str); bool StrCheckLen(char *str, UINT len); bool StrCheckSize(char *str, UINT size); UINT StrCpy(char *dst, UINT size, char *src); +UINT StrCpyAllowOverlap(char *dst, UINT size, char *src); UINT StrCat(char *dst, UINT size, char *src); UINT StrCatLeft(char *dst, UINT size, char *src); char ToLower(char c); @@ -252,7 +253,3 @@ void SetStrCaseAccordingToBits(char *str, UINT bits); #endif // STR_H - -// 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/Table.c b/src/Mayaqua/Table.c index d306059..2bd085e 100644 --- a/src/Mayaqua/Table.c +++ b/src/Mayaqua/Table.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -562,6 +562,13 @@ LIST *LoadLangList() char *filename = LANGLIST_FILENAME; BUF *b; +#ifdef OS_WIN32 + if (MsIsWine()) + { + filename = LANGLIST_FILENAME_WINE; + } +#endif // OS_WIN32 + b = ReadDump(filename); if (b == NULL) { @@ -1497,7 +1504,3 @@ bool LoadTableW(wchar_t *filename) } - -// 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/Table.h b/src/Mayaqua/Table.h index fa7e6f8..9bc7796 100644 --- a/src/Mayaqua/Table.h +++ b/src/Mayaqua/Table.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -117,6 +117,8 @@ #define UNICODE_CACHE_FILE L".unicode_cache_%s.dat" #define LANGLIST_FILENAME "|languages.txt" +#define LANGLIST_FILENAME_WINE "|languages_wine.txt" + #define LANG_CONFIG_FILENAME L"@lang.config" #define LANG_CONFIG_TEMPLETE "|lang.config" @@ -210,7 +212,3 @@ UINT GetCurrentOsLangId(); - -// 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/TcpIp.c b/src/Mayaqua/TcpIp.c index 39c43c0..3c890d5 100644 --- a/src/Mayaqua/TcpIp.c +++ b/src/Mayaqua/TcpIp.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -174,14 +174,14 @@ ICMP_RESULT *IcmpParseResult(IP *dest_ip, USHORT src_id, USHORT src_seqno, UCHAR if (true) { UINT ip_header_size = GetIpHeaderSize(recv_buffer, i); - if (ip_header_size >= sizeof(IPV4_HEADER)) + if (ip_header_size >= sizeof(IPV4_HEADER) && (ip_header_size <= i)) { IPV4_HEADER *ipv4 = (IPV4_HEADER *)recv_buffer; if ((IPV4_GET_VERSION(ipv4) == 4) && (ipv4->Protocol == IP_PROTO_ICMPV4)) { UINT ip_total_len = (UINT)Endian16(ipv4->TotalLength); - if ((ip_total_len >= sizeof(IPV4_HEADER)) && (ip_total_len <= i)) + if ((ip_total_len >= sizeof(IPV4_HEADER)) && (ip_total_len <= i) && (ip_total_len >= ip_header_size)) { UINT icmp_packet_size = ip_total_len - ip_header_size; ICMP_HEADER *icmp = (ICMP_HEADER *)(recv_buffer + ip_header_size); @@ -669,6 +669,7 @@ bool AdjustTcpMssL3(UCHAR *src, UINT src_size, UINT mss) if (ip_ver == 4) { UINT ip_header_size; + UINT ip_total_length; // IPv4 if (src_size < sizeof(IPV4_HEADER)) { @@ -709,8 +710,22 @@ bool AdjustTcpMssL3(UCHAR *src, UINT src_size, UINT mss) return false; } + ip_total_length = READ_USHORT(&ip->TotalLength); + + if (ip_total_length < ip_header_size) + { + // Invalid total length + return false; + } + + if (src_size < ip_total_length) + { + // No total length + return false; + } + src += ip_header_size; - src_size -= ip_header_size; + src_size = ip_total_length - ip_header_size; if (src_size < sizeof(TCP_HEADER)) { @@ -1673,6 +1688,10 @@ PKT *ClonePacket(PKT *p, bool copy_data) ret->L7.IkeHeader = MallocFast(sizeof(IKE_HEADER)); Copy(ret->L7.IkeHeader, p->L7.IkeHeader, sizeof(IKE_HEADER)); break; + + case L7_DNS: + StrCpy(ret->DnsQueryHost, sizeof(ret->DnsQueryHost), p->DnsQueryHost); + break; } // Address data @@ -1829,19 +1848,27 @@ PKT *ParsePacketEx4(UCHAR *buf, UINT size, bool no_l3, UINT vlan_type_id, bool b { USHORT port_raw = Endian16(80); USHORT port_raw2 = Endian16(8080); + USHORT port_raw3 = Endian16(443); + USHORT port_raw4 = Endian16(3128); // Analyze if the packet is a part of HTTP if ((p->TypeL3 == L3_IPV4 || p->TypeL3 == L3_IPV6) && p->TypeL4 == L4_TCP) { TCP_HEADER *tcp = p->L4.TCPHeader; - if (tcp->DstPort == port_raw || tcp->DstPort == port_raw2) + if (tcp != NULL && (tcp->DstPort == port_raw || tcp->DstPort == port_raw2 || tcp->DstPort == port_raw4) && + (!((tcp->Flag & TCP_SYN) || (tcp->Flag & TCP_RST) || (tcp->Flag & TCP_FIN)))) { - if (tcp != NULL && (!((tcp->Flag & TCP_SYN) || (tcp->Flag & TCP_RST) || (tcp->Flag & TCP_FIN)))) + if (p->PayloadSize >= 1) { - if (p->PayloadSize >= 1) - { - p->HttpLog = ParseHttpAccessLog(p); - } + p->HttpLog = ParseHttpAccessLog(p); + } + } + if (tcp != NULL && tcp->DstPort == port_raw3 && + (!((tcp->Flag & TCP_SYN) || (tcp->Flag & TCP_RST) || (tcp->Flag & TCP_FIN)))) + { + if (p->PayloadSize >= 1) + { + p->HttpLog = ParseHttpsAccessLog(p); } } } @@ -1930,7 +1957,7 @@ void CorrectChecksum(PKT *p) { udp->Checksum = 0; - if ((IPV4_GET_FLAGS(v4) & 0x01) == 0) + if ((IPV4_GET_FLAGS(v4) & 0x01) == 0 && (p->IPv4PayloadSize >= udp_len)) { // Calculate the checksum correctly based on the data in case of a non-fragmented packet udp->Checksum = CalcChecksumForIPv4(v4->SrcIP, v4->DstIP, IP_PROTO_UDP, udp, udp_len, 0); @@ -1996,7 +2023,7 @@ void CorrectChecksum(PKT *p) { udp->Checksum = 0; - if (v6info->FragmentHeader == NULL || ((IPV6_GET_FLAGS(v6info->FragmentHeader) & IPV6_FRAGMENT_HEADER_FLAG_MORE_FRAGMENTS) == 0)) + if ((v6info->FragmentHeader == NULL || ((IPV6_GET_FLAGS(v6info->FragmentHeader) & IPV6_FRAGMENT_HEADER_FLAG_MORE_FRAGMENTS) == 0)) && (v6info->PayloadSize >= udp_len)) { // If the packet is not fragmented, recalculate the checksum udp->Checksum = CalcChecksumForIPv6(&v6->SrcAddress, &v6->DestAddress, IP_PROTO_UDP, udp, udp_len, 0); @@ -2014,6 +2041,33 @@ void CorrectChecksum(PKT *p) } +// Parse the HTTPS access log +HTTPLOG *ParseHttpsAccessLog(PKT *pkt) +{ + HTTPLOG h; + char sni[MAX_PATH]; + // Validate arguments + if (pkt == NULL) + { + return NULL; + } + + if (GetSniNameFromSslPacket(pkt->Payload, pkt->PayloadSize, sni, sizeof(sni)) == false) + { + return NULL; + } + + Zero(&h, sizeof(h)); + + StrCpy(h.Method, sizeof(h.Method), "SSL_Connect"); + StrCpy(h.Hostname, sizeof(h.Hostname), sni); + h.Port = Endian16(pkt->L4.TCPHeader->DstPort); + StrCpy(h.Path, sizeof(h.Path), "/"); + h.IsSsl = true; + + return Clone(&h, sizeof(h)); +} + // Parse the HTTP access log HTTPLOG *ParseHttpAccessLog(PKT *pkt) { @@ -2814,6 +2868,7 @@ PKT *ParsePacketIPv4WithDummyMacHeader(UCHAR *buf, UINT size) { UCHAR *tmp; UINT tmp_size; + PKT *ret; // Validate arguments if (buf == NULL) { @@ -2826,7 +2881,14 @@ PKT *ParsePacketIPv4WithDummyMacHeader(UCHAR *buf, UINT size) WRITE_USHORT(tmp + 12, MAC_PROTO_IPV4); Copy(tmp + 14, buf, size); - return ParsePacket(tmp, tmp_size); + ret = ParsePacket(tmp, tmp_size); + + if (ret == NULL) + { + Free(tmp); + } + + return ret; } // IPv4 parsing @@ -2961,6 +3023,148 @@ bool ParseTCP(PKT *p, UCHAR *buf, UINT size) return true; } +// Get the next byte +UCHAR GetNextByte(BUF *b) +{ + UCHAR c = 0; + // Validate arguments + if (b == NULL) + { + return 0; + } + + if (ReadBuf(b, &c, 1) != 1) + { + return 0; + } + + return c; +} + +// Interpret the DNS query +bool ParseDnsQuery(char *name, UINT name_size, void *data, UINT data_size) +{ + BUF *b; + char tmp[257]; + bool ok = true; + USHORT val; + // Validate arguments + if (name == NULL || data == NULL || data_size == 0) + { + return false; + } + StrCpy(name, name_size, ""); + + b = NewBuf(); + WriteBuf(b, data, data_size); + SeekBuf(b, 0, 0); + + while (true) + { + UINT next_len = (UINT)GetNextByte(b); + if (next_len > 0) + { + // Read only the specified length + Zero(tmp, sizeof(tmp)); + if (ReadBuf(b, tmp, next_len) != next_len) + { + ok = false; + break; + } + // Append + if (StrLen(name) != 0) + { + StrCat(name, name_size, "."); + } + StrCat(name, name_size, tmp); + } + else + { + // Read all + break; + } + } + + if (ReadBuf(b, &val, sizeof(val)) != sizeof(val)) + { + ok = false; + } + else + { + if (Endian16(val) != 0x01 && Endian16(val) != 0x0c) + { + ok = false; + } + } + + if (ReadBuf(b, &val, sizeof(val)) != sizeof(val)) + { + ok = false; + } + else + { + if (Endian16(val) != 0x01) + { + ok = false; + } + } + + FreeBuf(b); + + if (ok == false || StrLen(name) == 0) + { + return false; + } + else + { + return true; + } +} + +// DNS parsing +void ParseDNS(PKT *p, UCHAR *buf, UINT size) +{ + UCHAR *query_data; + UINT query_data_size; + DNSV4_HEADER *dns; + char hostname[MAX_SIZE]; + if (p == NULL|| buf == NULL) + { + return; + } + + if (size < sizeof(DNSV4_HEADER)) + { + return; + } + + dns = (DNSV4_HEADER *)buf; + + if ((dns->Flag1 & 78) != 0 || (dns->Flag1 & 0x80) != 0) + { + // Illegal opcode + return; + } + if (Endian16(dns->NumQuery) != 1) + { + // Number of queries is invalid + return; + } + + query_data = ((UCHAR *)dns) + sizeof(DNSV4_HEADER); + query_data_size = size - sizeof(DNSV4_HEADER); + + // Interpret the query + if (ParseDnsQuery(hostname, sizeof(hostname), query_data, query_data_size) == false) + { + // Interpretation fails + return; + } + + StrCpy(p->DnsQueryHost, sizeof(p->DnsQueryHost), hostname); + p->TypeL7 = L7_DNS; +} + // UDP parsing bool ParseUDP(PKT *p, UCHAR *buf, UINT size) { @@ -3004,6 +3208,12 @@ bool ParseUDP(PKT *p, UCHAR *buf, UINT size) } } + if (dst_port == 53) + { + ParseDNS(p, buf, size); + return true; + } + if (src_port == 500 || dst_port == 500 || src_port == 4500 || dst_port == 4500) { if (p->PayloadSize >= sizeof(IKE_HEADER)) @@ -4276,7 +4486,3 @@ LABEL_CLEANUP: return NULL; } } - -// 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/TcpIp.h b/src/Mayaqua/TcpIp.h index 995467c..e196956 100644 --- a/src/Mayaqua/TcpIp.h +++ b/src/Mayaqua/TcpIp.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -623,6 +623,7 @@ struct ICMPV6_HEADER_INFO #define DHCP_ID_CLIENT_ID 0x3d #define DHCP_ID_VENDOR_ID 0x3c #define DHCP_ID_REQ_PARAM_LIST 0x37 +#define DHCP_ID_USER_CLASS 0x4d #define DHCP_ID_CLASSLESS_ROUTE 0x79 #define DHCP_ID_MS_CLASSLESS_ROUTE 0xF9 #define DHCP_ID_PRIVATE 0xFA @@ -650,6 +651,7 @@ struct HTTPLOG char Protocol[64]; // Protocol char UserAgent[MAX_SIZE]; // User Agent value char Referer[MAX_SIZE]; // Referer + bool IsSsl; // Is SSL }; // Packet @@ -703,6 +705,7 @@ struct PKT UCHAR *Payload; // Pointer to the payload of TCP or UDP UINT PayloadSize; // Payload size struct HTTPLOG *HttpLog; // HTTP log + char DnsQueryHost[64]; // DNS hostname } GCC_PACKED; // Layer-3 packet classification @@ -726,6 +729,7 @@ struct PKT #define L7_DHCPV4 1 // DHCPv4 packet #define L7_IKECONN 2 // IKE connection request packet #define L7_OPENVPNCONN 3 // OpenVPN connection request packet +#define L7_DNS 4 // DNS packet // IKE header @@ -794,6 +798,8 @@ struct DHCP_CLASSLESS_ROUTE_TABLE DHCP_CLASSLESS_ROUTE Entries[MAX_DHCP_CLASSLESS_ROUTE_ENTRIES]; // Entries }; +#define MAX_USER_CLASS_LEN 255 + // DHCP option list struct DHCP_OPTION_LIST { @@ -803,6 +809,10 @@ struct DHCP_OPTION_LIST // Client request UINT RequestedIp; // Requested IP address char Hostname[MAX_HOST_NAME_LEN + 1]; // Host name + char UserClass[MAX_USER_CLASS_LEN + 1]; // User class + // RFC3003 defines that User Class option is array of text strings, + // but the most popular DHCP clients and servers, + // i.e. ISC DHCP and Microsoft DHCP Server, consider it a text string // Server response UINT ClientAddress; // Client address @@ -861,6 +871,7 @@ bool ParseICMPv6(PKT *p, UCHAR *buf, UINT size); bool ParseTCP(PKT *p, UCHAR *buf, UINT size); bool ParseUDP(PKT *p, UCHAR *buf, UINT size); void ParseDHCPv4(PKT *p, UCHAR *buf, UINT size); +void ParseDNS(PKT *p, UCHAR *buf, UINT size); PKT *ClonePacket(PKT *p, bool copy_data); void FreeClonePacket(PKT *p); @@ -893,6 +904,8 @@ void FreeDHCPv4Data(DHCPV4_DATA *d); bool AdjustTcpMssL3(UCHAR *src, UINT src_size, UINT mss); bool AdjustTcpMssL2(UCHAR *src, UINT src_size, UINT mss, USHORT tag_vlan_tpid); UINT GetIpHeaderSize(UCHAR *src, UINT src_size); +bool ParseDnsQuery(char *name, UINT name_size, void *data, UINT data_size); +UCHAR GetNextByte(BUF *b); bool IsDhcpPacketForSpecificMac(UCHAR *data, UINT size, UCHAR *mac_address); @@ -912,6 +925,7 @@ void FreeDhcpOptions(LIST *o); LIST *ParseDhcpOptions(void *data, UINT size); BUF *BuildDhcpOptionsBuf(LIST *o); HTTPLOG *ParseHttpAccessLog(PKT *pkt); +HTTPLOG *ParseHttpsAccessLog(PKT *pkt); BUF *DhcpModify(DHCP_MODIFY_OPTION *m, void *data, UINT size); BUF *DhcpModifyIPv4(DHCP_MODIFY_OPTION *m, void *data, UINT size); @@ -935,7 +949,3 @@ bool NormalizeClasslessRouteTableStr(char *dst, UINT dst_size, char *src); #endif // TCPIP_H - -// 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/Tick64.c b/src/Mayaqua/Tick64.c index 522284d..71df6a6 100644 --- a/src/Mayaqua/Tick64.c +++ b/src/Mayaqua/Tick64.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -403,7 +403,3 @@ void FreeTick64() halt_tick_event = NULL; } - -// 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/Tick64.h b/src/Mayaqua/Tick64.h index 647c39f..1fd3a80 100644 --- a/src/Mayaqua/Tick64.h +++ b/src/Mayaqua/Tick64.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -158,7 +158,3 @@ UINT64 TickHighres64(); - -// 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/Tracking.c b/src/Mayaqua/Tracking.c index 05141be..9d61f3c 100644 --- a/src/Mayaqua/Tracking.c +++ b/src/Mayaqua/Tracking.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -999,7 +999,3 @@ void FreeCallStack(CALLSTACK_DATA *s) } - -// 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/Tracking.h b/src/Mayaqua/Tracking.h index e1590c9..41b8ca1 100644 --- a/src/Mayaqua/Tracking.h +++ b/src/Mayaqua/Tracking.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -195,7 +195,3 @@ bool IsTrackingEnabled(); #endif // TRACKING_H - -// 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/TunTap.h b/src/Mayaqua/TunTap.h index ec5b25c..4a22e8f 100644 --- a/src/Mayaqua/TunTap.h +++ b/src/Mayaqua/TunTap.h @@ -1,4 +1,4 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // TunTap.h @@ -323,7 +323,3 @@ struct tuninfo { #endif // UNIX_LINUX #endif // TUNTAP_H - -// 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/Unix.c b/src/Mayaqua/Unix.c index f0b2810..d8c3577 100644 --- a/src/Mayaqua/Unix.c +++ b/src/Mayaqua/Unix.c @@ -1,11 +1,11 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // @@ -1010,6 +1010,63 @@ void UnixRestorePriority() } } +UINT UnixGetNumberOfCpuInner() +{ + BUF *b; + UINT ret = 0; + + b = ReadDump("/proc/cpuinfo"); + if (b != NULL) + { + while (true) + { + char *line = CfgReadNextLine(b); + + if (line == NULL) + { + break; + } + + if (IsEmptyStr(line) == false) + { + TOKEN_LIST *t = ParseToken(line, ":"); + if (t != NULL) + { + if (t->NumTokens >= 2) + { + char *key = t->Token[0]; + char *value = t->Token[1]; + + Trim(key); + Trim(value); + + if (StrCmpi(key, "processor") == 0) + { + if (IsNum(value)) + { + UINT i = ToInt(value) + 1; + + if (i >= 1 && i <= 128) + { + ret = MAX(ret, i); + } + } + } + } + + FreeToken(t); + } + } + + Free(line); + } + + FreeBuf(b); + } + + return ret; +} + // Get the product ID char *UnixGetProductId() { @@ -2031,6 +2088,7 @@ void UnixInc32(UINT *value) void UnixGetSystemTime(SYSTEMTIME *system_time) { time_t now = 0; + time_64t now2 = 0; struct tm tm; struct timeval tv; struct timezone tz; @@ -2048,7 +2106,16 @@ void UnixGetSystemTime(SYSTEMTIME *system_time) time(&now); - gmtime_r(&now, &tm); + if (sizeof(time_t) == 4) + { + now2 = (time_64t)((UINT64)((UINT32)now)); + } + else + { + now2 = now; + } + + c_gmtime_r(&now2, &tm); TmToSystem(system_time, &tm); @@ -2087,7 +2154,7 @@ UINT64 UnixGetTick64() #endif // CLOCK_MONOTONIC #endif // CLOCK_HIGHRES - ret = (UINT64)t.tv_sec * 1000LL + (UINT64)t.tv_nsec / 1000000LL; + ret = ((UINT64)((UINT32)t.tv_sec)) * 1000LL + (UINT64)t.tv_nsec / 1000000LL; if (akirame == false && ret == 0) { @@ -2106,7 +2173,7 @@ UINT64 UnixGetTick64() host_get_clock_service(mach_host_self(), SYSTEM_CLOCK, &clock_serv); } clock_get_time(clock_serv, &t); - ret = (UINT64)t.tv_sec * 1000LL + (UINT64)t.tv_nsec / 1000000LL; + ret = ((UINT64)((UINT32)t.tv_sec)) * 1000LL + (UINT64)t.tv_nsec / 1000000LL; return ret; #else return TickRealtimeManual(); @@ -2849,7 +2916,3 @@ void UnixServiceMain(int argc, char *argv[], char *name, SERVICE_FUNCTION *start } #endif // UNIX - -// 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/Unix.h b/src/Mayaqua/Unix.h index 2ed91e3..8fa84f6 100644 --- a/src/Mayaqua/Unix.h +++ b/src/Mayaqua/Unix.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -204,6 +204,7 @@ char *UnixGetProductId(); void UnixSetHighPriority(); void UnixSetHighOomScore(); void UnixRestorePriority(); +UINT UnixGetNumberOfCpuInner(); void *UnixNewSingleInstance(char *instance_name); void UnixFreeSingleInstance(void *data); void UnixGetMemInfo(MEMINFO *info); @@ -267,7 +268,3 @@ bool UnixIsInVm(); #endif // OS_UNIX - -// 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/Win32.c b/src/Mayaqua/Win32.c index 6f6d221..62dea99 100644 --- a/src/Mayaqua/Win32.c +++ b/src/Mayaqua/Win32.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -548,7 +548,7 @@ DIRLIST *Win32EnumDirExW(wchar_t *dirname, COMPARE *compare) UniStrCpy(tmp2, sizeof(tmp2), dirname); - if (UniStrLen(tmp2) >= 1 && tmp[UniStrLen(tmp2) - 1] == L'\\') + if (UniStrLen(tmp2) >= 1 && tmp2[UniStrLen(tmp2) - 1] == L'\\') { tmp2[UniStrLen(tmp2) - 1] = 0; } @@ -983,6 +983,24 @@ void Win32DebugAlert(char *msg) MessageBox(NULL, msg, "Debug", MB_SETFOREGROUND | MB_TOPMOST | MB_SERVICE_NOTIFICATION | MB_OK | MB_ICONEXCLAMATION); } +// Get the number of CPUs +UINT Win32GetNumberOfCpuInner() +{ + UINT ret = 0; + SYSTEM_INFO info; + + Zero(&info, sizeof(info)); + + GetSystemInfo(&info); + + if (info.dwNumberOfProcessors >= 1 && info.dwNumberOfProcessors <= 128) + { + ret = info.dwNumberOfProcessors; + } + + return ret; +} + // Get the OS information void Win32GetOsInfo(OS_INFO *info) { @@ -3522,7 +3540,3 @@ void Win32PrintToFileW(wchar_t *str) #endif // WIN32 - -// 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/Win32.h b/src/Mayaqua/Win32.h index 8eabcf8..f023dc1 100644 --- a/src/Mayaqua/Win32.h +++ b/src/Mayaqua/Win32.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Mayaqua Kernel // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -220,6 +220,8 @@ void Win32PrintW(wchar_t *str); void Win32PrintToFileW(wchar_t *str); bool Win32GetVersionExInternal(void *info); bool Win32GetVersionExInternalForWindows81orLater(void *info); +UINT Win32GetNumberOfCpuInner(); + void Win32SetThreadName(UINT thread_id, char *name); @@ -228,7 +230,3 @@ void Win32SetThreadName(UINT thread_id, char *name); #endif // OS_WIN32 - -// 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/win32_inc/openssl/aes.h b/src/Mayaqua/win32_inc/openssl/aes.h index 898df89..9b9c731 100644 --- a/src/Mayaqua/win32_inc/openssl/aes.h +++ b/src/Mayaqua/win32_inc/openssl/aes.h @@ -1,4 +1,4 @@ -/* crypto/aes/aes.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/aes/aes.h */ /* ==================================================================== * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. * diff --git a/src/Mayaqua/win32_inc/openssl/bio.h b/src/Mayaqua/win32_inc/openssl/bio.h index 21cafa0..0c94d4d 100644 --- a/src/Mayaqua/win32_inc/openssl/bio.h +++ b/src/Mayaqua/win32_inc/openssl/bio.h @@ -291,7 +291,7 @@ void BIO_clear_flags(BIO *b, int flags); * BIO_CB_RETURN flag indicates if it is after the call */ # define BIO_CB_RETURN 0x80 -# define BIO_CB_return(a) ((a)|BIO_CB_RETURN)) +# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) # define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) # define BIO_cb_post(a) ((a)&BIO_CB_RETURN) @@ -479,11 +479,11 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_conn_hostname(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0) # define BIO_get_conn_port(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1) # define BIO_get_conn_ip(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2) -# define BIO_get_conn_int_port(b) BIO_int_ctrl(b,BIO_C_GET_CONNECT,3,0) +# define BIO_get_conn_int_port(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) # define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) -/* BIO_s_accept_socket() */ +/* BIO_s_accept() */ # define BIO_set_accept_port(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) # define BIO_get_accept_port(b) BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0) /* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ @@ -496,6 +496,7 @@ struct bio_dgram_sctp_prinfo { # define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) # define BIO_get_bind_mode(b,mode) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) +/* BIO_s_accept() and BIO_s_connect() */ # define BIO_do_connect(b) BIO_do_handshake(b) # define BIO_do_accept(b) BIO_do_handshake(b) # define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) @@ -515,12 +516,15 @@ struct bio_dgram_sctp_prinfo { # define BIO_get_url(b,url) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,2,(char *)(url)) # define BIO_get_no_connect_return(b) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,5,NULL) +/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ # define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) # define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) +/* BIO_s_file() */ # define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp) # define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp) +/* BIO_s_fd() and BIO_s_file() */ # define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) # define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) @@ -555,11 +559,11 @@ int BIO_read_filename(BIO *b, const char *name); # define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)sslp) # define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) # define BIO_set_ssl_renegotiate_bytes(b,num) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL); + BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL) # define BIO_get_num_renegotiates(b) \ - BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL); + BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL) # define BIO_set_ssl_renegotiate_timeout(b,seconds) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL); + BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL) /* defined in evp.h */ /* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)md) */ @@ -685,7 +689,7 @@ long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, long argl, long ret); BIO_METHOD *BIO_s_mem(void); -BIO *BIO_new_mem_buf(void *buf, int len); +BIO *BIO_new_mem_buf(const void *buf, int len); BIO_METHOD *BIO_s_socket(void); BIO_METHOD *BIO_s_connect(void); BIO_METHOD *BIO_s_accept(void); diff --git a/src/Mayaqua/win32_inc/openssl/bn.h b/src/Mayaqua/win32_inc/openssl/bn.h index 9d8f67c..2a05c48 100644 --- a/src/Mayaqua/win32_inc/openssl/bn.h +++ b/src/Mayaqua/win32_inc/openssl/bn.h @@ -125,6 +125,7 @@ #ifndef HEADER_BN_H # define HEADER_BN_H +# include # include # ifndef OPENSSL_NO_FP_API # include /* FILE */ @@ -721,8 +722,17 @@ const BIGNUM *BN_get0_nist_prime_521(void); /* library internal functions */ -# define bn_expand(a,bits) ((((((bits+BN_BITS2-1))/BN_BITS2)) <= (a)->dmax)?\ - (a):bn_expand2((a),(bits+BN_BITS2-1)/BN_BITS2)) +# define bn_expand(a,bits) \ + ( \ + bits > (INT_MAX - BN_BITS2 + 1) ? \ + NULL \ + : \ + (((bits+BN_BITS2-1)/BN_BITS2) <= (a)->dmax) ? \ + (a) \ + : \ + bn_expand2((a),(bits+BN_BITS2-1)/BN_BITS2) \ + ) + # define bn_wexpand(a,words) (((words) <= (a)->dmax)?(a):bn_expand2((a),(words))) BIGNUM *bn_expand2(BIGNUM *a, int words); # ifndef OPENSSL_NO_DEPRECATED @@ -779,6 +789,7 @@ int RAND_pseudo_bytes(unsigned char *buf, int num); * wouldn't be constructed with top!=dmax. */ \ BN_ULONG *_not_const; \ memcpy(&_not_const, &_bnum1->d, sizeof(BN_ULONG*)); \ + /* Debug only - safe to ignore error return */ \ RAND_pseudo_bytes(&_tmp_char, 1); \ memset((unsigned char *)(_not_const + _bnum1->top), _tmp_char, \ (_bnum1->dmax - _bnum1->top) * sizeof(BN_ULONG)); \ @@ -831,6 +842,8 @@ int RAND_pseudo_bytes(unsigned char *buf, int num); if (*(ftl--)) break; \ (a)->top = tmp_top; \ } \ + if ((a)->top == 0) \ + (a)->neg = 0; \ bn_pollute(a); \ } @@ -892,6 +905,7 @@ void ERR_load_BN_strings(void); # define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 # define BN_F_BN_GF2M_MOD_SQR 136 # define BN_F_BN_GF2M_MOD_SQRT 137 +# define BN_F_BN_LSHIFT 145 # define BN_F_BN_MOD_EXP2_MONT 118 # define BN_F_BN_MOD_EXP_MONT 109 # define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 @@ -907,12 +921,14 @@ void ERR_load_BN_strings(void); # define BN_F_BN_NEW 113 # define BN_F_BN_RAND 114 # define BN_F_BN_RAND_RANGE 122 +# define BN_F_BN_RSHIFT 146 # define BN_F_BN_USUB 115 /* Reason codes. */ # define BN_R_ARG2_LT_ARG3 100 # define BN_R_BAD_RECIPROCAL 101 # define BN_R_BIGNUM_TOO_LONG 114 +# define BN_R_BITS_TOO_SMALL 118 # define BN_R_CALLED_WITH_EVEN_MODULUS 102 # define BN_R_DIV_BY_ZERO 103 # define BN_R_ENCODING_ERROR 104 @@ -920,6 +936,7 @@ void ERR_load_BN_strings(void); # define BN_R_INPUT_NOT_REDUCED 110 # define BN_R_INVALID_LENGTH 106 # define BN_R_INVALID_RANGE 115 +# define BN_R_INVALID_SHIFT 119 # define BN_R_NOT_A_SQUARE 111 # define BN_R_NOT_INITIALIZED 107 # define BN_R_NO_INVERSE 108 diff --git a/src/Mayaqua/win32_inc/openssl/buffer.h b/src/Mayaqua/win32_inc/openssl/buffer.h index aae7bfb..eab0d1e 100644 --- a/src/Mayaqua/win32_inc/openssl/buffer.h +++ b/src/Mayaqua/win32_inc/openssl/buffer.h @@ -86,7 +86,13 @@ int BUF_MEM_grow(BUF_MEM *str, size_t len); int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); size_t BUF_strnlen(const char *str, size_t maxlen); char *BUF_strdup(const char *str); + +/* + * Like strndup, but in addition, explicitly guarantees to never read past the + * first |siz| bytes of |str|. + */ char *BUF_strndup(const char *str, size_t siz); + void *BUF_memdup(const void *data, size_t siz); void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); diff --git a/src/Mayaqua/win32_inc/openssl/camellia.h b/src/Mayaqua/win32_inc/openssl/camellia.h index 2c0de66..5feca2e 100644 --- a/src/Mayaqua/win32_inc/openssl/camellia.h +++ b/src/Mayaqua/win32_inc/openssl/camellia.h @@ -1,4 +1,4 @@ -/* crypto/camellia/camellia.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/camellia/camellia.h */ /* ==================================================================== * Copyright (c) 2006 The OpenSSL Project. All rights reserved. * diff --git a/src/Mayaqua/win32_inc/openssl/comp.h b/src/Mayaqua/win32_inc/openssl/comp.h index b366c94..e9ba2a0 100644 --- a/src/Mayaqua/win32_inc/openssl/comp.h +++ b/src/Mayaqua/win32_inc/openssl/comp.h @@ -4,13 +4,17 @@ # include +# ifdef OPENSSL_NO_COMP +# error COMP is disabled. +# endif + #ifdef __cplusplus extern "C" { #endif typedef struct comp_ctx_st COMP_CTX; -typedef struct comp_method_st { +struct comp_method_st { int type; /* NID for compression library */ const char *name; /* A text string to identify the library */ int (*init) (COMP_CTX *ctx); @@ -26,7 +30,7 @@ typedef struct comp_method_st { */ long (*ctrl) (void); long (*callback_ctrl) (void); -} COMP_METHOD; +}; struct comp_ctx_st { COMP_METHOD *meth; diff --git a/src/Mayaqua/win32_inc/openssl/crypto.h b/src/Mayaqua/win32_inc/openssl/crypto.h index 4ffb565..ba64514 100644 --- a/src/Mayaqua/win32_inc/openssl/crypto.h +++ b/src/Mayaqua/win32_inc/openssl/crypto.h @@ -628,7 +628,7 @@ void OPENSSL_init(void); * into a defined order as the return value when a != b is undefined, other * than to be non-zero. */ -int CRYPTO_memcmp(const void *a, const void *b, size_t len); +int CRYPTO_memcmp(const volatile void *a, const volatile void *b, size_t len); /* BEGIN ERROR CODES */ /* diff --git a/src/Mayaqua/win32_inc/openssl/des_old.h b/src/Mayaqua/win32_inc/openssl/des_old.h index d913db6..29713d0 100644 --- a/src/Mayaqua/win32_inc/openssl/des_old.h +++ b/src/Mayaqua/win32_inc/openssl/des_old.h @@ -1,4 +1,4 @@ -/* crypto/des/des_old.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/des/des_old.h */ /*- * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING diff --git a/src/Mayaqua/win32_inc/openssl/dh.h b/src/Mayaqua/win32_inc/openssl/dh.h index ca5cbfa..e8e6197 100644 --- a/src/Mayaqua/win32_inc/openssl/dh.h +++ b/src/Mayaqua/win32_inc/openssl/dh.h @@ -142,7 +142,7 @@ struct dh_st { BIGNUM *p; BIGNUM *g; long length; /* optional */ - BIGNUM *pub_key; /* g^x */ + BIGNUM *pub_key; /* g^x % p */ BIGNUM *priv_key; /* x */ int flags; BN_MONT_CTX *method_mont_p; @@ -174,6 +174,7 @@ struct dh_st { /* DH_check_pub_key error codes */ # define DH_CHECK_PUBKEY_TOO_SMALL 0x01 # define DH_CHECK_PUBKEY_TOO_LARGE 0x02 +# define DH_CHECK_PUBKEY_INVALID 0x04 /* * primes p where (p-1)/2 is prime too are called "safe"; we define this for diff --git a/src/Mayaqua/win32_inc/openssl/dso.h b/src/Mayaqua/win32_inc/openssl/dso.h index ed602d4..da6014f 100644 --- a/src/Mayaqua/win32_inc/openssl/dso.h +++ b/src/Mayaqua/win32_inc/openssl/dso.h @@ -1,4 +1,4 @@ -/* dso.h -*- mode:C; c-file-style: "eay" -*- */ +/* dso.h */ /* * Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL project * 2000. diff --git a/src/Mayaqua/win32_inc/openssl/e_os2.h b/src/Mayaqua/win32_inc/openssl/e_os2.h index 1d990ea..a07067b 100644 --- a/src/Mayaqua/win32_inc/openssl/e_os2.h +++ b/src/Mayaqua/win32_inc/openssl/e_os2.h @@ -109,6 +109,12 @@ extern "C" { # undef OPENSSL_SYS_UNIX # define OPENSSL_SYS_WIN32 # endif +# if defined(_WIN64) || defined(OPENSSL_SYSNAME_WIN64) +# undef OPENSSL_SYS_UNIX +# if !defined(OPENSSL_SYS_WIN64) +# define OPENSSL_SYS_WIN64 +# endif +# endif # if defined(OPENSSL_SYSNAME_WINNT) # undef OPENSSL_SYS_UNIX # define OPENSSL_SYS_WINNT @@ -121,7 +127,7 @@ extern "C" { # endif /* Anything that tries to look like Microsoft is "Windows" */ -# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) +# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN64) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) # undef OPENSSL_SYS_UNIX # define OPENSSL_SYS_WINDOWS # ifndef OPENSSL_SYS_MSDOS @@ -325,4 +331,3 @@ extern "C" { #undef OPENSSL_SYS_WIN32 #undef OPENSSL_SYS_WINDOWS #endif // _MSC_VER - diff --git a/src/Mayaqua/win32_inc/openssl/ec.h b/src/Mayaqua/win32_inc/openssl/ec.h index 6cafb35..3a634b6 100644 --- a/src/Mayaqua/win32_inc/openssl/ec.h +++ b/src/Mayaqua/win32_inc/openssl/ec.h @@ -106,7 +106,7 @@ typedef enum { /** the point is encoded as z||x, where the octet z specifies * which solution of the quadratic equation y is */ POINT_CONVERSION_COMPRESSED = 2, - /** the point is encoded as z||x||y, where z is the octet 0x02 */ + /** the point is encoded as z||x||y, where z is the octet 0x04 */ POINT_CONVERSION_UNCOMPRESSED = 4, /** the point is encoded as z||x||y, where the octet z specifies * which solution of the quadratic equation y is */ @@ -1097,6 +1097,12 @@ void ERR_load_EC_strings(void); # define EC_F_ECPARAMETERS_PRINT_FP 148 # define EC_F_ECPKPARAMETERS_PRINT 149 # define EC_F_ECPKPARAMETERS_PRINT_FP 150 +# define EC_F_ECP_NISTZ256_GET_AFFINE 240 +# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 +# define EC_F_ECP_NISTZ256_POINTS_MUL 241 +# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 +# define EC_F_ECP_NISTZ256_SET_WORDS 245 +# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 # define EC_F_ECP_NIST_MOD_192 203 # define EC_F_ECP_NIST_MOD_224 204 # define EC_F_ECP_NIST_MOD_256 205 @@ -1208,11 +1214,6 @@ void ERR_load_EC_strings(void); # define EC_F_NISTP224_PRE_COMP_NEW 227 # define EC_F_NISTP256_PRE_COMP_NEW 236 # define EC_F_NISTP521_PRE_COMP_NEW 237 -# define EC_F_ECP_NISTZ256_GET_AFFINE 240 -# define EC_F_ECP_NISTZ256_POINTS_MUL 241 -# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 -# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 -# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 # define EC_F_O2I_ECPUBLICKEY 152 # define EC_F_OLD_EC_PRIV_DECODE 222 # define EC_F_PKEY_EC_CTRL 197 diff --git a/src/Mayaqua/win32_inc/openssl/ecdsa.h b/src/Mayaqua/win32_inc/openssl/ecdsa.h index 962608b..0b4eb19 100644 --- a/src/Mayaqua/win32_inc/openssl/ecdsa.h +++ b/src/Mayaqua/win32_inc/openssl/ecdsa.h @@ -233,7 +233,7 @@ void *ECDSA_get_ex_data(EC_KEY *d, int idx); * \return pointer to a ECDSA_METHOD structure or NULL if an error occurred */ -ECDSA_METHOD *ECDSA_METHOD_new(ECDSA_METHOD *ecdsa_method); +ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method); /** frees a ECDSA_METHOD structure * \param ecdsa_method pointer to the ECDSA_METHOD structure diff --git a/src/Mayaqua/win32_inc/openssl/evp.h b/src/Mayaqua/win32_inc/openssl/evp.h index 1bcf8c3..f3d0253 100644 --- a/src/Mayaqua/win32_inc/openssl/evp.h +++ b/src/Mayaqua/win32_inc/openssl/evp.h @@ -103,7 +103,6 @@ # define EVP_PKS_RSA 0x0100 # define EVP_PKS_DSA 0x0200 # define EVP_PKS_EC 0x0400 -# define EVP_PKT_EXP 0x1000 /* <= 512 bit key */ # define EVP_PKEY_NONE NID_undef # define EVP_PKEY_RSA NID_rsaEncryption @@ -424,6 +423,9 @@ struct evp_cipher_st { # define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b # define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c +/* RFC 5246 defines additional data to be 13 bytes in length */ +# define EVP_AEAD_TLS1_AAD_LEN 13 + typedef struct { unsigned char *out; const unsigned char *inp; @@ -1121,6 +1123,19 @@ void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, int (*pkey_ctrl) (EVP_PKEY *pkey, int op, long arg1, void *arg2)); +void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, + int (*item_verify) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *a, + ASN1_BIT_STRING *sig, + EVP_PKEY *pkey), + int (*item_sign) (EVP_MD_CTX *ctx, + const ASN1_ITEM *it, + void *asn, + X509_ALGOR *alg1, + X509_ALGOR *alg2, + ASN1_BIT_STRING *sig)); # define EVP_PKEY_OP_UNDEFINED 0 # define EVP_PKEY_OP_PARAMGEN (1<<1) diff --git a/src/Mayaqua/win32_inc/openssl/kssl.h b/src/Mayaqua/win32_inc/openssl/kssl.h index 0c7a876..ae72b3b 100644 --- a/src/Mayaqua/win32_inc/openssl/kssl.h +++ b/src/Mayaqua/win32_inc/openssl/kssl.h @@ -1,4 +1,4 @@ -/* ssl/kssl.h -*- mode: C; c-file-style: "eay" -*- */ +/* ssl/kssl.h */ /* * Written by Vern Staats for the OpenSSL project * 2000. project 2000. diff --git a/src/Mayaqua/win32_inc/openssl/opensslconf.h b/src/Mayaqua/win32_inc/openssl/opensslconf.h index 88c90eb..c905f13 100644 --- a/src/Mayaqua/win32_inc/openssl/opensslconf.h +++ b/src/Mayaqua/win32_inc/openssl/opensslconf.h @@ -41,12 +41,18 @@ extern "C" { #ifndef OPENSSL_NO_SSL_TRACE # define OPENSSL_NO_SSL_TRACE #endif +#ifndef OPENSSL_NO_SSL2 +# define OPENSSL_NO_SSL2 +#endif #ifndef OPENSSL_NO_STORE # define OPENSSL_NO_STORE #endif #ifndef OPENSSL_NO_UNIT_TEST # define OPENSSL_NO_UNIT_TEST #endif +#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS +# define OPENSSL_NO_WEAK_SSL_CIPHERS +#endif #endif /* OPENSSL_DOING_MAKEDEPEND */ @@ -89,12 +95,18 @@ extern "C" { # if defined(OPENSSL_NO_SSL_TRACE) && !defined(NO_SSL_TRACE) # define NO_SSL_TRACE # endif +# if defined(OPENSSL_NO_SSL2) && !defined(NO_SSL2) +# define NO_SSL2 +# endif # if defined(OPENSSL_NO_STORE) && !defined(NO_STORE) # define NO_STORE # endif # if defined(OPENSSL_NO_UNIT_TEST) && !defined(NO_UNIT_TEST) # define NO_UNIT_TEST # endif +# if defined(OPENSSL_NO_WEAK_SSL_CIPHERS) && !defined(NO_WEAK_SSL_CIPHERS) +# define NO_WEAK_SSL_CIPHERS +# endif #endif #define OPENSSL_CPUID_OBJ @@ -203,7 +215,7 @@ extern "C" { #endif #if defined(DES_RISC1) && defined(DES_RISC2) -YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! +#error YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! #endif /* Unroll the inner loop, this sometimes helps, sometimes hinders. @@ -222,7 +234,7 @@ YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! optimization options. Older Sparc's work better with only UNROLL, but there's no way to tell at compile time what it is you're running on */ -#if defined( sun ) /* Newer Sparc's */ +#if defined( __sun ) || defined ( sun ) /* Newer Sparc's */ # define DES_PTR # define DES_RISC1 # define DES_UNROLL diff --git a/src/Mayaqua/win32_inc/openssl/opensslv.h b/src/Mayaqua/win32_inc/openssl/opensslv.h index 772f8cd..3fd92c5 100644 --- a/src/Mayaqua/win32_inc/openssl/opensslv.h +++ b/src/Mayaqua/win32_inc/openssl/opensslv.h @@ -30,11 +30,11 @@ extern "C" { * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for * major minor fix final patch/beta) */ -# define OPENSSL_VERSION_NUMBER 0x1000201fL +# define OPENSSL_VERSION_NUMBER 0x100020afL # ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2a-fips 19 Mar 2015" +# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2j-fips 26 Sep 2016" # else -# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2a 19 Mar 2015" +# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2j 26 Sep 2016" # endif # define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT diff --git a/src/Mayaqua/win32_inc/openssl/ossl_typ.h b/src/Mayaqua/win32_inc/openssl/ossl_typ.h index 93a8c95..707991e 100644 --- a/src/Mayaqua/win32_inc/openssl/ossl_typ.h +++ b/src/Mayaqua/win32_inc/openssl/ossl_typ.h @@ -178,6 +178,8 @@ typedef struct engine_st ENGINE; typedef struct ssl_st SSL; typedef struct ssl_ctx_st SSL_CTX; +typedef struct comp_method_st COMP_METHOD; + typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; diff --git a/src/Mayaqua/win32_inc/openssl/pem.h b/src/Mayaqua/win32_inc/openssl/pem.h index 2967c7b..8b0fc65 100644 --- a/src/Mayaqua/win32_inc/openssl/pem.h +++ b/src/Mayaqua/win32_inc/openssl/pem.h @@ -531,6 +531,7 @@ int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ + void ERR_load_PEM_strings(void); /* Error codes for the PEM functions. */ @@ -592,6 +593,7 @@ void ERR_load_PEM_strings(void); # define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 # define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 # define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 +# define PEM_R_HEADER_TOO_LONG 128 # define PEM_R_INCONSISTENT_HEADER 121 # define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 # define PEM_R_KEYBLOB_TOO_SHORT 123 @@ -609,7 +611,7 @@ void ERR_load_PEM_strings(void); # define PEM_R_UNSUPPORTED_ENCRYPTION 114 # define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/src/Mayaqua/win32_inc/openssl/pkcs12.h b/src/Mayaqua/win32_inc/openssl/pkcs12.h index 61f4001..4112dfe 100644 --- a/src/Mayaqua/win32_inc/openssl/pkcs12.h +++ b/src/Mayaqua/win32_inc/openssl/pkcs12.h @@ -270,7 +270,7 @@ int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); -int PKCS12_newpass(PKCS12 *p12, char *oldpass, char *newpass); +int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); /* BEGIN ERROR CODES */ /* diff --git a/src/Mayaqua/win32_inc/openssl/srp.h b/src/Mayaqua/win32_inc/openssl/srp.h index b6032ed..14c21cf 100644 --- a/src/Mayaqua/win32_inc/openssl/srp.h +++ b/src/Mayaqua/win32_inc/openssl/srp.h @@ -82,16 +82,21 @@ typedef struct SRP_gN_cache_st { DECLARE_STACK_OF(SRP_gN_cache) typedef struct SRP_user_pwd_st { + /* Owned by us. */ char *id; BIGNUM *s; BIGNUM *v; + /* Not owned by us. */ const BIGNUM *g; const BIGNUM *N; + /* Owned by us. */ char *info; } SRP_user_pwd; DECLARE_STACK_OF(SRP_user_pwd) +void SRP_user_pwd_free(SRP_user_pwd *user_pwd); + typedef struct SRP_VBASE_st { STACK_OF(SRP_user_pwd) *users_pwd; STACK_OF(SRP_gN_cache) *gN_cache; @@ -115,7 +120,12 @@ DECLARE_STACK_OF(SRP_gN) SRP_VBASE *SRP_VBASE_new(char *seed_key); int SRP_VBASE_free(SRP_VBASE *vb); int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); + +/* This method ignores the configured seed and fails for an unknown user. */ SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username); +/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ +SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); + char *SRP_create_verifier(const char *user, const char *pass, char **salt, char **verifier, const char *N, const char *g); int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, diff --git a/src/Mayaqua/win32_inc/openssl/ssl.h b/src/Mayaqua/win32_inc/openssl/ssl.h index d683199..06b7309 100644 --- a/src/Mayaqua/win32_inc/openssl/ssl.h +++ b/src/Mayaqua/win32_inc/openssl/ssl.h @@ -338,7 +338,7 @@ extern "C" { * The following cipher list is used by default. It also is substituted when * an application-defined cipher list string starts with 'DEFAULT'. */ -# define SSL_DEFAULT_CIPHER_LIST "ALL:!EXPORT:!aNULL:!eNULL:!SSLv2" +# define SSL_DEFAULT_CIPHER_LIST "ALL:!EXPORT:!LOW:!aNULL:!eNULL:!SSLv2" /* * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always * starts with a reasonable order, and all we have to do for DEFAULT is @@ -625,7 +625,7 @@ struct ssl_session_st { # define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000L /* If set, always create a new key when using tmp_ecdh parameters */ # define SSL_OP_SINGLE_ECDH_USE 0x00080000L -/* If set, always create a new key when using tmp_dh parameters */ +/* Does nothing: retained for compatibility */ # define SSL_OP_SINGLE_DH_USE 0x00100000L /* Does nothing: retained for compatibiity */ # define SSL_OP_EPHEMERAL_RSA 0x0 @@ -1727,6 +1727,7 @@ extern "C" { # define SSL_ST_BEFORE 0x4000 # define SSL_ST_OK 0x03 # define SSL_ST_RENEGOTIATE (0x04|SSL_ST_INIT) +# define SSL_ST_ERR 0x05 # define SSL_CB_LOOP 0x01 # define SSL_CB_EXIT 0x02 @@ -2091,7 +2092,7 @@ DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) # define SSL_CTX_set1_sigalgs_list(ctx, s) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) # define SSL_set1_sigalgs(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,clistlen,(int *)slist) + SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) # define SSL_set1_sigalgs_list(ctx, s) \ SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) # define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ @@ -2344,7 +2345,7 @@ const char *SSL_get_version(const SSL *s); /* This sets the 'default' SSL version that SSL_new() will create */ int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); -# ifndef OPENSSL_NO_SSL2 +# ifndef OPENSSL_NO_SSL2_METHOD const SSL_METHOD *SSLv2_method(void); /* SSLv2 */ const SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */ const SSL_METHOD *SSLv2_client_method(void); /* SSLv2 */ @@ -2531,7 +2532,6 @@ void SSL_set_tmp_ecdh_callback(SSL *ssl, int keylength)); # endif -# ifndef OPENSSL_NO_COMP const COMP_METHOD *SSL_get_current_compression(SSL *s); const COMP_METHOD *SSL_get_current_expansion(SSL *s); const char *SSL_COMP_get_name(const COMP_METHOD *comp); @@ -2540,13 +2540,6 @@ STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) *meths); void SSL_COMP_free_compression_methods(void); int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); -# else -const void *SSL_get_current_compression(SSL *s); -const void *SSL_get_current_expansion(SSL *s); -const char *SSL_COMP_get_name(const void *comp); -void *SSL_COMP_get_compression_methods(void); -int SSL_COMP_add_compression_method(int id, void *cm); -# endif const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); @@ -2622,6 +2615,7 @@ void ERR_load_SSL_strings(void); # define SSL_F_DTLS1_HEARTBEAT 305 # define SSL_F_DTLS1_OUTPUT_CERT_CHAIN 255 # define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 +# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424 # define SSL_F_DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE 256 # define SSL_F_DTLS1_PROCESS_RECORD 257 # define SSL_F_DTLS1_READ_BYTES 258 @@ -2640,6 +2634,7 @@ void ERR_load_SSL_strings(void); # define SSL_F_GET_CLIENT_MASTER_KEY 107 # define SSL_F_GET_SERVER_FINISHED 108 # define SSL_F_GET_SERVER_HELLO 109 +# define SSL_F_GET_SERVER_STATIC_DH_KEY 340 # define SSL_F_GET_SERVER_VERIFY 110 # define SSL_F_I2D_SSL_SESSION 111 # define SSL_F_READ_N 112 @@ -2670,6 +2665,7 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 # define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 # define SSL_F_SSL3_CHECK_CLIENT_HELLO 304 +# define SSL_F_SSL3_CHECK_FINISHED 339 # define SSL_F_SSL3_CLIENT_HELLO 131 # define SSL_F_SSL3_CONNECT 132 # define SSL_F_SSL3_CTRL 213 @@ -2678,6 +2674,7 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 # define SSL_F_SSL3_ENC 134 # define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 +# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 # define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135 # define SSL_F_SSL3_GET_CERT_STATUS 289 # define SSL_F_SSL3_GET_CERT_VERIFY 136 @@ -2784,6 +2781,7 @@ void ERR_load_SSL_strings(void); # define SSL_F_SSL_RSA_PUBLIC_ENCRYPT 188 # define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 # define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 +# define SSL_F_SSL_SESSION_DUP 348 # define SSL_F_SSL_SESSION_NEW 189 # define SSL_F_SSL_SESSION_PRINT_FP 190 # define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 @@ -2842,8 +2840,11 @@ void ERR_load_SSL_strings(void); # define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 # define SSL_R_BAD_DECOMPRESSION 107 # define SSL_R_BAD_DH_G_LENGTH 108 +# define SSL_R_BAD_DH_G_VALUE 375 # define SSL_R_BAD_DH_PUB_KEY_LENGTH 109 +# define SSL_R_BAD_DH_PUB_KEY_VALUE 393 # define SSL_R_BAD_DH_P_LENGTH 110 +# define SSL_R_BAD_DH_P_VALUE 395 # define SSL_R_BAD_DIGEST_LENGTH 111 # define SSL_R_BAD_DSA_SIGNATURE 112 # define SSL_R_BAD_ECC_CERT 304 @@ -2904,6 +2905,7 @@ void ERR_load_SSL_strings(void); # define SSL_R_DATA_LENGTH_TOO_LONG 146 # define SSL_R_DECRYPTION_FAILED 147 # define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 +# define SSL_R_DH_KEY_TOO_SMALL 372 # define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 # define SSL_R_DIGEST_CHECK_FAILED 149 # define SSL_R_DTLS_MESSAGE_TOO_BIG 334 @@ -3047,6 +3049,7 @@ void ERR_load_SSL_strings(void); # define SSL_R_SERVERHELLO_TLSEXT 275 # define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 # define SSL_R_SHORT_READ 219 +# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 # define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 # define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 # define SSL_R_SRP_A_CALC 361 @@ -3104,6 +3107,7 @@ void ERR_load_SSL_strings(void); # define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 # define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 # define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 +# define SSL_R_TOO_MANY_WARN_ALERTS 409 # define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235 # define SSL_R_UNABLE_TO_DECODE_DH_CERTS 236 # define SSL_R_UNABLE_TO_DECODE_ECDH_CERTS 313 diff --git a/src/Mayaqua/win32_inc/openssl/tls1.h b/src/Mayaqua/win32_inc/openssl/tls1.h index e70ead8..a1121f5 100644 --- a/src/Mayaqua/win32_inc/openssl/tls1.h +++ b/src/Mayaqua/win32_inc/openssl/tls1.h @@ -231,13 +231,12 @@ extern "C" { /* ExtensionType value from RFC5620 */ # define TLSEXT_TYPE_heartbeat 15 -/* ExtensionType value from draft-ietf-tls-applayerprotoneg-00 */ +/* ExtensionType value from RFC7301 */ # define TLSEXT_TYPE_application_layer_protocol_negotiation 16 /* * ExtensionType value for TLS padding extension. - * http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml - * http://tools.ietf.org/html/draft-agl-tls-padding-03 + * http://tools.ietf.org/html/draft-agl-tls-padding */ # define TLSEXT_TYPE_padding 21 @@ -262,20 +261,19 @@ extern "C" { # define TLSEXT_TYPE_next_proto_neg 13172 # endif -/* NameType value from RFC 3546 */ +/* NameType value from RFC3546 */ # define TLSEXT_NAMETYPE_host_name 0 -/* status request value from RFC 3546 */ +/* status request value from RFC3546 */ # define TLSEXT_STATUSTYPE_ocsp 1 -/* ECPointFormat values from draft-ietf-tls-ecc-12 */ +/* ECPointFormat values from RFC4492 */ # define TLSEXT_ECPOINTFORMAT_first 0 # define TLSEXT_ECPOINTFORMAT_uncompressed 0 # define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 # define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 # define TLSEXT_ECPOINTFORMAT_last 2 -/* Signature and hash algorithms from RFC 5246 */ - +/* Signature and hash algorithms from RFC5246 */ # define TLSEXT_signature_anonymous 0 # define TLSEXT_signature_rsa 1 # define TLSEXT_signature_dsa 2 @@ -430,7 +428,6 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_CK_DHE_DSS_WITH_RC4_128_SHA 0x03000066 /* AES ciphersuites from RFC3268 */ - # define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F # define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 # define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 @@ -595,7 +592,7 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) # define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" # define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" -/* ECC ciphersuites from draft-ietf-tls-ecc-01.txt (Mar 15, 2001) */ +/* ECC ciphersuites from RFC4492 */ # define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" # define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" # define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" diff --git a/src/Mayaqua/win32_inc/openssl/ts.h b/src/Mayaqua/win32_inc/openssl/ts.h index e66f501..85836cd 100644 --- a/src/Mayaqua/win32_inc/openssl/ts.h +++ b/src/Mayaqua/win32_inc/openssl/ts.h @@ -565,6 +565,9 @@ int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, /* At most we accept usec precision. */ # define TS_MAX_CLOCK_PRECISION_DIGITS 6 +/* Maximum status message length */ +# define TS_MAX_STATUS_LENGTH (1024 * 1024) + /* No flags are set by default. */ void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); diff --git a/src/Mayaqua/win32_inc/openssl/ui.h b/src/Mayaqua/win32_inc/openssl/ui.h index c2c3986..bd07f71 100644 --- a/src/Mayaqua/win32_inc/openssl/ui.h +++ b/src/Mayaqua/win32_inc/openssl/ui.h @@ -1,4 +1,4 @@ -/* crypto/ui/ui.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/ui/ui.h */ /* * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project * 2001. diff --git a/src/Mayaqua/win32_inc/openssl/ui_compat.h b/src/Mayaqua/win32_inc/openssl/ui_compat.h index f428633..6e3542d 100644 --- a/src/Mayaqua/win32_inc/openssl/ui_compat.h +++ b/src/Mayaqua/win32_inc/openssl/ui_compat.h @@ -1,4 +1,4 @@ -/* crypto/ui/ui.h -*- mode:C; c-file-style: "eay" -*- */ +/* crypto/ui/ui.h */ /* * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project * 2001. diff --git a/src/Mayaqua/win32_inc/openssl/x509.h b/src/Mayaqua/win32_inc/openssl/x509.h index 4133acc..ca5d570 100644 --- a/src/Mayaqua/win32_inc/openssl/x509.h +++ b/src/Mayaqua/win32_inc/openssl/x509.h @@ -1234,6 +1234,7 @@ int X509_TRUST_get_trust(X509_TRUST *xp); * The following lines are auto generated by the script mkerr.pl. Any changes * made after this point may be overwritten when the script is next run. */ + void ERR_load_X509_strings(void); /* Error codes for the X509 functions. */ @@ -1241,6 +1242,7 @@ void ERR_load_X509_strings(void); /* Function codes. */ # define X509_F_ADD_CERT_DIR 100 # define X509_F_BY_FILE_CTRL 101 +# define X509_F_CHECK_NAME_CONSTRAINTS 106 # define X509_F_CHECK_POLICY 145 # define X509_F_DIR_CTRL 102 # define X509_F_GET_CERT_BY_SUBJECT 103 @@ -1305,6 +1307,7 @@ void ERR_load_X509_strings(void); # define X509_R_LOADING_CERT_DIR 103 # define X509_R_LOADING_DEFAULTS 104 # define X509_R_METHOD_NOT_SUPPORTED 124 +# define X509_R_NAME_TOO_LONG 134 # define X509_R_NEWER_CRL_NOT_NEWER 132 # define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 # define X509_R_NO_CRL_NUMBER 130 @@ -1321,7 +1324,7 @@ void ERR_load_X509_strings(void); # define X509_R_WRONG_LOOKUP_TYPE 112 # define X509_R_WRONG_TYPE 122 -#ifdef __cplusplus +# ifdef __cplusplus } -#endif +# endif #endif diff --git a/src/Mayaqua/win32_inc/openssl/x509_vfy.h b/src/Mayaqua/win32_inc/openssl/x509_vfy.h index a2eb1e9..dd72192 100644 --- a/src/Mayaqua/win32_inc/openssl/x509_vfy.h +++ b/src/Mayaqua/win32_inc/openssl/x509_vfy.h @@ -313,7 +313,7 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) # define X509_V_OK 0 -/* illegal error (for uninitialized values, to avoid X509_V_OK): 1 */ +# define X509_V_ERR_UNSPECIFIED 1 # define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 # define X509_V_ERR_UNABLE_TO_GET_CRL 3 @@ -368,6 +368,7 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_ERR_PERMITTED_VIOLATION 47 # define X509_V_ERR_EXCLUDED_VIOLATION 48 # define X509_V_ERR_SUBTREE_MINMAX 49 +# define X509_V_ERR_APPLICATION_VERIFICATION 50 # define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 # define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 # define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 @@ -386,8 +387,12 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); # define X509_V_ERR_EMAIL_MISMATCH 63 # define X509_V_ERR_IP_ADDRESS_MISMATCH 64 -/* The application is not happy */ -# define X509_V_ERR_APPLICATION_VERIFICATION 50 +/* Caller error */ +# define X509_V_ERR_INVALID_CALL 65 +/* Issuer lookup error */ +# define X509_V_ERR_STORE_LOOKUP 66 + +# define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 67 /* Certificate verify flags */ @@ -432,6 +437,12 @@ void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); /* Allow partial chains if at least one certificate is in trusted store */ # define X509_V_FLAG_PARTIAL_CHAIN 0x80000 +/* + * If the initial chain is not trusted, do not attempt to build an alternative + * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag + * will force the behaviour to match that of previous versions. + */ +# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 # define X509_VP_FLAG_DEFAULT 0x1 # define X509_VP_FLAG_OVERWRITE 0x2 diff --git a/src/Neo/NDIS5.c b/src/Neo/NDIS5.c index f80ab39..efd5140 100644 --- a/src/Neo/NDIS5.c +++ b/src/Neo/NDIS5.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1737,7 +1737,3 @@ void NeoFree(void *p) } - -// 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/Neo/NDIS5.h b/src/Neo/NDIS5.h index fd8ba68..02f48e8 100644 --- a/src/Neo/NDIS5.h +++ b/src/Neo/NDIS5.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -293,7 +293,3 @@ BOOL NeoNdisOnClose(IRP *irp, IO_STACK_LOCATION *stack); #endif // NDIS5_H - -// 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/Neo/Neo.c b/src/Neo/Neo.c index 9b524af..b38d3cc 100644 --- a/src/Neo/Neo.c +++ b/src/Neo/Neo.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -466,7 +466,3 @@ void NeoFreeStatus(NEO_STATUS *s) NeoZero(s, sizeof(NEO_STATUS)); } - -// 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/Neo/Neo.h b/src/Neo/Neo.h index 1fc0b0d..fcc4438 100644 --- a/src/Neo/Neo.h +++ b/src/Neo/Neo.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -336,7 +336,3 @@ void NeoReset(NEO_EVENT *event); - -// 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/Neo/resource.h b/src/Neo/resource.h index d15b499..e42cd7d 100644 --- a/src/Neo/resource.h +++ b/src/Neo/resource.h @@ -108,7 +108,3 @@ #define _APS_NEXT_SYMED_VALUE 101 #endif #endif - -// 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/Neo6/NDIS6.c b/src/Neo6/NDIS6.c index a76c9f6..02258dd 100644 --- a/src/Neo6/NDIS6.c +++ b/src/Neo6/NDIS6.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1942,7 +1942,3 @@ void NeoFree(void *p) } - -// 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/Neo6/NDIS6.h b/src/Neo6/NDIS6.h index 49dd88e..263283b 100644 --- a/src/Neo6/NDIS6.h +++ b/src/Neo6/NDIS6.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -265,7 +265,3 @@ void NeoNdisCancelOidRequest(NDIS_HANDLE MiniportAdapterContext, PVOID RequestId #endif // NDIS5_H - -// 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/Neo6/Neo6.c b/src/Neo6/Neo6.c index d29a968..4a29515 100644 --- a/src/Neo6/Neo6.c +++ b/src/Neo6/Neo6.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -536,7 +536,3 @@ void NeoFreeStatus(NEO_STATUS *s) NeoZero(s, sizeof(NEO_STATUS)); } - -// 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/Neo6/Neo6.h b/src/Neo6/Neo6.h index 665119f..5e7be93 100644 --- a/src/Neo6/Neo6.h +++ b/src/Neo6/Neo6.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Kernel Device Driver // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -345,7 +345,3 @@ void NeoReset(NEO_EVENT *event); - -// 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/Neo6/resource.h b/src/Neo6/resource.h index d15b499..e42cd7d 100644 --- a/src/Neo6/resource.h +++ b/src/Neo6/resource.h @@ -108,7 +108,3 @@ #define _APS_NEXT_SYMED_VALUE 101 #endif #endif - -// 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/PenCore/PenCore.rc b/src/PenCore/PenCore.rc index e044753..0553add 100644 --- a/src/PenCore/PenCore.rc +++ b/src/PenCore/PenCore.rc @@ -1810,16 +1810,16 @@ FONT 9, "MS Shell Dlg", 400, 0, 0x80 BEGIN CONTROL 141,IDC_STATIC,"Static",SS_BITMAP,0,0,275,46 GROUPBOX "@STATIC1",IDC_STATIC,6,53,261,187 - ICON ICO_VPNSERVER,IDC_STATIC,14,67,20,18 + ICON ICO_VPNSERVER,IDC_STATIC,14,67,20,20 LTEXT "@STATIC2",IDC_STATIC,41,67,218,29 CONTROL "",L_SETTING,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SHAREIMAGELISTS | LVS_AUTOARRANGE | LVS_EDITLABELS | WS_BORDER | WS_TABSTOP,15,96,242,96 PUSHBUTTON "@B_NEW_SETTING",B_NEW_SETTING,15,197,76,14 PUSHBUTTON "@B_EDIT_SETTING",B_EDIT_SETTING,98,197,76,14 PUSHBUTTON "@B_DELETE",B_DELETE,181,197,76,14 PUSHBUTTON "@IDOK",IDOK,181,217,76,17 - ICON ICO_CERT,IDC_STATIC,147,246,20,18 + ICON ICO_CERT,IDC_STATIC,147,246,20,20 PUSHBUTTON "@B_CERT_TOOL",B_CERT_TOOL,171,248,86,14 - ICON ICO_SECURE,IDC_STATIC,45,266,20,18 + ICON ICO_SECURE,S_SMARTCARD_ICON,45,266,18,18 PUSHBUTTON "@B_SECURE_MANAGER",B_SECURE_MANAGER,67,269,96,14 PUSHBUTTON "@B_SELECT_SECURE",B_SELECT_SECURE,171,269,86,14 PUSHBUTTON "@B_ABOUT",B_ABOUT,14,288,76,14 diff --git a/src/PenCore/PenCore.vcproj b/src/PenCore/PenCore.vcproj index 902f786..9f41630 100644 --- a/src/PenCore/PenCore.vcproj +++ b/src/PenCore/PenCore.vcproj @@ -46,7 +46,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/PenCore/resource.h b/src/PenCore/resource.h index df43db6..3de66a6 100644 --- a/src/PenCore/resource.h +++ b/src/PenCore/resource.h @@ -1025,6 +1025,7 @@ #define S_VGS3 1514 #define S_TSUKUBA 1515 #define R_DISABLE_NATT 1516 +#define S_SMARTCARD_ICON 1517 #define B_ONLINE 1655 #define D_NM_CONNECT 1998 #define D_NM_MAIN 1999 @@ -1207,7 +1208,7 @@ #define _APS_NO_MFC 1 #define _APS_NEXT_RESOURCE_VALUE 242 #define _APS_NEXT_COMMAND_VALUE 40111 -#define _APS_NEXT_CONTROL_VALUE 1517 +#define _APS_NEXT_CONTROL_VALUE 1518 #define _APS_NEXT_SYMED_VALUE 102 #endif #endif diff --git a/src/README.TXT b/src/README.TXT index 9e4efff..050e40d 100644 --- a/src/README.TXT +++ b/src/README.TXT @@ -1,8 +1,14 @@ -SoftEther VPN - An Open-Source Cross-platform Multi-protocol VPN Program +SoftEther VPN (Stable Edition Repository) +- An Open-Source Cross-platform Multi-protocol VPN Program http://www.softether.org/ We use GitHub as the primary official SoftEther VPN repository: -https://github.com/SoftEtherVPN/SoftEtherVPN/ +https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/ + +This branch is officially managed by Daiyuu Nobori, the owner of +SoftEther VPN Project. Pull requests should be sent to the +Developer Edition Master Repository on +https://github.com/SoftEtherVPN/SoftEtherVPN Source code packages (.zip and .tar.gz) and binary files are also available: http://www.softether-download.com/ @@ -10,7 +16,13 @@ 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-2015 SoftEther Project at University of Tsukuba, Japan. +Copyright (c) SoftEther Project at University of Tsukuba, Japan. + +The development of SoftEther VPN was supported by the MITOH Project, +a research and development project by Japanese Government, +subsidized by METI (Ministry of Economy, Trade and Industry of Japan), +administrated by IPA (Information Promotion Agency, Japan). +https://www.ipa.go.jp/english/humandev/ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 @@ -95,14 +107,14 @@ HOW TO GET THE LATEST SOURCE CODE TREE FOR DEVELOPERS ----------------------------------------------------- If you are an open-source developer, visit our GitHub repository: -https://github.com/SoftEtherVPN/SoftEtherVPN/ +https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/ You can download the up-to-date source-code tree of SoftEther VPN from GitHub. You may make your own fork project from our project. The download and build instruction is following: -$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git +$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git $ cd SoftEtherVPN $ ./configure $ make @@ -121,25 +133,10 @@ SoftEther VPN Project distributes the up-to-date source-code on all the following open-source repositories: - GitHub - https://github.com/SoftEtherVPN/SoftEtherVPN/ - - - SourceForge - https://sourceforge.net/p/softethervpn/code/ci/master/tree/ - - - Google Code - https://code.google.com/p/softether/source/browse/ - + https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/ To fetch the source code from GitHub: -$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN.git - -To fetch the source code from SourceForge: -$ git clone http://git.code.sf.net/p/softethervpn/code - - or - -$ git clone git://git.code.sf.net/p/softethervpn/code - -To fetch the source code from Google Code: -$ git clone https://code.google.com/p/softether/ +$ git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git We hope that you can reach one of the above URLs at least! @@ -218,10 +215,3 @@ SOME SOFTWARE PROGRAMS FROM THIRD PARTIES ARE INCLUDED ON THIS SOFTWARE WITH LICENSE CONDITIONS WHICH ARE DESCRIBED ON THE 'THIRD_PARTY.TXT' FILE. -ADVERTISEMENT -------------- - -SoftEther VPN is developed by SoftEther VPN Project at University of Tsukuba. -Department of Computer Science has dozens of overly-enthusiastic geeks. -Join us: http://www.tsukuba.ac.jp/english/admission/ - diff --git a/src/SEVPN.sln b/src/SEVPN.sln index f70b4fc..733a75b 100644 --- a/src/SEVPN.sln +++ b/src/SEVPN.sln @@ -14,7 +14,6 @@ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "hamcore", "hamcore", "{234994FD-5966-4CFE-AC38-960DE089FBED}" ProjectSection(SolutionItems) = preProject bin\hamcore\lang.config = bin\hamcore\lang.config - bin\hamcore\languages.txt = bin\hamcore\languages.txt bin\hamcore\strtable_cn.stb = bin\hamcore\strtable_cn.stb bin\hamcore\strtable_en.stb = bin\hamcore\strtable_en.stb bin\hamcore\strtable_ja.stb = bin\hamcore\strtable_ja.stb @@ -314,14 +313,13 @@ Global {CF2B20BF-9799-40EF-A987-9E4C25E68E1C}.Debug|Win32.ActiveCfg = Release|Win32 {CF2B20BF-9799-40EF-A987-9E4C25E68E1C}.Debug|Win32.Build.0 = Release|Win32 {CF2B20BF-9799-40EF-A987-9E4C25E68E1C}.Debug|x64.ActiveCfg = Release|x64 - {CF2B20BF-9799-40EF-A987-9E4C25E68E1C}.Debug|x64.Build.0 = Release|x64 {CF2B20BF-9799-40EF-A987-9E4C25E68E1C}.Release|Win32.ActiveCfg = Release|Win32 {CF2B20BF-9799-40EF-A987-9E4C25E68E1C}.Release|Win32.Build.0 = Release|Win32 {CF2B20BF-9799-40EF-A987-9E4C25E68E1C}.Release|x64.ActiveCfg = Release|x64 {CF2B20BF-9799-40EF-A987-9E4C25E68E1C}.Release|x64.Build.0 = Release|x64 {F2C40D5C-1C86-43D8-B3FE-8E8F8B488432}.Debug|Win32.ActiveCfg = Debug|Win32 {F2C40D5C-1C86-43D8-B3FE-8E8F8B488432}.Debug|Win32.Build.0 = Debug|Win32 - {F2C40D5C-1C86-43D8-B3FE-8E8F8B488432}.Debug|x64.ActiveCfg = Debug|Win32 + {F2C40D5C-1C86-43D8-B3FE-8E8F8B488432}.Debug|x64.ActiveCfg = Release|Win32 {F2C40D5C-1C86-43D8-B3FE-8E8F8B488432}.Release|Win32.ActiveCfg = Release|Win32 {F2C40D5C-1C86-43D8-B3FE-8E8F8B488432}.Release|Win32.Build.0 = Release|Win32 {F2C40D5C-1C86-43D8-B3FE-8E8F8B488432}.Release|x64.ActiveCfg = Release|Win32 diff --git a/src/SeLow/SeLow.c b/src/SeLow/SeLow.c index 383bff4..a3476f1 100644 --- a/src/SeLow/SeLow.c +++ b/src/SeLow/SeLow.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // SeLow: SoftEther Lightweight Network Protocol // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -2215,7 +2215,3 @@ void SlSleep(int milliSeconds) - -// 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/SeLow/SeLow.h b/src/SeLow/SeLow.h index b773a04..9c669bf 100644 --- a/src/SeLow/SeLow.h +++ b/src/SeLow/SeLow.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // SeLow - SoftEther Lightweight Network Protocol // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -384,7 +384,3 @@ void SlSleep(int milliSeconds); #endif // SELOW_H - -// 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/SeLow/SeLowCommon.h b/src/SeLow/SeLowCommon.h index 49f1c39..8dd9e79 100644 --- a/src/SeLow/SeLowCommon.h +++ b/src/SeLow/SeLowCommon.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // SeLow - SoftEther Lightweight Network Protocol // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -201,7 +201,3 @@ typedef struct SL_ADAPTER_INFO_LIST #define SL_LEFT_FLAG(buf) SL_SIZE_OF_PACKET(buf, SL_MAX_PACKET_EXCHANGE) - -// 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/SeLow/resource.h b/src/SeLow/resource.h index d15b499..e42cd7d 100644 --- a/src/SeLow/resource.h +++ b/src/SeLow/resource.h @@ -108,7 +108,3 @@ #define _APS_NEXT_SYMED_VALUE 101 #endif #endif - -// 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/See/resource.h b/src/See/resource.h index 22f2632..d61f39b 100644 --- a/src/See/resource.h +++ b/src/See/resource.h @@ -108,7 +108,3 @@ #define _APS_NEXT_SYMED_VALUE 101 #endif #endif - -// 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/See/resource1.h b/src/See/resource1.h index 539d8e1..5303844 100644 --- a/src/See/resource1.h +++ b/src/See/resource1.h @@ -108,7 +108,3 @@ #define _APS_NEXT_SYMED_VALUE 101 #endif #endif - -// 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/SeeDll/SeeDll.vcproj b/src/SeeDll/SeeDll.vcproj index eee9e34..f365508 100644 --- a/src/SeeDll/SeeDll.vcproj +++ b/src/SeeDll/SeeDll.vcproj @@ -49,7 +49,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;PCDDLL_EXPORTS" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PCDDLL_EXPORTS" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/SeeDll/resource.h b/src/SeeDll/resource.h index c1ce9d4..1c3b7c3 100644 --- a/src/SeeDll/resource.h +++ b/src/SeeDll/resource.h @@ -108,7 +108,3 @@ #define _APS_NEXT_SYMED_VALUE 101 #endif #endif - -// 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/VGate/VGate.c b/src/VGate/VGate.c index ea3ad7e..527fb69 100644 --- a/src/VGate/VGate.c +++ b/src/VGate/VGate.c @@ -133,7 +133,3 @@ void FreePluginDll(struct VGATE_FUNCTIONS *funcs) - -// 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/VGate/VGate.h b/src/VGate/VGate.h index 7f69846..bc94c1e 100644 --- a/src/VGate/VGate.h +++ b/src/VGate/VGate.h @@ -113,7 +113,3 @@ - -// 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/VGate/VGate.vcproj b/src/VGate/VGate.vcproj index ccaf416..8455909 100644 --- a/src/VGate/VGate.vcproj +++ b/src/VGate/VGate.vcproj @@ -49,7 +49,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;PCDDLL_EXPORTS" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PCDDLL_EXPORTS" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" @@ -249,10 +249,10 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_USE_32BIT_TIME_T;PCDDLL_EXPORTS" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PCDDLL_EXPORTS" StringPooling="false" ExceptionHandling="0" - RuntimeLibrary="0" + RuntimeLibrary="1" StructMemberAlignment="4" BufferSecurityCheck="false" EnableFunctionLevelLinking="false" @@ -351,7 +351,7 @@ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PCDDLL_EXPORTS;CPU_64" StringPooling="false" ExceptionHandling="0" - RuntimeLibrary="0" + RuntimeLibrary="1" StructMemberAlignment="4" BufferSecurityCheck="false" EnableFunctionLevelLinking="false" diff --git a/src/VGate/resource.h b/src/VGate/resource.h index e29c05a..84fc265 100644 --- a/src/VGate/resource.h +++ b/src/VGate/resource.h @@ -108,7 +108,3 @@ #define _APS_NEXT_SYMED_VALUE 101 #endif #endif - -// 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/WARNING.TXT b/src/WARNING.TXT index ebb373a..01c37e0 100644 --- a/src/WARNING.TXT +++ b/src/WARNING.TXT @@ -2,7 +2,7 @@ THE IMPORTANT NOTICES ABOUT SOFTETHER VPN FUNCTIONS OF VPN COMMUNICATIONS EMBEDDED ON THIS SOFTWARE ARE VERY POWERFUL THAN EVER. THIS STRONG VPN ABILITY WILL BRING YOU HUGE BENEFITS. HOWEVER, IF -YOU MISUSE THIS SOFTWARE, IT MIGHT DAMAGES YOURSELF. IN ORDER TO AVOID SUCH +YOU MISUSE THIS SOFTWARE, IT MIGHT DAMAGE YOURSELF. IN ORDER TO AVOID SUCH RISKS, THIS DOCUMENT ACCOUNTS IMPORTANT NOTICES FOR CUSTOMERS WHO ARE WILLING TO USE THIS SOFTWARE. THE FOLLOWING INSTRUCTIONS ARE VERY IMPORTANT. READ AND UNDERSTAND IT CAREFULLY. ADDITIONALLY, IF YOU ARE PLANNING TO USE THE DYNAMIC diff --git a/src/Wfp/Wfp.c b/src/Wfp/Wfp.c index 78f43fd..5186904 100644 --- a/src/Wfp/Wfp.c +++ b/src/Wfp/Wfp.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Windows Filtering Platform Callout Driver for Capturing IPsec Packets on Windows Vista / 7 / Server 2008 // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1347,7 +1347,3 @@ void Crush(UINT a, UINT b, UINT c, UINT d) { KeBugCheckEx(0x00000061, (ULONG_PTR)a, (ULONG_PTR)b, (ULONG_PTR)c, (ULONG_PTR)d); } - -// 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/Wfp/Wfp.h b/src/Wfp/Wfp.h index db51c09..58bdf5a 100644 --- a/src/Wfp/Wfp.h +++ b/src/Wfp/Wfp.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Windows Filtering Platform Callout Driver for Capturing IPsec Packets on Windows Vista / 7 / Server 2008 // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -150,7 +150,3 @@ typedef struct WFP_LOCAL_IP #endif // WFP_H - -// 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/Wfp/WfpInner.h b/src/Wfp/WfpInner.h index 6ea5ae8..b1d1709 100644 --- a/src/Wfp/WfpInner.h +++ b/src/Wfp/WfpInner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Windows Filtering Platform Callout Driver for Capturing IPsec Packets on Windows Vista / 7 / Server 2008 // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -339,7 +339,3 @@ void Crush(); #endif // WFPINNER_H - -// 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/Wfp/resource1.h b/src/Wfp/resource1.h index 635bf52..5a5a9cc 100644 --- a/src/Wfp/resource1.h +++ b/src/Wfp/resource1.h @@ -108,7 +108,3 @@ #define _APS_NEXT_SYMED_VALUE 101 #endif #endif - -// Developed by SoftEther VPN Project at University of Tsukuba in Japan. -// Department of Computer Science has dozens of overly-enthusiastic geeks. -// Join us: http://www.tsukuba.ac.jp/english/admission/ diff --git a/src/bin/hamcore/authors.txt b/src/bin/hamcore/authors.txt index f84f9e3..44fdbcf 100644 --- a/src/bin/hamcore/authors.txt +++ b/src/bin/hamcore/authors.txt @@ -6,7 +6,7 @@ AUTHORS OF SOFTETHER VPN CORE DEVELOPERS: - - Daiyuu Nobori + - Daiyuu Nobori, Ph.D. Computer Science, Graduate School of University of Tsukuba SoftEther Corporation E-mail: daiyuu-nobori [at] softether.org @@ -18,16 +18,16 @@ CORE DEVELOPERS: Risk Engineering, Graduate School of University of Tsukuba SoftEther Corporation - - Takao Ito + - Takao Ito, Ph.D. Computer Science, Graduate School of University of Tsukuba SoftEther Corporation + - Mei Sharie Ann Yamaguchi, Ph.D. + Life and Environmental Sciences, Graduate School of University of Tsukuba + - Christopher Smith College of Information Science, University of Tsukuba - - Mei Sharie Ann Yamaguchi - Life and Environmental Sciences, Graduate School of University of Tsukuba - WEB-SITE DESIGNER: @@ -67,6 +67,77 @@ CONTRIBUTORS on GitHub: - ygrek https://github.com/ygrek + - ajee cai + https://github.com/ajeecai + + - NOKUBI Takatsugu + https://github.com/knok + + - Den Lesnov + https://github.com/Leden + + - Ilya Shipitsin + https://github.com/chipitsine + + - Matt Lewandowsky + https://github.com/lewellyn + + - Raymond Tau + https://github.com/rtau + + - Luiz Eduardo Gava + https://github.com/LegDog + + - Charles Surett + https://github.com/scj643 + + - Jeff Tang + https://github.com/mrjefftang + + - Victor Salgado + https://github.com/mcsalgado + + - micsell + https://github.com/micsell + + - yehorov + https://github.com/yehorov + + - dglushenok + https://github.com/dglushenok + + - NoNameA 774 + https://github.com/nna774 + + - Alexandre De Oliveira + https://github.com/yodresh + + - Bernhard Rosenkraenzer + https://github.com/berolinux + + - Sacha Bernstein + https://github.com/sacha + + - cm0x4D + https://github.com/cm0x4D + + - DDGo + https://github.com/DDGo + + - Noah O'Donoghue + https://github.com/NoahO + + - Moataz Elmasry + https://github.com/moatazelmasry2 + + - Zulyandri Zardi + https://github.com/zulzardi + + - rel22 + https://github.com/rel22 + + - Guanzhong Chen + https://github.com/quantum5 JOIN THE SOFTETHER VPN DEVELOPMENT ---------------------------------- @@ -76,8 +147,3 @@ Want to become a contributor? Please send us a patch. See also: SoftEther VPN Patch Acceptance Policy http://www.softether.org/5-download/src/9.patch - -Developed by SoftEther VPN Project at University of Tsukuba in Japan. -Department of Computer Science has dozens of overly-enthusiastic geeks. -Join us: http://www.tsukuba.ac.jp/english/admission/ - diff --git a/src/bin/hamcore/eula.txt b/src/bin/hamcore/eula.txt index fa5d171..8070f49 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-2015 Daiyuu Nobori. -Copyright (c) 2012-2015 SoftEther Project at University of Tsukuba, Japan. -Copyright (c) 2012-2015 SoftEther Corporation. +Copyright (c) Daiyuu Nobori. +Copyright (c) SoftEther Project at University of Tsukuba, Japan. +Copyright (c) SoftEther Corporation. All Rights Reserved. http://www.softether.org/ diff --git a/src/bin/hamcore/languages_wine.txt b/src/bin/hamcore/languages_wine.txt new file mode 100644 index 0000000..b7b2a24 --- /dev/null +++ b/src/bin/hamcore/languages_wine.txt @@ -0,0 +1,6 @@ +# PacketiX VPN / SoftEther VPN Language List File +# Copyright (c) SoftEther Corporation. All Rights Reserved + +# 番号 識別子 英語表記 ローカル表記 Windowsロケール番号 UNIXロケール文字一覧 +1 en English English 1033 en,us,c + diff --git a/src/bin/hamcore/openvpn_sample.ovpn b/src/bin/hamcore/openvpn_sample.ovpn index 63cc5b8..83bc3df 100644 --- a/src/bin/hamcore/openvpn_sample.ovpn +++ b/src/bin/hamcore/openvpn_sample.ovpn @@ -1,137 +1,137 @@ -############################################################################### -# OpenVPN 2.0 Sample Configuration File -# for PacketiX VPN / SoftEther VPN Server -# -# !!! AUTO-GENERATED BY SOFTETHER VPN SERVER MANAGEMENT TOOL !!! -# -# !!! YOU HAVE TO REVIEW IT BEFORE USE AND MODIFY IT AS NECESSARY !!! -# -# This configuration file is auto-generated. You might use this config file -# in order to connect to the PacketiX VPN / SoftEther VPN Server. -# However, before you try it, you should review the descriptions of the file -# to determine the necessity to modify to suitable for your real environment. -# If necessary, you have to modify a little adequately on the file. -# For example, the IP address or the hostname as a destination VPN Server -# should be confirmed. -# -# Note that to use OpenVPN 2.0, you have to put the certification file of -# the destination VPN Server on the OpenVPN Client computer when you use this -# config file. Please refer the below descriptions carefully. - - -############################################################################### -# Specify the type of the layer of the VPN connection. -# -# To connect to the VPN Server as a "Remote-Access VPN Client PC", -# specify 'dev tun'. (Layer-3 IP Routing Mode) -# -# To connect to the VPN Server as a bridging equipment of "Site-to-Site VPN", -# specify 'dev tap'. (Layer-2 Ethernet Bridgine Mode) - -dev $TAG_TUN_TAP$ - - -############################################################################### -# Specify the underlying protocol beyond the Internet. -# Note that this setting must be correspond with the listening setting on -# the VPN Server. -# -# Specify either 'proto tcp' or 'proto udp'. - -proto $TAG_PROTO$ - - -############################################################################### -# The destination hostname / IP address, and port number of -# the target VPN Server. -# -# You have to specify as 'remote '. You can also -# specify the IP address instead of the hostname. -# -# Note that the auto-generated below hostname are a "auto-detected -# IP address" of the VPN Server. You have to confirm the correctness -# beforehand. -# -# When you want to connect to the VPN Server by using TCP protocol, -# the port number of the destination TCP port should be same as one of -# the available TCP listeners on the VPN Server. -# -# When you use UDP protocol, the port number must same as the configuration -# setting of "OpenVPN Server Compatible Function" on the VPN Server. - -$TAG_BEFORE_REMOTE$remote $TAG_HOSTNAME$ $TAG_PORT$ - - -############################################################################### -# The HTTP/HTTPS proxy setting. -# -# Only if you have to use the Internet via a proxy, uncomment the below -# two lines and specify the proxy address and the port number. -# In the case of using proxy-authentication, refer the OpenVPN manual. - -;http-proxy-retry -;http-proxy [proxy server] [proxy port] - - -############################################################################### -# The encryption and authentication algorithm. -# -# Default setting is good. Modify it as you prefer. -# When you specify an unsupported algorithm, the error will occur. -# -# The supported algorithms are as follows: -# cipher: [NULL-CIPHER] NULL AES-128-CBC AES-192-CBC AES-256-CBC BF-CBC -# CAST-CBC CAST5-CBC DES-CBC DES-EDE-CBC DES-EDE3-CBC DESX-CBC -# RC2-40-CBC RC2-64-CBC RC2-CBC -# auth: SHA SHA1 MD5 MD4 RMD160 - -cipher AES-128-CBC -auth SHA1 - - -############################################################################### -# Other parameters necessary to connect to the VPN Server. -# -# It is not recommended to modify it unless you have a particular need. - -resolv-retry infinite -nobind -persist-key -persist-tun -client -verb 3 -auth-user-pass - - -############################################################################### -# The certificate file of the destination VPN Server. -# -# The CA certificate file is embedded in the inline format. -# You can replace this CA contents if necessary. -# Please note that if the server certificate is not a self-signed, you have to -# specify the signer's root certificate (CA) here. - - -$CA$ - - - -############################################################################### -# The client certificate file (dummy). -# -# In some implementations of OpenVPN Client software -# (for example: OpenVPN Client for iOS), -# a pair of client certificate and private key must be included on the -# configuration file due to the limitation of the client. -# So this sample configuration file has a dummy pair of client certificate -# and private key as follows. - - -$CERT$ - - - -$KEY$ - - - +############################################################################### +# OpenVPN 2.0 Sample Configuration File +# for PacketiX VPN / SoftEther VPN Server +# +# !!! AUTO-GENERATED BY SOFTETHER VPN SERVER MANAGEMENT TOOL !!! +# +# !!! YOU HAVE TO REVIEW IT BEFORE USE AND MODIFY IT AS NECESSARY !!! +# +# This configuration file is auto-generated. You might use this config file +# in order to connect to the PacketiX VPN / SoftEther VPN Server. +# However, before you try it, you should review the descriptions of the file +# to determine the necessity to modify to suitable for your real environment. +# If necessary, you have to modify a little adequately on the file. +# For example, the IP address or the hostname as a destination VPN Server +# should be confirmed. +# +# Note that to use OpenVPN 2.0, you have to put the certification file of +# the destination VPN Server on the OpenVPN Client computer when you use this +# config file. Please refer the below descriptions carefully. + + +############################################################################### +# Specify the type of the layer of the VPN connection. +# +# To connect to the VPN Server as a "Remote-Access VPN Client PC", +# specify 'dev tun'. (Layer-3 IP Routing Mode) +# +# To connect to the VPN Server as a bridging equipment of "Site-to-Site VPN", +# specify 'dev tap'. (Layer-2 Ethernet Bridgine Mode) + +dev $TAG_TUN_TAP$ + + +############################################################################### +# Specify the underlying protocol beyond the Internet. +# Note that this setting must be correspond with the listening setting on +# the VPN Server. +# +# Specify either 'proto tcp' or 'proto udp'. + +proto $TAG_PROTO$ + + +############################################################################### +# The destination hostname / IP address, and port number of +# the target VPN Server. +# +# You have to specify as 'remote '. You can also +# specify the IP address instead of the hostname. +# +# Note that the auto-generated below hostname are a "auto-detected +# IP address" of the VPN Server. You have to confirm the correctness +# beforehand. +# +# When you want to connect to the VPN Server by using TCP protocol, +# the port number of the destination TCP port should be same as one of +# the available TCP listeners on the VPN Server. +# +# When you use UDP protocol, the port number must same as the configuration +# setting of "OpenVPN Server Compatible Function" on the VPN Server. + +$TAG_BEFORE_REMOTE$remote $TAG_HOSTNAME$ $TAG_PORT$ + + +############################################################################### +# The HTTP/HTTPS proxy setting. +# +# Only if you have to use the Internet via a proxy, uncomment the below +# two lines and specify the proxy address and the port number. +# In the case of using proxy-authentication, refer the OpenVPN manual. + +;http-proxy-retry +;http-proxy [proxy server] [proxy port] + + +############################################################################### +# The encryption and authentication algorithm. +# +# Default setting is good. Modify it as you prefer. +# When you specify an unsupported algorithm, the error will occur. +# +# The supported algorithms are as follows: +# cipher: [NULL-CIPHER] NULL AES-128-CBC AES-192-CBC AES-256-CBC BF-CBC +# CAST-CBC CAST5-CBC DES-CBC DES-EDE-CBC DES-EDE3-CBC DESX-CBC +# RC2-40-CBC RC2-64-CBC RC2-CBC CAMELLIA-128-CBC CAMELLIA-192-CBC CAMELLIA-256-CBC +# auth: SHA SHA1 SHA256 SHA384 SHA512 MD5 MD4 RMD160 + +cipher AES-128-CBC +auth SHA1 + + +############################################################################### +# Other parameters necessary to connect to the VPN Server. +# +# It is not recommended to modify it unless you have a particular need. + +resolv-retry infinite +nobind +persist-key +persist-tun +client +verb 3 +auth-user-pass + + +############################################################################### +# The certificate file of the destination VPN Server. +# +# The CA certificate file is embedded in the inline format. +# You can replace this CA contents if necessary. +# Please note that if the server certificate is not a self-signed, you have to +# specify the signer's root certificate (CA) here. + + +$CA$ + + + +############################################################################### +# The client certificate file (dummy). +# +# In some implementations of OpenVPN Client software +# (for example: OpenVPN Client for iOS), +# a pair of client certificate and private key must be included on the +# configuration file due to the limitation of the client. +# So this sample configuration file has a dummy pair of client certificate +# and private key as follows. + + +$CERT$ + + + +$KEY$ + + + diff --git a/src/bin/hamcore/strtable_cn.stb b/src/bin/hamcore/strtable_cn.stb index 1f59ae8..7d86c2f 100644 --- a/src/bin/hamcore/strtable_cn.stb +++ b/src/bin/hamcore/strtable_cn.stb @@ -563,6 +563,9 @@ HUB_AO_DenyAllRadiusLoginWithNoVlanAssign If you set this option to non-zero val HUB_AO_SecureNAT_RandomizeAssignIp If you set this option to non-zero value, then the Virtual DHCP Server of the SecureNAT function will choose an unused IP address randomly from the DHCP pool while the default behavior is to choose the first unused IP address. HUB_AO_DetectDormantSessionInterval If you set this option to non-zero value, then the Virtual Hub will treat the VPN sessions, which have transmitted no packets for the last specified intervals (in seconds), as Dormant Sessions. The Virtual Hub will not flood packets, which should be flood, to any Dormant Sessions. HUB_AO_NoPhysicalIPOnPacketLog If you set this option to non-zero value, then the physical IP addresses of VPN clients of either the source VPN session or the destination VPN session will not be recorded on the packet log file. +HUB_AO_UseHubNameAsDhcpUserClassOption If you set this option to non-zero value, then the Virtual Hub Name will be added to a DHCP request to an external DHCP server as the "User-Class" option. This allows to use separate pools of IP addresses for each Virtual Hub. (For only L2TP/IPsec and OpenVPN sessions.) +HUB_AO_UseHubNameAsRadiusNasId If you set this option to non-zero value, then the NAS-Identidier RADIUS attribute will be set to a name of the Virtual Hub. This allows to determine on RADIUS server whether access to the Virtual Hub should be granted or denied. + #关于失败连接对话框 @@ -1651,7 +1654,7 @@ SM_DDNS_OK_MSG2 动态 DNS 主机名被更改为'%S'。\r\n\r\n单击提示读 SM_DDNS_KEY_TITLE 动态 DNS 密钥 SM_DDNS_KEY_MSG 动态 DNS 密钥: %s\r\n\r\n此密钥与当前的 DDNS 名称相关联。如果你的 VPN 服务器电脑损坏,丢失了密钥,当前的 DDNS 名称将被永远占用,且其他 VPN 服务器将无法使用相同的名称。\r\n如果你想继续使用相同的名称,请在互联网服务上、或另一台电脑上、或在便笺纸上保留密钥。\r\n当在新的 VPN 服务器设置密钥时,编辑 VPN 服务器的配置文件。请在 "declare DDnsClient" 指令下,用跟随 "byte Key" 的值替换​字符串的密钥。\r\n请不要同时在两个或多个 VPN 服务器上设置相同的密钥。 SM_DDNS_KEY_ERR 无法读取 DNS 密钥。 -SM_IPSEC_PSK_TOO_LONG 预共享密钥(PSK)有 10 个或更多的字母。\r\n\r\n据报道谷歌安卓的几个版本有一个 10 个或更多字母作为预共享密钥的严重故障。\r\n因此 9 个或少于 9 个字母被推荐作为预共享密钥。\r\n\r\n您要修改预共享密钥吗? +SM_IPSEC_PSK_TOO_LONG 预共享密钥(PSK)有 10 个或更多的字母。\r\n\r\n据报道谷歌安卓的几个版本有一个 10 个或更多字母作为预共享密钥的严重故障。\r\n因此 9 个或少于 9 个字母被推荐作为预共享密钥。\r\n\r\n您要尝试其他预共享密钥吗? SM_ADVANCED_REDIRECT_URL_HINT_TITLE 如何使用高级 HTTP 重定向功能 SM_ADVANCED_REDIRECT_URL_HINT 高级 HTTP 重定向(为专家)\r\n\r\n此字符串“”是一个占位符。它可以嵌入重定向的 URL 中。\r\n\r\n嵌入 URL 示例:\r\nhttp://www.google.com/search?q=|secret\r\n\r\n当客户端将被重定向,重定向的实际 URL 目的地将被取代如下。\r\n\r\n用户名|会话ID|IP 地址|日期和时间|哈希值\r\n\r\n替换后示例:zurukko|SID-ZURUKKO-123|219.117.219.154|20131117100354|99707160AFE7A454042B2C47B064112D652452D7\r\n\r\n各字段的详情描述如下。\r\n\r\n用户名:当前 VPN 会话的用户名将被放置。\r\n\r\n会话ID:VPN 会话的会话 ID 将被放置\r\n\r\n日期和时间:14 位数字将以'YYYYMMDDHHMMSS’格式放置(时区是 UTC)\r\n\r\n哈希值:代表 20 个字节二进制数据的一个 40 字符的十六进制字符串。二进制数据是 SHA-1 哈希函数至临时字符串的结果。在重定向 URL 中“|”符号后,临时字符串是上述字段的位阵列加上秘密字符串的结合。(在上面的例子中,“秘密”是秘密字符串)。如果在 URL 中没有“|”符号,没有哈希值将被添加。\r\n\r\n哈希值的目的:秘密字符串如密钥般有效。感谢密钥。在重定向 URL 中接收重定向查询字符串的 CGI 程序,可以验证包含在 URL 中参数的完整性。\r\n SM_ADVANCED_REDIRECT_URL_MSG URL 必须以“http://”或“https://”开始 @@ -2445,7 +2448,7 @@ STATIC7 保持互联网连接功能(&K) PREFIX D_ABOUT S_INFO1 SoftEther VPN %u.0 (Ver %u.%02u, Build %u) -S_INFO2 An Open-Source VPN Software for Academic Purpose, under the GPLv2 License.\r\nCopyright (c) 2012-%u SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.\r\nWeb Site: http://www.softether.org/\r\n%S +S_INFO2 Open-Source VPN Software for Academic Purpose, under the GPLv2 License.\r\nCopyright (c) 2012-%u SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.\r\nWeb Site: http://www.softether.org/\r\n%S S_INFO3 This product includes the following software components:\r\nBitVisor: Copyright (c) 2007, 2008 University of Tsukuba. Copyright (C) 2007, 2008 National Institute of Information and Communications Technology. All rights reserved. / Microsoft(R) C Runtime Library: (c) 2007 Microsoft Corporation. All Rights Reserved. / PKCS #11 Cryptographic Token Interface (Cryptoki): Copyright (c) RSA Security Inc. / WinPcap: Copyright (c) 2001 - 2003 NetGroup, Politecnico di Torino (Italy). All rights reserved. / libedit: Copyright (c) 1992, 1993 The Regents of the University of California. All rights reserved. / libiconv: Copyright (C) 2007 Free Software Foundation, Inc. / ncurses: Copyright (c) 1998-2005, 2006 Free Software Foundation, Inc. / OpenSSL: Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/). This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). / zlib: (C) 1995-2004 Jean-loup Gailly and Mark Adler. / Special Thanks to: Software Laboratory, Academic Computing Communication Center, Industrial Liaison and Cooperative Research Center and Professor Yasushi Shinjo in University of Tsukuba, Japan. S_INFO4 此 VPN 服务器作为的一个学术研究且由 (http://www.softether.org/) 为公众利益免费发布的。本软件是日本筑波大学 SoftEther 项目下开发的免费软件,无任何担保。开发人员、版权所有者或分销商在任何情况下对于使用本软件的任何索赔、损害赔偿或其他情况不承担责任。\r\n\r\nSoftEther VPN 是日本政府的研究和开发项目的一项工作,由日本的经济、贸易和工业部资助,由信息化推进机构管理。 IDCANCEL 确定(&O) diff --git a/src/bin/hamcore/strtable_en.stb b/src/bin/hamcore/strtable_en.stb index dacb0bc..16e6b08 100644 --- a/src/bin/hamcore/strtable_en.stb +++ b/src/bin/hamcore/strtable_en.stb @@ -557,6 +557,8 @@ HUB_AO_DenyAllRadiusLoginWithNoVlanAssign If you set this option to non-zero val HUB_AO_SecureNAT_RandomizeAssignIp If you set this option to non-zero value, then the Virtual DHCP Server of the SecureNAT function will choose an unused IP address randomly from the DHCP pool while the default behavior is to choose the first unused IP address. HUB_AO_DetectDormantSessionInterval If you set this option to non-zero value, then the Virtual Hub will treat the VPN sessions, which have transmitted no packets for the last specified intervals (in seconds), as Dormant Sessions. The Virtual Hub will not flood packets, which should be flood, to any Dormant Sessions. HUB_AO_NoPhysicalIPOnPacketLog If you set this option to non-zero value, then the physical IP addresses of VPN clients of either the source VPN session or the destination VPN session will not be recorded on the packet log file. +HUB_AO_UseHubNameAsDhcpUserClassOption If you set this option to non-zero value, then the Virtual Hub Name will be added to a DHCP request to an external DHCP server as the "User-Class" option. This allows to use separate pools of IP addresses for each Virtual Hub. (For only L2TP/IPsec and OpenVPN sessions.) +HUB_AO_UseHubNameAsRadiusNasId If you set this option to non-zero value, then the NAS-Identidier RADIUS attribute will be set to a name of the Virtual Hub. This allows to determine on RADIUS server whether access to the Virtual Hub should be granted or denied. # Concerning failed connection dialogs @@ -743,7 +745,7 @@ POL_EX_28 Computers of sessions with this policy setting can't listen and acc POL_29 Maximum Number of IP Addresses (IPv6) POL_EX_29 For sessions with this policy setting, this specifies the number of IPv6 addresses that can be registered for a single session. POL_30 Disallow Password Save in VPN Client -POL_EX_30 For users with this policy setting, a user will be unable to save the password in VPN Client any longer. The user will be required to input passwords for every time to connect a VPN. This will improve the security. If this policy is enabled, VPN Client Version 2.0 will be denied to access. +POL_EX_30 For users with this policy setting, when the user is using *standard* password authentication, the user will be unable to save the password in VPN Client. The user will be required to input passwords for every time to connect a VPN. This will improve the security. If this policy is enabled, VPN Client Version 2.0 will be denied to access. POL_31 VPN Client Automatic Disconnect POL_EX_31 For users with this policy setting, a user's VPN session will be disconnected automatically after the specific period will elapse. In this case no automatic re-connection will be performed. This can prevent a lot of inactive VPN Sessions. If this policy is enabled, VPN Client Version 2.0 will be denied to access. POL_32 Filter All IPv4 Packets @@ -1634,7 +1636,7 @@ SM_DDNS_OK_MSG2 The Dynamic DNS hostname has been changed to '%S'.\r\n\r\nClic SM_DDNS_KEY_TITLE Dynamic DNS Key SM_DDNS_KEY_MSG Your Dynamic DNS Private Key: %s\r\n\r\nThis is the private key which is associated with your current DDNS name. If your VPN Server PC damaged and lost the key, the current DDNS name will be occupied forever and other VPN Server will not be able to use the same name.\r\nIf you want to continue to use the same name, keep the key on a safe place, such as an Internet storage, an another PC or a notepad.\r\nWhen applying the key to the new VPN Server, edit the configuration file of the VPN Server to replace the key by the string in the value following to "byte Key" in the "declare DDnsClient" directive.\r\nDo not use the duplicated key to two or more VPN Servers at the same time. SM_DDNS_KEY_ERR Failed to read the DNS key. -SM_IPSEC_PSK_TOO_LONG The pre-shared key (PSK) has 10 or more letters.\r\n\r\nIt is reported that several versions of Google Android has a serious bug with 10 or more letters pre-shared key.\r\nTherefore 9 or less letters are recommended for pre-shared key.\r\n\r\nDo you want to modify the pre-shared key? +SM_IPSEC_PSK_TOO_LONG The pre-shared key (PSK) has 10 or more letters.\r\n\r\nIt is reported that several versions of Google Android has a serious bug with 10 or more letters pre-shared key.\r\nTherefore 9 or less letters are recommended for pre-shared key.\r\n\r\nDo you want to try another pre-shared key? SM_ADVANCED_REDIRECT_URL_HINT_TITLE How to Use Advanced HTTP Redirection Function SM_ADVANCED_REDIRECT_URL_HINT Advanced HTTP Redirection (For Experts)\r\n\r\nThe string "" is a place holder. It can embedded on the URL of redirection.\r\n\r\nEmbedded URL Example:\r\nhttp://www.google.com/search?q=|secret\r\n\r\nWhen the client is being redirected, the actual destination URL of redirection will be replaced as follows.\r\n\r\nUsername|Session ID|IP Address|Date and Time|Hash Value\r\n\r\\nAfter Replacement Example: zurukko|SID-ZURUKKO-123|219.117.219.154|20131117100354|99707160AFE7A454042B2C47B064112D652452D7\r\n\r\nThe details of each fields are described as following.\r\n\r\nUsername: The username using for the current VPN Session will be placed.\r\n\r\nSession ID: The Session ID of the VPN Session will be placed.\r\n\r\nDate and Time: 14-digits will be placed as 'YYYYMMDDHHMMSS' format (Time zone is UTC).\r\n\r\nHash Value: A 40-characters hexadecimal strings which represent 20 bytes binary data. The binary data is the result of SHA-1 hash function to the temporary string. The temporary string is the combination of the bit-array of the above fields plus the secret string after the '|' symbol in the redirection URL. (In the above example, "secret" is the secret string.) If there are no '|' symbols in the URL, no hash value will be appended.\r\n\r\nThe Purpose of Hash Value: The secret string is effective as the secret key. Thanks to the secret key, the CGI program which receives the query strings on the redirected URL can verify the integrity of the parameters included in the URL.\r\n SM_ADVANCED_REDIRECT_URL_MSG An URL must start with "http://" or "https://" @@ -2426,7 +2428,7 @@ STATIC7 &Keep Alive Internet Connection Function: PREFIX D_ABOUT S_INFO1 SoftEther VPN %u.0 (Ver %u.%02u, Build %u) -S_INFO2 An Open-Source VPN Software for Academic Purpose, under the GPLv2 License.\r\nCopyright (c) 2012-%u SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.\r\nWeb Site: http://www.softether.org/\r\n%S +S_INFO2 Open-Source VPN Software for Academic Purpose, under the GPLv2 License.\r\nCopyright (c) 2012-%u SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.\r\nWeb Site: http://www.softether.org/\r\n%S S_INFO3 This product includes the following software components:\r\nBitVisor: Copyright (c) 2007, 2008 University of Tsukuba. Copyright (C) 2007, 2008 National Institute of Information and Communications Technology. All rights reserved. / Microsoft(R) C Runtime Library: (c) 2007 Microsoft Corporation. All Rights Reserved. / PKCS #11 Cryptographic Token Interface (Cryptoki): Copyright (c) RSA Security Inc. / WinPcap: Copyright (c) 2001 - 2003 NetGroup, Politecnico di Torino (Italy). All rights reserved. / libedit: Copyright (c) 1992, 1993 The Regents of the University of California. All rights reserved. / libiconv: Copyright (C) 2007 Free Software Foundation, Inc. / ncurses: Copyright (c) 1998-2005, 2006 Free Software Foundation, Inc. / OpenSSL: Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/). This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). / zlib: (C) 1995-2004 Jean-loup Gailly and Mark Adler. / Special Thanks to: Software Laboratory, Academic Computing Communication Center, Industrial Liaison and Cooperative Research Center and Professor Yasushi Shinjo in University of Tsukuba, Japan. S_INFO4 THIS SOFTWARE IS FREEWARE DEVELOPED UNDER THE SOFTETHER VPN PROJECT AT UNIVERSITY OF TSUKUBA, WITHOUT WARRANTY OF AND KIND. IN NO EVENT SHALL THE DEVELOPERS, COPYRIGHT OWNERS OR DISTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY IN ANY WAY OUT OF THE USE OF THIS SOFTWARE.\r\n\r\nSoftEther VPN is a work of the research and development project of Japanese Government, subsidized by Ministry of Economy, Trade and Industry of Japan, administrated by Information Promotion Agency. IDCANCEL &OK diff --git a/src/bin/hamcore/strtable_ja.stb b/src/bin/hamcore/strtable_ja.stb index fc39950..720fdb8 100644 --- a/src/bin/hamcore/strtable_ja.stb +++ b/src/bin/hamcore/strtable_ja.stb @@ -577,7 +577,9 @@ HUB_AO_AssignVLanIdByRadiusAttribute VLAN ID の動的割り当て機能を有 HUB_AO_DenyAllRadiusLoginWithNoVlanAssign この項目が 1 (有効) の場合は、RADIUS サーバーが "Tunnel-Pvt-Group-ID" (ID = 81) の値を返却しなかった場合は VPN 接続が拒否されます。(AssignVLanIdByRadiusAttribute の値が 1 の場合に限ります。) HUB_AO_SecureNAT_RandomizeAssignIp この項目が 1 (有効) の場合は、SecureNAT 機能における仮想 DHCP サーバーは、DHCP クライアントに対して割当てる IP アドレスを指定された IP アドレスプール内の未使用アドレスからランダムに選択するようになります。なお、既定の動作は、未使用アドレスのうち最初のアドレスを割当てるようになっています。 HUB_AO_DetectDormantSessionInterval この項目が 0 以外の場合は、指定された秒数無通信であった VPN セッションをドーマント状態 (休止状態) として識別します。ドーマント状態の VPN セッションに対しては、仮想 HUB 内でフラッディングされるべきパケットがフラッディングされなくなります。 -HUB_AO_NoPhysicalIPOnPacketLog この項目が 0 (有効) の場合は、パケットログに送信元および宛先 VPN セッションの物理的な接続元 VPN クライアントの IP アドレスが記録されないようになります。 +HUB_AO_NoPhysicalIPOnPacketLog この項目が 1 (有効) の場合は、パケットログに送信元および宛先 VPN セッションの物理的な接続元 VPN クライアントの IP アドレスが記録されないようになります。 +HUB_AO_UseHubNameAsDhcpUserClassOption この項目が 1 (有効) の場合は、仮想 HUB は DHCP サーバーに対して IP アドレスの取得を要求する際に仮想 HUB 名を DHCP パケットの "User-Class" オプションに埋め込むようになります。この機能は、複数の仮想 HUB がある場合に、DHCP サーバーがそれぞれの仮想 HUB 用に IP プールを確保する場合に便利です。(L2TP/IPsec および OpenVPN セッションのみ対応。) +HUB_AO_UseHubNameAsRadiusNasId この項目が 1 (有効) の場合は、NAS-Identidier RADIUS 属性に仮想 HUB 名が埋め込まれます。この機能は、RADIUS サーバにおいて仮想 HUB ごとにアクセスの許可 / 拒否を設定したい場合に便利です。 # Caps 関係 @@ -2431,7 +2433,7 @@ STATIC7 インターネット接続の維持機能(&N) PREFIX D_ABOUT S_INFO1 SoftEther VPN %u.0 (Ver %u.%02u, Build %u) -S_INFO2 An Open-Source VPN Software for Academic Purpose, under the GPLv2 License.\r\nCopyright (c) 2012-%u SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.\r\nWeb Site: http://www.softether.org/\r\n%S +S_INFO2 Open-Source VPN Software for Academic Purpose, under the GPLv2 License.\r\nCopyright (c) 2012-%u SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.\r\nWeb Site: http://www.softether.org/\r\n%S S_INFO3 This product includes the following software components:\r\nBitVisor: Copyright (c) 2007, 2008 University of Tsukuba. Copyright (C) 2007, 2008 National Institute of Information and Communications Technology. All rights reserved. / Microsoft(R) C Runtime Library: (c) 2007 Microsoft Corporation. All Rights Reserved. / PKCS #11 Cryptographic Token Interface (Cryptoki): Copyright (c) RSA Security Inc. / WinPcap: Copyright (c) 2001 - 2003 NetGroup, Politecnico di Torino (Italy). All rights reserved. / libedit: Copyright (c) 1992, 1993 The Regents of the University of California. All rights reserved. / libiconv: Copyright (C) 2007 Free Software Foundation, Inc. / ncurses: Copyright (c) 1998-2005, 2006 Free Software Foundation, Inc. / OpenSSL: Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/). This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). / zlib: (C) 1995-2004 Jean-loup Gailly and Mark Adler. / Special Thanks to: Software Laboratory, Academic Computing Communication Center, Industrial Liaison and Cooperative Research Center and Professor Yasushi Shinjo in University of Tsukuba, Japan. S_INFO4 本ソフトウェアは筑波大学 SoftEther VPN プロジェクトで開発されたフリーウェアです。本ソフトウェアは一切の保証がない状態で提供されるものであり、開発および配布元は使用の結果の損害について一切責任を負いません。\r\n\r\nSoftEther VPN ソフトウェアは日本国経済産業省のソフトウェア研究開発プロジェクトの成果物です。IPA (独立行政法人 情報処理推進機構) の未踏ソフトウェア創造事業に採択され開発されました。詳しくは http://www.ipa.go.jp/ をご覧ください。 IDCANCEL &OK diff --git a/src/bin/hamcore/warning_en.txt b/src/bin/hamcore/warning_en.txt index 4717e79..9ebbf05 100644 --- a/src/bin/hamcore/warning_en.txt +++ b/src/bin/hamcore/warning_en.txt @@ -1,6 +1,6 @@ THE IMPORTANT NOTICES ABOUT SOFTETHER VPN -FUNCTIONS OF VPN COMMUNICATIONS EMBEDDED ON THIS SOFTWARE ARE VERY POWERFUL THAN EVER. THIS STRONG VPN ABILITY WILL BRING YOU HUGE BENEFITS. HOWEVER, IF YOU MISUSE THIS SOFTWARE, IT MIGHT DAMAGES YOURSELF. IN ORDER TO AVOID SUCH RISKS, THIS DOCUMENT ACCOUNTS IMPORTANT NOTICES FOR CUSTOMERS WHO ARE WILLING TO USE THIS SOFTWARE. THE FOLLOWING INSTRUCTIONS ARE VERY IMPORTANT. READ AND UNDERSTAND IT CAREFULLY. ADDITIONALLY, IF YOU ARE PLANNING TO USE THE DYNAMIC DNS, THE NAT TRAVERSAL OR THE VPN AZURE FUNCTIONS, READ THE SECTION 3.5 CAREFULLY. THESE FUNCTIONS ARE FREE SERVICES PROVIDED VIA THE INTERNET, ARE NOT GUARANTEED, AND ARE NOT INTENDED TO BE USED FOR BUSINESS OR COMMERCIAL USE. DO NOT USE THESE SERVICES FOR YOUR BUSINESS OR COMMERCIAL USE. +FUNCTIONS OF VPN COMMUNICATIONS EMBEDDED ON THIS SOFTWARE ARE VERY POWERFUL THAN EVER. THIS STRONG VPN ABILITY WILL BRING YOU HUGE BENEFITS. HOWEVER, IF YOU MISUSE THIS SOFTWARE, IT MIGHT DAMAGE YOURSELF. IN ORDER TO AVOID SUCH RISKS, THIS DOCUMENT ACCOUNTS IMPORTANT NOTICES FOR CUSTOMERS WHO ARE WILLING TO USE THIS SOFTWARE. THE FOLLOWING INSTRUCTIONS ARE VERY IMPORTANT. READ AND UNDERSTAND IT CAREFULLY. ADDITIONALLY, IF YOU ARE PLANNING TO USE THE DYNAMIC DNS, THE NAT TRAVERSAL OR THE VPN AZURE FUNCTIONS, READ THE SECTION 3.5 CAREFULLY. THESE FUNCTIONS ARE FREE SERVICES PROVIDED VIA THE INTERNET, ARE NOT GUARANTEED, AND ARE NOT INTENDED TO BE USED FOR BUSINESS OR COMMERCIAL USE. DO NOT USE THESE SERVICES FOR YOUR BUSINESS OR COMMERCIAL USE. 1. VPN Communication Protocols diff --git a/src/bin/vpnweb.cab b/src/bin/vpnweb.cab index aa01c23..e4b23f8 100644 Binary files a/src/bin/vpnweb.cab and b/src/bin/vpnweb.cab differ diff --git a/src/bin/vpnweb.ocx b/src/bin/vpnweb.ocx index f3884b1..8facfbf 100644 Binary files a/src/bin/vpnweb.ocx and b/src/bin/vpnweb.ocx differ diff --git a/src/hamcorebuilder/hamcorebuilder.c b/src/hamcorebuilder/hamcorebuilder.c index e9825fa..aea07bd 100644 --- a/src/hamcorebuilder/hamcorebuilder.c +++ b/src/hamcorebuilder/hamcorebuilder.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -167,7 +167,3 @@ int main(int argc, char *argv[]) return 0; } - -// 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/makefiles/freebsd_32bit.mak b/src/makefiles/freebsd_32bit.mak index 6c3962a..5a7a1b7 100644 --- a/src/makefiles/freebsd_32bit.mak +++ b/src/makefiles/freebsd_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2016 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2016 Daiyuu Nobori. +# Copyright (c) 2012-2018 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2018 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -52,7 +52,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/languages_wine.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/src/makefiles/freebsd_64bit.mak b/src/makefiles/freebsd_64bit.mak index 1bc7873..bcc8e40 100644 --- a/src/makefiles/freebsd_64bit.mak +++ b/src/makefiles/freebsd_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2016 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2016 Daiyuu Nobori. +# Copyright (c) 2012-2018 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2018 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -52,7 +52,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/languages_wine.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/src/makefiles/linux_32bit.mak b/src/makefiles/linux_32bit.mak index 3295ce9..fb483fd 100644 --- a/src/makefiles/linux_32bit.mak +++ b/src/makefiles/linux_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2016 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2016 Daiyuu Nobori. +# Copyright (c) 2012-2018 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2018 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -52,7 +52,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/languages_wine.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/src/makefiles/linux_64bit.mak b/src/makefiles/linux_64bit.mak index dcb73f8..66d2718 100644 --- a/src/makefiles/linux_64bit.mak +++ b/src/makefiles/linux_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2016 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2016 Daiyuu Nobori. +# Copyright (c) 2012-2018 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2018 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -52,7 +52,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/languages_wine.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/src/makefiles/macos_32bit.mak b/src/makefiles/macos_32bit.mak index caa2d07..417d1eb 100644 --- a/src/makefiles/macos_32bit.mak +++ b/src/makefiles/macos_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2016 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2016 Daiyuu Nobori. +# Copyright (c) 2012-2018 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2018 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -52,7 +52,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/languages_wine.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/src/makefiles/macos_64bit.mak b/src/makefiles/macos_64bit.mak index 3da4862..f5f5348 100644 --- a/src/makefiles/macos_64bit.mak +++ b/src/makefiles/macos_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2016 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2016 Daiyuu Nobori. +# Copyright (c) 2012-2018 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2018 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -52,7 +52,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/languages_wine.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/src/makefiles/openbsd_32bit.mak b/src/makefiles/openbsd_32bit.mak index 66d7398..8c7a788 100644 --- a/src/makefiles/openbsd_32bit.mak +++ b/src/makefiles/openbsd_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2016 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2016 Daiyuu Nobori. +# Copyright (c) 2012-2018 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2018 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -52,7 +52,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/languages_wine.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/src/makefiles/openbsd_64bit.mak b/src/makefiles/openbsd_64bit.mak index ab8ad16..e21bc73 100644 --- a/src/makefiles/openbsd_64bit.mak +++ b/src/makefiles/openbsd_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2016 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2016 Daiyuu Nobori. +# Copyright (c) 2012-2018 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2018 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -52,7 +52,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/languages_wine.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/src/makefiles/solaris_32bit.mak b/src/makefiles/solaris_32bit.mak index 1e36692..fdcf42c 100644 --- a/src/makefiles/solaris_32bit.mak +++ b/src/makefiles/solaris_32bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2016 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2016 Daiyuu Nobori. +# Copyright (c) 2012-2018 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2018 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -52,7 +52,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/languages_wine.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/src/makefiles/solaris_64bit.mak b/src/makefiles/solaris_64bit.mak index 7e33304..df63553 100644 --- a/src/makefiles/solaris_64bit.mak +++ b/src/makefiles/solaris_64bit.mak @@ -1,7 +1,7 @@ # SoftEther VPN Source Code # -# Copyright (c) 2012-2016 SoftEther VPN Project at University of Tsukuba, Japan. -# Copyright (c) 2012-2016 Daiyuu Nobori. +# Copyright (c) 2012-2018 SoftEther VPN Project at University of Tsukuba, Japan. +# Copyright (c) 2012-2018 Daiyuu Nobori. # All Rights Reserved. # # http://www.softether.org/ @@ -52,7 +52,7 @@ HEADERS_MAYAQUA=src/Mayaqua/Cfg.h src/Mayaqua/cryptoki.h src/Mayaqua/Encrypt.h s HEADERS_CEDAR=src/Cedar/Account.h src/Cedar/Admin.h src/Cedar/AzureClient.h src/Cedar/AzureServer.h src/Cedar/Bridge.h src/Cedar/BridgeUnix.h src/Cedar/BridgeWin32.h src/Cedar/Cedar.h src/Cedar/CedarPch.h src/Cedar/CedarType.h src/Cedar/Client.h src/Cedar/CM.h src/Cedar/CMInner.h src/Cedar/Command.h src/Cedar/Connection.h src/Cedar/Console.h src/Cedar/Database.h src/Cedar/DDNS.h src/Cedar/EM.h src/Cedar/EMInner.h src/Cedar/EtherLog.h src/Cedar/Hub.h src/Cedar/Interop_OpenVPN.h src/Cedar/Interop_SSTP.h src/Cedar/IPsec.h src/Cedar/IPsec_EtherIP.h src/Cedar/IPsec_IKE.h src/Cedar/IPsec_IkePacket.h src/Cedar/IPsec_IPC.h src/Cedar/IPsec_L2TP.h src/Cedar/IPsec_PPP.h src/Cedar/IPsec_Win7.h src/Cedar/IPsec_Win7Inner.h src/Cedar/Layer3.h src/Cedar/Link.h src/Cedar/Listener.h src/Cedar/Logging.h src/Cedar/Nat.h src/Cedar/NativeStack.h src/Cedar/netcfgn.h src/Cedar/netcfgx.h src/Cedar/NM.h src/Cedar/NMInner.h src/Cedar/NullLan.h src/Cedar/Protocol.h src/Cedar/Radius.h src/Cedar/Remote.h src/Cedar/Sam.h src/Cedar/SecureInfo.h src/Cedar/SecureNAT.h src/Cedar/SeLowUser.h src/Cedar/Server.h src/Cedar/Session.h src/Cedar/SM.h src/Cedar/SMInner.h src/Cedar/SW.h src/Cedar/SWInner.h src/Cedar/UdpAccel.h src/Cedar/UT.h src/Cedar/VG.h src/Cedar/Virtual.h src/Cedar/VLan.h src/Cedar/VLanUnix.h src/Cedar/VLanWin32.h src/Cedar/WaterMark.h src/Cedar/WebUI.h src/Cedar/Win32Com.h src/Cedar/winpcap/bittypes.h src/Cedar/winpcap/bucket_lookup.h src/Cedar/winpcap/count_packets.h src/Cedar/winpcap/Devioctl.h src/Cedar/winpcap/Gnuc.h src/Cedar/winpcap/ip6_misc.h src/Cedar/winpcap/memory_t.h src/Cedar/winpcap/normal_lookup.h src/Cedar/winpcap/Ntddndis.h src/Cedar/winpcap/Ntddpack.h src/Cedar/winpcap/Packet32.h src/Cedar/winpcap/pcap.h src/Cedar/winpcap/pcap-bpf.h src/Cedar/winpcap/pcap-int.h src/Cedar/winpcap/pcap-stdinc.h src/Cedar/winpcap/pthread.h src/Cedar/winpcap/remote-ext.h src/Cedar/winpcap/sched.h src/Cedar/winpcap/semaphore.h src/Cedar/winpcap/tcp_session.h src/Cedar/winpcap/time_calls.h src/Cedar/winpcap/tme.h src/Cedar/winpcap/Win32-Extensions.h src/Cedar/WinUi.h src/Cedar/Wpc.h OBJECTS_MAYAQUA=tmp/objs/Mayaqua/Cfg.o tmp/objs/Mayaqua/Encrypt.o tmp/objs/Mayaqua/FileIO.o tmp/objs/Mayaqua/Internat.o tmp/objs/Mayaqua/Kernel.o tmp/objs/Mayaqua/Mayaqua.o tmp/objs/Mayaqua/Memory.o tmp/objs/Mayaqua/Microsoft.o tmp/objs/Mayaqua/Network.o tmp/objs/Mayaqua/Object.o tmp/objs/Mayaqua/OS.o tmp/objs/Mayaqua/Pack.o tmp/objs/Mayaqua/Secure.o tmp/objs/Mayaqua/Str.o tmp/objs/Mayaqua/Table.o tmp/objs/Mayaqua/TcpIp.o tmp/objs/Mayaqua/Tick64.o tmp/objs/Mayaqua/Tracking.o tmp/objs/Mayaqua/Unix.o tmp/objs/Mayaqua/Win32.o OBJECTS_CEDAR=tmp/objs/Cedar/Account.o tmp/objs/Cedar/Admin.o tmp/objs/Cedar/AzureClient.o tmp/objs/Cedar/AzureServer.o tmp/objs/Cedar/Bridge.o tmp/objs/Cedar/BridgeUnix.o tmp/objs/Cedar/BridgeWin32.o tmp/objs/Cedar/Cedar.o tmp/objs/Cedar/CedarPch.o tmp/objs/Cedar/Client.o tmp/objs/Cedar/CM.o tmp/objs/Cedar/Command.o tmp/objs/Cedar/Connection.o tmp/objs/Cedar/Console.o tmp/objs/Cedar/Database.o tmp/objs/Cedar/DDNS.o tmp/objs/Cedar/EM.o tmp/objs/Cedar/EtherLog.o tmp/objs/Cedar/Hub.o tmp/objs/Cedar/Interop_OpenVPN.o tmp/objs/Cedar/Interop_SSTP.o tmp/objs/Cedar/IPsec.o tmp/objs/Cedar/IPsec_EtherIP.o tmp/objs/Cedar/IPsec_IKE.o tmp/objs/Cedar/IPsec_IkePacket.o tmp/objs/Cedar/IPsec_IPC.o tmp/objs/Cedar/IPsec_L2TP.o tmp/objs/Cedar/IPsec_PPP.o tmp/objs/Cedar/IPsec_Win7.o tmp/objs/Cedar/Layer3.o tmp/objs/Cedar/Link.o tmp/objs/Cedar/Listener.o tmp/objs/Cedar/Logging.o tmp/objs/Cedar/Nat.o tmp/objs/Cedar/NativeStack.o tmp/objs/Cedar/NM.o tmp/objs/Cedar/NullLan.o tmp/objs/Cedar/Protocol.o tmp/objs/Cedar/Radius.o tmp/objs/Cedar/Remote.o tmp/objs/Cedar/Sam.o tmp/objs/Cedar/SecureInfo.o tmp/objs/Cedar/SecureNAT.o tmp/objs/Cedar/SeLowUser.o tmp/objs/Cedar/Server.o tmp/objs/Cedar/Session.o tmp/objs/Cedar/SM.o tmp/objs/Cedar/SW.o tmp/objs/Cedar/UdpAccel.o tmp/objs/Cedar/UT.o tmp/objs/Cedar/VG.o tmp/objs/Cedar/Virtual.o tmp/objs/Cedar/VLan.o tmp/objs/Cedar/VLanUnix.o tmp/objs/Cedar/VLanWin32.o tmp/objs/Cedar/WaterMark.o tmp/objs/Cedar/WebUI.o tmp/objs/Cedar/WinUi.o tmp/objs/Cedar/Wpc.o -HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css +HAMCORE_FILES=src/bin/hamcore/authors.txt src/bin/hamcore/backup_dir_readme.txt src/bin/hamcore/empty.config src/bin/hamcore/empty_sevpnclient.config src/bin/hamcore/eula.txt src/bin/hamcore/install_src.dat src/bin/hamcore/lang.config src/bin/hamcore/languages.txt src/bin/hamcore/languages_wine.txt src/bin/hamcore/legal.txt src/bin/hamcore/openvpn_readme.pdf src/bin/hamcore/openvpn_readme.txt src/bin/hamcore/openvpn_sample.ovpn src/bin/hamcore/root_certs.dat src/bin/hamcore/SOURCES_OF_BINARY_FILES.TXT src/bin/hamcore/strtable_cn.stb src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_ja.stb src/bin/hamcore/vpnweb_sample_cn.htm src/bin/hamcore/vpnweb_sample_en.htm src/bin/hamcore/vpnweb_sample_ja.htm src/bin/hamcore/warning_cn.txt src/bin/hamcore/warning_en.txt src/bin/hamcore/warning_ja.txt src/bin/hamcore/webui/cryptcom.cgi src/bin/hamcore/webui/edituser.cgi src/bin/hamcore/webui/error.cgi src/bin/hamcore/webui/hub.cgi src/bin/hamcore/webui/license.cgi src/bin/hamcore/webui/listener.cgi src/bin/hamcore/webui/localbridge.cgi src/bin/hamcore/webui/login.cgi src/bin/hamcore/webui/newhub.cgi src/bin/hamcore/webui/redirect.cgi src/bin/hamcore/webui/securenat.cgi src/bin/hamcore/webui/server.cgi src/bin/hamcore/webui/session.cgi src/bin/hamcore/webui/user.cgi src/bin/hamcore/webui/webui.css # Build Action default: build diff --git a/src/vpn16/vpn16.c b/src/vpn16/vpn16.c index 2c0cfb1..f4852fb 100644 --- a/src/vpn16/vpn16.c +++ b/src/vpn16/vpn16.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // 16-bit Driver Install Utility for Windows 9x // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -485,7 +485,3 @@ int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR CmdLine32, int CmdSho } - -// 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/vpn16/vpn16.h b/src/vpn16/vpn16.h index 4b13a9d..afbfd92 100644 --- a/src/vpn16/vpn16.h +++ b/src/vpn16/vpn16.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // 16-bit Driver Install Utility for Windows 9x // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -130,7 +130,3 @@ BOOL IsSafeChar(char c); #endif // VPN16_H - -// 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/vpnbrand/vpnbrand.h b/src/vpnbrand/vpnbrand.h index 0bacd47..8412068 100644 --- a/src/vpnbrand/vpnbrand.h +++ b/src/vpnbrand/vpnbrand.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Hamster Test Code // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -137,7 +137,3 @@ int main(int argc, char *argv[]); // BRANDINGKIT_H #endif - -// 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/vpnbrand/vpnbrand.vcproj b/src/vpnbrand/vpnbrand.vcproj index 77a8163..530ee68 100644 --- a/src/vpnbrand/vpnbrand.vcproj +++ b/src/vpnbrand/vpnbrand.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -222,7 +222,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/vpnbridge/vpnbridge.c b/src/vpnbridge/vpnbridge.c index 345ea92..953b359 100644 --- a/src/vpnbridge/vpnbridge.c +++ b/src/vpnbridge/vpnbridge.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -165,7 +165,3 @@ int main(int argc, char *argv[]) } - -// 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/vpnbridge/vpnbridge.vcproj b/src/vpnbridge/vpnbridge.vcproj index 3a059dd..0b9c97c 100644 --- a/src/vpnbridge/vpnbridge.vcproj +++ b/src/vpnbridge/vpnbridge.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -224,7 +224,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/vpnclient/vpnclient.vcproj b/src/vpnclient/vpnclient.vcproj index 6e27a5b..35dbdc8 100644 --- a/src/vpnclient/vpnclient.vcproj +++ b/src/vpnclient/vpnclient.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -226,7 +226,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/vpnclient/vpncsvc.c b/src/vpnclient/vpncsvc.c index f2cf30a..f8c1554 100644 --- a/src/vpnclient/vpncsvc.c +++ b/src/vpnclient/vpncsvc.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -152,7 +152,3 @@ int main(int argc, char *argv[]) } - -// 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/vpnclient/vpncsvc.h b/src/vpnclient/vpncsvc.h index 4e45d38..c5e9a62 100644 --- a/src/vpnclient/vpncsvc.h +++ b/src/vpnclient/vpncsvc.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -122,7 +122,3 @@ void StopProcess(); #endif // VPNCSVC_H - -// 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/vpncmd/vpncmd.c b/src/vpncmd/vpncmd.c index 203da53..87de5a4 100644 --- a/src/vpncmd/vpncmd.c +++ b/src/vpncmd/vpncmd.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -200,7 +200,3 @@ int main(int argc, char *argv[]) } - -// 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/vpncmd/vpncmd.vcproj b/src/vpncmd/vpncmd.vcproj index feeea3e..6f50718 100644 --- a/src/vpncmd/vpncmd.vcproj +++ b/src/vpncmd/vpncmd.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE" StringPooling="false" MinimalRebuild="true" ExceptionHandling="0" @@ -226,7 +226,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VPN_SPEED" StringPooling="false" MinimalRebuild="false" ExceptionHandling="0" diff --git a/src/vpncmdsys/vpncmdsys.c b/src/vpncmdsys/vpncmdsys.c index b00edfc..2e25d0f 100644 --- a/src/vpncmdsys/vpncmdsys.c +++ b/src/vpncmdsys/vpncmdsys.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -298,7 +298,3 @@ int main(int argc, char *argv[]) return ret_code; } - -// 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/vpncmdsys/vpncmdsys.h b/src/vpncmdsys/vpncmdsys.h index 54840e4..3153cfc 100644 --- a/src/vpncmdsys/vpncmdsys.h +++ b/src/vpncmdsys/vpncmdsys.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -120,7 +120,3 @@ bool IsWindowsNt(); - -// 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/vpncmdsys/vpncmdsys.vcproj b/src/vpncmdsys/vpncmdsys.vcproj index cfdcfdc..ce8f618 100644 --- a/src/vpncmdsys/vpncmdsys.vcproj +++ b/src/vpncmdsys/vpncmdsys.vcproj @@ -49,7 +49,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/vpncmgr/vpncmgr.c b/src/vpncmgr/vpncmgr.c index 066eecf..a149ae4 100644 --- a/src/vpncmgr/vpncmgr.c +++ b/src/vpncmgr/vpncmgr.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -150,7 +150,3 @@ int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, char *CmdLine, int CmdShow) } - -// 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/vpncmgr/vpncmgr.vcproj b/src/vpncmgr/vpncmgr.vcproj index b382f5c..e9b8c5f 100644 --- a/src/vpncmgr/vpncmgr.vcproj +++ b/src/vpncmgr/vpncmgr.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -224,7 +224,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/vpndrvinst/vpndrvinst.c b/src/vpndrvinst/vpndrvinst.c index 29c607d..8b8db49 100644 --- a/src/vpndrvinst/vpndrvinst.c +++ b/src/vpndrvinst/vpndrvinst.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Hamster Test Code // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -364,7 +364,3 @@ int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, char *CmdLine, int CmdShow) return 0; } - -// 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/vpndrvinst/vpndrvinst.h b/src/vpndrvinst/vpndrvinst.h index 3ea8fcb..7149563 100644 --- a/src/vpndrvinst/vpndrvinst.h +++ b/src/vpndrvinst/vpndrvinst.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Hamster Test Code // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -132,7 +132,3 @@ void MainFunction(char *cmd); int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, char *CmdLine, int CmdShow); - -// 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/vpndrvinst/vpndrvinst.vcproj b/src/vpndrvinst/vpndrvinst.vcproj index 58bb906..dbe358a 100644 --- a/src/vpndrvinst/vpndrvinst.vcproj +++ b/src/vpndrvinst/vpndrvinst.vcproj @@ -49,7 +49,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir);$(SolutionDir)Mayaqua" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" @@ -82,6 +82,7 @@ GenerateManifest="false" AdditionalManifestDependencies="type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'" IgnoreAllDefaultLibraries="false" + IgnoreDefaultLibraryNames="LIBCMTD.lib" DelayLoadDLLs="setupapi.dll;advapi32.dll;user32.dll" GenerateDebugInformation="true" ProgramDatabaseFile="$(SolutionDir)DebugFiles\pdb\$(PlatformName)_$(ConfigurationName)\$(ProjectName).pdb" @@ -183,6 +184,7 @@ GenerateManifest="false" AdditionalManifestDependencies="type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'" IgnoreAllDefaultLibraries="false" + IgnoreDefaultLibraryNames="LIBCMTD.lib" DelayLoadDLLs="setupapi.dll;advapi32.dll;user32.dll" GenerateDebugInformation="true" ProgramDatabaseFile="$(SolutionDir)DebugFiles\pdb\$(PlatformName)_$(ConfigurationName)\$(ProjectName).pdb" diff --git a/src/vpninstall/vpninstall.c b/src/vpninstall/vpninstall.c index eb8b26e..5bf93b3 100644 --- a/src/vpninstall/vpninstall.c +++ b/src/vpninstall/vpninstall.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1663,7 +1663,3 @@ int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, char *CmdLine, int CmdShow) } - -// 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/vpninstall/vpninstall.h b/src/vpninstall/vpninstall.h index aa80419..26d6a4a 100644 --- a/src/vpninstall/vpninstall.h +++ b/src/vpninstall/vpninstall.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -236,7 +236,3 @@ void ViSetSkip(); #endif // VPNINSTALL_H - -// 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/vpninstall/vpninstall.vcproj b/src/vpninstall/vpninstall.vcproj index ce9eb58..69265b3 100644 --- a/src/vpninstall/vpninstall.vcproj +++ b/src/vpninstall/vpninstall.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -133,7 +133,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/vpnserver/vpnserver.c b/src/vpnserver/vpnserver.c index 22b31a6..cd46bba 100644 --- a/src/vpnserver/vpnserver.c +++ b/src/vpnserver/vpnserver.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -165,7 +165,3 @@ int main(int argc, char *argv[]) #endif // OS_WIN32 } - -// 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/vpnserver/vpnserver.vcproj b/src/vpnserver/vpnserver.vcproj index c6152bc..e12f1c1 100644 --- a/src/vpnserver/vpnserver.vcproj +++ b/src/vpnserver/vpnserver.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -226,7 +226,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/vpnsetup/vpnsetup.c b/src/vpnsetup/vpnsetup.c index 5d9b356..33e3bb7 100644 --- a/src/vpnsetup/vpnsetup.c +++ b/src/vpnsetup/vpnsetup.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -144,7 +144,3 @@ int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, char *CmdLine, int CmdShow) } - -// 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/vpnsetup/vpnsetup.vcproj b/src/vpnsetup/vpnsetup.vcproj index 8afaf0a..642fe98 100644 --- a/src/vpnsetup/vpnsetup.vcproj +++ b/src/vpnsetup/vpnsetup.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -224,7 +224,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/vpnsmgr/vpnsmgr.c b/src/vpnsmgr/vpnsmgr.c index 8e24593..d9f88af 100644 --- a/src/vpnsmgr/vpnsmgr.c +++ b/src/vpnsmgr/vpnsmgr.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -141,7 +141,3 @@ int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, char *CmdLine, int CmdShow) } - -// 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/vpnsmgr/vpnsmgr.vcproj b/src/vpnsmgr/vpnsmgr.vcproj index 991cd14..f054618 100644 --- a/src/vpnsmgr/vpnsmgr.vcproj +++ b/src/vpnsmgr/vpnsmgr.vcproj @@ -46,7 +46,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS" MinimalRebuild="true" ExceptionHandling="0" BasicRuntimeChecks="3" @@ -224,7 +224,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;VPN_SPEED" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;VPN_SPEED" StringPooling="false" ExceptionHandling="0" RuntimeLibrary="0" diff --git a/src/vpnweb/vpnweb.h b/src/vpnweb/vpnweb.h index 20a095f..7cd3a70 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 Sun Apr 17 20:58:41 2016 +/* at Mon Jan 15 09:33:38 2018 */ /* Compiler settings for .\vpnweb.idl: Oicf, W1, Zp8, env=Win32 (32b run) diff --git a/src/vpnweb/vpnweb.vcproj b/src/vpnweb/vpnweb.vcproj index 5945f2a..fa06a3e 100644 --- a/src/vpnweb/vpnweb.vcproj +++ b/src/vpnweb/vpnweb.vcproj @@ -51,7 +51,7 @@ Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;_USRDLL" + PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL" MinimalRebuild="true" ExceptionHandling="1" BasicRuntimeChecks="3" @@ -154,7 +154,7 @@ EnableIntrinsicFunctions="false" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="$(SolutionDir)Mayaqua\win32_inc;.;$(SolutionDir)" - PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;VPN_SPEED;_USRDLL" + PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;VPN_SPEED;_USRDLL" StringPooling="false" ExceptionHandling="1" RuntimeLibrary="0" diff --git a/src/vpnweb/vpnweb_i.c b/src/vpnweb/vpnweb_i.c index 2997ff7..cff28a7 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 Sun Apr 17 20:58:41 2016 +/* at Mon Jan 15 09:33:38 2018 */ /* 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 a438944..06b9728 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 Sun Apr 17 20:58:41 2016 +/* at Mon Jan 15 09:33:38 2018 */ /* Compiler settings for .\vpnweb.idl: Oicf, W1, Zp8, env=Win32 (32b run) diff --git a/src/vpnweb/vpnwebdlg.c b/src/vpnweb/vpnwebdlg.c index e6079f8..ecee865 100644 --- a/src/vpnweb/vpnwebdlg.c +++ b/src/vpnweb/vpnwebdlg.c @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -1605,7 +1605,3 @@ UINT SendMsg(HWND hWnd, UINT id, UINT msg, WPARAM wParam, LPARAM lParam) return (UINT)SendMessageA(DlgItem(hWnd, id), msg, wParam, lParam); } - -// 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/vpnweb/vpnwebdlg.h b/src/vpnweb/vpnwebdlg.h index f3d4eb6..3e2e666 100644 --- a/src/vpnweb/vpnwebdlg.h +++ b/src/vpnweb/vpnwebdlg.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -146,7 +146,3 @@ void GetVpnWebDlgSize(SIZE *size); #endif #endif // VPNWEBDLG_H - -// 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/vpnweb/vpnwebdlg_inner.h b/src/vpnweb/vpnwebdlg_inner.h index 7cb42a4..37f6219 100644 --- a/src/vpnweb/vpnwebdlg_inner.h +++ b/src/vpnweb/vpnwebdlg_inner.h @@ -1,17 +1,17 @@ -// SoftEther VPN Source Code +// SoftEther VPN Source Code - Stable Edition Repository // Cedar Communication Module // // SoftEther VPN Server, Client and Bridge are free software under GPLv2. // -// Copyright (c) 2012-2016 Daiyuu Nobori. -// Copyright (c) 2012-2016 SoftEther VPN Project, University of Tsukuba, Japan. -// Copyright (c) 2012-2016 SoftEther Corporation. +// Copyright (c) Daiyuu Nobori. +// Copyright (c) SoftEther VPN Project, University of Tsukuba, Japan. +// Copyright (c) SoftEther Corporation. // // All Rights Reserved. // // http://www.softether.org/ // -// Author: Daiyuu Nobori +// Author: Daiyuu Nobori, Ph.D. // Comments: Tetsuo Sugiyama, Ph.D. // // This program is free software; you can redistribute it and/or @@ -279,7 +279,3 @@ void SetRange(HWND hWnd, UINT id, UINT start, UINT end); void SetPos(HWND hWnd, UINT id, UINT pos); - -// 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/systemd/softether-vpnbridge.service b/systemd/softether-vpnbridge.service new file mode 100644 index 0000000..2f50882 --- /dev/null +++ b/systemd/softether-vpnbridge.service @@ -0,0 +1,23 @@ +[Unit] +Description=SoftEther VPN Bridge +After=network.target auditd.service +ConditionPathExists=!/opt/vpnbridge/do_not_run + +[Service] +Type=forking +ExecStart=/opt/vpnbridge/vpnbridge start +ExecStop=/opt/vpnbridge/vpnbridge stop +KillMode=process +Restart=on-failure + +# Hardening +PrivateTmp=yes +ProtectHome=yes +ProtectSystem=full +ReadOnlyDirectories=/ +ReadWriteDirectories=-/opt/vpnbridge +CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID + +[Install] +WantedBy=multi-user.target + diff --git a/systemd/softether-vpnclient.service b/systemd/softether-vpnclient.service new file mode 100644 index 0000000..1e9dbd0 --- /dev/null +++ b/systemd/softether-vpnclient.service @@ -0,0 +1,25 @@ +[Unit] +Description=SoftEther VPN Client +After=network.target auditd.service +ConditionPathExists=!/opt/vpnclient/do_not_run + +[Service] +Type=forking +EnvironmentFile=-/opt/vpnclient +ExecStart=/opt/vpnclient/vpnclient start +ExecStop=/opt/vpnclient/vpnclient stop +KillMode=process +Restart=on-failure + +# Hardening +PrivateTmp=yes +ProtectHome=yes +ProtectSystem=full +ReadOnlyDirectories=/ +ReadWriteDirectories=-/opt/vpnclient +CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID + +[Install] +WantedBy=multi-user.target + + diff --git a/systemd/softether-vpnserver.service b/systemd/softether-vpnserver.service new file mode 100644 index 0000000..951b13d --- /dev/null +++ b/systemd/softether-vpnserver.service @@ -0,0 +1,25 @@ +[Unit] +Description=SoftEther VPN Server +After=network.target auditd.service +ConditionPathExists=!/opt/vpnserver/do_not_run + +[Service] +Type=forking +EnvironmentFile=-/opt/vpnserver +ExecStart=/opt/vpnserver/vpnserver start +ExecStop=/opt/vpnserver/vpnserver stop +KillMode=process +Restart=on-failure + +# Hardening +PrivateTmp=yes +ProtectHome=yes +ProtectSystem=full +ReadOnlyDirectories=/ +ReadWriteDirectories=-/opt/vpnserver +CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID + +[Install] +WantedBy=multi-user.target + +